IP 数据包包含纯文本形式的数据,这意味着任何观看 IP 数据包经过的人都可以实际访问它们并可以读取和写入其内容。1995 年,IETF(Internet Engineering Taskforce)发布了其与 IPSec 相关的基于安全的机制,以提供 IP 级别的安全性。IPSec 背后的目标是在传输过程中对传输层和应用层数据进行加密和密封。它为互联网层提供完整性保护。但是,Internet 标头未加密,因此中间路由器可以将加密的 IPSec 消息传递给预期的接收者。为了执行此任务,IPSec 使用了我们将在本文中讨论的各种协议。推荐阅读:《IP地址的工作原理是什么?》
以下是 IPSec 在数据传输过程中使用的协议列表。
1.认证头
身份验证头协议提供身份验证、完整性和反重放等功能。IPSec 身份验证标头协议是 IP 数据包中的标头,其中包含数据包概念的加密校验和。它只是简单地插入在 IP 标头和任何后续数据包内容之间。数据内容不做任何更改;因此安全性完全存在于身份验证标头的内容中。数据完整性服务确保驻留在 IP 数据包中的数据在数据包传输期间不会被更改。
它由6个字段组成,分别是Next header(8位字段)、Payload length(8位字段)、Reserved(16位字段)、Security Parameter Index(32位字段)、Sequence Number(32位)字段)和身份验证数据(32 位字段)。认证头协议有两种操作模式,一种是传输模式,另一种是隧道模式。身份验证头存在于传输模式下的原始 IP 头和原始 TCP 头之间。整个原始IP数据包在隧道模式下进行认证,然后在原始IP头和新IP头之间插入Authentication头。
2.ESP协议
ESP 是封装安全有效负载协议,提供机密性功能。该协议定义了需要插入到 IP 数据包中的新标头。它还包括将受保护的数据转换为不合理的加密格式。ESP 将在身份验证标头内,这意味着加密过程发生在身份验证过程之前。ESP协议有7个字段,分别是Security Parameter Index(32位字段)、序列号(32位字段)、Payload data(大小取决于可变长度)、Padding(有0-255字节)、Padding length( 8 位字段)、下一个标头(8 位字段)和身份验证数据(可变大小)。它有传输模式和隧道模式两种模式。
传输模式用于对 IP 数据包携带的数据进行加密和认证。隧道模式用于加密整个 IP 数据包。当接收到由 IPSec 处理的 IP 数据包时,接收者首先尝试 Authentication 标头(如果存在)。根据结果,接收方将决定该数据包的内容是否正确或在传输过程中被更改。
3.IKE 协议
IKE 协议代表 Internet 密钥交换,是一种用于密钥管理程序的协议。IKE 协议用于协商稍后由身份验证标头使用的加密算法,并在实际加密操作中封装安全有效负载。IPSec 协议被设计为独立于实际的低级加密算法;因此,IKE 协议是确定算法和密钥的 IPSec 的初始阶段。在 IKE 阶段之后,身份验证头协议和封装安全负载协议接管。
4. SA 协议
SA代表安全关联协议,是IKE阶段的输出。它是通信双方之间就IPSec协议版本、使用操作模式、密码算法、密码密钥等因素达成的协议。等等 IKE 协议的原理是在通信双方之间建立一个 SA。一旦建立此连接,IPSec 的两个协议都使用 SA 进行实际操作。如果使用身份验证头和封装安全负载,则涉及的每个通信方都需要两组 SA。一种用于身份验证标头,一种用于封装安全有效负载。安全关联是单向的;因此,在第二级,每个通信方需要两组 SA。一个用于传入传输,一个用于传出传输。
因此,如果两个通信方同时使用 Authentication 标头和封装安全负载,则每个通信方都需要四组 SA。安全关联协议由9个字段组成,分别是序列号计数器(32位字段)、序列计数器溢出、防重放窗口(32位字段)、AH认证、ESP认证、ESP加密、IPSec协议模式、PMTU(路径最大传输单元)和生命周期。推荐相关阅读:《IP地址如何被他人追踪》