Overview
IPsec과 SSL/TLS는 인터넷에서의 안전한 통신을 보장하기 위한 핵심 프로토콜이다. 두 방식 모두 데이터 암호화, 인증, 무결성 보장을 목적으로 하지만, 작동하는 계층과 사용 목적, 설정 방식에 있어 뚜렷한 차이를 가진다.
- IPsec은 네트워크 계층에서 모든 트래픽(IP 패킷)을 보호하며 VPN에서 흔히 사용되고,
- SSL/TLS는 애플리케이션 계층 위에서 세션 단위 보안을 제공하여 HTTPS, 이메일, 웹 기반 서비스 등에 폭넓게 활용된다.
이 글에서는 IPsec과 SSL/TLS 각각의 개념, 작동 방식, VPN 사례 및 비교 포인트를 정리하여, 상황에 따라 어떤 보안 메커니즘을 채택하는 것이 더 효과적인지를 이해할 수 있도록 돕는다.
📅 관련 글
2023.01.13 - [CS 지식] - [CS 지식1.] 웹 브라우저의 동작원리
2023.02.23 - [CS 지식] - [CS 지식2.] DNS의 동작원리(Domain Name System)
2023.03.06 - [CS 지식] - [CS 지식3.] HTTP / HTTPS 란?
2023.03.07 - [CS 지식] - [CS 지식4.] OSI 7계층 & TCP/IP 4계층이란?
2023.03.17 - [CS 지식] - [CS 지식5.] 가상화란?
2023.05.24 - [CS 지식] - [CS 지식6.] HTTP 메서드(Method)란? / HTTP Status Code
2023.12.05 - [CS 지식] - [CS 지식7.] Kubernetes 구성요소와 Pod 생성 방식이란?
2023.12.19 - [CS 지식] - [CS 지식8.] 프로세스(Process)와 스레드(Thread)란?
2023.12.30 - [CS 지식] - [CS 지식9.] 클라우드 컴퓨팅이란?(Public & Private Cloud / IaaS SaaS PaaS / Multitenancy)
2024.01.05 - [CS 지식] - [CS 지식10.] 웹1.0(Web1.0) vs 웹2.0(Web2.0) vs 웹3.0(Web3.0)
2024.02.02 - [CS 지식] - [CS 지식11.] NAT(Network Address Translation)란?
2024.05.22 - [CS 지식] - [CS 지식13.] 동기 및 비동기 처리란?
2024.05.23 - [CS 지식] - [CS 지식14.] 3tier 아키텍처란?
2024.08.28 - [CS 지식] - [CS 지식15.] SSR vs CSR vs ISR vs SSG
2024.11.09 - [CS 지식] - [CS 지식16.] stdin(표준입력) vs stdout(표준출력) vs stderr(표준에러)
2024.11.11 - [CS 지식] - [CS 지식17.] IPsec vs SSL/TLS
2024.11.22 - [CS 지식] - [CS 지식18.] Quantum Computing(양자 컴퓨팅)
IPsec vs SSL/TLS
IPsec(인터넷 프로토콜 보안) 및 SSL(보안 소켓 레이어) 은 모두 네트워크 트래픽을 보호하는 데 사용되는 프로토콜이다. 이는 인터넷을 통해 데이터 무결성, 기밀성 및 신뢰성을 제공하지만 네트워크 스택의 다양한 계층에서 작동한다.
IPsec 이란?
IPsec은 통신 세션의 각 IP 패킷을 인증하고 암호화하여 인터넷 프로토콜(IP) 통신을 보호하기 위한 프로토콜 모음이다. IPsec에는 세션 시작 시 에이전트 간 상호 인증을 설정하고 세션 중에 사용할 암호화 키를 협상하기 위한 프로토콜이 포함되어 있다.
- 네트워크 계층 보안(Network Layer Security): IPsec은 IP 계층에서 작동하므로 이를 통과하는 모든 트래픽을 보호할 수 있으므로 VPN에 적합하다.
- 암호화 및 인증(Encryption and Authentication): 두 가지 작동 모드를 제공합니다. 전송 모드(encrypts the payload only) 및 터널 모드(encrypts the entire IP packet).
- 다양한 애플리케이션(Versatile in Application): 인터넷과 같이 신뢰할 수 없는 네트워크에서 보안 네트워크(VPN)를 만드는 데 사용할 수 있다.
SSL/TLS
SSL(and its successor, TLS - Transport Layer Security)은 네트워크로 연결된 컴퓨터 간의 연결을 보호하기 위한 프로토콜이다. 원래는 HTTP 트래픽용으로 설계되었지만 인터넷을 통한 다양한 유형의 통신을 보호하는 데 사용된다.
- 세션 계층 보안(Session Layer Security): SSL은 세션 계층에서 작동하지만 SSL을 활용하도록 설계된 특정 애플리케이션을 보호한다.
- 암호화, 인증 및 무결성(Encryption, Authentication, and Integrity): SSL은 데이터가 인터넷을 통해 전송되기 전에 암호화 알고리즘을 사용하여 데이터를 암호화하고 인증을 위해 인증서를 사용한다.
- 보안 웹 브라우징에 널리 사용됨(Widely Used for Secure Web Browsing): 일반적으로 신용 카드 거래, 데이터 전송 및 웹 사이트 로그인을 보호하는 데 사용된다.
IPsec과 SSL의 차이점
- 운영 계층(Layer of Operation): IPsec은 네트워크 계층에서 작동하여 통과하는 모든 트래픽을 보호한다. SSL은 세션 계층에서 작동하여 사용자와 애플리케이션 간의 특정 세션을 보호한다.
- 인증서 관리(Management of Certificates): SSL은 일반적으로 신뢰할 수 있는 인증 기관의 계층 구조를 사용하여 엔드포인트의 ID를 인증한다. IPsec은 인증서를 사용할 수도 있지만 사전 공유 키나 다른 형태의 네트워크 수준 인증을 통해 관리되는 경우가 많다.
- 유연성 및 설정(Flexibility and Setup): SSL은 일반적으로 애플리케이션별로 설정하고 관리하기가 더 쉬운 것으로 간주된다. 네트워크 아키텍처에 통합되는 IPsec은 더 많은 설정이 필요하고 보안 애플리케이션이 덜 세분화되어 있지만 더 넓은 적용 범위를 제공한다.
- 사용 시나리오(Usage Scenarios): IPsec은 전체 네트워크 트래픽의 보안이 필요한 VPN에 선호된다. SSL은 특히 HTTP(HTTPS)를 통한 웹 사이트 보안과 같은 특정 애플리케이션에 선호된다.
Feature | IPsec | SSL/TLS |
Layer | Network (IP layer) | Session (Application) |
Security | Encrypts entire packet | Encrypts session data |
Usage | VPNs, site-to-site | Web browsers, specific applications |
Authentication | Certificates, pre-shared keys | Certificates, often from a CA |
Configuration | Complex, network-level | Simpler, application-specific |
Encryption Modes | Transport and Tunnel | Secure channel per session |
IPsec VPN vs SSL/TLS VPN
특성 | IPsec VPN | SSL/TLS VPN |
정의 | 모든 IP 패킷을 암호화하고 인증하여 인터넷 프로토콜 통신을 보호하는 프로토콜 제품군(TCP/UDP 지원) | 연결을 암호화하고 보호하는 프로토콜, 데이터 부분만 암호화(TCP 지원 O UDP 지원X) |
암호화 | 네트워크 레이어에서 작동하며 IP 레벨에서 모든 트래픽을 암호화하며 전체 네트워크 암호화에 이상적 | 세션 레이어에서 작동하며 애플리케이션능레벨에서 암호화하여 특정 애플리케이션 또는 서비스를 보안 유지 |
프로토콜 | IP | TCP |
계층 | OSI 모델의 네트워크 레이어에서 작동(3 Layer) | OSI 모델의 세션 레이어에서 작동(6 Layer) |
사용 편의성 | 설정 및 관리가 더 복잡함. 네트워크 레벨에서 작동하고 더 포괄적인 구성이 필요함 | 표준 보안 웹 브라우징을 위해 브라우저를 통해 쉽게 사용 및 구현 가능 |
인증 | 인증서, 사전 공유 키 또는 더 상세한 구성이 필요할 수 있는 다른 인증 방법을 사용할 수 있음 | 신뢰할 수 있는 인증 기관에서 관리하는 인증서와 키를 주로 사용 |
배포 | 전체 네트워크 액세스, 사이트 간 VPN 또는트보안 액세스가 필요한 전체 서브넷에 가장 적합 | 인터넷을 통한 개별 애플리케이션 또는 서비스에 대한 원격 액세스에 이상적 |
유연성 | 클라이언트 설정에 대한 유연성이 떨어지지만 강력한 보안 기능을 제공 | 웹 기반 액세스에 더 유연하며 웹 SSL VPN을 사용하여 클라이언트 소프트웨어 설치 없이 사용 가능 |
일반적인 사용 사례 | 전체 데이터를 네트워크를 통해 전송할 때 보안 사이트 간 연결, 주로 기업 환경에서 사용 | 웹 애플리케이션, SaaS 제품 및 기타 웹 기반 리소스에 대한 보안 연결에 사용 |
보안 | 복잡성의 대가로 강력한 보안을 제공하며 네트워크를 통해 전송되는 모든 데이터를 커버 | 적당한 보안을 제공하며 특히 임시 액한스에 대해 인터넷 연결에서 쉽게 설정 및 관리 가능 |
특징 | 2개의 서버 장비 필요, 소프트웨어 설치가 필요, 다양한 어플리케이션과 호환 사설망에 직접 연결된 것처럼 사용가능 | 1개의 서버 장비 필요, 웹 브라우저만으로 사용, SSL 포탈을 통해서 연결됨 |
IPsec과 SSL/TLS, 더 깊이 들어가보고 싶다면?
OSI 7계층 기준 위치 비교
보안 프로토콜이 OSI 모델의 어느 계층에서 작동하는지 이해하는 것은 매우 중요하다.
프로토콜 | 위치 | 설명 |
IPsec | 3계층 (Network Layer) | IP 패킷 전체를 보호합니다. IP 계층에서 동작하므로 응용 프로그램과 무관하게 모든 트래픽에 보안 적용이 가능합니다. |
SSL/TLS | 5~6계층 (Session/Presentation Layer) | 일반적으로 애플리케이션 계층 위에서 작동하며, HTTPS나 SMTP over TLS 등 특정 프로토콜과 결합되어 보안을 제공합니다. |
→ 핵심 차이: IPsec은 하위 계층에서 전면적인 보호, SSL/TLS는 상위 계층에서 세션 단위 보호이다.
TLS Handshake 과정 정리
TLS는 클라이언트와 서버 간의 보안 연결을 수립하기 위해 핸드셰이크(Handshake) 절차를 거친다.
TLS 1.2 기준 핸드셰이크 흐름
- ClientHello: 클라이언트가 지원하는 암호 스위트, TLS 버전, 랜덤 값 등 전송
- ServerHello: 서버가 암호 스위트 선택, 인증서(Certificate) 전송
- Key Exchange: 클라이언트가 premaster secret 전송
- Finished: 양측이 대칭키 생성 후 "Finished" 메시지 교환
TLS 1.3은?
- 핸드셰이크 단계를 단순화하며 속도와 보안성을 개선
- 불필요한 RSA 기반 key exchange 제거 → forward secrecy 보장
IKE (Internet Key Exchange)
IPsec에서 가장 핵심적인 프로토콜 중 하나가 IKE이다.
- IKE는 SA(Security Association) 를 설정하기 위한 협상 프로토콜
- 암호화 키 생성, 교환, 인증 등을 처리
- IKEv2는 현재 가장 보편적으로 사용되는 버전
IKEv2의 특징
- DDoS에 강한 DoS 방지 기능
- NAT Traversal 지원
- 상태 유지(Session Resumption) 효율적
실무 VPN 구성 예시
항목 | SSL 기반 (OpenVPN) | IPsec 기반 (strongSwan) |
사용 목적 | HTTPS 기반 터널링, 간단한 원격 접속 | 사이트 간 또는 사설망 통신용 |
설정 용이성 | 비교적 쉬움 | 복잡한 구성 필요 |
예시 config | client.conf, server.conf (OpenVPN) | ipsec.conf, ipsec.secrets (strongSwan) |
→ OpenVPN은 SSL/TLS 기반으로 사용이 간편, IPsec은 기업 네트워크 보안에 적합한 강력한 구조
인증서 기반 vs 사전 공유 키 (PSK)
항목 | SSL/TLS | IPsec |
기본 인증 방식 | CA 기반 공개 인증서 사용 | PSK 또는 인증서 기반 모두 지원 |
설정 복잡도 | 비교적 단순 | PSK는 간단하지만 보안 취약점 존재, 인증서는 더 안전하나 복잡함 |
실무 활용 | HTTPS 웹 인증서, Let's Encrypt 등 | 내부망 IPsec VPN에서 PSK가 자주 사용됨 |
공격 벡터 비교
공격 방식 | SSL/TLS | IPsec |
중간자 공격(MITM) | 인증서 위조/신뢰 체계 파괴 시 가능 | 상대적으로 적지만 가능성 존재 |
인증서 위조 | 루트 인증서가 공격당하면 전파됨 | 사설 인증서나 PSK가 뚫리면 위험 |
키 협상 취약성 | TLS 1.0/1.2의 취약한 cipher 사용 시 | IKE 초기 handshake 취약점이 종종 공격 벡터가 됨 |
패킷 리플레이 | TLS는 세션 단위라 비교적 안전 | IPsec은 별도 anti-replay 메커니즘 필요 |
→ 설계할 때 위협 모델을 분명히 하고, 최신 버전(TLS 1.3, IKEv2) 사용을 권장한다.
실전 VPN 설정 예제: strongSwan vs OpenVPN
1. IPsec VPN – strongSwan 설정 예제
구성: Ubuntu 서버 간 사이트-투-사이트 VPN (PSK 기반)
`/etc/ipsec.conf`
config setup
charondebug="ike 2, knl 2, cfg 2"
conn myvpn
left=10.0.0.1 # 이 장비의 내부 IP
leftid=@left.example.com
leftsubnet=10.0.0.0/24
right=20.0.0.1 # 상대방 IP
rightid=@right.example.com
rightsubnet=20.0.0.0/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
keyexchange=ikev2
authby=psk
auto=start
`/etc/ipsec.secrets`
@left.example.com @right.example.com : PSK "mySuperSecretKey"
실행 명령어
sudo systemctl restart strongswan
sudo ipsec status
2. SSL VPN – OpenVPN 설정 예제
구성: 개인/원격 접속을 위한 TLS 기반 OpenVPN 서버
`/etc/openvpn/server.conf`
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
persist-key
persist-tun
cipher AES-256-CBC
user nobody
group nogroup
status openvpn-status.log
verb 3
클라이언트 구성 예 (`client.ovpn`)
client
dev tun
proto udp
remote myvpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
verb 3
비교 요약
항목 | strongSwan (IPsec) | OpenVPN (SSL) |
계층 | Network Layer | Session Layer |
포트 | UDP 500/4500 | UDP 1194 |
인증 방식 | PSK 또는 인증서 | 일반적으로 CA 기반 인증서 |
유연성 | 사이트 간 연결에 적합 | 원격 접속 및 BYOD 환경에 유리 |
복잡도 | 높은 구성 필요 | 상대적으로 단순한 설정 |
팁
- 간단한 원격 접속엔 OpenVPN이 편리하고,
- 기업 내부 네트워크 간 보안 연결에는 strongSwan(IPsec)이 더 안전하고 탄탄하다.
마무리
IPsec과 SSL/TLS는 인터넷 환경에서 데이터를 안전하게 전송하기 위한 두 축이다.
- IPsec은 네트워크 전반을 보호하는 데 강점을 가지며, 기업 간 VPN, 사설망 연결 등에 적합하다.
- SSL/TLS는 특정 애플리케이션 수준의 보안에 유리하며, HTTPS, 웹 애플리케이션 보호, 원격 액세스 등에 널리 쓰인다.
두 방식은 보안 강도나 인증 체계 면에서 각기 다른 특성과 장단점을 가지므로, 시스템의 목적과 환경에 따라 적절히 선택하는 것이 중요하다.
특히 클라우드 시대의 도래로 SSL VPN과 같이 웹 브라우저만으로 접근 가능한 구조가 널리 사용되면서, 운영자 입장에서는 보안성과 유연성의 균형을 고려한 설계가 요구된다.
✔️ 보안의 기본은 적절한 암호화 기술 선택이며, IPsec과 SSL/TLS는 그 중심에 있는 핵심 기술이다.
Reference
- What is the Difference Between IPsec & SSL? - LinkedIn
- SSL vs IPSec - Comparitech Guide
- TLS 1.3 Explained - Cloudflare
- IPsec Fundamentals - Cisco Docs
- SSL/TLS Basics - Mozilla Developer Network (MDN)
'CS 지식' 카테고리의 다른 글
[CS 지식18.] Quantum Computing(양자 컴퓨팅) (2) | 2024.11.22 |
---|---|
[CS 지식16.] stdin(표준입력) vs stdout(표준출력) vs stderr(표준에러) (0) | 2024.11.09 |
[CS 지식15.] SSR vs CSR vs ISR vs SSG (6) | 2024.09.05 |
[CS 지식14.] 3tier 아키텍처란? (2) | 2024.06.10 |
[CS 지식13.] 동기 및 비동기 처리란? (0) | 2024.06.06 |