一、IPSec VPN
IPSec Virtual Private Network(VPN)是一种在公有网络上提供安全可靠的私有通信的服务。企
业的分支办公室和移动办公用户在公有Internet上使用IPSec VPN技术与企业总部建立连接。IPSec
VPN与传统的使用专线或帧中继连接的网络相比,其最大的好处就是降低了成本,增强了灵活性。
IPSev VPN大致上可以分为两种应用模式:
-
远程访问IPSec VPN
-
站点到站点IPSec VPN
二、实现机制
IPSec是一个公开标准的框架,工作于网络层,用于保护和鉴别IPSec对等体之间的数据包。
IETF指定的IKE(Internet Key Exchange,因特网密钥交换协议)是IPSec处理过程中对安全策略
进行协商、身份验证,以及处理会话密钥的交换协议。IKE有IKEv1和IKEv2两个版本。IKEv2版本
保留了IKEv1版本的的基本功能,针对IKEv1版本存在的一些问题,兼顾简洁、高效、安全以及健
壮性的要求,通过核心功能和默认算法的最小化规定,极大提高了IPSec系统的互操作性。
IPSec可以提供数据机密性、数据完整性、起源认证、防重放保护四大功能。
1、数据机密性:数据发送方使用数学方法对数据进行加密,使数据在传输过程中变得不可读;数
据接收方对接收到的数据使用一定的算法对其进行解密,最后将数据还原成原来的样子。
加密算法大致上可以分为两类:
对称式加密:对称式加密是指每个对等体使用相同的密钥来加密和解密数据。
对称式加密算法有:DES、3DES、AES。其中,DES使用56位密钥进行加密;3DES是DES算法
的变种,使用三个独立的56位密钥对数据进行加密;AES是最新的加密标准,使用128/192/256位
密钥进行加密。从加密的强壮程度上讲,3DES优于DES,AES优于3DES。
非对称式加密:非对称式加密是指分别使用不同的密钥来加密和解密数据。
非对称式加密算法有:RSA。非对称式加密的过程是每个对等体各自生成两个密钥:私钥和公钥,
并且将公钥发送给对方(私钥自己保留)。发送方在发送数据时使用接收方的公钥进行加密,接收
方使用私钥进行解密。由于只有使用私钥才能对消息进行解密,因此整个通信过程是安全的。
由于RSA算法的运行效率不高,所以IPSec不使用RSA进行数据加密。IKE(Internet密钥交换)仅
在对等体认证阶段使用RSA进行数据加密。
DH(Diffie-Hellman)密钥交换可以为对等体生成加密所需的密钥,密匙交换方式在6800系列中包
括DH组1、2、5。
2、数据完整性:用于保证数据在传输过程中不被修改。
发送方在发送数据时,为消息附加了一个散列数,接收方在接收数据时重新计算消息的散列数。如
果计算出的散列数和消息中附加的一样,则说明数据没有被篡改。
散列算法使用共享密钥将不同长度的消息转换成固定长度的字符串,其运算过程是不可逆的,也就
是说散列是无法被还原成消息的。散列是附加在消息中发送的,如果消息在传输过程中被修改,接
收方重新计算的散列和消息中原本附加的散列就无法匹配。
目前有两种通用的散列算法:HMAC-MD5和HMAC-SHA-1。其中HMAC-MD5使用128位共享密钥
进行散列计算,HMAC-SHA-1使用160位共享密钥进行散列计算。
3、起源认证:对数据发送者的身份进行识别。
起源认证的过程是单向的,在另外一个方向上,也发生着同样的认证过程。
预共享密钥比较容易配置,但是扩展性很不好,仅使用于小型VPN网络。预共享密钥是指在IPSec
对等体上预先设置好相同的密钥,当进行认证时,发送方将预共享密钥和身份信息进行散列计算,
再将计算出的散列发送给接收方。接收方对收到的消息进行散列处理,如果能生成相同的散列,则
发送方被验证。
PKI(Public Key Infrastructure,公钥基础设施)是通过使用公开密钥技术和数字证书来确保系统
信息安全,并负责验证数字证书持有者身份的一种体系。
PKI的功能是通过签发数字证书来绑定证书持有者的身份和相关的公开密钥,为用户获取证书、访
问证书和宣告证书作废提供了方便的途径。同时利用数字证书和相关的各种服务(证书发布、黑名
单发布等)实现通信过程中各实体的身份认证,保证了通信数据的机密性、完整性和不可否认性。
4、防重放保护:AH(Authentication Header)和ESP(Encapsulation Security Payload)都包含
一个32位的序列数,IPSec通过比较目标主机上的滑动窗口和接收到的数据包中的序列数来辨别数
据包是否是被复制的,这样就可以防止攻击者截取IPSec数据包后又将数据包重新插入会话。
三、IPSec的两种模式
IPSec可以使用两种模式来传输IP数据包:传输模式(Transport mode)和隧道模式(Tunnel
Mode)。
-
传输模式主要用于主机到主机之间的端到端连接,使用原始IP包头中的地址进行寻址。
-
隧道模式主要用于两个安全网关(如路由器)之间的连接,通过将新的IP包头添加到原始IP包
头之前来实现IP-in-IP的封装。原始IP包头在隧道中传输的时候被保留,直到隧道终端删除附
加包头时才使用。
四、IPSec的两种主要框架协议
IPSec使用两种主要的框架协议如下:
-
认证头(Authentication Header,AH):AH可以确保数据完整性、提供起源认证和防重放保
护,但是AH不提供数据机密性。AH对整个数据包进行验证,因此如果网络中存在NAT的话,
应在AH封装之前使用NAT,否则AH验证将无法通过。
AH支持HMAC-MD5和HMAC-SHA-1算法。
-
封装安全载荷(Encapsulation Security Payload,ESP):ESP可以保证数据完整性和机密
性、提供起源认证和防重放保护。
ESP不对最前面的IP包头进行检查。因此即使在ESP封装之后对数据包进行NAT(Network
Address Transport),也不会对ESP的认证造成影响。