https://info.support.huawei.com/info-finder/encyclopedia/zh/IPsec.html
https://cloud.tencent.com/developer/article/1824924
虚拟专用网络:虚拟专用网络有多种类型,常见的有IpsecVpn ,MplsVpn .
Ipsec Vpn 可以企业自己搭建,MPLSVPN 需要向运营商购买。
IpsecVpn 基于ip包的路由,中间有多个路径对流量中转,MPLS VPN 基于路径中的标签进行流量中转,路径相对单一,流量转发的速度相对IPSECVPN 比较快。
IPSECVPN 是一个协议簇不是一个协议,好比OSI 模型是一个开放的框架,模型包含了为之服务的各种协议去实现IPsec要完成的功能。
- IPsec 要完成的功能的:
- 数据的完整性( Data Integrity)
- 数据的私密性(Data Confidentiality)
- 数据源认证(Data Origin Authentication)
- 防止中间人攻击(Man-in-the-Middle)
- 防止数据重放(Anti-Replay)
- 为IPsec 服务的协议有:
- IKE (Internet Key Exchange)
- ESP (Encapsulating Security Protocol)
- AH (Authentication Header)
IKE 、ESP、AH协议
认证:IKE 架构考虑到双方合法性,会在VPN对等体(Peer)之间采用认证机制,确保会话是真正的对等体而不是第三方,认证的方式有2种:
- Pre-Share Keys(PSK)预共享密钥的方式 :事先协商一个暗号双方暗号配对正确就说明是要接头的人。
- PKI (Public Key Infrastructure Using X.509 Digital Certificates) 基于PKI的证书认证 咋签名呢?当然是使用私钥进行签名,私钥只有我自己有,所以如果对方能用我的数字证书里面的公钥解开,就说明我是我。
对称密钥的产生算法:IKE使用了DH Diffie-Hellman 算法,DH 目前有3种密钥长度可选:Group1 768bit长度、Group2 1024bit 长度、Group5 1536bit 长度。
数据加密:ESP、AH(也就是IPSEC 支持的安全协议)
- AH 只能保证数据的完成性,不能实现数据加密
- ESP 能够对数据进行加密和哈希保证了数据的机密性和完整性。
IPSEC 建立 的2个过程:
- 第1个阶段:建立IKE 自己的SA (Security Association) 称作安全(联盟,会话)都可以。SA 并不是隧道,是一套约定,规则。这个 SA 用来维护一个通过身份认证和安全保护的通道,为第二个阶段提供服务。在这个阶段,通过 DH(Diffie-Hellman)算法计算出一个对称密钥 K。
- 但是这个过程,对称密钥从来没有在通道上传输过,只传输了生成密钥的材料,通过这些材料,截获的人是无法算出的。
- 第2个阶段:建立IPSEC SA 在这个 SA 里面,有了对称密码K ,双方会生成一个随机的对称密钥 M,由 K 加密传给对方,然后使用 M 进行双方接下来通信的数据。对称密钥 M 是有过期时间的,会过一段时间,重新生成一次,从而防止被破解。
- IPSEC 对密钥安全和数据安全是分开对待的,所以SA 有2个一个是IKE SA,一个是IPSEC SA ;IKE SA 保护的对象是密钥,IPSEC SA 保护的对象是数据。
- IKE SA 的生存期(LifeTime) 是一天(86400秒)默认没有流量限制。
- 用户的数据流量是在IPSEC SA上传递的。而不是在IKE SA ;每个IPSEC SA 对等体都有一对IPSEC SA ,一进一出方向上各一个。存储在本地的SA Database 中。Ipsec Sa 的LifeTime 是3600秒。默认流量限制是4.608Gbyte.
- SA 的组成:这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址和安全协议号。其中,SPI是用于标识SA的一个32比特的数值,它在AH和ESP头中传输。
- SA的生成方式:
- 手工方式:通过命令行配置SA的所有信息,扩展能力弱
- IKE 自动协商方式:对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。该方式的配置相对比较简单,扩展能力强
- SA 的老化机制:
- 手工方式建立的SA 永不老化。
- IKE 建立的SA 有生存时间,且有2种生存时间
- 基于时间的生存时间,定义了一个SA从建立到删除的时间;
- 基于流量的生存时间,定义了一个SA允许处理的最大流量。
- 可同时存在基于时间和基于流量两种方式的SA生存时间,只要其中一种到达,就会删除旧的SA。
- IPSEC 配置思路:
- 了解上述的2个阶段,配置就有了基本的思路
- 第一阶段:(也就是协商IKE SA规则)
- 规定加密算法
- 规定认证方式
- 规定HASH算法
- 规定DH 算法
- 第二阶段:(协商IPSEC SA规则)
- 定义对等体要保护的流量(IPsec隧道可以保护匹配ACL(Access Control List,访问控制列表)的报文、隧道接口上的报文和IPv6路由协议报文)
- 定义用来保护数据的安全协议
- 定义传输模式
- 定义数据连接的生存周期及密钥刷新的方式
IPSEC 的封装模式:
- IPsec 支持的封装模式有2种:传输模式和隧道模式
- 传输模式:若要求端到端的安全保障,即数据包进行安全传输的起点和终点为数据包的实际起点和终点时,才能使用传输模式。通常传输模式用于保护两台主机之间的数据。
- 这种模式下,封装后的IP数据包有内外两个IP头,其中的内部IP头为原有的IP头,外部IP头由提供安全服务的设备添加。在安全保护由设备提供的情况下,数据包进行安全传输的起点或终点不为数据包的实际起点和终点时,通常隧道模式用于保护两个安全网关之间的数据
传输模式
隧道模式
这种点对点的基于 IP 的 VPN,能满足互通的要求,但是速度往往比较慢,这是由底层 IP 协议的特性决定的。IP 不是面向连接的,是尽力而为的协议,每个 IP 包自由选择路径,到每一个路由器,都自己去找下一跳,丢了就丢了,是靠上一层 TCP 的重发来保证可靠性。
IPSEC 只适合单播流量通过,如果站点之间有组播,广播流量就不适合了(例如路由交换)