文章一:IPSec中安全协议ESP、AH精解
ESP 的协议号为50
AH 协议号为51
一、ESP详解
(一)ESP提供:confidentiality,data integrity,optional data origin
authentication,anti-replay services
(二)ESP结构为:
1、Security Parameter Index(SPI)
2、Sequence Number
3、Payload Data(Variable)
4、Padding(0-255)Bytes
5、Pad length
6、Report Handler
7、Authentication Data(varaible)
SPI:
1、destination address
2、protocol
3、identify the security association(SA)
SPI number是在Internet Key Exchange(IKE)协商过程中,可以任意指定的。利用这个number可以在security association database(SADB)中查询相关信息。
Sequence number:
提供anti-replay services.这点在AH中也是同样的
原理是通过increasing序号
Payload data:
被保护的数据,加密算法需要一个initialization vector(IV),注意IV需要认证,但是不是加密的,DES使用前8个字节做为IV,3DES、AES也使用8字节的IV.
Padding Bytes:
根据加密算法不同,补足的字节也不同。
二、AH详解
(一)AH提供:connectionless integrity,data authentication,optional replay
protection,但是不提供confidentiality(加密)
(二)AH的包结构:
1、Next header
2、Payload Length
3、Reserved
4、Security Parameter Index(SPI)
5、Sequence Number
6、Authentication Data(Variable)
三、ESP、AH对比
1、AH没有ESP的加密特性
2、AH的authtication是对整个数据包做出的,包括IP头部分,因为IP头部分包含很多变量,比如type of service(TOS),flags,fragment offset,TTL以及header checksum.所以这些值在进行authtication前要全部清零。否则hash会mismatch导致丢包。
相反,ESP是对部分数据包做authentication,不包括IP头部分。
文章二:IPsec AH:IPsec 认证头协议(IPsec Authentication Header)
IPsec 认证头协议(IPsec AH)是 IPsec 体系结构中的一种主要协议,它为 IP 数据报提供无连接完整性与数据源认证,并提供保护以避免重播情况。一旦建立安全连接,接收方就可能会选择后一种服务。 AH 尽可能为 IP 头和上层协议数据提供足够多的认证。但是,在传输过程中某些 IP 头字段会发生变化,且发送方无法预测当数据包到达接受端时此字段的值。 AH 并不能保护这种字段值。因此, AH 提供给 IP 头的保护有些是零碎的。
AH 可被独立使用,或与 IP 封装安全负载(ESP)相结合使用,或通过使用隧道模式的嵌套方式。在通信主机与通信主机之间、通信安全网关与通信安全网关之间或安全网关与主机之间可以 提供安全服务。 ESP 提供了相同的安全服务并提供了一种保密性(加密)服务,而
ESP 与 AH 各自提供的认证其根本区别在于它们的覆盖范围。特别地,不是由 ESP 封装的
IP 头字段则不受 ESP 保护。有关在不同网络环境下如何使用 AH 和 ESP 的详细内容,可参见相关文件。
通常,当用与 IPv6 时, AH 出现在 IPv6 逐跳路由头之后 IPv6 目的选项之前。 而用于
IPv4 时, AH 跟随主 IPv4 头。
协议结构
8 16 32 bit
Next Header Payload Length Reserved
Security parameters index (SPI)
Sequence Number Field
Authentication Data (Variable)
Next Header ― 识别认证头面后的下一个有效负载的类型。
Payload Length ― 规定 AH 的长(32位字,4-字节单元),减去“2”)
SPI ― 专有32位值,与目的 IP 地址和安全协议(AH)相结合,唯一识别数据报的安全联接(Security Association)。
Sequence Number ― 包含无变化的增长计数器值,该值是强制性的,即使接收端不为特定 SA
提供 Anti-Replay 服务,它仍然存在。
Authentication Data ― 一个可变长字段,包括在 ESP 数据包上计算的减去
Authentication Data 的完整校验值(ICV)。
文章三:IPsec 协议(ESP/AH)
ipsec协议是用来保护通过vpn传输数据流的。使用的协议及其密钥是由ike协商的。
与ipsec相关的协议有2种:ah和esp。下面对它们进行详细说明。
认证头(authentication header)
ah是一种认证数据流的协议。它运用加密学复述功能,根据ip包的数据生成一个mac。此mac随包发送,允许网关确认原始ip包的整体性,确保数据在通过因特网的途中不受损坏。
除ip包数据外,ah也认证部分ip头。 ah协议把ah头插在原始ip头之后,在通道模式里,ah头是插在外部ip头之后的,但在原始内部ip头之前。
esp (encapsulating security payload)
esp用于ip包的加密和认证。还可只用于加密或认证。
esp头插在原始ip头之后,在通道模式里,esp头是插在外部ip头之后的,但在原始内部ip头之前。
esp头之后的所有数据是经过加密/认证的。与ah不同的是esp也对ip包加密。认证阶段也不同,esp只认证esp头之后的数据,因此不保护外部ip头。
IPSec 提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行 编码来保证数据的机密性,以防数据在传输过程中被窃听。IPSec 协议组包含Authentication Header(AH)协议、Encapsulating Security Payload(ESP)协议和Internet Key Exchange(IKE)协议。其中AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供可靠 性保证。在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服 务要强于ESP。IKE用于密钥交换(将在以后部分讨论)。
一、Authentication Header(AH)协议结构
AH协议为IP通信提供数据源认证、数据完整性和反重播保证,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一 个数据包上添加一个身份验证报头。此报头包含一个带密钥的hash散列(可以将其当作数字签名,只是它不使用证书),此hash散列在整个数据包中计算, 因此对数据的任何更改将致使散列无效--这样就提供了完整性保护。
AH报头位置在IP报头和传输层协议报头之间,见图一。 AH由IP协议号" 51"标识,该值包含在AH报头之前的协议报头中,如IP报头。AH可以单独使用,也可以与ESP协议结合使用。
图1 AH报头
AH报头字段包括:
·Next Header(下一个报头): 识别下一个使用IP协议号的报头,例如,Next Header值等于"6",表示紧接其后的是TCP报头。
·Length(长度): AH报头长度。
·Security Parameters Index (SPI,安全参数索引): 这是一个为数据报识别安全关联的 32 位伪随机值。SPI 值 0 被保留来表明"没有安全关联存在"。
·Sequence Number(序列号):从1开始的32位单增序列号,不允许重复,唯一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。
·Authentication Data(AD,认证数据): 包含完整性检查和。接收端接收数据包后,首先执行hash计算,再与发送端所计算的该字段值比较,若两者相等,表示数据完整,若在传输过程中数据遭修改,两个计算结果不一致,则丢弃该数据包。
数据包完整性检查:
如图二所示,AH报头插在IP报头之后,TCP,UDP,或者ICMP等上层协议报头之前。一般AH为整个数据包提供完整性检查,但如果IP报头中包 含"生存期(Time To Live)"或"服务类型(Type of Service)"等值可变字段,则在进行完整性检查时应将这些值可变字段去除。
图2 AH为整个数据包提供完整性检查
二、Encapsulating Security Payload(ESP)协议结构
ESP为IP数据包提供完整性检查、认证和加密,可以看作是"超级 AH", 因为它提供机密性并可防止篡改。ESP服务依据建立的安全关联(SA)是可选的。然而,也有一些限制:
·完整性检查和认证一起进行。
·仅当与完整性检查和认证一起时,"重播(Replay)"保护才是可选的。
·"重播"保护只能由接收方选择。
ESP的加密服务是可选的,但如果启用加密,则也就同时选择了完整性检查和认证。因为如果仅使用加密,入侵者就可能伪造包以发动密码分析攻击。
ESP可以单独使用,也可以和AH结合使用。一般ESP不对整个数据包加密,而是只加密IP包的有效载荷部分,不包括IP头。但在端对端的隧道通信中,ESP需要对整个数据包加密。
如图三所示,ESP报头插在IP报头之后,TCP或UDP等传输层协议报头之前。ESP由IP协议号"50"标识。
图3 ESP报头、报尾和认证报尾
ESP报头字段包括:
·Security Parameters Index (SPI,安全参数索引):为数据包识别安全关联。
·Sequence Number(序列号):从1开始的32位单增序列号,不允许重复,唯一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。 ESP报尾字段包括:
·Padding(扩展位):0-255个字节。DH算法要求数据长度(以位为单位)模512为448,若应用数据长度不足,则用扩展位填充。
·Padding Length(扩展位长度):接收端根据该字段长度去除数据中扩展位。
·Next Header(下一个报头):识别下一个使用IP协议号的报头,如TCP或UDP。
ESP认证报尾字段:
·Authentication Data(AD,认证数据): 包含完整性检查和。完整性检查部分包括ESP报头、有效载荷(应用程序数据)和ESP报尾。见图四。
图4 ESP的加密部分和完整性检查部分
如上图所示,ESP报头的位置在IP报头之后,TCP,UDP,或者ICMP等传输层协议报