데이터베이스 암호화 기술

데이터베이스 암호화는 크게 위치(어디서 암호화 하는가)에 따라 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 서버 부하 낮음 높음 낮음
성능 영향 작음 큼 매우 작음
구축 난이도 어려움 보통 쉬움