×

IPSEC VPN原理分享
  

赵飞宇66 1397

{{ttag.title}}
本期引言
本章主要讲解IPSec VPN相关理论概念,工作原理。从安全和加密原理入手,讲解了IPSec 在VPN对等体设备实现的安全特性,如数据的机密性、数据的完整性,数据验证等。重点分析IPSec封装模式,IPSec安全协议,IPSec密钥交换等知识为整个IPSec知识体系打下坚实的基础。

1、IPsec协议介绍

需求背景

随着Internet的发展,由于IP协议未考虑安全性,而且Internet上有大量的不可靠用户和网络设备,所以业务数据要穿越这些未知网络,无法保证数据的安全性,数据易被伪造、篡改或窃取。为了解决上述问题,IPSec(Internet Protocol Security)应运而生。IPSec是对IP的安全性补充,其工作在IP层,为IP网络通信提供透明的安全服务。



IPsec简介

IPSec是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,包括认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议、密钥交换和用于验证及加密的一些算法等。

通过这些协议,在两个设备之间建立一条IPSec隧道。数据通过IPSec隧道进行转发,实现保护数据的安全性。



IPSec对等体:

IPSec用于在协商发起方和响应方这两个端点之间提供安全的IP通信,通信的两个端点被称为IPSec对等体。其中,端点可以是网关、路由器或者防火墙,也可以是主机。

IPSec隧道:

IPSec为对等体间建立IPSec隧道来提供对数据流的安全保护。一对IPSec对等体间可以存在多条IPSec隧道,针对不同的数据流各选择一条隧道对其进行保护,例如有的数据流只需要认证、有的需要认证和加密。
IPSec对数据的加密是以数据包为单位,而不是以整个数据流为单位。发送方对要保护的数据包进行加密封装,在Internet上传输,接收方采用相同的参数对报文认证、解封装,以得到原始数据。

IPsec提供的安全服务

IPsec具有如下安全特性:机密性、完整性、数据来源验证、不可否认性及抗重放保护。



IPSec通过加密与验证等方式,从以下几个方面保障了用户业务数据在Internet中的安全传输:

①数据来源验证:接收方验证发送方身份是否合法。

②数据加密:发送方对数据进行加密,以密文的形式在Internet上传送,接收方对接收的加密数据进行解密后处理或直接转发。

③数据完整性:接收方对接收的数据进行验证,以判定报文是否被篡改。

④抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。

IPsec协议体系架构

IPSec VPN体系结构主要由验证头AH(Authentication Header)、封装安全载荷ESP(Encapsulating Security Payload)和因特网密钥交换IKE(Internet Key Exchange)协议套件组成。IPSec通过AH和ESP两个安全协议实现IP报文的安全保护,通过ESP来保障IP数据传输过程的机密性,使用AH/ESP提供数据完整性、数据源验证和抗报文重放功能。ESP和AH定义了协议和载荷头的格式及所提供的服务,但却没有定义实现以上能力所需具体转码方式,转码方式包括对数据转换方式,如算法、密钥长度等。为简化IPSec的使用和管理,IPSec还可以通过IKE进行自动协商交换密钥、建立和维护安全联盟的服务。具体介绍如下:

AH协议:AH是报文头验证协议,主要提供数据源验证、数据完整性验证和防报文重放功能,不提供加密功能。

ESP协议:ESP是封装安全载荷协议,主要提供加密、数据源验证、数据完整性验证和防报文重放功能。

IKE协议:IKE协议建立在Internet安全联盟和密钥管理协议ISAKMP(Internet Security Association and Key Management Protocol)框架之上,采用DH(Diffie-Hellman)算法在不安全的网络上安全地分发密钥、验证身份,以保证数据传输的安全性。IKE协议可提升密钥的安全性,并降低IPSec管理复杂度。

IPsec协议族



IPSec协议定义了两种通信保护机制:封装安全载荷(ESP,Encapsulating Security Payload)和鉴别头(AH,Authentication Header)。其中ESP机制为通信提供机密性和完整性;AH机制为通信提供完整性保护。ESP机制和AH机制都能为通信提供抗重放(Anti-replay)攻击。

IPSec协议可以设置成在两种工作模式下运行:一种是隧道(tunnel)模式,另一种是传输(transport)模式。

IPSec协议使用IKE协议实现安全协议的自动安全参数协商。IKE协商的安全参数包括加密与鉴别算法、加密与鉴别密钥、通信的保护模式(传输或隧道模式)、密钥的生存期等。IKE将这些安全参数构成的集合称为安全关联(SA,security Association),还负责这些安全参数的刷新。

2、IPSec封装模式

传输模式

在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。传输模式不改变报文头,故隧道的源和目的地址必须与IP报文头中的源和目的地址一致,所以只适合两台主机或一台主机和一台VPN网关之间通信。




IPsec工作模式即ipsec协议封装模式,主要用于定义在不同工作模式下,数据包交互的封装格式

这里的IPSec包头就是下面介绍的AH头或者ESP头部

在传输模式下,IPSec协议处理模块会在IP报头和高层协议报头之间插入一个IPSec报头。在这种模式下,IP报头与原始IP分组中的IP报头是一致的,只是IP报文中的协议字段会被改成IPSec协议的协议号(50或者51) ,并重新计算IP报头校验和。传输模式保护数据包的有效载荷、高层协议,IPSec源端点不会修改IP报头中目的IP地址,原来的IP地址也会保持明文。传输模式只为高层协议提供安全服务。

传输模式报文封装方式




在传输模式下,以TCP报文为例,原始报文经过传输模式封装后,报文格式如上图所示。

传输模式下,AH协议的完整性验证范围为整个IP报文。ESP协议验证报文的完整性检查部分包括ESP头、传输层协议头、数据和ESP报尾,但不包括IP头,因此ESP协议无法保证IP头的安全。ESP的加密部分包括传输层协议头、数据和ESP报尾。

隧道模式

与传输模式不同,在隧道模式下,AH头或ESP头被插到原始IP头之前,另外生成一个新的报文头放到AH头或ESP头之前,保护IP头和负载。隧道模式主要应用于两台VPN网关之间或一台主机与一台VPN网关之间的通信。




与传输模式不同,在隧道模式下,原始IP分组被封装成一个新的IP报文,在内部报头以及外部报头之间插入一个IPSec报头,原IP地址被当作有效载荷的一部分收到IPSec的保护。另外,通过对数据加密,还可以隐藏原数据包中的IP地址,这样更有利于保护端到端通信中数据的安全性。

隧道模式报文封装方式



在隧道模式下,以TCP报文为例,原始报文经过隧道模式封装后,报文格式如上图所示。

隧道模式下,AH协议的完整性验证范围为包括新增IP头在内的整个IP报文。ESP协议的加密部分包括传输层协议头、数据和ESP报尾。ESP协议验证报文的完整性检查部分包括ESP包头、原IP头、传输层协议头、数据和ESP报尾,但不包括新IP头,因此ESP协议无法保证新IP头的安全。

IPsec封装方式对比




传输模式和隧道模式的区别在于:

从安全性来讲,隧道模式优于传输模式。它可以完全地对原始IP数据包进行验证和加密。隧道模式下可以隐藏内部IP地址,协议类型和端口。

从性能来讲,隧道模式因为有一个额外的IP头,所以它将比传输模式占用更多带宽。

从场景来讲,传输模式主要应用于两台主机或一台主机和一台VPN网关之间通信;隧道模式主要应用于两台VPN网关之间或一台主机与一台VPN网关之间的通信。

当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式。

3、IPsec安全协议

AH和ESP是IPSec的两个主要协议。

认证头(AH , Authentication Header)协议为IP通信提供数据源认证、数据完整性检验和防重放保证。

封装安全载荷(ESP, Encapsulating Security Payload)为IP通信提供完整性检验、认证、加密和防重放保证。

AH和ESP可以单独使用,也可以同时使用。 在实际的组网中,ESP协议使用较多。

IPSec通过AH(Authentication Header)和ESP(Encapsulating Security Payload)这两个安全协议来实现数据报文在网络上传输时的安全性(eg:私有性、完整性、真实性和防重放等)

AH协议介绍

AH(Authentication Header,认证头):

AH提供的安全服务:


AH不提供任何保密性服务:它不加密所保护的数据包。

不论是传输模式还是隧道模式下,AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的TTL和TOS字段)。

AH仅支持认证功能,不支持加密功能。AH在每一个数据包的标准IP报头后面添加一个AH报文头。AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

AH在传输模式下封装




AH在隧道模式下封装



ESP协议介绍

ESP(Encapsulating Security Payload,封装安全有效载荷):



保密服务通过使用密码算法加密 IP 数据包的相关部分来实现。

数据流保密由隧道模式下的保密服务提供

ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证。

ESP同样被当作一种IP协议对待,紧贴在ESP头前的IP头,以协议号50标志ESP头,ESP之前的IP头中的协议字段将是50,以表明IP头之后是一个ESP头。

并且,ESP不仅具备ESP头,还有一个包含有用信息的ESP尾。

在隧道模式中,ESP保护整个IP包,整个原始IP包将会以ESP载荷的方式加入新建的数据包,同时,系统根据隧道起点和终点等参数,建立一个隧道IP头,作为这个数据包的新IP头,ESP头夹在隧道IP头和原始IP包之间,并点缀ESP尾。
而ESP提供加密服务,所以原始IP包和ESP尾以密文的形式出现。

ESP在验证过程中,只对ESP头部、原始数据包IP包头、原始数据包数据进行验证;只对原始的整个数据包进行加密,而不加密验证数据。

p作为一个IPSec头,ESP头中必然包含一个SPI字段。这个值,和IP头之前的目标地址以及协议结合在一起,用来标识特定的安全联盟。SPI本身是个任意数,可以是使用者自己指定,也可交由一些密钥管理技术自行协商决定。需要注意的是, SPI可以经过了验证,但却无法被加密。这是必不可少的一种做法,因为SPI用于SA的标识,指定了采用的加密算法以及密钥,并用于对包进行解密。如果SPI本身已被加了密,我们会碰到一个非常严重的问题——“先有鸡,还是先有蛋”。

ESP在传输模式下封装



ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证。

ESP同样被当作一种IP协议对待,紧贴在ESP头前的IP头,以协议号50标志ESP头,并且,ESP不仅具备ESP头,还有一个包含有用信息的ESP尾。

在隧道模式中,ESP保护整个IP包,整个原始IP包将会以ESP载荷的方式加入新建的数据包,同时,系统根据隧道起点和终点等参数,建立一个隧道IP头,作为这个数据包的新IP头,ESP头夹在隧道IP头和原始IP包之间,并点缀ESP尾。

而ESP提供加密服务,所以原始IP包和ESP尾以密文的形式出现。

ESP在验证过程中,只对ESP头部、原始数据包IP包头、原始数据包数据进行验证;只对原始的整个数据包进行加密,而不加密验证数据。

ESP在隧道模式下封装



ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证。

ESP同样被当作一种IP协议对待,紧贴在ESP头前的IP头,以协议号50标志ESP头,并且,ESP不仅具备ESP头,还有一个包含有用信息的ESP尾。

在隧道模式中,ESP保护整个IP包,整个原始IP包将会以ESP载荷的方式加入新建的数据包,同时,系统根据隧道起点和终点等参数,建立一个隧道IP头,作为这个数据包的新IP头,ESP头夹在隧道IP头和原始IP包之间,并点缀ESP尾。

而ESP提供加密服务,所以原始IP包和ESP尾以密文的形式出现。

ESP在验证过程中,只对ESP头部、原始数据包IP包头、原始数据包数据进行验证;只对原始的整个数据包进行加密,而不加密验证数据。

3、IPsec密钥交换

安全联盟SA

**定义**:安全联盟是通信的IPSec对等体间对某些要素的约定,例如:对等体间使用何种安全协议、需要保护的数据流特征、对等体间传输的数据的封装模式、协议采用的加密算法、验证算法、密钥以及SA的生存周期等。IPSec安全联盟简称IPSec SA。

lSA由三元组来唯一标识 ,包括:

SA是单向的:In和Out方向各需要一个SA。

建立IPSec SA的方式:手工方式和IKE自动协商方式。

IPSec安全传输数据的前提是在IPSec对等体(即IPSec协议的两个端点)之间成功建立安全联盟SA(Security Association)。SA是通信的IPSec对等体间对某些要素的约定,例如:对等体间使用何种安全协议、需要保护的数据流特征、对等体间传输的数据的封装模式、协议采用的加密算法、验证算法,以及用于数据安全转换和传输的密钥以及SA的生存周期等。IPSec安全联盟简称IPSec SA。

SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址和使用的安全协议号(AH或ESP)。其中,SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。

安全联盟是单向的,在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。另外,SA的个数还与安全协议相关。如果您只使用AH或ESP来保护两个对等体之间的流量,则对等体之间就有两个SA,每个方向上一个。如果对等体同时使用了AH和ESP,那么对等体之间就需要四个SA,每个方向上两个,分别对应AH和ESP。

建立IPSec SA的方式:手工方式和IKE自动协商方式。二者的主要区别为:

密钥生成方式不同:手工方式下,建立SA所需的全部参数,包括加密、验证密钥,都需要用户手工配置,也只能手工刷新,在中大型网络中,这种方式的密钥管理成本很高;IKE方式下,建立SA需要的加密、验证密钥是通过DH算法生成的,可以动态刷新,因而密钥管理成本低,且安全性较高。

生存周期不同:手工方式建立的SA,一经建立永久存在;IKE方式建立的SA,其生存周期由双方配置的生存周期参数控制。

IKE介绍

因特网密钥交换IKE(Internet Key Exchange)协议建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP(User Datagram Protocol)的应用层协议。它为IPSec提供了自动协商密钥、建立IPSec安全联盟的服务,能够简化IPSec的使用和管理,大大简化IPSec的配置和维护工作。

用IPSec保护一个IP包之前,必须先建立一个安全联盟(SA)。IPSec的安全联盟可以通过手工配置的方式建立。但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPSec对SA进行协商。

密钥管理协议ISAKMP定义了消息交换的体系结构,包括两个IPSec对等体间分组形式和状态转变(定义封装格式和协商包交换的方式)。

IKE用途

IKE为IPSec协商生成密钥,供AH/ESP加解密和验证使用。

在IPSec通信双方之间,动态地建立安全联盟(SA:Security Association),对SA进行管理和维护。



IKE是UDP之上的一个应用层协议,是IPSec的信令协议。IKE为IPSec协商生成密钥,供AH/ESP加解密和验证使用。AH协议和ESP协议有自己的协议号,分别是51和50。



IKE的安全机制

IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPSec SA。



IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPSec SA:

- 身份认证:身份认证确认通信双方的身份(对等体的IP地址或名称)。
- 身份保护:通信双方的身份数据在密钥产生之后加密传送,实现了对身份数据的保护。
- DH(Diffie-Hellman)密钥交换算法:IKE采用DH(Diffie-Hellman)算法在不安全的网络上安全地分发密钥。这种方式配置简单,可扩展性好,特别是在大型动态的网络环境下此优点更加突出。同时,通信双方通过交换密钥交换材料来计算共享的密钥,即使第三方截获了双方用于计算密钥的所有交换数据,也无法计算出真正的密钥。
- 完善的前向安全性PFS(Perfect Forward Secrecy):PFS是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。PFS是由DH算法保障的。

IKE的安全机制-身份认证

确认通信双方的身份(对等体的IP地址或名称),包括:

- 预共享密钥PSK(pre-shared key)认证。
- 数字证书RSA(rsa-signature)认证。
- 数字信封认证。

对于预共享密钥认证方法,当有1个对等体对应多个对等体时,需要为每个对等体配置预共享的密钥。该方法在小型网络中容易建立,但安全性较低。使用数字证书安全性高,但需要CA来颁发数字证书,适合在大型网络中使用。而数字信封认证用于设备需要符合国家密码管理局要求时使用,此认证方法只能在IKEv1的主模式协商过程中支持。

IKE支持的认证算法有:MD5、SHA-1、SHA2-256、SHA2-384、SHA2-512、AES-XCBC-MAC-96、SM3。

身份认证确认通信双方的身份(对等体的IP地址或名称),包括预共享密钥PSK(pre-shared key)认证、数字证书RSA(rsa-signature)认证和数字信封认证。

- 在预共享密钥认证中,认证字作为一个输入来产生密钥,通信双方采用共享的密钥对报文进行Hash计算,判断双方的计算结果是否相同。如果相同,则认证通过;否则认证失败。

- 在数字证书认证中,通信双方使用CA证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(自己持有)。发送方对原始报文进行Hash计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行Hash计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。

- 在数字信封认证中,发送方首先随机产生一个对称密钥,使用接收方的公钥对此对称密钥进行加密(被公钥加密的对称密钥称为数字信封),发送方用对称密钥加密报文,同时用自己的私钥生成数字签名。接收方用自己的私钥解密数字信封得到对称密钥,再用对称密钥解密报文,同时根据发送方的公钥对数字签名进行解密,验证发送方的数字签名是否正确。如果正确,则认证通过;否则认证失败。

IKE的安全机制-身份保护

身份数据在密钥产生之后加密传送,实现了对身份数据的保护。

lPSec工作过程中涉及数据加密和协议消息加密两种加密情况。

IPSec采用对称加密算法对数据进行加密和解密。对称加密算法是指数据发送方和接收方使用相同的密钥进行加密、解密。具体加密和解密的过程如上图所示。

用于加密和解密的对称密钥可以手工配置,也可以通过IKE协议自动协商生成。



IKE的安全机制- DH (Diffie-Hellman) 密钥交换算法

DH被称为公共密钥交换方法,它用于产生密钥材料,并通过ISAKMP消息在发送和接收设备之间进行密钥材料交换。然后,两端设备各自计算出完全相同的对称密钥。该对称密钥用于计算加密和验证的密钥。在任何时候,通信双方都不交换真正的密钥。DH密钥交换是IKE的精髓所在。但DH没有提供双方身份的任何信息,不能确定交换的数据是否发送给合法方,第三方可以通过截获的数据与通信双方都协商密钥、共享通信,从而获取和传递信息,所以,IKE还需要身份认证来对对等体身份进行认证。

发起方和响应方利用ISAKMP消息的Key Exchange和nonce载荷交换彼此的密钥材料。

pKey Exchange用于交换DH公开值。

pnonce用于传送临时随机数。

由于DH算法中IKE Peer双方只交换密钥材料,并不交换真正的共享密钥,即使黑客窃取了DH值和临时值也无法计算出共享密 钥,这一点正是DH算法的精髓所在。从抓包中可以看到IKE Peer双方交换密钥材料,以消息3为例:


IKE的安全机制-完美向前保密PFS

短暂的一次性密钥系统称为“完美向前保密”(Perfect Forward Secrecy,PFS)。

如果加密系统中有一个秘钥是所有对称密钥的衍生者(始祖),便不能认为那是一个“完美向前保密”的系统。在这种情况下,一旦破解了根密钥,便能拿到其它衍生的所有密钥,受那些密钥保护的全部数据都会曝光。=

在IPSec里,PFS是通过在IPSec SA协商阶段重新进行一次DH交换来实现的。PFS是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。IPSec SA的密钥是从IKE SA的密钥导出的,由于一个IKE SA协商生成一对或多对IPSec SA,当IKE的密钥被窃取后,攻击者将可能收集到足够的信息来导出IPSec SA的密钥,PFS通过执行一次额外的DH交换,保证IPSec SA密钥的安全。

IKE协议版本

IKE协议分IKEv1和IKEv2两个版本,总体区别如下:

IKEv1

IKEv1使用两个阶段为IPSec进行密钥协商并建立IPSec SA。

- 第一阶段,通信双方协商和建立IKE本身使用的安全通道,建立一个IKE SA,有那种协商模式:主模式和野蛮模式。
- 第二阶段,利用这个已通过了认证和安全保护的安全通道,建立一对IPSec SA,产生真正可以用来加密数据流的密钥,用于最终的IP数据安全传送。

IKEv2

IKEv2简化了协商过程。

在一次协商中可直接产生IPSec的密钥,生成IPSec SA。

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
【 社区to talk】
安全效果
干货满满
技术笔记
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力

本版版主

10
17
3

发帖

粉丝

关注

124
74
30

发帖

粉丝

关注

26
8
0

发帖

粉丝

关注

70
36
1

发帖

粉丝

关注

6
14
0

发帖

粉丝

关注

18
10
5

发帖

粉丝

关注

本版达人