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