정보보안 일반

안전한 암호화 기법 정리

S0NG 2025. 6. 28. 21:52
728x90
반응형

암호화는 데이터를 보호하는 마지막 방어선입니다.
단순히 암호화 알고리즘만 사용하는 것이 아니라, 키 관리, 모드 선택, 인증까지 포함한 전체 체계가 안전해야 합니다.


1. 분류 체계

암호 방식 대칭키 (Symmetric) 동일한 키로 암호화/복호화
  공개키 (비대칭, Asymmetric) 공개키로 암호화하고, 개인키로 복호화
기능 목적 기밀성 (Confidentiality) 암호화 자체
  무결성 (Integrity) 위변조 방지 (예: HMAC)
  인증 (Authentication) 신원 보장 (예: 서명, TLS handshake)
데이터 범위 정지 데이터 (At Rest) 저장된 파일/DB
  전송 중 데이터 (In Transit) 네트워크 통신
  사용 중 데이터 (In Use) 메모리 상 암호화 (Homomorphic 등 고급 영역)
 

2. 대칭키 암호화 (Symmetric Encryption)

알고리즘


AES (Advanced Encryption Standard) 가장 널리 쓰이며 안전한 블록 암호화 표준 권장
ChaCha20 저전력 환경에 최적화된 스트림 암호 모바일 환경에 권장
Blowfish, 3DES 과거 사용되던 알고리즘 사용 금지 또는 제한
 

모드 (암호 운영 방식)


ECB 블록 단위 반복. 패턴 노출 취약 – 절대 사용 금지
CBC 초기화 벡터(IV)와 결합. 널리 사용됨 안전하나 IV 취급 중요
GCM (Galois/Counter Mode) 암호 + 인증을 동시에 제공 (AEAD) 강력히 권장
CTR 스트림처럼 동작 안전하나 인증 없음 (MAC 필요)
 

실무 권장 방식

  • AES-256-GCM (AEAD 제공)
  • ChaCha20-Poly1305 (TLS, 모바일에 적합)

3. 공개키 암호화 (Asymmetric Encryption)

알고리즘


RSA (2048~4096비트) 전통적인 공개키 알고리즘 여전히 사용되지만 느림
ECC (Elliptic Curve Cryptography) 짧은 키 길이로 높은 보안성 강력히 권장 (X25519 등)
DH / ECDH 키 교환 전용 안전하나 MITM 방지 위해 인증 필요
 

사용 사례

  • HTTPS, TLS: 키 교환 및 인증 (RSA/ECDSA/X25519)
  • 이메일 암호화: PGP/GPG
  • 디지털 서명: JWT, 코드 서명 등

4. 해시 및 메시지 인증 (무결성 보장)

해시 함수


SHA-256 / SHA-3 일반 해시 권장
MD5, SHA-1 충돌 발생 입증됨 사용 금지
 

인증 메시지 생성 (MAC)

 

HMAC-SHA256 해시 기반 MAC (많이 사용됨)
AES-GCM 암호화 + 인증 동시에 제공
Poly1305 스트림 암호용 인증 MAC
 

5. 안전한 조합 방식 (AEAD: Authenticated Encryption with Associated Data)

암호화 + 무결성 + 인증을 동시에 보장하는 기법. 실무에서 가장 권장되는 구조입니다.

 

AES-GCM 표준화된 AEAD
ChaCha20-Poly1305 TLS 1.3에서 널리 사용
AES-CCM 임베디드 환경용 AEAD
 

→ 단순 AES-CBC + HMAC 조합보다 AEAD를 직접 제공하는 모드 사용 권장


6. 실무 적용 예시

6.1. 파일 암호화

  • 암호화 방식: AES-256-GCM
  • 키 관리: KMS (AWS KMS, HashiCorp Vault 등)
  • 키 보호: HSM 연동, access logging 포함

6.2. TLS 통신

  • 키 교환: ECDHE (Perfect Forward Secrecy 제공)
  • 인증서: ECDSA or RSA-2048 이상
  • 대칭 암호화: AES-GCM 또는 ChaCha20-Poly1305
  • 프로토콜: TLS 1.3 이상 (1.2까지 허용, 그 이하 차단)

6.3. 데이터베이스 암호화

  • DB 컬럼 암호화: 앱 레벨에서 AES-GCM + 키 분리
  • DB 자체 암호화(TDE): 엔진에 따라 구현 (단, 키 유출 시 무력함)

7. 실무 보안 주의사항

 

키 관리 안전한 키 저장소 필요 (KMS, HSM) – 키 노출은 전체 암호화 무력화
암호 모드 선택 ECB는 절대 금지, AEAD 우선 사용
IV 처리 CBC 등에서는 고유한 IV를 매번 생성해야 함
인증 누락 암호화만 하고 무결성 체크 안 하면 padding oracle 공격 가능
알고리즘 사용 기한 MD5, SHA-1, 3DES 등은 보안성 상실로 폐기
암호화 성능 ECC/ChaCha20은 모바일 등 환경에서 성능 대비 우수함
규정 준수 FIPS 140-2, NIST SP 800-57, PCI-DSS, GDPR 등의 권고사항 참고
 

8. 결론

안전한 암호화는 알고리즘 선택 + 운용 방식 + 키 관리 체계의 조합입니다.
현대 보안에서는 단순한 암호화보다 AEAD, 키 분리, 무결성, 인증까지 포함한 설계를 표준으로 봅니다.

추천 구성

  • 통신용: TLS 1.3 + ECDHE + AES-GCM / ChaCha20-Poly1305
  • 저장용: AES-256-GCM + HSM/KMS 키 분리
  • 해시 및 인증: SHA-256, HMAC, AEAD 기반 메시지 구조
  • 인증서/서명: ECDSA + 키 유효기간 관리
728x90
반응형