핵심 인사이트 (3줄 요약)

  1. 본질: ESP(Encapsulating Security Payload)는 IPsec의 꽃이자 현대 VPN의 알파와 오메가로, 데이터를 누군가 못 보게 하는 **암호화(기밀성)**와 조작을 막는 도장(무결성/인증) 두 가지 무적의 방패를 동시에 씌워주는 완벽한 보안 캡슐이다.
  2. 완벽한 기밀성: 투명했던 AH와 달리, ESP는 페이로드(TCP/UDP 및 진짜 데이터) 전체를 AES-256 같은 군사급 암호화 알고리즘으로 믹서기에 갈아버리기 때문에, 중간에 해커가 패킷을 가로채서 까보더라도 알 수 없는 쓰레기 문자열만 보일 뿐 원본은 절대 훔쳐볼 수 없다.
  3. NAT 친화적 (생존의 이유): AH가 IP 헤더 전체를 무결성 검사에 집어넣어 공유기(NAT) 통과 시 터져 죽었던 반면, ESP는 쿨하게 **"바깥쪽 IP 헤더는 무결성 검사에서 제외"**해 주었기 때문에, 공유기가 겉면 IP를 마음대로 바꿔치기(NAT)해도 도장이 깨지지 않아 현대 인터넷에서 완벽하게 살아남았다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: IP 데이터그램에 대해 기밀성(Encryption), 데이터 원천 인증, 무결성, 재전송 방지 기능을 몽땅 제공하는 IPsec의 핵심 보안 프로토콜 (RFC 4303). IP 프로토콜 번호 50번을 사용한다.

  • 필요성: AH의 한계(암호화 부재, NAT 통과 불가) 때문에 기업들은 "해커가 중간에서 우리 기밀 도면을 아예 못 보게 까만 잉크로 칠해버리고(암호화), 공유기를 통과할 수 있게 겉면 IP 주소는 검사에서 빼주는 진짜 실전용 방탄 박스가 필요하다!"라고 외쳤고, 이 요구를 완벽히 충족시킨 솔루션이 바로 ESP다.

  • 💡 비유: ESP는 택배 상자를 보낼 때 쓰는 **"비밀번호가 걸린 강철 금고"**입니다.

    • 내 서류를 강철 금고(ESP) 안에 넣고 닫아버리니 아무도 훔쳐볼 수 없습니다 (암호화).
    • 금고 문짝에 특수 씰을 붙여 열려고 시도하면 흔적이 남습니다 (무결성).
    • 금고 겉면에 붙은 택배 송장(IP 헤더)은 아무나 뗐다 붙였다(NAT) 할 수 있도록 씰(무결성) 검사 범위에서 빼두었습니다. 택배 기사가 송장을 새로 써 붙여도 금고 안의 내용물은 안전합니다 (NAT 친화성).

📢 섹션 요약 비유: ESP는 보안을 위해 내용물을 "블랙박스" 처리하면서도, 겉면의 배송 딱지는 우체국이 맘대로 고쳐 쓸 수 있게 허용하는 **"융통성 있는 1티어 배달원"**입니다. 이 융통성 덕분에 전 세계 VPN 시장을 통일했습니다.


Ⅱ. ESP의 구조와 터널 모드(Tunnel Mode)에서의 동작 (Deep Dive)

1. ESP의 패킷 감싸기 (3단 샌드위치 구조)

실무에서 가장 많이 쓰는 '터널 모드(Tunnel Mode)' 기준으로 패킷이 어떻게 조립되는지 보자.

  1. 원본 데이터: [ 오리지널 IP 헤더 ] + [ TCP 데이터 ]
  2. ESP의 포장: 이 원본 데이터 덩어리를 몽땅 AES-256으로 암호화해 버린다. (이제 해커 눈엔 쓰레기로 보임).
  3. ESP 트레일러(꼬리표): 암호화된 덩어리 맨 뒤에 "이거 뜯어봤는지 확인하는 도장(MAC/Hash 값)"을 찰싹 붙인다.
  4. New IP 헤더: 인터넷을 날아가려면 겉면에 IP가 있어야 하므로, [ 서울 방화벽 IP -> 부산 방화벽 IP ]라는 새로운 껍데기를 맨 앞에 씌운다. 그리고 프로토콜 번호 칸에는 **50번(ESP)**을 적어둔다.

2. ESP가 AH와 다르게 NAT를 통과하는 원리

  • AH는 [New IP 헤더] 부분까지 다 포함해서 해시 도장을 찍었다. (그래서 NAT를 만나면 깨짐).
  • ESP는 무결성(해시) 도장을 찍을 때 [New IP 헤더] 부분은 쿨하게 빼고, 자기가 감싼 [원본 IP + TCP 데이터] 부분까지만 도장을 찍는다.
  • 결과: 중간에 집 공유기(NAT)가 New IP 헤더의 출발지 주소를 자기 맘대로 사설 IP에서 공인 IP로 뜯어고쳐도, **어차피 거기는 도장이 안 찍힌 구역이라 목적지 방화벽이 검사할 때 "에러 없음!"으로 무사 통과(합격)**하게 된다.
 ┌─────────────────────────────────────────────────────────────┐
 │                ESP의 암호화와 인증(무결성) 범위 도식             │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 패킷 전체 구조 ]                                            │
 │   [ New IP ] ─ [ ESP 헤더 ] ─ [ 원본 IP ] ─ [ Data ] ─ [ ESP 꼬리 ] │
 │                                                             │
 │   1) 암호화 범위 (검은색 잉크로 칠해서 아무도 못 봄)                    │
 │      ▶ [ 원본 IP ] 부터 [ Data ] 끝까지!                         │
 │                                                             │
 │   2) 인증(무결성) 범위 (투명 씰을 발라서 뜯으면 흔적 남음)              │
 │      ▶ [ ESP 헤더 ] 부터 [ ESP 꼬리 ] 끝까지!                    │
 │                                                             │
 │   3) 아무 보호도 받지 않는 헐벗은 구역                             │
 │      ▶ [ New IP ] (덕분에 공유기가 맘대로 IP 주소를 바꿀 수 있음!) │
 └─────────────────────────────────────────────────────────────┘

3. 실무에서의 찌꺼기 문제 (NAT-T의 떡밥)

ESP가 위에서 NAT를 완벽하게 통과한다고 했지만, 사실 여기엔 숨겨진 아주 지독한 함정(Port 패러독스)이 하나 있다. ESP는 TCP나 UDP가 아니라 프로토콜 50번을 쓴다. 즉, 포트 번호(Port)라는 개념 자체가 아예 없다! 공유기(PAT)는 IP 한 개를 "포트 번호"로 쪼개서 수십 명이 나눠 쓰게 하는 놈인데, ESP 패킷은 포트 번호가 없으니 공유기가 "어? 이거 누구한테 돌려주지?" 하고 버려버리는 대참사가 일어난다. 이 **"ESP의 포트 부재 현상"**을 구원하기 위해 다음 장에서 배울 **NAT-T(NAT Traversal, UDP 4500)**라는 최종 병기가 등장하게 된다.

📢 섹션 요약 비유: ESP는 안의 내용물을 완벽하게 **"방탄 금고"**로 감싸주지만, 금고 겉면에는 포트 번호라는 **"아파트 동/호수"**가 적혀 있지 않아 아파트 경비실(공유기 PAT)에서 택배를 주워도 누구 집인지 몰라 버리게 되는 치명적인 배달 사고(한계)를 내재하고 있습니다.