2026년 암호화 키 관리 모범 사례
2026년 안전한 키 생성, 저장, 순환, 수명 주기 관리를 위한 검증된 모범 사례로 암호화 키 관리를 완벽히 익히세요.
암호화 알고리즘이 아무리 강력해도 키 관리가 허술하면 보안은 무너집니다. 2026년 기준 키 관리의 핵심은 CSPRNG로 키를 생성하고, 하드웨어(AWS KMS, YubiHSM 2, Thales Luna, Secure Enclave)에 저장하며, 위협 노출 수준에 맞는 주기로 순환하고, 사용이 끝난 키는 암호학적 삭제 또는 물리적 파기로 폐기하는 것입니다. NIST SP 800-57 Part 1 Rev 5가 수명 주기를 정의하고, FIPS 140-3이 모듈을 인증하며, PCI DSS 4.0 요구사항 3.6이 프로세스를 감사합니다. AES-256-GCM과 X25519를 올바르게 사용하더라도 키 관리가 잘못되면 무용지물이 됩니다.
신뢰할 수 있는 키 생성
키 생성은 암호화에서 조용한 실패 지점입니다. Debian의 2006~2008년 OpenSSL CVE(Debian 전용 RNG 패치)는 해당 시스템에서 생성된 모든 SSH 키를 예측 가능하게 만들었습니다. 2021년에는 Fortinet이 엔트로피가 낮은 부팅 시점 소스에서 파생된 키가 탑재된 라우터를 출하했습니다. 안전한 생성은 OS CSPRNG를 사용합니다. Linux 3.17 이상에서는 getrandom(), Windows에서는 BCryptGenRandom, macOS/iOS에서는 SecRandomCopyBytes를 사용합니다. Web Crypto API의 crypto.getRandomValues()는 OS 소스에서 가져옵니다. 자체 RNG를 절대 구현하지 말고, time()이나 PID로 시드를 설정하지 마세요. VM 부팅 시 엔트로피 풀이 충분히 채워졌는지 확인하세요(/proc/sys/kernel/random/entropy_avail > 256).
계층적 키 구조: KEK, DEK, 세션 키
실제 시스템은 계층화된 키를 사용합니다. DEK(Data Encryption Key)는 AES-256-GCM으로 실제 데이터를 암호화합니다. KEK(Key Encryption Key)는 DEK를 암호화하며 HSM에 저장됩니다. 루트 KEK는 KEK를 암호화하며 변조 방지 하드웨어에 보관됩니다. DEK를 순환하면 데이터가 재암호화되고, KEK를 순환하면 DEK를 재래핑합니다(빠름). 루트 KEK 순환은 대규모 작업입니다. 이 봉투 패턴 덕분에 수십 테라바이트를 복호화하지 않고도 빠르게 키를 순환할 수 있습니다. AWS KMS, Google Cloud KMS, HashiCorp Vault 모두 이 방식을 구현합니다. 파일 전송 서비스에서 전송당 AES 키는 DEK이고, 비밀번호에서 파생된 KEK(PBKDF2 또는 Argon2id 경유)가 이를 래핑합니다.
저장소: HSM, KMS, 실질적 차이
HSM(Hardware Security Module)은 키를 외부로 내보내지 않고 생성, 저장, 사용하는 변조 방지 장치입니다. FIPS 140-3 Level 3 장치(Thales Luna 7, AWS CloudHSM, YubiHSM 2)는 물리적 변조를 감지하고 키를 제로화합니다. KMS(Key Management Service)는 HSM 위에서 실행되는 소프트웨어로, API를 통해 접근합니다. 대부분의 애플리케이션에는 KMS로 충분합니다. 키당 월 $1을 지불하고 HTTPS로 암호화/복호화를 호출하면 AWS가 HSM 작업을 처리합니다. 규제 요구사항(PCI DSS 4.0 요구사항 3.6.1.1, 카드 발급)이 있거나 클라우드 제공업체의 법적 관할권을 신뢰할 수 없는 경우에는 직접 HSM이 필요합니다.
위험 수준에 맞는 순환 일정
NIST SP 800-57은 암호 주기(cryptoperiod), 즉 키가 활성 상태를 유지하는 시간을 정의합니다. 새 데이터를 암호화하는 대칭 데이터 키는 최대 1~2년, 기존 데이터만 복호화하는 키는 3~5년, 루트 KEK는 5~10년입니다. PCI DSS 요구사항 3.7.4는 암호 주기 정의를 의무화합니다. AWS KMS 자동 순환은 연간, Google KMS는 구성 가능합니다. HexaTransfer 같은 파일 전송 서비스에서 각 업로드는 새 랜덤 키를 받으므로 데이터 키에는 순환이 적용되지 않지만, TLS 인증서(Let's Encrypt를 통해 90일), 감사 로그 서명 키(연간), 사용자별 비밀을 래핑하는 마스터 키에는 적용됩니다.
폐기와 암호학적 삭제
키의 암호 주기가 끝나거나 GDPR 제17조(개인정보보호법 제36조 포함)에 따라 데이터를 삭제해야 할 때 키를 파기합니다. 오프라인 백업 토큰은 물리적 파기(스마트카드 파쇄기)를 사용합니다. 클라우드 저장 키는 암호학적 삭제를 사용합니다. 래핑 키로 키를 암호화한 다음 래핑 키를 파기하면, 첫 번째 키로 암호화된 모든 데이터는 아무도 복호화할 수 없는 암호문이 됩니다. 이 방식으로 클라우드 제공업체는 모든 디스크 섹터를 지우지 않고도 테라바이트 규모의 삭제 요청을 준수합니다. 파기 내역은 타임스탬프, 키 ID(키 재료가 아닌), 파기 방법을 포함하여 감사 로그에 기록합니다. NIST SP 800-88 Rev 1이 삭제 지침을 다룹니다.
접근 제어와 직무 분리
단 한 명도 프로덕션 키를 단독으로 추출할 수 없어야 합니다. HSM 관리자 역할에 m-of-n 쿼럼을 구현합니다. 루트 키 내보내기는 5명 중 2명, KEK 순환은 3명 중 1명, 일상적인 DEK 작업은 인원 필요 없음으로 설정합니다. AWS KMS 권한은 IAM 정책을 통해 좁은 기능(암호화 전용, 복호화 전용)을 위임합니다. HashiCorp Vault의 Shamir Secret Sharing은 봉인 해제 키를 수탁자들에게 분할합니다. 모든 키 사용은 호출자 ID, 작업, 리소스와 함께 로깅합니다. PCI DSS 3.6.2와 SOC 2 CC6.1 모두 이를 감사합니다.
봉투 암호화와 BYOK
BYOK(Bring Your Own Key)를 통해 고객은 자신의 루트 KEK를 클라우드 KMS에 업로드할 수 있습니다. 클라우드 제공업체는 고객의 KEK 아래에 테넌트 데이터 키를 래핑하므로, 고객이 키를 폐기하면 제공업체 개입 없이 데이터에 접근할 수 없게 됩니다. AWS KMS Import Key, Google Cloud EKM(External Key Manager), Azure Key Vault BYOK가 이를 지원합니다. 의료 및 금융 분야 규제 고객을 처리하는 파일 전송 서비스의 경우, BYOK는 공유 인프라에서도 "고객이 키를 제어한다"는 요구사항을 충족합니다. 고객의 HSM이 키를 생성하고 제공업체는 평문 키 재료를 절대 보지 못합니다.
키 재료 백업과 복구
키를 잃으면 데이터를 잃습니다. 루트 키는 지리적으로 분리된 수탁자들이 보유하는 Shamir Secret Sharing 분할로 백업합니다. AWS KMS는 BYOK로 생성된 CMK에 대해서만 키 재료 내보내기를 지원합니다. YubiHSM 2는 래핑 키 백업을 지원합니다. 복구 절차를 문서화하고 연간 실제로 테스트하며, 최소 두 명의 수탁자가 항상 유효한 상태를 유지합니다. 덜 중요한 키의 경우 에어갭 미디어(LTO 테이프, 금고의 암호화된 USB)에 오프라인 백업을 2개 이상의 위치에 보관합니다. 복구 절차는 재해 복구 런북에 포함합니다.
클라이언트 측 암호화의 특수 사례
HexaTransfer처럼 사용자가 브라우저에서 암호화하는 서비스의 경우, 전통적인 키 관리는 적용되지 않습니다. 서버가 키를 절대 보지 못하기 때문에 서버 측에서 순환할 키가 없습니다. 브라우저는 사용자 비밀번호에서 키를 파생하고, 한 번 사용한 후 폐기합니다. 키 관리는 사용자 교육으로 이동합니다. 강력한 비밀번호 선택, 재사용 금지, 비밀번호 관리자 사용이 핵심입니다. 서비스의 책임은 강력한 KDF(Argon2id with m=64MB, t=3, p=1 또는 반복 횟수 600,000 이상의 PBKDF2)를 사용하고, 랜덤 솔트를 적절히 생성하며, 사용 후 메모리에서 키 재료를 제로화하는 것입니다.
모니터링과 인시던트 대응
키 손상은 최악의 인시던트입니다. KMS 작업에서 이상 징후를 모니터링합니다. 평소 시간당 100번의 Decrypt 호출을 하던 API 키가 갑자기 10,000번을 하는 경우는 데이터 유출 신호입니다. KMS 오류(인증 실패, 키 없음, 할당량 초과)에 대한 알림을 설정합니다. 알림은 키 순환, 자격증명 무효화, 포렌식 캡처를 포함한 런북과 연결합니다. 루트를 얼마나 빨리 순환할 수 있는지, 테라바이트 규모의 데이터를 어떻게 재암호화할지 포함한 키 손상 복구 계획을 수립하고 연간 테스트합니다.
hexatransfer.com에서 사용해 보세요 — 무료, 계정 불필요, 최대 10GB.
엔드투엔드 암호화로 대용량 파일을 안전하게 전송
엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.
파일 보내기