피드로 돌아가기
Dev.toSecurity
원문 읽기
KYC 데이터 보호를 위한 AES-256-GCM 기반 인증 암호화 설계
I Almost Hashed a Document Number That Needed to Be Read Again
AI 요약
Context
VaultPay의 KYC 검증 기능 구현 중 민감 데이터 저장 방식에 대한 설계 결정 필요. 단순 Hashing 적용 시 관리자의 원본 데이터 확인이 불가능하여 검증 프로세스가 중단되는 제약 발생.
Technical Solution
- 원본 복구가 필요한 비즈니스 요구사항에 따라 Hashing 대신 Encryption 방식 채택
- 데이터 무결성 검증을 위해 단순 AES-256이 아닌 Authenticated Encryption 방식인 AES-256-GCM 도입
- 암호문 변조 시 복호화 단계에서 즉각적인 실패를 유도하여 가비지 데이터 유입 차단
- Encryption Key를 데이터베이스와 분리하여 Environment Variable로 관리함으로써 DB 유출 시 데이터 보호
- 내부자에 의한 오남용 방지를 위해 복호화 시점마다 VIEWED_KYC_DOCUMENT 이벤트를 Audit Log에 강제 기록
실천 포인트
- 복구 가능성 여부에 따라 Hashing(단방향)과 Encryption(양방향)을 명확히 구분하여 선택 - 암호화 적용 시 데이터 변조 탐지를 위해 GCM과 같은 인증 모드(Authenticated Encryption) 검토 - 암호화 키와 암호문 저장소의 물리적/논리적 분리 여부 확인 - 민감 데이터 접근 시 Read 작업에 대한 Audit Log 기록 체계 구축