1、安全关联SecurityAssociation(SA)
IPSec中的一个基本概念是安全关联(SA),安全关联包含验证或者加密的密钥和算法。它是单向连接,为保护两个主机或者两个安全网关之间的双向通信需要建立两个安全关联。安全关联提供的安全服务是通过AH和ESP两个安全协议中的一个来实现的。如果要在同一个通信流中使用AH和ESP两个安全协议,那么需要创建两个(或者更多)的安全关联来保护该通信流。一个安全关联需要通三个参数进行识别,它由安全参数索引(AH/ESP报头的一个字段)、目的IP地址和安全协议(AH或者ESP)三者的组合唯一标识。表6列出AH和ESP报头在传送模式和隧道模式下的区别。
表6AH和ESP报头在传送模式和隧道模式下的区别
传送模式隧道模式
ESP压缩数据包和IPv6扩展ESP报头ESP报头
带AH的ESPESP报头和HA扩展报头
2、报头验证AuthenticationHeader(AH)
⑴验证报头的格式,如图2所示。
图2验证报头的格式(IPSecurityAuthenticationHeader)
验证报头的格式包括以下内容:
⑵验证数据(AuthenticationData)
验证数据,它包含完整性检查值(ICV),用来提供验证和数据完整性。用来计算ICV的算法由安全关联指定。ICV是在这种情况下计算的,即IP报头字段在传递过程中保持未变,验证报头带有的验证数据置0,IP数据包为有效载荷。有些字段在传递的过程中可能改变,包括最大跳数、业务类别和流标签等。IP数据包的接收者使用验证算法和安全关联中确定的密钥对验证报头重新计算ICV。如果ICV一样,接收者知道数据通过验证并且没有被更改过。验证数据包工作过程,如图3所示。
图3验证数据包工作过程
⑶防止重放攻击(PreventReplyAttack)
重放攻击是一种获得加密数据包,然后发送设定的目的地。收到复制加密数据包后,可能而而面临破解及其它一引起意想不到的后果。序列号计数器可阻止此类攻击,当发送者和接收者之间的通信状态建立的时候,序列号被置0。当发送者或者接收者传送数据的时候,它随后被加1。如果接收者发觉一个IP数据包具有复制的序列号字段,它将被丢弃,这是为了提供反重放的保护。该字段是强制使用的,即使接收者没有选择反重放服务它也会出现在特定的安全关联中。验证报头带有的验证数据置0,IP数据包为有效载荷。
3、封装安全有效载荷数据(EncapsulatingSecurityPayload)
安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。ESP用来为封装的有效载荷提供机密性、数据完整性验证。AH和ESP两种报文头可以根据应用的需要单独使用,也可以结合使用,结合使用时,ESP应该在AH的保护下。
⑴封装安全有效载荷数据包格式,如图4所示。
图4封装安全有效载荷数据包格式
封装安全有效载荷数据包含以下字段:
⑵ESP计算(ESPComputation)
图5ESP数据包压缩工作过程
⑶局限性
ESP不保护任何IP报头字段,除非这些字段被ESP封装(隧道模式),而AH则为尽可能多的IP报头提供验证服务。所以如果需要确保一个数据包的完整性、真实性和机密性时,需同时使用AH和ESP。先使用ESP,然后把AH报头封装在ESP报头的外面,从而接收方可以先验证数据包的完整性和真实性,再进行解密操作,AH能够保护ESP报头不被修改。
4、钥匙管理(KeyManagement)
密匙管理包括密匙确定和密匙分发两个方面,最多需要四个密匙:AH和ESP各两个发送和接收密匙。密匙本身是一个二进制字符串,通常用十六进制表示,例如,一个56位的密匙可以表示为5F39DA752E0C25B4。注意全部长度总共是64位,包括了8位的奇偶校验。56位的密匙(DES)足够满足大多数商业应用了。密匙管理包括手工和自动两种方式。
手工管理(Manual):手工管理方式是指管理员使用自己的密钥及其它系统的密钥手工设置每个系统。这种方法在小型网络环境中使用比较实际。
IPSec的自动管理密钥协议的默认名字是ISAKMP/Oakley。
⑴Oakley协议(OakleyKeyDetermination)
OAKLEY协议,其基本的机理是Diffie-Hellman密鈅交换算法。OAKLEY协议支持完整转发安全性,用户通过定义抽象的群结构来使用Diffie-Hellman算法,密鈅更新,及通过带外机制分发密鈅集,并且兼容用来管理SA的ISAKMP协议。
Diffie-Hellman密钥交换算法,当A和B要进行秘密通信时,他们可以按如下步骤建立共享密钥:
⑵ISAKMP协议(InternetSecurityAssociationandKeyManagementProtocol)