AES-256-GCM 봉투 형식으로 민감정보를 암호화하고, AAD와 키 교체까지 다룹니다.
비밀값은 기밀성과 무결성을 함께 지키는 인증 암호화로 암호화해야 합니다. 암호문에는 알고리즘 버전, key id, nonce, 인증 tag를 넣습니다. 데이터의 용도와 소유 범위는 AAD로 묶어, 암호문을 다른 문맥으로 옮겨 쓰는 공격을 막습니다.
암호화와 변조 검출을 한 연산에서 처리하므로, 변조된 암호문은 복호화되지 않습니다.
같은 키에서 nonce가 겹치지 않게 하고, 암호화하지 않는 문맥 정보도 인증 대상에 넣습니다.
알고리즘과 키 식별자를 암호문에 기록해 두므로, 키 교체와 형식 마이그레이션을 조금씩 나눠 진행할 수 있습니다.
AES-256-GCM으로 암호화한 뒤 결과(envelope)를 조각별로 나눠 보여 줍니다. 키는 이번 요청에서만 쓰고 버립니다.
0 / 200바이트 · 입력은 저장되지 않습니다
아래 증명은 글로 된 설명이 아닙니다. 버튼을 누르면 이 서버가 지금 직접 계산합니다.
왕복이 맞는다는 것과 규격대로 계산한다는 것은 서로 다른 주장입니다. 직접 만든 알고리즘도 왕복은 맞습니다. 여기서는 규격 문서에 실린 키·nonce·AAD·평문을 넣어, 문서에 실린 암호문과 태그가 바이트 단위로 똑같이 나오는지 확인합니다.
표준 문서에 실린 테스트 벡터를 그대로 넣어 같은 값이 나오는지 확인합니다.
암호문에 자기 정보가 함께 들어 있습니다. 어떤 키와 어떤 IV로 만들었는지 담고 있어서 키를 교체하는 동안에도 이전 값을 그대로 복호할 수 있습니다. 같은 평문도 암호화할 때마다 다른 암호문이 됩니다.
표준 문서에 실린 테스트 벡터를 그대로 넣어 같은 값이 나오는지 확인합니다.
GCM은 기밀성과 무결성을 함께 보장합니다. 한 비트만 바꿔도 복호가 실패하고, 값이 묶인 맥락(AAD)이 다르면 같은 키로도 열리지 않습니다. 그래서 다른 계정의 암호문을 가져다 쓸 수 없습니다.
막아야 할 입력을 실제로 넣고 거부되는지 확인합니다.
규격 원문을 먼저 실었습니다. 사례는 이 분야에서 실제로 보안이 뚫린 일을 다룬 자료입니다.
AES-GCM의 원문입니다. nonce 유일성 요구와 인증 태그 규칙이 여기 있습니다.
AEAD가 무엇을 보장하고 무엇은 보장하지 않는지 정리합니다.
nonce를 한 번만 재사용해도 인증이 통째로 무너지는 이유를 보입니다.
다음 단계
환경별 KMS adapter를 연결하고, 이전 키로 만든 envelope를 단계적으로 재암호화하는 작업을 검증합니다.