암호 키 관리
더 많은 작업
- Cryptographic Key Management; 암호 키 관리(암호키 관리, 키 관리)
- 암호 키를 생성부터 파기까지 수명 주기 전체에 걸쳐 안전하게 만들고, 나누고, 쓰고, 바꾸고, 없애는 관리 체계
암호 알고리즘이 아무리 강해도 키가 새면 끝이다. 현대 암호는 알고리즘을 공개하고 키만 비밀로 지키는 구조(케르크호프스 원리)이므로, 실무에서 암호 시스템이 무너지는 지점은 대부분 알고리즘이 아니라 키 관리이다. 소스 코드에 박힌 키, 공유 폴더의 개인키, 몇 년째 바꾸지 않은 키, 백업 없이 잃어버린 키가 전형적인 사고 원인이다.
CISSP 시험 개요 3.6(암호 솔루션 선택과 결정)의 첫 항목이 "암호 수명 주기(예: 키, 알고리즘 선택)"이다. 키의 수명 주기와 알고리즘의 수명 주기를 함께 관리하라는 뜻이다. 기준 문서는 NIST SP 800-57 Part 1(키 관리 권고 – 일반)이다.
암호 수명 주기(cryptographic life cycle)는 두 층으로 본다. 하나는 개별 키의 수명 주기이고, 다른 하나는 알고리즘과 키 길이의 수명 주기이다. 키는 몇 달에서 몇 년 단위로 교체되고, 알고리즘은 수십 년 단위로 강화·폐기된다.
| 단계 | 하는 일 | 주의점 |
|---|---|---|
| 생성 (generation) | 승인된 난수 생성기로 충분한 엔트로피를 갖는 키를 만든다. 가능하면 HSM 같은 암호 모듈 안에서 생성한다. | 예측 가능한 난수, 사람이 정한 키는 금지 |
| 등록 (registration) | 키를 소유자(사람·장비·서비스)와 용도, 유효 기간 같은 메타데이터에 묶는다. 공개키는 인증서로 등록한다. | 소유자·용도 불명의 키를 만들지 않는다 |
| 저장 (storage) | 평문 키를 암호 모듈 밖에 두지 않는다. 밖에 둘 때는 키 암호화 키(KEK)로 감싸서(key wrapping) 저장한다. | 소스 코드, 설정 파일, 저장소에 평문 키 금지 |
| 분배 (distribution) | 수동 분배(봉인 봉투, 분할 전달), 키 전송(공개키로 감싸 보냄), 키 합의(디피-헬먼), 키 배포 센터(KDC)를 통한 분배 중 하나를 쓴다. | 키와 그 키로 보호한 데이터를 같은 채널로 보내지 않는다 |
| 사용 (use) | 정해진 용도로만 쓴다. 하나의 키를 서명과 암호화에 겸용하지 않는다. | 키 용도 분리 원칙 |
| 순환 (rotation) | 암호 유효 기간이 끝나거나 침해가 의심되면 새 키로 교체한다. 재암호화 범위를 미리 계획한다. | 침해 시 즉시 교체, 정기 교체는 자동화 |
| 보관 (archive) | 운영에서 빠진 키라도 과거 데이터를 복호화하거나 서명을 검증해야 하면 보관한다. | 보관 키는 보호 수준을 유지하고 접근을 엄격히 통제 |
| 폐기·파기 (revocation, destruction) | 인증서 폐기(CRL, OCSP)로 신뢰를 거두고, 더 필요 없는 키는 모든 사본(백업 포함)에서 복구 불가능하게 지운다(제로화, zeroization). | 백업과 보관 사본의 잔존 여부 확인 |
NIST SP 800-57 Part 1은 이 흐름을 네 개의 국면으로 묶는다. 운영 전(pre-operational) 국면에서 개체 등록, 키 생성·설치·분배가 일어나고, 운영(operational) 국면에서 키가 사용·저장·교체되며, 운영 후(post-operational) 국면에서 보관·폐기·등록 해제가 이뤄지고, 마지막이 파기(destroyed) 국면이다. 키의 상태는 활성화 전(pre-activation), 활성(active), 일시 정지(suspended), 비활성(deactivated), 침해(compromised), 파기(destroyed)로 정의한다.
암호 유효 기간(cryptoperiod)은 특정 키가 사용을 허가받은 기간이다. 기간이 짧을수록 키 하나가 노출됐을 때 피해 범위와 공격자가 분석할 수 있는 암호문의 양이 줄지만, 교체 비용은 늘어난다. 유효 기간은 알고리즘 강도, 처리 데이터 양, 운영 환경의 위협, 교체 비용을 고려해 정한다.
SP 800-57 Part 1은 키 종류별 권장 유효 기간을 표로 제시한다. 예를 들어 대칭 데이터 암호화 키는 보호 적용(originator-usage) 기간 2년 이하를 권고하고, 개인 서명키는 1~3년을 권고한다. 일회용 키 합의 키(ephemeral key)는 한 번의 키 합의에만 쓴다. 권고값보다 길게 쓰려면 그에 따른 위험을 검토해야 한다.
알고리즘도 수명이 있다. DES는 키가 짧아 폐기됐고, 3중 DES(TDEA)는 NIST SP 800-131A Rev. 2에서 2023년 12월 31일 이후 새 암호화 용도로 쓸 수 없게 되었다. 양자 컴퓨터 위협 때문에 RSA와 타원 곡선 암호 같은 현재의 공개키 알고리즘도 양자 내성 암호로 옮겨 가야 한다. NIST IR 8547 초안은 112비트 보안 강도의 양자 취약 알고리즘을 2030년 이후 비권장(deprecated), 2035년 이후 금지(disallowed)하는 전환 일정을 제시했다.
| 활동 | 내용 |
|---|---|
| 알고리즘 선택 | 국가·업계가 승인한 알고리즘과 충분한 키 길이를 쓴다. 자체 개발 암호는 쓰지 않는다. |
| 암호 자산 목록 | 어떤 시스템이 어떤 알고리즘·키 길이·라이브러리·인증서를 쓰는지 목록(암호 인벤토리)을 만든다. 전환 계획의 출발점이다. |
| 전환 계획 | 폐기 일정이 정해진 알고리즘을 언제, 어떤 순서로 바꿀지 정한다. 오래 보관할 데이터부터 우선한다. |
| 암호 민첩성 (crypto agility) | 프로토콜·애플리케이션·하드웨어를 크게 고치지 않고 알고리즘을 교체할 수 있는 능력이다. 알고리즘을 코드에 박아 두지 않고 설정과 협상으로 고를 수 있게 설계한다. NIST CSWP 39가 이 주제를 다룬다. |
| 구분 | HSM (하드웨어 보안 모듈) | 키 관리 시스템·KMS |
|---|---|---|
| 정체 | 키를 생성·보관하고 암호 연산을 내부에서 수행하는 변조 방지 하드웨어 | 키의 목록, 정책, 수명 주기, 접근 권한을 관리하는 서비스·소프트웨어 |
| 강점 | 평문 키가 장비 밖으로 나오지 않음, FIPS 140-3 등 검증 | 대규모 키 자동 순환, 감사 로그, 애플리케이션 연동 |
| 관계 | KMS의 최상위 키(루트 키, 마스터 키)를 HSM에 두는 구성이 일반적이다 | 데이터 키를 마스터 키로 감싸는 봉투 암호화 방식을 많이 쓴다 |
클라우드에서는 사업자가 관리하는 키, 고객이 관리하는 키(CMK), 고객이 직접 가져온 키(BYOK), 고객 장비에 키를 두는 방식(HYOK) 중에서 통제 수준을 고른다. 키를 사업자에게 맡길수록 편하지만 통제는 줄어든다.
키 에스크로는 키 사본을 신뢰할 수 있는 제3자에게 맡겨 두었다가 정해진 조건에서 꺼내 쓰는 방식이다. 키 복구(key recovery)는 직원 퇴사나 키 분실로 암호화된 업무 데이터를 잃지 않게 하는 조직 내부 절차이다. 복구는 가용성을 지키지만 그 자체가 키 노출 경로가 되므로, 복구 요청은 승인·기록·이중 통제를 거친다. 서명용 개인키는 부인 방지를 위해 에스크로하지 않는 것이 원칙이다.
| 구분 | 분할 지식 (split knowledge) | 이중 통제 (dual control) |
|---|---|---|
| 개념 | 키를 여러 조각(키 공유분)으로 나눠, 어느 한 조각만으로는 키에 대한 정보를 얻을 수 없게 하는 것 | 중요한 작업을 두 명 이상이 함께 있어야만 수행할 수 있게 하는 것 |
| 막는 위험 | 한 사람이 키 전체를 아는 것 | 한 사람이 혼자 민감한 작업을 하는 것 |
| 예 | HSM 마스터 키를 세 관리자에게 나눠 주고 그중 일부 이상이 모여야 복원(M-of-N) | 금고의 열쇠 두 개를 서로 다른 사람이 보관, 루트 CA 키 사용 의식(key ceremony) |
둘 다 직무 분리를 암호 키에 적용한 것이다. 시험에서는 두 개념을 함께 묶어 "키 하나를 한 사람이 통제하지 못하게 한다"는 목적으로 묻는다.
- 암호 시스템의 가장 약한 고리는 대개 알고리즘이 아니라 키 관리이다. "가장 중요한 것"을 묻으면 키 보호와 키 관리 절차를 고른다.
- 키 수명 주기 순서(생성 → 등록 → 저장 → 분배 → 사용 → 순환 → 보관 → 폐기·파기)와 SP 800-57의 네 국면(운영 전, 운영, 운영 후, 파기)을 연결한다.
- 키가 침해되면 정기 교체 시점을 기다리지 않고 즉시 폐기·교체한다. 인증서는 CRL·OCSP로 폐기 사실을 알린다.
- 분할 지식은 "지식을 나눈다", 이중 통제는 "작업에 두 사람이 필요하다"로 구분한다.
- 서명키는 에스크로하지 않고, 암호화 키는 업무 데이터 복구를 위해 에스크로·백업할 수 있다.
- 양자 컴퓨터 대비의 첫 단계는 암호 인벤토리 작성이며, 장기 대책은 암호 민첩성을 갖춘 설계이다.
- NIST SP 800-57 Part 1 Rev. 5, Recommendation for Key Management: Part 1 – General – NIST
- NIST SP 800-131A Rev. 2, Transitioning the Use of Cryptographic Algorithms and Key Lengths – NIST
- NIST IR 8547 (Initial Public Draft), Transition to Post-Quantum Cryptography Standards – NIST
- NIST CSWP 39, Considerations for Achieving Crypto Agility – NIST
- FIPS 140-3, Security Requirements for Cryptographic Modules – NIST