IgnatiusHeo
설계단계 보안설계기준-암호키 관리 본문
작성일: 230628
※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다.
정리 내용: 소프트웨어 보안약점 진단 가이드(138~144p)
유형 | 보안기능 |
설계항목 | 암호키 관리 |
설명 | 암호키 생성, 분배, 접근, 파기 등 암호키 생명주기별 암호키 관리방법을 안전하게 설계한다. |
보안대책 | ① DB데이터 암호화에 사용되는 암호키는 KISA의 암호이용안내서에서 정의하고 있는 방법을 적용해야 한다. ② 설정파일(xml, Properties) 내 중요정보 암호화에 사용되는 암호키는 암호화해서 별도의 디렉토리에 보관해야 한다. |
연관된 구현단계 |
- 하드코드된 중요정보 https://cryptocurrencyclub.tistory.com/133 - 주석문안에 포함된 시스템 주요 정보 https://cryptocurrencyclub.tistory.com/140 |
가. 취약점 개요
ㅇ 위 내용을 볼 때, 예상 가능한 보안 위협: 암호키 유출?
- 하드코드된 암호키: 코드 내부에 암호화 키를 하드코딩하여 사용하여 암호화를 수행하면 암호화된 정보가 유출될 가능성이 높아진다.
- 주석문 안에 포함된 암호키: 공격자가 소스코드에 접근할 수 있다면 아주 쉽게 암호키가 노출될 수 있다.(이정도면 이미 뚫린거 아냐..?)
나. 설계시 고려사항
① DB데이터 암호화에 사용되는 암호키는 한국인터넷진흥원의 「암호 키 관리 안내서」에서 정의하고 있는 관리 방법을 적용해야 한다.
ㅇ 암호키 관리 규칙 생성 시 고려사항
- 암호키는 데이터가 저장되는 DB와 물리적으로 분리된 장소에 별도로 보관
- 암호키의 생성, 분배, 사용, 폐기하는 키의 생명주기관리를 위한 명시적인 암호화 정책 적용
- 비밀번호나 암호화키는 메모리에 저장하지 않는다
- 비밀번호나 암호키가 메모리에 저장되는 경우 사용종료 후 메모리를 0으로 초기화
- 암호키 생성 및 변경 시 암호키에 대한 백업기능을 구현
- 암호 알고리즘에 사용되는 키 종류에 따라 사용 유효기간 설정
ㅇ 조직 보호 목적에 따른 암호키 관리 수준 지정
- FIPS 140-2의 레벨의 조직 보호목적에 따라 적절히 채택
ㅇ 키 생명주기 기준 암호화 키 관리 프로세스 구축
- 키 생성: 암호키와 비밀번호를 생성, 사용, 관리하는 사람을 명시하고 키를 생성하는데 사용하는 프로그램 등 어떤 방법으로 생성하는지에 대한 절차 명시
- 키 사용: 암호키와 비밀번호를 어떤 방법으로 사용하는지에 대한 절차, 생성 키 종류 별 변경 주기, 인가된 사용자만 키에 접근할 수 있는 접근통제 방법 및 요구사항 등을 명시
- 키 폐기: 키의 사용주기가 다 된 경우, 사용 용도가 끝난 경우 등 생성한 키를 폐기하여야 하는 조건을 정하고 암호키와 비밀번호를 안전하게 폐기하는 절차 및 요구사항 등을 명시
ㅇ 키 복구 방안
- 사용자 이외의 사람에게 키 복구가 필요한 경우, 암호키는 정보보호 담당자 관리하에 암호화키 관리대장 등에서 복구하고, 비밀번호는 정보보호 담당자가 임시 비밀번호를 발급하는 등 키 복구에 대한 방안을 마련
ㅇ 암호키 사용 유효기간
- 암복호화키의 사용이 일정 기간을 넘은 경우 UI로 키 사용 기간 경과를 알린 후 새로운 키 생성을 권장
② 설정파일(xml, Properties)내의 중요정보 암호화에 사용되는 암호키는 암호화해서 별도의 디렉터리에 보관해야 한다.
ㅇ 설정파일 내의 중요정보 암호화에 사용된 암호키는 마스터키를 이용해 암호화하여 별도 디렉토리에 보관
다. 진단 세부사항
① DB데이터 암호화에 사용되는 암호키는 KISA의 암호이용안내서에 정의하고 있는 방법을 적용해야 한다.
ㅇ 설정파일에 저장되는 중요정보가 암호화되어 저장되도록 설계되어 있는지 확인
ㅇ 설정파일에 저장된 중요정보의 암복호화에 사용되는 키는 설정파일과 별도의 위치에 저장되도록 설계 여부 확인
ㅇ 암호키를 안전하게 관리하기 위한 암호키 관리수준의 정의 여부 확인
ㅇ 암호키 생성 및 변경방법을 수립하고 암호키 백업정책의 정의 여부 확인
ㅇ 암호키 사용기간을 정의하고 사용기간 경과 시 대응 방법을 정의하고 있는지 확인
- 대칭키: 송신자2년, (송신자 사용기간 +3년) 이내
- 비대칭키: 암호화 공개키 2년, 개인키 2년, 검증용 공개키 1~3년, 서명용 개인키 키 크기 별 상이
ㅇ 암호키 사용 시 사용 종료 후 메모리를 0으로 초기화하도록 코딩 규칙의 정의 여부 확인
② 설정파일(xml, Properties)내의 중요정보 암호화에 사용되는 암호키는 암호화해서 별도의 디렉터리에 보관해야 한다.
ㅇ 설정파일에 저장되는 중요정보가 암호화되어 저장되도록 설계되어 있는지 확인
ㅇ 설정파일에 저장된 중요정보의 암복호화에 사용되는 키는 설정파일과 별도의 위치에 저장되도록 설계되어 있는지 확인
끝.
'자격 > SW보안약점진단원' 카테고리의 다른 글
설계단계 보안설계기준-중요정보 저장 (0) | 2023.06.30 |
---|---|
설계단계 보안설계기준-암호연산 (0) | 2023.06.30 |
설계단계 보안설계기준-중요자원 접근통제 (0) | 2023.06.29 |
설계단계 보안설계기준-비밀번호 관리 (0) | 2023.06.29 |
설계단계 보안설계기준-인증 수행 제한 (1) | 2023.06.29 |