« Back
in 安全 VPN 思科 read.

VPN理论5

IPSec的组成部分:

ESP 负载安全封装协议   协议号:50 (不对原IP头进行加密,ESP provides data confidentiality, data integrity, and data origin authentication. ESP also prevents replay attacks.)

AH  认证头部协议         协议号:51  不提供加密

IKE Internet密钥交换    UDP:500

 

ESP包格式

Tunnel mode ESP

VPN5-1

VPN5-2

 

transport mode ESP

VPN5-3

 

VPN5-4

 

ESP包字段解释:

SPI:和IP头之前的目标地址以及协议结合在一起,用来标识用于处理数据包的特定的安全关联。

 

序列号:使esp具有了抵抗重放攻击的能力,比如我成功传输了800,但是现在你传输给我一个700,我就不要了。

如何防止重放攻击的?

 

初始化向量(IV):作为CBC加密的种子。

 

填充项(填充数据):用于在ESP中保证保证边界的正确(CBC) 和 扰乱原始数据的实际长度。

 

下一个头:表明数据类型,这个数据 包含在载荷数据字段内。如果在tunnel模式下,使用esp,这个值就是4,表示IP in IP。如果在transport模式下,使用esp,这个值表示的就是它背后的上一级协议的类型,比如TCP对应的就是6。

 

身份验证数据:用于容纳数据完整性的检验结果(hash)。

 

ESP数据包的外出处理

1.transport mode

ESP头紧跟在IP头(包括ip头可能有的任何选项)之后,插入一个外出的IP包中。

IP头的协议字段被复制到ESP头的"下一个头字段"中,ESP头的其余字段被填满---SPI字段分配到的是来自SADB的,用来对这个包进行处理的特定SA的SPI;

填充序列号字段的是序列中的下个值;

填充数据会被插入,其值被分配;同时分配的还有填充长度值。

随后,IP头的协议字段是ESP 50的值。

 

2.tunnel mode

ESP头是加在IP包前面的。

a. 一个IPv4包,那么ESP头的“下一个头”字段分配到值4,其他字段的填充方式和在传送模式中一样。

随后,在ESP头的前面新增一个IP头,并对相应的字段进行填充(赋值)---源地址对应于应用ESP的那个设备本身;目的地址取自于用来应用ESP的SA,协议设为50;

其他字段的值参照本地的IP处理加以填充。

b. 从恰当的SA中选择加密器(加密算法),对包进行加密(从载荷数据的开头,一直到“下一个头”字段)。

c. 使用恰当的SA中的验证器,对包进行验证 (自ESP头开始,中间经过加密的密文,一直到ESP尾)。随后,将验证器的结果插入ESP尾的“验证数据”字段中。

d. 重新计算位于ESP前面的IP头的校验和。