T
TechInsights
목록으로
Architecture•2025. 07. 08.

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

카카오 페이
카카오 페이 Engineering Team
우리는 암호화하는데 왜 키를 사용할까?

핵심요약

원문 보기

카카오페이손해보험의 암호화 모듈 리팩토링 경험을 통해 고전부터 현대 암호화 기법(대칭키, 비대칭키, 하이브리드, 봉투 암호화)의 발전 과정을 설명하고, JPA/Hibernate 스펙 및 AOP를 활용한 실제 구현 및 문제 해결 과정을 상세히 다룹니다.

카카오페이손해보험 암호화 모듈 리팩토링 및 현대 암호화 기본기

암호화 패러다임의 진화와 실무 적용

  • 레거시 암호화 모듈의 라이브러리 호환성 및 확장성 한계로 리팩토링이 필요했습니다.
  • 케르크호프 원리에 기반한 현대 암호는 키를 중심으로 발전했으며, **대칭키(AES)**와 **비대칭키(RSA)**가 대표적입니다.
  • 두 방식의 장점을 결합한 하이브리드 암호화는 TLS, JWT 등 최신 프로토콜의 핵심입니다.
  • 봉투 암호화는 Data Encryption Key (DEK)와 Key Encryption Key (KEK)를 통해 데이터를 안전하게 관리하는 방법론으로, AWS KMS 같은 관리형 서비스로 구현됩니다.
  • AWS KMS는 **고객 마스터 키(CMK)**를 활용하여 DEK를 암호화하고, 키 회전 및 접근 추적을 지원하여 보안 및 관리 편의성을 제공합니다.

효율적인 암호화 모듈 구현 전략

  • JPA/Hibernate 스펙을 활용하여 암호화 모듈을 비즈니스 로직에 쉽게 통합하는 방안을 모색했습니다.
  • AOP 기반 EncryptionListener 구현 시 @PostLoad 이벤트가 불필요한 UPDATE 쿼리를 발생시켜, Entity Life Cycle에서의 값 변경에 대한 예측 불가한 부작용을 경험했습니다.
  • **AttributeConverter**는 JPA 표준 스펙으로, convertToDatabaseColumn()과 convertToEntityAttribute()를 통해 1차 캐시 문제 없이 자동 암/복호화를 구현했습니다.
  • Hibernate의 **UserType/ParameterizedType**은 AttributeConverter의 파라미터 전달 한계를 보완하지만, 구현이 복잡하고 타입 안전성 이슈가 있었습니다.
  • 최종적으로는 사용 편의성과 유연성을 고려하여 AttributeConverter와 UserType/ParameterizedType 두 가지 구현 방식을 제공하여 선택의 폭을 넓혔습니다.
#Architecture#BackEnd
카카오 페이
카카오 페이

카카오 페이 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
Amazon Braket 콘솔 소개 및 Amazon Braket에서 양자 회로를 실행하는 방법 -1

Amazon Braket 콘솔 소개 및 Amazon Braket에서 양자 회로를 실행하는 방법 -1

양자 컴퓨팅이란 무엇인가? – Part 7: 하이브리드 접근법, 양자 연산이 구현되는 여정

양자 컴퓨팅이란 무엇인가? – Part 7: 하이브리드 접근법, 양자 연산이 구현되는 여정