从安全策略到安全关联
IPsec 是互联网协议层的安全体系,可以部署在主机、安全网关或其他实现设备上。它能够保护主机之间、网关之间,或主机与网关之间的流量,因此既不是单一软件产品,也不只代表一种虚拟专用网配置。与围绕传输连接使用的 TLS 相比,IPsec 的策略与封装直接作用于 IP 流量。
安全策略数据库依据地址、上层协议等选择条件,决定数据包应接受 IPsec 保护、直接放行还是丢弃。启用 IPsec 不等于设备发出的每个包都加密,具体要看匹配到哪条策略。
安全关联,简称 SA,保存某一方向使用安全服务所需的协议、模式、算法和密钥等状态。AH 或 ESP 的一个 SA 是单向的,普通双向通信需要两个方向的关联;如果同时叠加 AH 与 ESP,也不是把它们随意装进一个 SA。策略说明希望如何处理,关联提供实际处理所需的参数,两者职责不同。
参考:[1]
ESP与AH保护什么
认证头 AH 提供完整性和数据来源认证,并支持抗重放机制,但不提供内容加密。它的认证范围还可覆盖前置 IP 头中选定的部分,不能说所有沿途会变化的字段都原样纳入保护。
封装安全载荷 ESP 可提供机密性、完整性、来源认证和抗重放等服务,实际组合取决于建立 SA 时的选择。ESP 不必然等于只加密,也不能见到 ESP 就断言所有安全服务都已开启。规范允许以独立算法或组合算法实现相应服务,具体套件和参数才决定所用保护。
加密与完整性不能随便互相替代。RFC 4301 不建议只用 ESP 加密却不提供完整性保护;RFC 4303 也说明,仅加密在面对主动修改时可能不足。抗重放则是识别重复使用的旧包,并不代替可靠传输中的确认和重传。
传输模式与隧道模式
在传输模式中,安全协议头插入原有 IP 头与上层协议之间。ESP 主要保护后面的上层协议数据,不保护位于它之前的外层 IP 头;AH 的认证覆盖则有所不同。传输模式常用于主机之间,但不能据此把模式名称与一种部署拓扑永久绑定。
隧道模式把原来的 IP 包作为内部包,外面再使用用于隧道传输的 IP 头。原来的源、目的地址属于内部包,新外层地址则负责把封装送到 IPsec 隧道端点。若选择加密的 ESP,内部包可以得到机密性保护,但外层路由地址并不会因此消失。
例如两个办公网络的网关建立隧道,内部终端发送的包在出口网关封装,经过外部网络后由对端网关解封装。保护范围首先是两台网关之间;网关到内部应用的后续路径,以及应用收到数据后的处理,不会自动获得同一条隧道的端到端保障。
协商与数据传输分工
IKEv2 用于协商和维护安全关联。其典型流程先交换建立密钥材料所需的信息及算法选择,再完成身份认证等步骤,建立用于 AH 或 ESP 的 Child SA。IKE SA 保护协商通信,Child SA 承担所选业务流量的保护,不能把所有业务数据都描述成由 IKE 报文承载。
安全关联可以更新和更换密钥,但协商成功并不证明策略覆盖正确、终端没有恶意软件,或应用逻辑没有漏洞。理解 IPsec 时,应分别确认保护哪些包、采用什么安全服务、关联终止在哪里,以及密钥和身份如何管理。协议族提供的是这些机制,而不是对整个系统安全的一次性承诺。