IT 공부

DB 암호화(Database Encryption) 방식과 이를 구현하는 다양한 툴을 정리!

수아빠37 2025. 2. 14. 08:52
반응형

🔹 DB 암호화 개요

DB 암호화는 데이터베이스에 저장된 데이터를 암호화하여 보안성을 높이는 기술입니다.
데이터 유출, 해킹, 내부자 위협 등에 대비할 수 있습니다.


🔹 DB 암호화 방식

1️⃣ 컬럼(column) 단위 암호화

  • 특정 컬럼(예: 주민등록번호, 계좌번호 등)만 암호화
  • 장점: 필요한 데이터만 암호화하여 성능 저하 최소화
  • 단점: 테이블마다 설정해야 하므로 관리 복잡

🔹 사용 툴:
MySQL AES_ENCRYPT()/AES_DECRYPT()
Oracle TDE (Transparent Data Encryption)


2️⃣ 파일(file) 단위 암호화

  • DB의 데이터 파일을 통째로 암호화
  • 장점: DB 시스템의 변경 없이 적용 가능
  • 단점: 테이블 내부의 특정 데이터를 암호화할 수 없음

🔹 사용 툴:
Transparent Data Encryption (TDE) (Oracle, SQL Server 지원)
Vormetric Data Security


3️⃣ 애플리케이션(응용) 단 암호화

  • DB에 저장하기 전에 애플리케이션에서 데이터를 암호화
  • 장점: DB 자체를 변경할 필요 없음
  • 단점: 애플리케이션 코드 수정 필요

🔹 사용 툴:
Java: Bouncy Castle, Jasypt
Python: PyCryptodome, Cryptography


4️⃣ 전송 중 암호화

  • 데이터가 DB와 애플리케이션 간 이동할 때 암호화
  • 장점: 네트워크 스니핑(가로채기) 방지
  • 단점: 저장된 데이터 보호에는 한계 있음

🔹 사용 툴:
SSL/TLS (MySQL, PostgreSQL, SQL Server 지원)
SSH 터널링


🔹 DB 암호화 툴 추천

툴방식특징

TDE (Transparent Data Encryption) 파일 암호화 DB 자체에서 지원, 성능 저하 적음
AES_ENCRYPT (MySQL) 컬럼 암호화 특정 컬럼 암호화 가능
PyCryptodome (Python) 애플리케이션 암호화 직접 코드에서 암호화 가능
SSL/TLS 전송 암호화 네트워크 보호
728x90