보안/SW보안약점 진단원

[설계보안] 보안기능-암호키 관리

re-bugger 2022. 6. 25. 20:28

분류: 보안기능 / 하드코드된 중요정보, 주석문 안에 포함된 시스템 주요정보

가. 항목명

암호키 관리

나. 취약점 설명

하드코드된 암호키: 코드 내부에 암호화 키를 하드코딩하여 사용하여 노출되는 취약점

주석문 안에 포함된 암호키: 주석문 안에 암호키에 대한 설명이 포함된 경우 공격자 접근 시 노출되는 취약점

다. 보안대책

① DB데이터 암호화에 사용되는 암호키는 KISA 가이드 방법을 적용해야 한다.

② 설장파일(XML, Properties) 내의 중요정보 암호화에 사용되는 키는 암호화해서 별도 디렉토리에 보관한다. 

라. 설계시 고려사항

① DB데이터 암호화에 사용하는 암호키는 암호 키 관리 안내서에서 정의하는 관리방법을 적용한다.

  • 암호키 관리 규칙 생성 시 고려사항
1. 암호키는 데이터가 저장되는 DB와 물리적으로 분리된 장소에 보관
2. 키의 생명주기 관리를 위한 명시적인 암호화 정책 적용
3. 메모리에 저장안함
4. 메모리에 저장되야하는 경우 사용종료 후 메모리를 0으로 초기화
5. 암호키에 대한 백업기능 구현
6. 암호 알고리즘에 사용되는 키 종류에 따라 사용 유효기간 설정
  • 조직의 보호 목적에 따라 암호키 관리 수준 지정 FIPS 140-2 레벨로 조직의 보호목적에 따라 적절히 채택
Level 1: 기본적인 보안요구사항 충족(최소한의 보안) 제공
Level 2: 침입 이후에 변조가 나타내는 증거를 제공함으로 써 물리적 보안메커니즘 제공
Level 3: 침입을 감지하면 저장된 키를 삭제
Level 4: 암호모듈 외부 전압이나 온도 등을 감지하여 슈퍼쿨링 등 환경이상 변화 시 암호키 삭제
  • 키 생명주기 기준 암호화 키 관리 프로세스 구축
  • 키 복구 방안: 암호 키는 담당자의 관리 하에 암호화키 관리대장에서 복구하고 임시 발급 등 복구에 대한 방안을 마련
  • 암호 키 사용 유효기간을 적용
    • 대칭키 송신자 2년 수신자 (송신자 사용기간+3년)이하
    • 공개키 암호화키, 복호화 개인키, 검증용 공개키, 서명용 개인키 2,2,1~3, 크기에 따라 다름

마. 진단기준 및 세부사항 

① 설정파일(XML, Proterties) 내의 중요정보 암호화에 사용하는 키는 암호화해서 별도 디렉토리에 저장

  • 설정파일(XML, Properties) 에 저장되는 중요정보(DB계정정보, 시스템 중요정보)가 암호화되어 저장
  • 설정파일에 저장된 중요정보의 암복호화에 사용되는 키는 설정파일과 별도 위치에 저장
  • 암호키 생성 및 변경방법 수립하고 암호키 백업정책 정의
  • 암호 키 사용기간 정의 
    • 대칭키: 송신자 2년, (송신자+3년) 이내
    • 비대칭키: 암호 공개키 2년, 개인키 2년, 검증용 공개키 1~3년, 서명용 개인키 키 크기에 따라 다름
  • 암호키 사용 시 사용 종료 후 메모리 0으로 초기화

바. 안전한 보안설계의 예

No 요구사항명 해결방안 검수기준 비고
1 DB사용자 계정에 최소권한 부여 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. 지속적인 DB사용자 계정 관리가 필요