데이터베이스 암호화 기술

데이터베이스 암호화는 크게 위치(어디서 암호화 하는가)에 따라 3가지 주요 방식으로 나뉩니다.

 

1. API (Application Programming Interface) 방식

애플리케이션 서버 내에 암/복호화 모듈을 라이브러리 형태로 설치하고, 소스 코드에서 이를 호출하여 데이터를 암호화한 뒤 DB에 전송합니다.

  • DB 서버 부하가 거의 없음.
  • 소스 코드 수정이 필수적이므로 구축 비용과 시간이 많이 소요됨.
  • 데이터가 네트워크로 전송될 때 이미 암호화되어 있어 보안성이 높음.

2. Plug-In 방식

DB 서버에 암/복호화 모듈을 설치하고, DB의 프로시저나 트리거 기능을 활용하여 암호화를 수행합니다.

  • 애플리케이션 소스 코드 수정이 거의 없음.
  • DB 서버가 암/복호화 연산을 수행하므로 DB 서버 부하(CPU 점유율)가 발생함.
  • 관리가 상대적으로 용이하여 가장 널리 쓰이는 방식 중 하나임.

3. TDE (Transparent Data Encryption) 방식

DBMS 엔진 자체의 암호화 기능을 사용합니다. 데이터 파일이 디스크에 저장될 때 암호화되고, 메모리로 읽어올 때 복호화됩니다.

  • 소스 코드 수정이나 SQL 수정이 아예 필요 없음.
  • 인덱스 검색 등 성능 저하가 가장 적음.
  • 단, 데이터가 메모리에 올라오면 평문으로 존재하므로, DB 관리자(DBA) 권한 탈취 시 보안에 취약할 수 있음.

4. Hybrid 방식

최근에는 API와 Plug-In 방식을 혼합하여 사용합니다.

  • 일반 데이터 : 관리가 편한 Plug-In 방식 사용.
  • 대용량/고성능 데이터 : DB 부하를 줄이기 위해 API 방식 사용.
구분 API 방식 Plug-In 방식 TDE 방식
암호화 위치 애플리케이션 서버 DB 서버 DB 엔진 (커널)
애플리케이션 수정 많음 (필수) 거의 없음 없음
DB 서버 부하 낮음 높음 낮음
성능 영향 작음 매우 작음
구축 난이도 어려움 보통 쉬움