데이터베이스/Database

[In-Transit 암호화] 전송 중인 데이터 보호하기

Dachaes 2025. 5. 6. 16:05
728x90
반응형
728x90

데이터베이스 암호화 : In-Transit 방식 

기업 환경에서 데이터는 단순히 저장되어 있을 뿐만 아니라, 지속적으로 이동(전송)하며 사용됩니다. 특히 클라이언트와 데이터베이스 서버 간, 혹은 마이크로서비스 간 통신에서는 네트워크를 통한 데이터 노출 위험이 존재합니다. 이때 필요한 보안 기술이 바로 In-Transit 암호화, 즉 전송 중 데이터 암호화입니다.
이 글에서는 데이터베이스 통신 구간을 보호하기 위한 대표적인 In-Transit 암호화 방식인 TLS/SSL, VPN, SSH 터널링을 소개하고, 각 방식의 개념과 적용 예시, 장단점을 비교합니다. 성능과 보안의 균형을 어떻게 잡을지 고민하는 개발자와 인프라 엔지니어에게 실용적인 가이드가 될 수 있습니다.

 


1.  데이터베이스 암호화란?

데이터베이스 암호화(Database Encryption)는 DB에 저장된 데이터를 암호화하여 비인가 접근으로부터 정보를 보호하는 기술입니다. 보통 다음 두 종류로 나뉩니다.

  • 정적 데이터 암호화(At-Rest) : 저장된 데이터를 암호화 (예: TDE)
  • 전송 중 데이터 암호화(In-Transit) : 네트워크 전송 중 데이터를 암호화 (예: TLS/SSL)

이 글에서는 In-Transit 암호화를 중심으로 설명합니다.

 

 


2.  In-Transit 암호화란?

In-Transit 암호화(전송 중 암호화)는 데이터가 네트워크를 통해 이동할 때 중간에서 탈취당하거나 위조되지 않도록 암호화하는 방식입니다. 사용자가 웹 애플리케이션에서 DB에 쿼리를 날릴 때, 또는 백엔드 서버 간 통신 시 이 암호화가 적용됩니다.

암호화 대상 구간 예시

  • 클라이언트 ↔ DB 서버
  • 앱 서버 ↔ DB 서버
  • 마이크로서비스 간 통신
  • DB ↔ 백업 서버

 


3.  주요 In-Transit 암호화 방식

a.  TLS/SSL (Transport Layer Security / Secure Sockets Layer)

TLS는 네트워크 계층에서 통신 데이터를 암호화하는 보안 프로토콜입니다. SSL은 이전 명칭이며, 현재는 TLS가 표준입니다. 대부분의 데이터베이스는 TLS 기반의 보안 통신을 지원합니다.

  • 인증서 기반으로 서버/클라이언트 신원을 확인합니다.
  • 중간자 공격(Man-in-the-Middle) 방지합니다.
  • DBMS을 기본 지원합니다. (PostgreSQL, MySQL, MongoDB 등)

예시 - PostgreSQL에서 TLS 설정

ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'

클라이언트 연결

psql "sslmode=require host=example.com dbname=test user=admin"

장점

  • 표준화된 방식, 호환성 우수
  • 자동화된 인증서 관리 가능 (Let's Encrypt 등)

단점

  • 인증서 발급/갱신 관리 필요
  • 초기 설정 복잡할 수 있음

b.  SSH 터널링

보안되지 않은 데이터베이스 포트를 SSH 연결을 통해 터널링하여 안전하게 연결하는 방식입니다. 개발 환경이나 원격 접속에 자주 사용됩니다.

  • SSH 키 기반 인증으로 보안을 강화합니다.
  • 외부 포트 노출 없이 내부 DB 접근 가능합니다.
  • 추가적인 보안 계층 역할을 합니다.

예시 - MySQL 원격 터널 연결

ssh -L 3306:localhost:3306 user@remote-server

→ 이후 localhost:3306으로 MySQL 접속

장점

  • 간단한 설정, 고립된 환경에서도 활용 가능
  • 별도 DB 설정 없이 사용 가능

단점

  • 운영 환경에서는 자동화 및 확장에 부적합
  • 세션 연결 유지 필요

c.  VPN (Virtual Private Network)

사설 네트워크처럼 동작하는 암호화된 가상 통신망을 생성하여, 그 안에서 데이터베이스와 통신하는 방식입니다. 주로 내부망 통신 보호에 사용됩니다.

  • 네트워크 레벨에서 모든 트래픽을 암호화할 수 있습니다.
  • IP 기반 접근 제어와 함께 사용이 가능합니다.
  • Site-to-Site 또는 Client-to-Site 구성할 수 있습니다.

예시 - DB 통신을 VPN으로 보호할 경우

  • DB 서버는 VPN 전용 IP에서만 요청 수락
  • 외부에서는 VPN 연결 없이 DB 접근 불가

장점

  • 포괄적 보안 : DB 외 다른 서비스도 보호 가능
  • 대규모 기업 환경에 적합

단점

  • 초기 인프라 구축 비용/복잡성 높음
  • VPN 장애 시 전체 서비스 영향 가능

 


4.  암호화 방식 비교

방식 암호화 계층 장점 단점
TLS/SSL 애플리케이션/DB 통신 계층 표준 지원, 자동화 가능 인증서 관리 필요
SSH 터널링 세션 기반 통신 암호화 간편한 개인 보안 자동화/확장성 부족
VPN 네트워크 전체 암호화 통합 보안 제공 인프라 비용, 구성 복잡
 

5.  In-Transit 암호화 적용 시 고려할 요소

  • 보안 수준 : TLS는 대부분의 상황에서 충분하지만, 매우 민감한 데이터는 VPN 추가 고려가 필요합니다.
  • 자동화와 유지보수 : 인증서 자동 갱신, 세션 유지 관리 등 자동화 여부를 고려해야 합니다.
  • 성능 오버헤드 : 암호화로 인한 레이턴시, CPU 사용량 등도 감안해야 합니다.
  • 접근 제어 : 암호화 외에도 IP 화이트리스트, 방화벽 설정 등과 병행이 필요합니다.

 


6.  마무리

  • In-Transit 암호화는 데이터 전송 구간에서 정보 탈취를 막는 핵심 보안 기술입니다.
  • TLS/SSL은 가장 일반적이며, 데이터베이스와의 통신에서도 표준처럼 사용됩니다.
  • SSH 터널링은 개발 환경에서 유용하고, VPN은 조직 전체 네트워크 보안에 적합합니다.
  • 보안 강도, 설정 복잡도, 자동화 필요 여부에 따라 적절한 방식을 선택하는 것이 중요합니다.

함께 보면 좋은 자료

블로그 글 :

 

[데이터베이스 암호화] At-Rest 암호화 방식 완전 정리

데이터베이스 암호화 : At-Rest 방식기업이 보유한 데이터가 점점 더 민감하고 중요해지면서, 데이터베이스 수준에서의 암호화는 선택이 아닌 필수가 되었습니다. 특히 개인정보보호법, GDPR, HIPAA

dachaes-devlogs.tistory.com

 


반응형

 

728x90
반응형