반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
분석∙설계단계 SW 보안강화 - 설계보안항목 정의 및 설계 시 고려 사항 - 암호키 관리
설명
- 암호키 생성, 분배, 접근, 파기 등 안전하게 암호키 생명주기를 관리할 수 있는 방법을 설계해야 한다.
설계항목내용
- DB 데이터 암호화에 사용되는 암호키는 한국인터넷진흥원의 「암호이용 안내서」에서 정의하고 있는 방법을 적용해야 한다.
- 설정 파일(xml, Properties) 내의 중요정보 암호화에 사용되는 암호키는 암호화해서 별도의 디렉 터리에 보관해야 한다.
가. 취약점 개요
사례 1: 하드코드 된 암호키
- 코드 내부에 하드코드 된 암호화 키를 사용하여 암호화를 수행하면 암호화된 정보가 유출될 가능성이 높아진다.
사례 2: 주석 문 안에 포함된 암호키
- 주석문 안에 암호키에 대한 설명이 포함되어 있는 경우, 공격자가 소스코드에 접근할 수 있다면 아주 쉽게 암호키가 노출될 수 있다.
나. 설계 시 고려사항
1. DB 데이터 암호화에 사용되는 암호키는 한국인터넷진흥원의 「암호이용 안내서」에서 정의하고 있는 방법을 적용해야 한다
(ㄱ) 암호키 관리 규칙 생성 시 고려사항
- 1. DB 데이터 암호화에 사용되는 암호키는 데이터가 저장되는 데이터베이스와 물리적으로 분리된 장소에 별도로 보관한다.
- 2. 암호화 키를 생성, 분배, 사용, 폐기하는 키의 생명주기 관리를 위한 명시적인 암호화 정책을 적용한다.
- 3. 패스워드나 암호화 키는 메모리에 저장하지 않는다
- 4. 패스워드나 암호키가 메모리에 저장되어야 하는 경우 사용종료 후 메모리를 0으로 초기화한다.
- 5. 암호키 생성 및 변경 시 암호키에 대한 백업 기능을 구현한다.
- 6. 대칭키 암호 알고리즘에 사용되는 비밀키의 송신자 사용기간은 최대 2년, 수신자 사용기간은 최대 5년으로 설정한다.
- 7. 공개키 암호 알고리즘에서 사용되는 암호화 공개키는 최대 2년, 복호화 개인키는 최대 2년, 검 증용 공개키는 최소 3년, 서명용 개인키는 최대 3년으로 설정한다
(ㄴ) 조직의 보호 목적에 따라 암호키 관리 수준을 지정
- NIST에서 제정한 FIPS 140‐2의 레벨로써, 조직의 보호 목적에 따라 적절히 채택한다.
(ㄷ) 키 생명주기 기준 암호화 키 관리 프로세스를 구축
- 키 생성 – 암호화 키와 패스워드를 생성, 사용, 관리하는 사람 등을 명시하고 키를 생성하는데 사용하는 프로그램 등 어떠한 방법으로 생성하는지에 대한 절차를 명시한다.
- 키 사용 – 암호화 키와 패스워드를 어떠한 방법으로 사용하는지에 대한 절차, 생성한 키의 종류에 따른 변경주기, 인가된 사용자만 키에 접근할 수 있는 접근통제 방법 및 요구사항 등을 명시한다.
- 키 폐기 – 키의 사용주기가 다 된 경우 및 사용 용도가 끝난 경우 등 생성한 키를 폐기하여야 하는 경우를 명시하고, 암호화 키와 패스워드를 안전하게 폐기하는 절차 및 요구사항 등을 명시한다.
(ㄹ) 키 복구 방안
- 사용자 퇴사 등으로 인해 사용자 이외의 사람에게 키 복구가 필요한 경우, 암호화 키는 정보보호 담당자의 관리 하에 암호화 키 관리대장 등에서 복구하고, 패스워드는 정보보호 담당자가 임시 패스워드를 발급하는 등 키 복구에 대한 방안을 마련하도록 한다
(ㅁ) 암호키 사용 유효기간
- 암ㆍ복호화 키의 사용이 일정 시간을 넘은 경우 사용자 인터페이스를 통해 키 사용기간이 경과했음을 알리고 새로운 키 생성을 권장하도록 설계한다. [표 3‐17]는 NIST에서 권고하는 암호키 사용 유효기간이다.
2. 설정 파일(xml, Properties) 내의 중요정보 암호화에 사용되는 암호키는 암호화해서 별도의 디렉터리에 보관해야 한다.
- 설정 파일 내의 중요 정보 암호화에 사용된 암호키는 마스터키를 이용하여 암호화하여 별도의 디렉터리에 보관한다.
참고자료
- CWE‐615 Information Exposure Through Comments, MITRE,
http://cwe.mitre.org/data/definitions/615.html - CWE‐321 Use of Hard‐coded Cryptographic Key, MITRE,
http://cwe.mitre.org/data/definitions/321.html - 암호 키 관리 안내서, 한국인터넷진흥원,
http://www.kisa.or.kr/public/laws/laws3_View.jsp?cPage=1&mode=view&p_No=259&b_No=259&d_No=83&ST=total&SV= - Key Management Cheat Sheet, OWASP,
http://www.owasp.org/index.php/Key_Management_Cheat_Sheet - 2016 OWASP Application Security Verification Standard, OWASP, Cryptography at Rest Verification Requirements, http://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project
- Recommendation for Key Management, NIST SP 800-57 Part1 Revesion4,
http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r4.pdf - Use of hard-coded cryptographic key, OWASP,
http://www.owasp.org/index.php/Use_of_hard-coded_cryptographic_key - Cryptographic Storage Cheat Sheet, OWASP,
http://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet - A basic encryption strategy for storing sensitive data, ITworld,
http://www.itworld.com/article/2693828/data-protection/a-basic-encryptionstrategy-for-storing-sensitive-data.html
반응형
'공부 > KISA' 카테고리의 다른 글
중요정보 저장 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.17 |
---|---|
암호연산 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.16 |
중요자원 접근통제 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
비밀번호 관리 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
인증수행 제한 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
댓글