AH协议通过在整个IP数据报中实施一个消息文摘计算来提供完整性和认证服务。一个消息文摘就是一个特定的单向数据函数,它能够创建数据报的唯一的数字指纹。消息文摘算法的输出结果放到AH包头的认证数据(Authentication_Data)区。消息文摘5算法(MD5)是一个单向数学函数。当应用到分组数据中时,它将整个数据分割成若干个128比特的信息分组。每个128比特为一组的信息是大分组数据的压缩或摘要的表示。当以这种方式使用时,MD5只提供数字的完整性服务。一个消息文摘在被发送之前和数据被接收到以后都可以根据一组数据计算出来。如果两次计算出来的文摘值是一样的,那么分组数据在传输过程中就没有被改变。这样就防止了无意或恶意的窜改。在使用HMAC-MD5认证过的数据交换中,发送者使用以前交换过的密钥来首次计算数据报的64比特分组的MD5文摘。从一系列的16比特中计算出来的文摘值被累加成一个值,然后放到AH包头的认证数据区,随后数据报被发送给接收者。接收者也必须知道密钥值,以便计算出正确的消息文摘并且将其与接收到的认证消息文摘进行适配。如果计算出的和接收到的文摘值相等,那么数据报在发送过程中就没有被改变,而且可以相信是由只知道秘密密钥的另一方发送的。
二、IPSec加密
封包安全协议(ESP)包头提供IP数据报的完整性和可信性服务ESP协议是设计以两种模式工作的:隧道(Tunneling)模式和传输(Transport)模式。两者的区别在于IP数据报的ESP负载部分的内容不同。在隧道模式中,整个IP数据报都在ESP负载中进行封装和加密。当这完成以后,真正的IP源地址和目的地址都可以被隐藏为Internet发送的普通数据。这种模式的一种典型用法就是在防火墙-防火墙之间通过虚拟专用网的连接时进行的主机或拓扑隐藏。在传输模式中,只有更高层协议帧(TCP、UDP、ICMP等)被放到加密后的IP数据报的ESP负载部分。在这种模式中,源和目的IP地址以及所有的IP包头域都是不加密发送的。
IPSec要求在所有的ESP实现中使用一个通用的缺省算法即DES-CBC算法。美国数据加密标准(DES)是一个现在使用得非常普遍的加密算法。它最早是在由美国政府公布的,最初是用于商业应用。到现在所有DES专利的保护期都已经到期了,因此全球都有它的免费实现。IPSec ESP标准要求所有的ESP实现支持密码分组链方式(CBC)的DES作为缺省的算法。DES-CBC通过对组成一个完整的IP数据包(隧道模式)或下一个更高的层协议帧(传输模式)的8比特数据分组中加入一个数据函数来工作。DES-CBC用8比特一组的加密数据(密文)来代替8比特一组的未加密数据(明文)。一个随机的、8比特的初始化向量(IV)被用来加密第一个明文分组,以保证即使在明文信息开头相同时也能保证加密信息的随机性。DES-CBC主要是使用一个由通信各方共享的相同的密钥。正因为如此,它被认为是一个对称的密码算法。接收方只有使用由发送者用来加密数据的密钥才能对加密数据进行解密。因此,DES-CBC算法的有效性依赖于秘密密钥的安全,ESP使用的DES-CBC的密钥长度是56比特。