피드로 돌아가기
Dev.toSecurity
원문 읽기
AES-256-GCM 기반 0.02ms 지연시간의 토큰 암호화 설계
How We Encrypt X Auth Tokens: AES-256-GCM in Practice
AI 요약
Context
DB 유출 시에도 제3자 서비스 인증 토큰과 프록시 자격 증명을 보호하기 위한 application-level encryption 필요성 대두. 단순 암호화를 넘어 데이터 무결성 검증과 하드웨어 가속을 통한 성능 최적화가 요구되는 상황.
Technical Solution
- 무결성 검증이 통합된 AES-256-GCM 채택을 통한 Ciphertext 변조 방지 및 HMAC 추가 단계 제거
- AES-NI 하드웨어 가속 활용으로 x86 서버 환경에서 연산 효율 극대화
- 매 값마다 Random IV를 생성하여 동일 토큰의 서로 다른 Ciphertext 출력을 유도함으로써 데이터 패턴 분석 차단
iv:authTag:ciphertext형태의 단일 문자열 포맷 설계로 DB 스키마 변경 없는 필드 레벨 암호화 구현- SHA-256 해싱을 통한 Environment Variable의 고정 길이(32-byte) Master Key 정규화
- Detection-and-upgrade 패턴 적용으로 기존 Plaintext 데이터를 서비스 중단 없이 점진적으로 암호화 전환
실천 포인트
1. AES-256-CBC 대신 무결성 검증이 포함된 AES-256-GCM 사용 검토
2. 동일 키 사용 시 IV 재사용 금지 및 값별 독립적 IV 생성 적용
3. 암호화 키의 DB 저장 금지 및 환경 변수를 통한 분리 관리
4. 민감 데이터에 한정된 선택적 암호화를 통한 불필요한 Latency 제거
5. 배치 작업 대신 접근 시점에 전환하는 Detection-and-upgrade 전략 고려