7. 处理分片
IPsec 通过将包的内容与 SPD 中定义的选择器相关联来执行其访问控制功能。当包被分片时,这种关联关系可能被破坏,从而可能允许未经授权的流量穿过 IPsec 边界。
分片处理面临的挑战
分片给 IPsec 处理带来挑战,因为:
- 传输模式:IP 头在 IPsec 处理期间被修改,使得分片匹配变得困难
- 隧道模式:分片可能发生在 IPsec 封装之前或之后
- 选择器匹配:端口信息(以及其他下一层协议数据)仅在第一个分片中可用
有状态分片检查
为应对这些挑战,IPsec 实现应该(SHOULD)支持有状态分片检查。此功能:
- 跟踪某个包的第一个分片以提取选择器信息
- 依据缓存的状态验证后续分片
- 确保某个包的所有分片都按 SPD 策略一致地处理
分片重组的考虑
在 IPsec 处理之前:
- 在 IPsec 处理之前重组可简化选择器匹配
- 需要用于分片重组的缓冲能力
- 可能易受基于分片的攻击
在 IPsec 处理之后:
- 各分片单独通过 IPsec 处理
- 重组发生在受保护一侧
- 需要有状态检查来维持安全性
实现要求
- IPsec 实现必须(MUST)支持处理单个分片
- 应该(SHOULD)支持有状态分片检查,并且应该(SHOULD)能够按每个 SA 配置
- 如果不执行有状态检查,则必须(MUST)丢弃缺少选择器信息的分片