详解IPSec介绍( 九 )

安全联盟生存周期为了防止密钥长期使用而带来的安全隐患,安全联盟存在生存周期 。衡量生存周期有两种方式:基于时间的生存周期和基于流量的生存周期 。

  • 基于时间的生存周期是从安全联盟建立开始的时刻起,此安全联盟存活的时间 。
  • 基于流量的生存周期是此安全联盟允许处理的最大流量 。
其中IPSec安全联盟两种方式都支持,IKE安全联盟并不传输IPSec流量,因此仅支持基于时间的生存周期 。IPSec安全联盟和IKE安全联盟的生存周期可以分别配置,互不干扰 。
对于IKE安全联盟的生存周期:
  • 如果生存周期超时,IKE SA将自动更新 。因为IKE协商需要进行DH计算,需要经过较长的时间,为使IKE SA的更新不影响安全通信,建议设置生存周期大于10分钟 。
  • SA在设定的生存周期超时前会提前协商另一个SA来替换旧的SA 。在新的SA还没有协商完之前,依然使用旧的SA;在新的SA建立后,将立即使用新的SA,旧的SA会被自动清除 。
对于IPSec安全联盟的生存周期:如果生存周期到达指定的时间或指定的流量,则IPSec安全联盟就会失效 。IPSec安全联盟失效前,IKE将为IPSec协商建立新的IPSec安全联盟,这样在旧的IPSec安全联盟失效前新的IPSec安全联盟就已经准备好 。在新的IPSec安全联盟开始协商而没有协商好之前,继续使用旧的IPSec安全联盟保护通信 。在新的IPSec安全联盟协商好之后,则立即采用新的IPSec安全联盟保护通信 。
此外,为了方便对于IPSec安全联盟的生存周期进行配置,系统支持局部超时和全局超时两种配置模式,局部超时时间是针对某个IPSec SA的超时时间 。全局超时时间是针对系统中所有IPSec SA的超时时间 。当IKE协商安全联盟时,如果采用的安全策略没有配置自己的超时时间,将采用全局超时时间与对端协商 。如果安全策略配置了自己的超时时间,则系统使用安全策略自己的超时时间与对端协商 。
IPSec QoSIPSec QoS支持的功能点如表1所示 。
详解IPSec介绍

文章插图
 
IPSec NAT穿越 
NAT技术主要用于解决IPv4地址紧缺问题,在目前网络中NAT应用非常广泛,特别是在企业网出口网关大都使用了NAT技术解决公网地址不足的问题 。IPSec提供了端到端的IP通信的安全性,可以实现同一企业集团不同地域分支之间的低成本安全互连 。但是IPSec和NAT技术本身存在不兼容的问题 。
  • 从NAT的角度上说,为了完成地址转换,势必会修改IP报文头中的IP地址 。
  • 从IPSec的角度上说,IPSec要保证数据的安全,因此它会加密和校验数据 。AH主要用于保护消息的完整性,其验证范围包含IP报文头,而NAT修改IP报文头会导致AH检查失败,因此使用AH保护的IPSec隧道是不能穿越NAT网关的 。但是ESP协议保护的报文不存在该问题,因为ESP保护的部分不包含IP报文头(对隧道方式而言是外层IP报文头) 。
但是还是有新的不兼容问题,当NAT改变了某个包的IP地址和(或)端口号时,它通常要更新TCP或UDP校验和 。当TCP或UDP校验和使用了ESP来加密时,它就无法更新这个校验和 。
  • ESP封装的隧道模式:ESP隧道模式将整个原始的IP包整个进行了加密,且在ESP的头部外面新加了一层IP头部,所以NAT如果只改变最前面的IP地址对后面受到保护的部分是不会有影响的 。因此,IPSec采用ESP的隧道模式来封装数据时可以与NAT共存 。
IPSec穿越NAT的处理IPSec NAT穿越的流程是:
  • NAT穿越(NAT-Traversal,简称NAT-T)能力检测:建立IPSec隧道的两端需要进行NAT穿越能力协商,这是在IKE协商的前两个消息中进行的,通过Vendor ID载荷指明的一组数据来标识 。
  • NAT网关发现:通过NAT-D(NAT-Discovery)载荷来实现的,该载荷用于在IKE Peer之间发现NAT网关的存在以及确定NAT设备在Peer的哪一侧 。NAT侧的Peer作为发起者,需要定期发送NAT-Keepalive报文,以使NAT网关确保安全隧道处于激活状态 。
  • ESP报文正常穿越NAT网关:IPSec穿越NAT,简单来说就是在原报文的IP头和ESP头(不考虑AH方式)间增加一个标准的UDP报文头 。这样,当ESP报文穿越NAT网关时,NAT对该报文的外层IP头和增加的UDP报头进行地址和端口号转换;转换后的报文到达IPSec隧道对端时,与普通IPSec处理方式相同,但在发送响应报文时也要在IP头和ESP头之间增加一个UDP报文头 。。
IKEv2与NAT穿越NAT-T能力检测
NAT-T能力检测在IKE协商的前两个消息中交换完成,通过在消息中插入一个标识NAT-T能力的Vendor ID载荷来告诉对方自己对该能力的支持 。如果双方都在各自的消息中包含了该载荷,说明双方对NAT-T都是支持的 。只有双方同时支持NAT-T能力,才能继续进行其他协商 。


推荐阅读