RG_BCR路由器实施一本通 >> 典型应用场景 >> 网络配置 >> VPN配置 >> IPSeC配置 >> IPSec原理概述 >>

IPSec原理概述

随着安全标准与网络协议的不断发展,各种VPN技术层出不穷,IPSec VPN则是当前应用最广泛的VPN安全技术之一。IPSec是创建和维持IP网络安全通信的一套开放标准、协议,它提供两种安全机制:加密和认证。加密机制保证了数据的机密性,认证机制保证了数据是来自原始的发送者并且在传输过程中没有被破坏和篡改。

IPSec能提供以下服务:

l      数据机密性:IPSec发送方在通过网络传输包前对包进行加密。

l      数据完整性:IPSec接收方对发送方发来的包进行认证,以确保数据在传输过程中没有被篡改。

l      数据源认证:IPSec在接收端可以认证发送IPSec报文的发送端是否合法,以确保数据的真实性。

l      抗重播:IPSec接收方可检测并拒绝接收重复的报文。

缩略语与专业名词

IPSec(IP Security Protocol),IP网络安全协议:IPSec是IETF制定的一系列协议,以保证在Internet上传送数据的安全保密性能,通信方之间在IP层通过加密与数据源验证来保证数据包在Internet上传输时的机密性、完整性和真实性。

IKE(Internet Key Exchange),因特网密钥交换:IKE用于通信双方协商和建立安全联盟、交换密钥。IKE定义了通信双方进行身份验证、协商加密算法以及生成共享密钥的方法。

DES(Data Encryption Standard),数据加密标准:DES是IPSec使用的一种数据加密算法,用于对数据包进行加密。

3DES(Triple Data Encryption Standard),三倍数据加密标准:3DES是IPSec使用的一种数据加密算法,用于对数据包进行比DES强度更高的加密。

AES(Advanced Encryption Standard),高级加密标准:AES是IPSec使用的一种数据加密算法。与DES和3DES相比,AES更加高效、安全。

DH(Diffie-Hellman Group),一种密钥交换算法:通信的双方各自生成一对公/私钥,只需和对方交换公钥,经过计算就可得到一组用来保护通信的密钥,这就避免了直接在通信中传输密钥的风险,提高了整个IPSec系统的安全性。DH有一个重要的属性:group(组件),共有5种基本group,常用的group有:模数为924位的MODP组(group2)、模数为1536位的MODP组(group5)。

MD5(Message Digest 5),消息摘要版本5:从任意长度信息和16 字节密钥生成98 位散列(也称作数字签名或信息整理)的算法。所生成的散列(如同输入的指印)用于验证内容和来源的真实性和完整性。

SHA-1(Secure Hash Alogrithm1),安全散列算法1:从任意长度信息和20 字节密钥生成160 位散列的算法。通常认为它比MD5 更安全,因为它生成的散列更大。

SA(Security Association),安全联盟:在两个设备之间建立一个IPSec VPN隧道并通过其进行安全通信之前,它们必须就通信期间需要使用的安全参数达成一致,即建立一个SA。SA将指定需要使用的认证与加密算法、在通话期间使用的密钥和安全联盟本身需要维持的时间,SA是单向的。

SPI(Security Parameter Index),安全参数索引:SPI实际上是一个长度为32位的数据实体,用于独一无二地标识出接收端上的一个SA。

AH(Authentication Header),认证包头:属于IPSec的一种协议。该协议用于为IP数据包提供数据完整性、数据包源地址验证服务。与ESP协议相比,AH不提供对通信数据加密服务。

ESP(Encapsulating Security Payload),封装安全负荷:属于IPSec的一种协议。它用于确保IP数据包的机密性(对第三方不可见)、数据的完整性以及对数据源地址的验证,同时还具有抗重播的特性。

PSK(Pre-Shared Key),预共享密钥:IKE身份验证方法之一,它要求每个IKE对等方使用一个预定义和共享的密钥来对IKE交换执行身份验证。

第一阶段和第二阶段:采用互联网密钥交换协议(IKE)建立IPSec通道安全联盟(SA),需要进行两个阶段的协商。在第一阶段,参与者相互验证身份并协商建立一个用来协商随后IPSec SA的安全通道。在第二阶段,参与者协商并建立用于加密和认证用户数据的IPSec SA。

Main Mode and Aggressive Mode,主模式和野蛮模式:IKE自动协商通道的第一阶段,可以在主模式和野蛮模式这两种模式下进行。主模式下,发起方和响应方之间进行三次双向信息交换,总共六条信息。野蛮模式下,发起方和响应方获取相同的对象,但仅进行两次交换,总共有三条消息。

DPD(Dead Peer Detect):周期对端检测:使用DPD,能够定期检测SA对方是否正常,网络连接是否正常。

IPSec NAT-T(NAT-Traversal),IPSec NAT穿透技术:该技术实现了IPSec协议穿透NAT设备。

安全联盟

在两个设备之间建立一个IPSec VPN隧道并通过其进行安全通信之前,它们必须就通信期间需要使用的安全参数达成一致,即建立一个安全联盟SA。SA是由一对指定的安全参数索引 (SPI) 、目标IP地址以及使用的安全协议组成。

通过SA,IPSec隧道可以提供以下安全功能:

l      机密性(通过加密)

l         内容完整性(通过数据认证)

l         发送方认证和认可(通过身份认证)

一、 安全联盟建立

安全联盟(SA)是IPSec隧道双方用于确保隧道安全的有关方法和参数的单向协议。对于IPSec双向通信,至少必须有两个SA,一个用来接收来自对端的数据,一个用来发送数据给对方

建立SA,需要进行两个阶段的协商:

l      在第一阶段,通信双方协商如何保护以后的通信,建立一个已通过身份认证和安全保护的通道(即IKE SA),此通道将用于保护后面的IPSec SA的协商过程。

l      在第二阶段,通信双方为IPSec协商加密算法、密钥、生存周期以及认证身份,建立用于加密和认证用户数据的通道(即IPSec SA)。

1.   第一阶段

第一阶段可以使用野蛮模式(Aggressive Mode)或主模式(Main Mode),不管使用哪种模式,双方均将交换对方可以接受的安全提议,例如:

l            加密算法(DES、3DES和AES98/99/256)和认证算法(MD5和SHA-1)

l      Diffie-Hellman 组(请参阅本节的Diffie-Hellman 交换

l      预共享密钥

当隧道的两端都同意接受所提出的至少一组第一阶段安全参数,并处理相关参数时,一个成功的第一阶段协商将结束。设备作为发起方时,目前最多同时支持8种第一阶段协商的提议,允许用户定义一系列安全参数。作为响应方时,可接受任何组合形式的第一阶段协商的提议。

Ø   主模式和野蛮模式(Main Mode / Aggressive Mode)

第一阶段可能发生在野蛮模式或主模式下,这两种模式如下所述:

主模式:发起方和响应方之间进行三个双向信息交换(总共六条信息)以完成以下功能:

l       第一次交换,(信息1和2):提出并接受加密和认证算法。

l       第二次交换,(信息3和4):执行Diffie-Hellman交换,发起方和响应方各提供一个当前数(随机生成的号码)。

l       第三次交换,(信息5和6):发送并验证其身份。

在第三次交换信息时传输的信息由在前两次交换中建立的加密算法保护。因此,在明文中没有传输参与者的身份,从而提供了最大限度的保护。

野蛮模式:发起方和响应方获取相同的对象,但仅进行两次交换,总共有三条消息:

l       第一条消息:发起方建议SA,发起Diffie-Hellman交换,发送一个当前数及其IKE 身份。

l       第二条消息:响应方接受SA,认证发起方,发送一个当前数及其IKE身份,以及发送响应方的证书(如果使用证书)。

l       第三条消息:发起方认证响应方,确认交换。

由于参与者的身份是在明文中交换的(在前两条消息中),故野蛮模式不提供身份保护。

 提示

当IPSec隧道的连接方式为对方动态连接到本地、动态连接到网关时,必须使用野蛮模式进行协商。

Ø   Diffie-Hellman 交换

Diffie-Hellman 交换也称DH交换,它允许双方生成一个共享密钥。该技术的优点在于它允许通信双方在非安全媒体上创建密钥,而不必把预共享密钥通过网络传输。共有五种基本DH组(设备支持组 2 和 组5),在各组计算中所使用主要模数的大小都不同,如下所述:

l      DH组2:924位模数

l      DH组5:1536位模数

模数越大,就认为生成的密钥越安全。但是,模数越大,密钥生成过程就越长。

 提示

由于每个DH组的模数大小都不同,因此IPSec隧道通信双方必须使用相同的组。

2.   第二阶段

当通信双方建立了一个已认证的安全通道后,将继续执行第二阶段,在此阶段中,将协商IPSec SA以保护要通过IPSec隧道传输的用户数据。

与第一阶段的过程相似,通信双方交换提议以确定要在SA中使用的安全参数。第二阶段提议还包括一个安全协议(目前设备支持ESP)和所选的加密和认证算法。

不管在第一阶段中使用何种模式,第二阶段总是在快速模式中运行,并且包括三条消息的交换。

二、 安全联盟的维护

一旦SA建立完毕,IPSec双方还必须维护SA,确保SA是安全有效的,IPSec通过以下方法实现SA的有效性检测:

1.   SA生存时间

在建立SA的协商过程中,双方会协商该SA的生存时间,当生存时间达到预先设定的值时,需要重新协商以建立新的SA。周期性的重新协商,相当于定期更改密码。

WEB UI方式下,在VPN配置>IPSec高级选项中,可配置生存时间最大流量

由于频繁重建SA需要消耗大量的系统资源(主要是DH交换和当前数生成),会降低数据传输效率。因此SA的生存时间通常设置的比较长(典型的是1小时到1天),在有效期内,由于双方不能互相检测对方(类似PING的功能),通信的双方只能假设对方是正常工作的,万一有一方发生了不可预见的问题或连接双方的网络有故障,通信的另一方并不知道此时双方的连接线路中断,还会继续向早已经不存在的另一方发送数据,造成虚假连接(SA正常,发出正常,但无法完成双向通信),因此需要一种有效的方法来检测参与IPSec SA的双方都完全正常,他们之间的网络连接也完全正常。这种检测方法的开销要比重新协商IPSec SA更小,因此可以用更高的密度进行检测。这种技术就是IPSecDPD,DPD作为SA协商的一种补充而存在。

2.   DPD(Dead Peer Detect)

IPSec DPD定期检测SA对方是否还存在,在SA的生存时间和最大流量范围内,定期检测对方网络是否可达,程序是否正常,以便发现网络变化导致的通信故障或避免与一个已经不存在的火星人主机保持SA,这个检测周期通常为20秒或1分钟左右,双方通过发送心跳包来检测对方是否正常,连续丢失多个心跳包后,IPSec DPD会强制重新发起SA协商。

WEB UI方式下,在VPN配置>IPSec高级选项中,可通过选中DPD选项来启用DPD功能,可通过配置心跳来确定检测周期。

IPSec NAT穿透

由于历史的原因,部署NAT模式下的IPSec VPN网络的问题之一在于无法定位网络地址转换(NAT)之后的IPSec对话方。Internet服务提供商和小型办公/家庭办公(SOHO)网络通常使用NAT共享单个公共IP地址。虽然NAT有助于节省剩余的IP地址空间,但是它们也给诸如IPSec之类的端对端协议带来了问题。

在 NAT对IPSec造成中断的众多原因中,主要的一个原因就是,对于封装安全性协议(ESP)来说,NAT设备不能识别端口转换的Layer 4(第4层)包头的位置(因为它已被加密)。对于认证包头(AH)协议来说,NAT设备能修改端口号,但不能修改认证检查,于是对整个IPSec封包的认证检查就会失败。

一种称为IPSec NAT穿透(NAT-T)的新技术正在由Internet工程任务组的IPSec网络工作组标准化。

在IPSec协商过程中,可根据以下两个条件自动确定支持IPSec NAT-T的对话双方:

l      发起IPSec对话的一方(通常是一个客户端计算机)和响应 IPSec 对话的一方(通常是一个服务器)是否都能执行 IPSec NAT-T。

l      它们之间的路径中是否存在任何 NAT。

如果这两个条件同时为真,那么双方将使用IPSec NAT-T来通过NAT发送受IPSec保护的流量。如果其中一方不支持IPSec NAT-T,则执行常规的IPSec协商(在前两个消息之后)和IPSec保护。如果双方都支持 IPSec NAT-T,但是它们之间不存在NAT,则执行常规的IPSec保护。

 提示:IPSec NAT-T 是仅为 ESP 流量定义的,AH流量无法穿过NAT设备。

设备可以应用NAT穿透 (NAT-T) 功能。NAT-T在第一阶段交换过程中,沿着数据路径检测发现存在一个或多个NAT设备后,将添加一层UDP封装(通常使用UDP4500端口),从而通过NAT设备。

WEB UI方式下,在VPN配置>IPSec高级选项中,可通过选中NAT穿透选项来启用NAT穿透功能。