互联网安全协议(internet Protocol Security)是一个协议簇,通过IP协议的分组进行加密和认证来保护IP协议的网络传输协议簇。
IPsec主要由以下协议组成:
- 认证头(AH),为IP数据报提供无连接数据完整、消息认证以及防重放攻击保护。
- 封装安全载荷(ESP),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流机密性。
- 安全关联(SA),提供算法和数据包,提供AH、ESP操作所需的参数。
- 密钥协议(IKE),对提供对称密码的钥匙的生存和交换。
认证头AH(Authentication Header)
被用来保证传输分组的完整性和可靠性。此外,它还保护不受重放攻击。认证头试图保护IP数据报的所有字段,那些在传输IP分组的过程中要发生变化的字段就只能被排除在外了。在认证头使用非对称数字签名算法(如RSA)时,可以提供不可否认性(RFC 1826)。字段含义:
- 下一个头:标识被传送数据所属的协议。
- 载荷长度:认证头包的大小。
-保留:为将来的应用保留(目前都置为0)。
-安全参数索引:与IP地址一同用来标识安全参数。 - 串行号:单调递增的数值,用来防止重放攻击。
封装安全载荷(ESP)
封装安全载荷(Encapsulating Security Payload)协议对分组提供了源可靠性、完整性和保密性的支持。与AH头不同的是,IP分组头部不被包括在内。字段含义:
- 安全参数索引:与IP地址一同用来标识安全参数。
- 串行号:单调递增的数值,用来防止重放攻击。
- 载荷数据:实际要传输的数据。
- 填充:某些块加密算法用此将数据填充至块的长度。
- 填充长度:以位为单位的填充数据的长度。
- 下一个头:标识被传送数据所属的协议。
- 认证数据:包含了认证当前包所必须的数据。
ESP的传输模式的过程:
1.在源端,包括ESP尾和整个传输层分段的数据被加密,块中的明文被密文替代,形成要传输的IP包。如果选择了认证,则加上认证;
2.将包送到目的地。中间路由器需要检查和处理IP报头以及任何附加的IP扩展头,但不需要检查密文;
3.目的节点对IP报头和任何附加的IP扩展头进行处理后,利用ESP头中的SPI解密包的剩余部分,恢复传输层分段数据。
ESP的隧道模式:
1.源端将目标内部主机的IP地址为目的地址准备一个内部IP包,以ESP头为前缀,在将包和ESP尾加密,并可以加上认证数据。然后将新的IP报头封装数据块,目的地址为防火墙地址,生成外部IP包。
2.外部IP包达到防火墙,其中经过的中间路由器硬检查和处理外部IP报头及任何外部扩展头,而不需要检查密文;
3.目的防火墙检查和处理外部IP报头及外部扩展IP扩展头,然后根据ESP头中的SPI,解密包的剩余部分,恢复内部IP包的明文,然后在内部网络中传输;
4.内部包经过0个或多个路由器到达目的主机。