목록 보기
우리는 암호화화는데 왜 키를 사용할까?
백엔드

우리는 암호화화는데 왜 키를 사용할까?

카카오페이
카카오페이
2025년 7월 8일

두줄요약

암호화 설계를 위해 고전 암호부터 현대 암호, 하이브리드와 봉투 암호화까지의 흐름을 정리했습니다. JPA와 Hibernate 확장 포인트를 활용해 실무에서 암복호화를 자동화한 경험도 소개했습니다.

문제 상황

  • 암호화 모듈의 의존 라이브러리 구버전 고착으로 최신 애플리케이션과 호환성 문제 발생
  • 유틸리티 클래스와 정적 메서드 중심 구조로 보안 규정 변화와 확장 대응에 한계
  • 암호화를 제대로 이해하지 못하면 설계와 리팩토링 자체가 어려운 상황

원인 분석

  • 고전 암호는 알고리즘 비밀에 의존해 브루트포스와 빈도 분석에 취약
  • 현대 암호학은 알고리즘이 노출되어도 키 비밀성으로 안전성을 확보하는 방향으로 전환
  • 대칭키와 비대칭키는 각각 속도와 키 관리 측면에서 장단점이 뚜렷

해결 방법

  • 원문은 대칭키로 빠르게 암호화하고 대칭키는 비대칭키로 감싸는 하이브리드 암호화 채택
  • 데이터 키와 키 암호화 키를 분리하는 봉투 암호화로 운영 단순화와 키 관리 강화
  • JPA AttributeConverter, Hibernate UserType/ParameterizedType으로 암복호화 자동화 모듈 구성

주의할 점

  • Entity LifeCycle에서 엔티티 값을 직접 수정하면 1차 캐시와의 불일치로 예기치 않은 update 발생 가능
  • AttributeConverter는 단순하지만 추가 파라미터 전달과 타입 확장에 제약 존재
  • UserType/ParameterizedType은 유연하지만 구현 복잡도와 타입 안전성 한계 존재

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...