IPSec 报文结构笔记:AH / ESP × 传输 / 隧道

· 6 分钟阅读

IPSec 报文结构笔记:AH / ESP × 传输 / 隧道

整理自一道 IPSec 连线题的复盘。重点是记住封装顺序和判断方法,而不是死记图

一、结论速记

只要涉及 IPSec 报文结构,顺序是固定的:

New IP  ->  AH  ->  ESP  ->  Orig IP  ->  Data  ->  ESP Trailer  ->  ESP Auth

三条速判规则:

  1. 尾部出现 ESP Trailer / ESP Auth data → 一定用了 ESP
  2. 同时出现 AH Header → AH 与 ESP 是组合使用
  3. 出现两套 IP 头(New IP + Raw IP)→ 隧道模式;只有一套 → 传输模式

二、两个协议:AH 与 ESP

协议IP 协议号是否加密完整性 / 认证防重放典型用途
AH51不加密支持支持只要求防篡改、允许明文可见的场景
ESP50支持支持支持绝大多数生产 VPN

AH 的认证范围覆盖尽可能多的字段,包括外层 IP 头的不可变字段,可变字段(TTL、首部校验和等)不参与计算

ESP 把加密和认证合在一起,但它的认证不覆盖外层 IP 头,所以在 NAT 场景下比 AH 好处理

三、两种模式:传输与隧道

模式保护对象IP 头数量新增开销典型场景
传输模式 Transport只保护上层载荷1 套(原 IP 头)小主机到主机,端到端
隧道模式 Tunnel保护整个原始 IP 报文2 套(新 IP 头 + 原 IP 头)大网关到网关,站点互联

关键理解:隧道模式会把整个原始报文连 IP 头一起当作货物封装,原始 IP 头因此变成载荷的一部分

这就是题目里 Raw IP Header 的含义,它不是多余字段,而是被封装进去的内层报文头部

四、五种报文形态总览

组合报文结构
① AH 传输[Orig IP] [AH] [Data]
② AH 隧道[New IP] [AH] [Orig IP] [Data]
③ ESP 传输[Orig IP] [ESP] [Data] [ESP Trailer] [ESP Auth]
④ ESP 隧道[New IP] [ESP] [Orig IP] [Data] [ESP Trailer] [ESP Auth]
⑤ AH + ESP 隧道[New IP] [AH] [ESP] [Orig IP] [Data] [ESP Trailer] [ESP Auth]

从上表可以直接读出三条规律:

  • 有 Trailer / Auth 的一定是 ESP
  • 有 New IP 的一定是隧道模式
  • AH 与 ESP 同时出现时,AH 永远在 ESP 外面

IPSec 五种报文形态总览:AH/ESP 与传输/隧道的组合

五、AH + ESP 隧道模式:逐字段拆解

这是最完整的一种形态,也是考试最爱考的一种:

AH + ESP 隧道模式报文结构与保护范围

字段作用
New IP Header由隧道入口点新增,源/目的地址是隧道两端地址
AH Header下一个头、载荷长度、SPI、序列号、ICV;认证 + 完整性 + 防重放,不加密
ESP HeaderSPI(32 bit)+ 序列号(32 bit);标识 SA 并防重放
Raw IP Header被整个封装进隧道的原始报文头部,此时已经是载荷的一部分
Data原始上层数据
ESP Trailer填充 + 填充长度 + 下一个头;用于分组加密对齐、标识内层协议
ESP Auth dataICV 完整性校验值,由 HMAC 计算得到

为什么 AH 在 ESP 外面

组合使用时的封装顺序是先 ESP 后 AH:

1. 对原始报文做 ESP 封装:加密载荷,附加 ESP Trailer,计算 ESP ICV
2. 在 ESP 报文外面再套 AH:AH 的认证范围覆盖 ESP 头及其内部所有内容

这样 AH 能把 ESP 头里的 SPI 和序列号也纳入保护,覆盖范围最完整

反过来如果把 ESP 放在 AH 外面,AH 头会被加密,认证范围和保护效果都会变差

六、保护范围对照

范围覆盖字段说明
ESP 加密Orig IP + Data + ESP Trailer隧道模式下整个原始报文都被加密
ESP 认证ESP 头 + Orig IP + Data + ESP TrailerICV 附在报文尾部,不覆盖外层 IP 头
AH 认证AH 头 + ESP 头 + Orig IP + Data + ESP Trailer + ESP Auth + New IP 不可变字段可变字段(TTL、首部校验和等)不参与计算

容易记混的一点:ESP 头本身不加密,但会被 ESP 认证覆盖;AH 头既不被加密也不被自己加密,它就是用来算校验值的

七、一道连线题的复盘

题干形态还原:

按隧道模式 IPSec 报文的结构,把左侧字段拖到右侧对应位置

字段:New IP Header / AH Header / ESP Header / Raw IP Header

报文:[ 1 ][ 2 ][ 3 ][ 4 ][ Data ][ ESP Trailer ][ ESP Auth data ]

参考答案:

1 = New IP Header
2 = AH Header
3 = ESP Header
4 = Raw IP Header

判断过程:

1. 尾部有 ESP Trailer 和 ESP Auth data  ->  用了 ESP
2. 选项里同时给了 AH Header,报文也留了 4 个空位  ->  AH 与 ESP 组合使用
3. 同时存在 New IP Header 与 Raw IP Header  ->  隧道模式
4. 按固定顺序填:New IP -> AH -> ESP -> Raw IP

常见错法:

  1. 把 ESP 头放在 AH 头外面,写成 New IP -> ESP -> AH -> Raw IP
  2. 认为隧道模式只有新 IP 头,把 Raw IP Header 当成干扰项
  3. 只看到 ESP 尾就按纯 ESP 隧道作答,忽略了 AH Header 这个选项

八、记忆口诀

新头套 AH,AH 套 ESP,ESP 里头装原报文
先加密,后认证,AH 永远在外层
两套 IP 头是隧道,有尾有认证是 ESP

九、延伸:NAT 穿越

  • AH 的认证覆盖外层 IP 头,地址被 NAT 改写后 ICV 校验必然失败,所以 AH 基本无法穿越 NAT
  • ESP 没有端口号,多数 NAT 设备难以建立映射,因此引入 NAT-T,把 ESP 封装进 UDP 4500
  • 这也是生产环境里 ESP 隧道模式远比 AH 常见的原因

十、参考标准

标准内容
RFC 4301IPsec 体系架构,SA 组合与处理模型
RFC 4302AH 协议定义
RFC 4303ESP 协议定义
RFC 3948UDP 封装 ESP,即 NAT-T