Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183713
  • 博文数量: 64
  • 博客积分: 1451
  • 博客等级: 上尉
  • 技术积分: 665
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-24 10:07
文章分类

全部博文(64)

文章存档

2010年(7)

2009年(57)

我的朋友

分类: LINUX

2009-09-09 12:16:20

2009-4-5 追风 转载请注明出处。

本文主要参考英文版IPsec HOWTO

IPsec安全技术全接触


本篇为IPsec HOWTO的第二部分,介绍IPsec的两种协议AH和ESP。

IPsec协议
IPsec 协议有两种:Authentication Header (AH,认证头标) and Encapsulated Security Payload (ESP,封装化安全净荷)。这两种协议都是独立的IP协议,是IP协议的扩展。AH是IP协议51,ESP是IP协议50(可以查看/etc /protocols得知),一下两小节将会分别阐述两种协议。

AH-认证头标(Authentication Header)

AH 协议功能是保护IP包的完整性。AH协议通过计算HMAC(hash message authentication codes)来实现保护完整性。AH协议是基于安全密钥,数据包负载,以及IP头中不可改变的部分来计算HMAC的。然后把AH头加到IP数据包上。不同 模式下,AH头添加的位置不同,参看图1。

AH头的总长度为24bytes,下面介绍AH头中包含的内容,参看图2

                 
                                    图2 AH头结构

Next Header:该处填写的是一个数值,该数值表示下一个头的协议类型。例如,在通道模式中,此处数值为4,表示下一个头是IP头。因为通道模式中,新的 IP包头及IPsec协议包头(AH,ESP)将会封装整个原始IP数据包,那么在AH头后面跟的另一个头即是IP头,如图3

   
                                  图3  通道模式数据包

在传输模式中,此处值为6,表示下一个是TCP头。因为传输模式是将IPsec协议包头(AH,ESP)插入IP和TCP头之间,如图4

  
                                  图4 传输模式数据包

Payload Length:IP数据包中载荷的长度。
Reserved:跟在Payload Length之后是保留出来的2 bytes。
Security Parameter Index(SPI):安全参数索引,一个32bit的号码,用于识别和索引SAD中的SA。
Sequence Number:每个IP数据包独有的32bit序列号,用于抵御replay攻击。
Hash Message Authentication Code(HMAC):AH头的最后96bit存放HMAC。

注 意:一旦使用AH协议保护IP数据包,并且保护的内容还包括IP包头中固定不变的部分(IP地址)时,AH协议是无法通过NAT(网络地址传输设备)的, 即如果发送端和接收端之间有网络地址传输设备,则两端之间的AH通道将不能建立。因为发送端将用IPsec协议(AH,ESP)封装好的新IP数据包发给 NAT设备后,NAT设备会用另一个IP地址来替换新IP数据包包头中的IP地址,然后再将该包发送到接收端。此时接收端接受到包后,利用协商好的算法计 算HMAC,计算出的HMAC必然与AH头中存放的HMAC不同(因为IP地址变了,HMAC的计算是基于IP地址的),则接受失败,包被丢弃。

ESP-封装化安全净荷 (Encapsulated Security Payload)
ESP协议既可以通过HMAC来保证文件的完整性,也可以通过对IP数据包中数据加密来保证文件的机密性。下面介绍AH头中包含的内容,参看图5
                                 
                 
                                  图5 ESP头结构

Security Parameter Index(SPI):安全参数索引,一个32bit的号码,用于识别和索引SAD中的SA。
Sequence Number:每个IP数据包独有的32bit序列号,用于抵御replay攻击。
Initialization Vector:用于加密,一共2bytes。这个数据保证了两个完全相同的IP数据包载荷在使用相同的加密算法加密后,得到的加密数据是不同的。
Padding:IPsec的加密过程是块加密,所以如果Date的内容长度不是块长度倍数的话,则需要补齐。
Padding Length:记录补充部分的长度。
Next Header:下一个头的协议类型,参看AH头结构介绍。
Hash Message Authentication Code(HMAC):ESP头的最后96bit存放HMAC。与AH协议不同的是,
此处HMAC的计算只是用了原始IP数据包的负载部分(数据部分),没有用IP地址。所以NAT设备不会影响ESP协议的数据传输, 但是需要正确配置才能使用(NAT-Traverasl )。

注意:在多数情况下,NAT对于IPsec协议的通信还是有影响的。NAT-Traverasl 提供了一个解决方案,即把ESP封装的包在封装到UDP协议中。
阅读(1474) | 评论(0) | 转发(0) |
0

上一篇:IPsec HOWTO(1)

下一篇:IPsec HOWTO(3)

给主人留下些什么吧!~~