ipsec之AH,ESP

之前上学的时候学到的,后来长久不用有些忘记,前两天工作又碰到人提起,记录下wiki。

sec uses the following protocols to perform various functions:[10][11]

Authentication Header

Authentication Header (AH) is a member of the IPsec protocol suite. AH guarantees connectionless integrity and data origin authentication of IP packets. Further, it can optionally protect against replay attacks by using the sliding window technique and discarding old packets (see below).

  • In IPv4, the AH protects the IP payload and all header fields of an IP datagram except for mutable fields (i.e. those that might be altered in transit), and also IP options such as the IP Security Option (RFC-1108). Mutable (and therefore unauthenticated) IPv4 header fields are DSCP/TOS, ECN, Flags, Fragment Offset, TTL and Header Checksum.[13]
  • In IPv6, the AH protects the most of the IPv6 base header, AH itself, non-mutable extension headers after the AH, and the IP payload. Protection for the IPv6 header excludes the mutable fields: DSCP, ECN, Flow Label, and Hop Limit.[13]

Encapsulating Security Payload

Encapsulating Security Payload (ESP) is a member of the IPsec protocol suite. In IPsec it provides origin authenticity, integrity, and confidentiality protection of packets. ESP also supports encryption-only and authentication-only configurations, but using encryption without authentication is strongly discouraged because it is insecure.[15][16][17] Unlike Authentication Header (AH), ESP in transport mode does not provide integrity and authentication for the entire IP packet. However, in Tunnel Mode, where the entire original IP packet is encapsulated with a new packet header added, ESP protection is afforded to the whole inner IP packet (including the inner header) while the outer header (including any outer IPv4 options or IPv6 extension headers) remains unprotected. ESP operates directly on top of IP, using IP protocol number 50.[14]

AH可对整个数据包(IP 报头与数据包中的数据负载)提供身份验证、完整性与抗重播保护。但是它不提供保密性,即它不对数据进行加密。数据可以读取,但是禁止修改。AH 使用加密哈希算法签名数据包以求得完整性。

例如,使用计算机 A 的 Alice 将数据发送给使用计算机 B 的 Bob。IP 报头、AH 报头和数据的完整性都得到保护。这意味着 Bob 可以确定确实是 Alice 发送的数据并且数据未被修改。

完整性与身份验证是通过在 IP 报头与 IP 负载之间置入的 AH 报头提供的。

在 IP 报头中使用 IP 协议 ID 51 来标识 AH。AH 可以独立使用,也可以与ESP协议组合使用。

AH 报头包含下列字段:

下一个报头
使用 IP 协议 ID来标识 IP 负载。例如,值 6 表示 TCP。

长度
表示 AH 报头的长度。

安全参数索引 (SPI)
与目标地址及安全协议(AH 或 ESP)组合使用,以确保通信的正确安全关联。接收方使用该值确定数据包是使用哪一安全关联标识的。

序数
为该数据包提供抗重播保护。序数是 32 位、递增的数字(从 1 开始),它表示通过通信的安全关联所发送的数据包数。在快速模式安全关联的生存期内序列号不能重复。接收方将检查该字段,以确认使用该数字的安全关联数据包还没有被接收过。如果一个已经被接收,则数据包被拒绝。

身份验证数据
包含完整性校验值 (ICV),也称为消息身份验证码,用于验证消息身份验证与完整性。接收方计算 ICV 值并对照发送方计算的值校验它,以验证完整性。ICV 是通过 IP 报头、AH 报头与 IP 负载来计算的。

使用 AH 报头进行数据包签名
AH 为了完整性而对整个数据包进行签名,除了在传输过程中可能更改的 IP 报头中的某些字段之外(例如,“生存时间”与“服务类型”字段)。如果除了 AH 外还在使用另一个 IPSec 报头,则会在所有其他 IPSec 报头前插入 AH 报头。


ESP不仅为IP 负载提供身份验证、完整性和抗重播保护,还提供机密性。传输模式中的 ESP 不对整个数据包进行签名。只对IP 负载(而不对IP 报头)进行保护。ESP 可以独立使用,也可与 AH 组合使用。

例如,使用计算机 A 的 Alice 将数据发送给使用计算机 B 的 Bob。IP 负载经过加密和签名,以保护其完整性。收到并在完整性验证过程结束后,数据包中的数据负载便被解密。于是 Bob 可以确定确实是 Alice 发送的数据并且数据未被修改,没有其他人能够读取这些数据。

在 IP 报头中使用 IP 协议 ID 50 标识 ESP。ESP 报头置于 IP 负载之前,ESP 尾端与 ESP 验证尾端置于 IP 负载之后。

ESP 报头包含下列字段:

安全参数索引
与目标地址及安全协议(AH 或 ESP)组合使用时,确保通信的正确安全关联。接收方使用该值确定应该使用哪个安全相关联标识此数据包。

序数
为该数据包提供抗重播保护。序数是 32 位、递增的数字(从 1 开始),它表示通过通信的快速模式安全关联所发送的数据包数。在快速模式安全关联的生存期内序列号不能重复。接收方将检查该字段,以确认使用该数字的安全关联数据包还没有被接收过。如果有已被接收的数据包,则其将被拒绝。

ESP 尾端包含下列字段:

填充
填充 0~255 个字节用来确保使用填充字节加密的负载可达加密算法所需的字节边界。

填充长度
表示“填充”字段的长度(以字节为单位)。在使用填充字节的加密负载解密之后,接收方使用该字段来删除填充字节。

下一个报头
标识负载中的数据类型,例如 TCP 或 UDP。

ESP 验证尾端包含下列字段:

身份验证数据
包含完整性校验值 (ICV),也称为消息身份验证码,用于验证消息身份验证与完整性。接收方计算 ICV 值并对照发送方计算的值校验它,以验证完整性。ICV 是通过 ESP 报头、负载数据与 ESP 尾端计算的。

数据包签名与加密
ESP 可为 IP 负载提供保护。数据包的签名部分表示数据包的完整性和身份验证签名是在哪里进行的。数据包的加密部分表示什么信息受到机密性保护。

AH和ESP安全性比较:

1、AH的局限性

AH不提供机密性保护,在数据的完整性保护方面,由于AH认证的是整个IP头,完整性保护强于ESP,但在实际应用中却会带来其局限性,下面通过儿个例子说明:

在图4中主机A有一个私有IP地址,私有IP地址在10.0.0.0-10.255.255.255 172.16.0.0-172.31.255.255 和
192.168.0.0-192.168.255.255之间,我们知道,私有地址是免费的,但具有私有地址的主机不能直接访问因特网上的其他网络单元,私有网络上的主机要与因特网上的一个对等主机通信,必须先将私有地址转换为合法的公开地址才能建立一个通信信道,这样就需要经过一个网络地址转换NAT(Net Address Translation)
网关,NAT网关将流出的数据包的源地址域的私有IP地址替换为指定的公网IP地址,重新计算校验和,并将数据转发给指定的目的地址。

如果主机A和B的AH认证均被启用,当数据包到达主机B,AH完整性校验将失败,这是因为NAT网关修改了数据包的源地址域,主机B计算出来的完整性校验值将和主机A计算出来的不同。

图5说明了另一个AH传输模式会失败的例子,在这个例子中,主机A有公网IP地址,可是它位于一个安全网关之后,安全网关的功能之一就是掩盖它所保护的主机的IP地址,像NAT网关那样,安全网关用它的公网IP地址替换流出的数据包中的源地址,重新计算校验和,并将数据包转发到它的目的地址,如主机B。

于是,就像前面讨论的NAT网关的例子那样,如果主机A和B采用AH传输模式,它们之间的数据流认证就会失败,因为数据报头中的源地址域被修改了,它们计算出来的ICV不同。

以上两个例子说明的AH的局限性在AB隧道模式下同样存在,如果希望为上面的两个例子提供AH认证,认证需要在网关上进行,即在网关上需要采用AH认证,这样,源主机的网关为每个被它修改了源地址域的数据报计算一个ICV。如果数据流未被修改的话,目的主机的网关可以成功地对来自源网关的IPSec数据流进行月王传输模式认证。但是需要强调的一点是,这个解决方案对数据流提供的保护是不完整的:主机到网关和
网关到主机之间数据流没有受到保护。

ESP的认证服务与AH不同,ESP在传输模式下不对原始IP头进行验证,在隧道模式下也未对外部IP头进行认证,所以ESP不受前面举例中讨论的情况的约束,使用私有IP地址通过因特网或位于安全网关之后的主机间的通信可被ESP认证服务保护,因为IP头中的源和目的以及其他域未被认证。于是,NOT和安全网关可以改变数据报相应的IP头的城。并且如果修改之后的头部校验和计算正确且ESP头部未被修改,目的节点将成功认证数据报。然而,ESP提供的这种灵活性导致了它的弱点。除了ESP头部外,在从源到目的的传输过程中IP头的任何域都可以被修改,如果修改后头部校验和计算正确,目的主机将无法检测到发生的修改。所以,需要更高安全级,当通信双方使用公开IP地址时,应该采用AH认证服务或者AH认证服务和ESP认证服务的结合。

2、提供机密性和认证的几种方法

通过前面的分析可见,AH和ESP提供的安全服务确实存在一些差异,总结起来就是:AH不提供机密性服务,而在认证服务方面,AH安全性更强,但灵活性差,而ESP则相反。下面根据AH和ESP协议的这些差异,提出了几种提供IP层机密性和认证的应用方案。

2.1 带有验证选项ESP

用户首先对要保护的数据应用ESP,然后添加鉴别字段,这包括采用传输模式和隧道模式,对于传输模式ESP,验证和加密应用于交付到主机的IP有效载荷,但IP报头没有保护。而在隧道模式ESP中,验证应用于交付到外部IP目标地址(如防火墙)的整个IP包,并且身份验证将会在目标执行。整个内部IP包被机密机制保护,以交付到内部IP目标。对于这两种情况,身份验证将应用于密文中,而不是明文。ESP隧道模式由于加密和鉴别包括了整个原始IP头,所以其安全性强于ESP传输模式,但是,由于隧道模式插人了一个额外的TP头,因此将占用更多的带宽。

2.2 不带认证的ESP和AH相结合

由于ESP和AH都有认证功能,因此在实际应用中可以用不带认证的ESP和AH相结合,以同时提供机密性、完整性,它有两种情况:

(1) 先用ESP加密,后用AH认证

在这种情况下,使用的是两个捆绑的传输SA包,内部是ESP SA,外部是AH的SA,这时,ESP使用的是没有身份验证选项,因为内部SA是一个传输ESP SA,加密应用在IP有效载荷。最终的包包含IP报头,随后是I SI,头。然后应用AH SA,这样,验证将会包罗ESP力口上除可变字段之外的起始报头和扩展。这种方法的优点是身份验证覆盖了更多的字段,包括源和目标IP地址,缺点是需要两个SA开销。

(2)用AH认证,后用ESP加密

在加密之前使用身份验证有几个好处。首先,由于身份验证数据是通过加密保护的,对任何人来说,要想截取消息并改变身份验证数据而不被发觉是不可能的,其次,在目标位置将身份验证消息与消息存储在一起以备将来参考,如果身份验证信息应用到未加密的消息上,这样做就更加方便,否则,消息必须重新加密以验证身份验证消息。

在加密之前,在两个主机之间应用身份验证的一种方法是使用一个SA束,它由一个内部AH传输SA和一个外部ESP隧道SA构成,在这种情况下,身份验证被应用于IP有效载荷及IP报头和扩展,但易变的字段除外,最终的IP包由ESP在隧道模式中处理,结果就是加密已经验证的整个内部包并加上一个新的外部IP报头和扩展。

结束语

由于IPSec提供了两种工作模式:通道模式和隧道模式。再结合AH和ESP提供的不同的安全服务,我们在IPSec的实际应用中就有了多种选择。

总的说来,ESP隧道模式认证和加密服务所提供的安全性要强于ESP传输模式,但由于隧道模式将比传输模式服务占用更多带宽,所以如果在带宽利用率非常重要的情况下,传输模式可能是更合适的选择。另外,尽管理论上ESP隧道模式认证提供的安全服务不如AH传输模式的安全性高,但由于包含IP数据包源地址的内部IP头被加密了,因此,它可以提供一定的数据流保密服务,而这是AH所不具备的。



  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值