Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

ESP (Encapsulating Security Payload) trong IPsec – Chi tiết kỹ thuật

ESP – Giao thức gói bảo mật đóng gói trong IPsec

ESP (Encapsulating Security Payload) là một trong hai giao thức cốt lõi của IPsec (kèm theo AH – Authentication Header). Được định nghĩa trong RFC 4303. ESP cung cấp: Confidentiality (mã hóa), Data Integrity, Data Origin Authentication, Anti-replay Protection. (AH chỉ cung cấp Authentication/Integrity, KHÔNG mã hóa).

1. Cấu trúc gói ESP

[IP Header] [ESP Header] [Payload Data] [ESP Trailer] [ESP Auth Data (ICV)]
             │              │              │
             │              │              └─ Padding (0-255 bytes) + Pad Length (1B) + Next Header (1B)
             │              └─ Plaintext / Ciphertext (TCP/UDP segment hoặc IP packet tunnel mode)
             └─ SPI (4B) + Sequence Number (4B) + IV (cho AES-CBC/GCM)
  • SPI (Security Parameter Index): 32-bit, định danh SA (Security Association) – cùng với Destination IP & Protocol (ESP=50) tạo unique SA.
  • Sequence Number: 32-bit, tăng dần, chống replay.
  • IV (Initialization Vector): cho AES-CBC (16B), AES-GCM (8B implicit + 8B explicit).
  • ESP Trailer: Padding (độ dài block), Pad Length, Next Header (protocol số: TCP=6, UDP=17, IPv4=4, IPv6=41).
  • ESP Auth Data (ICV - Integrity Check Value): HMAC (SHA-1/256/384/512) hoặc AES-GMAC / AES-CCM/GCM tag.

2. Hai chế độ vận hành (Modes)

Chế độMô tảMã hóa phần nào?Trường hợp dùng
Transport ModeChèn ESP header giữa IP header gốc và Payload. IP header gốc KHÔNG được mã hóa.Payload (L4+Data) + ESP TrailerEnd-to-end giữa 2 host (host-to-host, host-to-gateway).
Tunnel ModeGói IP gốc hoàn chỉnh được đóng gói trong ESP, thêm IP header mới (outer).Toàn bộ gói IP gốc + ESP TrailerGateway-to-Gateway (Site-to-Site VPN), Gateway-to-Host (Remote Access VPN).

3. Thuật toán mã hóa & xác thực (RFC 8221, 8247)

  • AEAD (Authenticated Encryption with Associated Data) – Khuyến nghị:
    • AES-GCM (128/192/256) – nhanh, song song, phần cứng AES-NI.
    • ChaCha20-Poly1305 – nhanh trên CPU không AES-NI (mobile, IoT).
    • AES-CCM – constrained device.
  • Legacy (Encrypt-then-MAC):
    • Encryption: AES-CBC, 3DES (deprecated), NULL (chỉ auth).
    • Integrity: HMAC-SHA-1/256/384/512, AES-XCBC-MAC, AES-GMAC.

Lưu ý: Khi dùng AEAD (GCM/CCM/ChaCha20-Poly1305), KHÔNG** chọn thuật toán authentication riêng – nó tích hợp sẵn.

4. ESP vs AH – So sánh & Kết hợp

Đặc điểmAH (Protocol 51)ESP (Protocol 50)
Confidentiality (Mã hóa)KHÔNGCÓ (AES-GCM, CBC...)
Integrity / AuthenticationCÓ (Toàn bộ IP header + Payload)CÓ (Payload + ESP Header/Trailer, KHÔNG outer IP header)
NAT TraversalKHÔNG (thay đổi IP header → fail ICV)CÓ (NAT-T: UDP encapsulation port 4500 – RFC 3947/3948)
Dùng chung?Có (AH+ESP) – hiếm, phức tạp, overhead lớn.Thường dùng ESP đơn lẻ (AEAD cung cấp cả auth + encrypt).

5. IPsec SA & IKEv2

  • ESP hoạt động trong Security Association (SA) – đơn hướng. Cần 2 SA (inbound/outbound) cho 2 chiều.
  • IKEv2 (RFC 7296) dùng để negotiated SA: xác thực (PSK, Cert, EAP), trao đổi khóa (DH/ECDH), tạo SPI, chọn transform (ESP algorithm).
  • IKEv2 chạy trên UDP 500/4500 (NAT-T).

6. Ứng dụng thực tế

  • Site-to-Site VPN: Cisco ASA/Firepower, Palo Alto, FortiGate, StrongSwan, LibreSwan, OpenIKED – Tunnel Mode ESP AES-GCM.
  • Remote Access VPN: AnyConnect, GlobalProtect, FortiClient, WireGuard (không dùng ESP, dùng Noise Protocol), OpenVPN (SSL/TLS).
  • IPsec over IPv6: ESP protocol 50 trong IPv6 Next Header chain.
  • MACsec (802.1AE): Layer 2 encryption – khác IPsec/ESP.

7. Troubleshooting ESP

  • Wireshark filter: esp hoặc ip.proto == 50. Giải mã nếu có key: Edit → Preferences → Protocols → ESP → nhập SPI + Key.
  • Lỗi thường gặp: SPI mismatch, Sequence number overflow, Replay window, MTU fragmentation (set ip tcp adjust-mss / interface mtu), NAT-T không bật.