IPsec(InternetProtocolSecurity)是用一组机密协议来保护 OSI 参考模型的 3 层的 IP 数据流量,从而保护 IP 网络上的所有应用和通信。通过与散列算法、对称密钥、 非对称密钥的结合,IPsec 可以提供以下安全服务:对端身份认证、信息机密性、信息完整性、信息源认证、重放检测、访问控制以及数据流机密性。
IPsec 支持隧道模式通过网络传输数据,隧道模式用于在网络到网络或站点到站点的环境中保护数据。在隧道模式中, IPsec 可以为其他网络实体保护数据,也就是说,加密的流量会穿过 IPsec 对等体。隧道模式会封装并保护整个 IP 包,该IP 包的负载包括原始 IP 包头和新的 IP 包头。IPsec 向所有的 IP 数据包添加了一个新的 IPsec 包头,这个包头所含的信息可以对原始 IP 包内的数据形成保护作用。IPsec 的封装协议或在说 IPsec 头部有以下两种类型,封装安全负载(ESP):ESP 基于 IP 协议,协议号是 50。ESP 用于实现机密性、完整 性、身份认证,并提供反重放保护。ESP 并不保护外部的 IP 包头,当用于数据完整 性保护时,不包含这个 IP 头部。认证报头(AH):AH 同样是基于 IP 的协议,协议号是 51。AH 用于实现完整性和 身份认证,并提供反重放保护。不同于 ESP,AH 保护 IP 包头。AH 不对数据机密性 提供保护。 ESP 和 AH 都可以提供反重放机制,这种机制是利用包含在认证数据信息中的一组序列 号来抵御重放攻击的。每次发送后,信息发送者都会将这个序列号增加,信息接收者会对序列号进行检查,并拒绝接收序列号不匹配的数据。如果没有反重放机制,入侵者就可以 窃听并重放截获到的加密数据包,这会引起不必要的泛洪、路由翻动和 DoS 攻击。