IPsec (Internet Protocol Security)是开放的框架结构,在IP层通过使用摘要(Md5)算法和加密算法对数据包进行安全传输,保证数据安全传输的基本三要素,私密性、完整性、真实性。
IPsec是为了提高IP层数据的安全,vpn则是在安全特性下为了解决具体的实际问题而产生的技术。PS:加密算法在国密算法系列会主要讲解,本系列不在重复介绍。
IPsec框架由IPsec安全协议、数据加密、数据摘要、对称密钥交换四部分组成。
IPsec安全协议(可使用算法):ESP、AH
数据加密:DES、SM1、SM4
数据摘要:Md5、SM3
对称密钥交换:DH1、DH2
AH:Authentication Header 鉴别头,AH安全协议因为不能提供数据的加密,所以使用的较少。
ESP:Encapsulated Security Payload 封装安全载荷,可以提供数据加密等一系列安全策略,目前主要使用此协议。
IPsec对IP层数据重新封装的方式分为两种,传输模式和隧道模式。
传输模式:在源IP层数据包的基础上,不改变原IP头,因为IP地址不进行改变,所以应用场景主要是主机与主机间。
隧道模式:目前商业中使用IPsec vpn技术常用的封装方式,在源IP层数据包基础上,增加新的IP头,因为IP地址可以进行更改,所以应用场景主要是用于私网与私网上的设备通过公网进行通信。
IPsec vpn建立需要通信的两端设备交换参数信息,交换的内容称为安全联盟SA(Security Association),通过三元组进行信息标识,安全参数索引、目的ip地址、安全协议号。
SA的配置方式分为手动配置和IKE自动配置SA和密钥交换。
IKE两个阶段自动连接两端通信设备,第一阶段确保通信双方建立一条身份验证通过以及数据安全保护的通道。第二阶段是传递通信双方用于数据加密的对称密钥。
第一阶段通道建立有两种模式,分别是主模式和野蛮模式。其中主模式协商只使用ip地址,协商时间慢,但是安全性高。野蛮模式还可以使用用户名,协商时间快,安全性低。
第二阶段协商IPsec的安全参数,建立通信的安全通道。包括数据加密算法、Hash算法、安全协议、封装模式、DH算法等。