[Network] IPsec VPN에 대하여
IPsec은 보편적인 인터넷 보안 표준을 생성하기 위해 고안됐고, 진정한 의미의 “안전한 인터넷 연결”을 처음으로 실현했습니다. 비록 IPsec이 오늘날 가장 보편적으로 사용되는 인터넷 보안 프로토콜은 아니지만, 인터넷 통신 보안에 있어 여전히 핵심적인 역할을 합니다. IPsec은 VPN을 구현하기 위해 만들어진 VPN 프로토콜이기 때문에 그냥 IPsec과 IPsec VPN을 동의어로 봐도 될 것입니다. IPsec VPN의 기술적은 특징은 아래와 같습니다.
- IP 프로토콜에 보안성(암호+인증)을 입혀 사설망과 같은 보안 효과를 갖지만 인터넷망을 사용하는 가상 사설망이기 때문에 비용은 저렴한 방식입니다.
- 3계층 터널링 프로토콜이므로 암호화와 인증은 네트워크계층 상에서 IP 패킷 단위로 이루어집니다. 3계층에서 보안성이 이루어지기 때문에 애플리케이션에 종속적이지 않습니다.
- 방화벽를 사용하고 있다면 500/UDP(Key 교환용) 포트, 프로토콜 번호 50 (ESP), 그리고 프로토콜 번호 51 (AH)를 허용해야 합니다.(IP헤더의 프로토콜 필드)
- IPsec VPN 헤더에 시퀀스 번호가 포함되어 있으며, 이를 사용하여 패킷의 순서를 추적하고 재생된 패킷을 식별할 수 있어 재생공격(Replay Attack)을 방지합니다.
참고로 2024년 1화(25회) 정보보안기사 실기시험에 IPSec이 제공하는 보안 기능에 대해 기술하는 문제가 나왔습니다.
- 기밀성(Confidentiality): ESP프로토콜에서만 제공
대칭키 암호화를 이용하여 데이터가 제3자에게 노출되어도 그 내용을 알 수 없도록 보장 - 비연결형 무결성(Connectionless Integrity):
MAC를 이용하여 IP 패킷별로 순서에 상관없이 데이터가 위·변조되지 않았음을 보장 - 데이터 원천 인증(Date Original Authentication, 송신처 인증):
MAC를 이용하여 데이터가 올바른 송신처로부터 온 것임을 보장 - 재전공 공격 방지(Protection Against Replay Attack): Sequence Number로 제공
IP 패킷별로 순서번호를 이용하여 이전 데이터를 재전송하는 공격을 방지 - 접근 제어(Access Control):
보안 정책(Security Policy)을 통해 중요한 정보 및 시스템 접근을 제어 - 제한된 트래픽 흐름의 기밀성(Limited Traffic Flow Confidentiallity): ESP프로토콜의 터널 모드에서 제공
New IP 헤더에 의해 양쪽 터널 게이트웨이 구간의 트래픽 흐름 정보는 노출되지만, Original IP 헤더는 암호화되어 있으므로 최초 출발지 및 최종 목적지 구간의 트래픽 흐름에 대한 기밀성을 보장
IPsec VPN은 Transport mode나 Tunnel mode 중 하나를 선택하여 구성됩니다.

출처: https://www.twingate.com/blog/ipsec-tunnel-mode
- Transport mode(전송 모드)
- IP 헤더를 제외한 IP 패킷 payload만을 보호하는 방식입니다.(인증 또는 인증+암호화)
- 원래의 IP 헤더를 변경하지 않기 때문에 오버헤드가 적으나 IP 주소를 조작하여 네트워크 주소를 변조할 수 있습니다.
- 호스트 간 통신(end-to-end)을 보호하기 때문에 호스트 레벨에서 연결이 보호되며, 네트워크 장비 간의 통신은 보호되지 않습니다.
- Tunnel mode(터널 모드)
- IP 패킷 전체(헤더+Payload)를 보호하는 방식입니다.(인증 또는 인증+암호화)
- 전체 원래 IP 패킷이 보호되므로 IP 주소 변조가 어렵고 네트워크 장비 간의 통신을 보호할 수 있습니다.
- IPsec VPN 중계 장비가 새로운 IP 주소를 붙여 전송하므로 전송 오버헤드가 큽니다.
- 트래픽 정보 노출을 방지할 수 있고 사설 IP 주소를 사용하여 통신할 수 있습니다.
IPsec VPN은 ESP protocol 또는 AH protocol을 사용하여 운영됩니다
IPv4 Header의 Protocol 필드에서 두 프로토콜을 구분합니다.
– (50) IPsec: ESP – Encapsulating Security Payload
– (51) IPsec: AH – Authentication Header
- AH Protocol
- 데이터 인증만 필요한 경우에 사용됩니다.
- 데이터의 무결성을 보장하기 위해 해시 함수와 공유된 키를 사용하여 메시지에 대한 인증 코드를 생성하는 HMAC(Hash-based Message Authentication Code)을 사용합니다.
- 암호화가 없기 때문에 암호화에 필요한 오버헤드가 없으나, 기밀성을 제공하지 않습니다.
- ESP Protocol
- IPsec에서 가장 널리 사용되는 프로토콜로 데이터의 기밀성(암호화 기능)과 무결성(인증 기능)을 제공합니다.
- 데이터의 무결성을 보장하기 위해서 AH Protocol과 동일하게 HMAC을 사용합니다.
- 데이터의 기밀성을 보장하기 위해서 DES3나 AES와 같은 대칭키 암호화 알고리즘을 사용합니다.
IKE(Internet Key Exchange) 프로토콜은 IPSec의 보안 매개 변수 협상 및 키 교환을 자동화합니다.
- IKE 메세지는 500/UDP 포트를 사용해서 전달합니다.
- 인증 및 키 교환 단계를 통해 IPSec SA(Security Association)를 설정합니다(보안 매개 변수 협상).
- IPSec mode : AH, ESP
- 암호화 알고리즘: 일반적으로 데이터를 암호화하는 데 사용되는 AES, 3DES와 같은 대칭키 알고리즘 사용
- 해시 알고리즘: 데이터 무결성을 보호하기 위해 HMAC (Hash-based Message Authentication Code) 함수와 함께 사용되는 알고리즘 지정
- 인증 알고리즘: HMAC과 함께 사용되며, MD5, SHA-1, SHA-256 등을 선택
- 키(Key): 통신에 사용되는 암호화 및 해시 알고리즘에 필요한 키를 포함, 주기적으로 갱신되거나 재협상
- SA 식별자 (SA Identifier): 보통 시스템이나 사용자가 지정한 ID
- 수명: SA의 유효한 기간
- 통신 방향: 특정 방향의 통신을 정의(“inbound” 또는 “outbound”), 통신이 양방향인 경우 두 개의 SA가 필요
- Sequence Number Counter: 특정 통신 방향 (inbound 또는 outbound)에 대해 데이터 패킷의 순서를 나타내는 일련번호
- 보안 키는 암호화 및 인증에 필요하며, 주기적으로 보안 키를 변경하고 교환하여 터널을 안전하게 유지합니다.