각진 세상에 둥근 춤을 추자
암호 키 관리와 암호 키 보호 본문
암호 키 관리
암호 키 관리는 암호화 시스템의 핵심 요소로 암호화 및 복호화를 위한 대칭키와 비대칭키 생성, 저장, 배포, 교체, 폐기 등의 전체 과정을 포함한다. 암호화 시스템의 보안성은 암호 알고리즘 자체 뿐만 아니라 암호 키를 안전하게 관리하는 방법에 크게 의존한다.
암호 키 관리에는 다음과 같은 주요 단계들이 포함된다.
1. 키 생성: 안전한 암호화를 위해 암호키를 생성하는 과정이다. 주로 난수 발생기를 사용해 예측 불가능한 키를 생성하며, 대칭키 또는 비대칭키로 사용할 수 있다.
2. 키 저장: 생성된 키를 안전하게 저장하는 과정이다. 키는 일반적으로 보안성이 높은 저장소에 저장하거나, 암호화된 형태로 파일에 저장된다.
3. 키 배포: 암호화 통신을 위해 키를 각 당사자에게 안전하게 전달하는 과정이다. 대칭키의 경우 양쪽에서 동일한 키를 공유해야 하므로 안전한 키 배포가 필요하다. 비대칭키의 경우 공개키는 공개적으로 배포되지만, 개인키는 안전하게 보호되어야 한다.
4. 키 교체: 암호화 키는 일정 기간 사용 후 교체해야 한다.
5. 키 폐기: 더 이상 사용하지 않는 키는 안전하게 폐기해야 한다. 키가 불필요하게 남아 있으면 시스템 보안에 취약점이 생긴다.
6. 키 백업 및 복구: 키가 손실될 경우 시트메이 복구 불가능해질 수 있으므로 안전한 백업과 복구 절차가 필요하다.
7. 접근 통제: 암호키에 접근할 수 있는 주체를 엄격하게 제한해야 한다.
(* 암호 키가 사용될 때 시스템의 기억장소 및 임시파일에 저장된다면, 사용 이후 관련된 정보를 즉시 삭제해야 한다. 암호키를 사용한 이후에는 기억 장소 및 임시 파일을 복구 불가능하도록 다른 값으로 채운다. 또한, 암호 키가 복호화 되어 평문 상태로 유지되는 시간은 최소화되어야 한다. 만약, 부득이하게 암호 키를 지속적으로 사용하는 경우에는 관련된 장비와 시스템에 대한 안전성이 검증되어야 한다.)
기밀성 보호, 무결성 보호, 출처 인증
또한 암호 키 관리는 기밀성, 무결성, 출처 인증 등 주요 보안 목표를 달성하는 데 중요한 열할을 한다.
1. 기밀성 보호: 기밀성은 허가되지 않은 사용자가 정보에 접근하지 못하도록 보호하는 개념이다. 암호화 알고리즘을 이용하여 데이터를 암호화하여 키를 소유한 사용자만이 데이터에 접근할 수 있게 한다.
- 암호화된 통신: 대칭키나 비대칭키를 사용하여 데이터를 암호화한다.
- 키 보호: 암호 키를 안전하게 관리한다.
2. 무결성 보호: 데이터가 변경되지 않았음을 보장하는 개념이다. 데이터가 전송 중에 변조되지 않도록 보호해야 하며, 데이터가 원래 의도된 상태로 유지되는지를 확인하는 것이 무결성 보호이다.
- 해시 함수: 해시 함수를 사용해 데이터의 고유한 체크섬을 생성하고, 데이터가 변조되었는지 확인한다.
- 디지털 서명: 비대칭키를 이용해 송신자가 데이터에 서명을 하면, 수신자는 그 서명을 검증하여 데이터가 변조되지 않았음을 확인한다.
- 암호 무결성 메커니즘(ex: 암호학적 체크섬, 해시 함수, MAC, 서명), 비 암호 무결성 메커니즘(ex: CRC, 패리티 검사), 물리적 보호 메커니즘 등이 있다.
3. 출처 인증: 데이터의 발신자나 제공된 출처가 신뢰할 수 있는지 확인하는 과정이다.
- 디지털 서명: 개인키로 서명된 메시지는 오직 해당 개인키를 소유한 사람이 보낸 것이므로 이를 검증하면 데이터가 신뢰할 수 있는 출처인지 확인할 수 있다.
- 인증서: 공개키 기반의 인증서를 통해 출처를 확인할 수 있다.
암호 키 보호
암호 키 보호는 크게 전송 중인 암호 키 보호와 저장 중인 암호 키 보호로 나눌 수 있다.
1. 전송 중인 암호 키 보호
전송 중인 암호키는 네트워크를 통해 상대방에게 전달되는 키를 말한다.
(1) 무결성 보호: 데이터가 전송 중에 변경되지 않고 원래의 상태를 유지하는 것을 의미한다.
수동적 방법 | [CRC에 상응하는 무결성 메커니즘] - CRC, MAC, 디지털 서명 - 전송된 암호키와 함께 체크섬 값을 전송하여 수신자가 받은 암호 키를 체크섬으로 검증하는 방식 - CRC는 단순한 오류를 감지하는 데는 유용하지만, 의도적인 공격을 탐지하기에는 충분하지 않다. |
자동화 방법 | [통신 프로토콜을 이용한 자동화된 방법] - 암호화 통신 프로토콜을 사용하여 자동으로 무결성을 보장하는 방식 - 주로 HMAC(Hash-based Message Authentication Code)와 같은 무결성 검사 기법을 사용 - TLS(Transport Layter Security) 프로토콜에서는 데이터를 전송할 때 HMAC을 사용하여 전송된 암호 키가 변조되지 않았는지 자동으로 확인한다. |
(2) 기밀성 보호: 전송 중인 데이터가 허가되지 않은 자에게 노출되지 않도록 보호하는 것을 의미한다.
수동적 방법 | [암호키 암호화 및 키 스플릿] - 암호화된 키 전송: 전송되는 암호키를 추가적으로 암호화한다. - 키 스플릿: 하나의 암호키를 여러 조각으로 나누어 각각 전송한다. |
자동화 방법 | [통신 프로토콜을 이용한 자동화된 방법] - 안전한 알고리즘과 키 길이를 이용한 암호화: 암호화된 통신 세션을 설정한 후, 전송 중인 암호 키가 AES, RSA 등의 강력한 알고리즘과 충분히 긴 키 길이(ex: 256bit)를 사용하여 암호화한다. |
2. 저장 중인 암호 키 보호
암호키가 안전하게 저장되지 않으면 암호화된 데이터가 복호화될 위험이 있다.
(1) 가용성: 필요할 때 암호 키에 접근할 수 있는 능력을 의미한다.
- 암호 키는 유효기간 동안 항상 사용 가능해야 한다.
- 암호 키에 대한 복사본을 하나 이상 만들고 각기 다른 장소에 저장한다.
- 암호 키의 유효기간이 만료된 이후에도 필요한 암호 정보들은 안전하게 보관되어야 한다.
(2) 무결성: 암호 키가 허가되지 않은 변경 없이 원래의 상태를 유지하는 것을 의미한다.
물리적 메커니즘 | 암호 키를 저장하는 하드웨어나 시스템 자체를 물리적으로 보호하는 방법 - 하드웨어 보안 모듈(HSM): 암호 키를 안전하게 저장하고 관리할 수 있는 전용 하드웨어 장치 (예: 금융기관이나 정부 기관에서 중요한 암호 키를 HSM에 저장하여 외부로부터 물리적 공격을 방지한다.) - 물리적 접근 통제: 보안된 장소에만 암호 키 저장 장치가 배치되도록 한다. |
암호 메커니즘 | - 암호키에 대해 해시 함수를 적용하여 해당 키의 체크섬을 생성하고 키의 무결성을 검증한다. |
'보안' 카테고리의 다른 글
암호 키 생성: 결정론적 난수발생기(DRBG) (1) | 2024.09.09 |
---|---|
암호화 알고리즘과 암호화 키 생성 도구 (2) | 2024.09.05 |
암호 키 생성 방식 (0) | 2024.09.05 |
개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (2) - CAPTCHA 적용에 대해 (1) | 2024.08.26 |
개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (1) (0) | 2024.08.22 |