IPsec VPN工作原理详解

我们知道VPN相当于是基于Internet上建立了一个虚拟的专用通道,和物理专线还是不一样,数据其实还是通过Internet在传输的,那这样还是不能够保证这些私有的数据传输安全,所以VPN是需要有一个保护机制的,最常用的就是IPsec,IPsec是IP security的缩写,即IP安全协议 。它不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合 。

IPsec VPN工作原理详解

文章插图
 
IPSec是一个框架性架构,具体由两类协议组成:
  • AH协议(Authentication Header,使用较少):可以同时提供数据完整性确认、数据来源确认、防重放等安全特性,不具备加密功能 。
  • ESP协议(Encapsulated Security Payload,使用较广):可以同时提供数据完整性确认、数据加密、防重放等安全特性,具备加密功能 。
这些部分都可以采用多种算法来实现 。我们来看一下IPsec主要涉及到的一些协议和密码算法是怎么来满足信息安全性的 。关于这些算法的原理内容这里就细说了,有兴趣可以去看一看密码学 。
1. 通过加密把数据从明文变成无法读懂的密文,从而确保数据的私密性 。
IPsec VPN工作原理详解

文章插图
 
如果加密密钥与解密密钥是相同的称为对称加密,由于对称加密的运算速度比较快,所以IPsec使用对称加密算法来加密数据 。
主要有:
  • DES(Data Encryption Standard)数据加密标准,是一种应用比较广泛的传统加密算法标准 。
  • 3DES三重数据加密标准,相当于是对每个数据块执行三次标准的DES加密算法 。比DES更加安全 。
  • AES(Advanced Encryption Standard)高级加密标准,它的安全性机制高于DES,3DES 。
2、通过对数据进行hash运算,产生类似于指纹的数据摘要,以保证数据的完整性 。
IPsec VPN工作原理详解

文章插图
 
主要是两种hash算法:
  • MD5:使用128位共享安全秘钥和变长消息组合在一起运行输出一个128位的哈希值,该值被附加在原始消息的后面发往远端 。
  • SHA-1:使用160位共享安全密钥和变成消息组合一起运行输出160位哈希值,该值被附加在原始消息的后面发往远端 。SHA-1安全性高于MD5 。
对称加密和hash都是要求通信双方具有相同的密钥,那怎么在双方之间安全地传递密钥呢?
  • DH(Diffe-Hellman)算法:一种确保共享密钥安全穿越不安全网络的方法 。使用DH算法建立只有协商两端才知道的一个共享安全密钥 。
3、通过身份认证保证数据的真实性,确定数据确实是由特定的对端发出的 。
IPsec VPN工作原理详解

文章插图
 
常用的身份认证方式:
  • Pre-shared key预共享密钥:指通信双方在配置时预先手工输入相同的密钥 。
IPSec除了一些协议原理外,我们更关注的是协议中涉及到方案制定的内容:
  • 兴趣流:IPSec是需要消耗资源的保护措施,并非所有流量都需要IPSec进行处理,而需要IPSec进行保护的流量就称为兴趣流,最后协商出来的兴趣流是由发起方和响应方所指定兴趣流的交集,如发起方指定兴趣流为192.168.1.0/24<>10.0.0.0/8,而响应方的兴趣流为10.0.0.0/8<>192.168.0.0/16,那么其交集是192.168.1.0/24<>10.0.0.0/8,这就是最后会被IPSec所保护的兴趣流 。
  • 发起方:IPSec会话协商的触发方,IPSec会话通常是由指定兴趣流触发协商 。
  • 响应方: IPSec会话协商的接收方,响应方是被动协商,响应方可以指定兴趣流,也可以不指定(完全由发起方指定) 。
  • 发起方和响应方协商的内容主要包括:双方身份的确认和密钥种子刷新周期、AH/ESP的组合方式及各自使用的算法,还包括兴趣流、封装模式等 。
  • SA(Security Assocaition)安全关联:发起方、响应方协商的结果就是SA 。
具体执行协商任务的协议叫做互联网密钥交换协议IKE(Internet Key Exchange) 。我们以最常见的IPSec隧道模式为例,解释一下IPSec的协商过程:
IPsec VPN工作原理详解

文章插图
 
  1. 发起方定义的兴趣流是源192.168.1.0/24目的10.0.0.0/8,所以在接口发送发起方内网PC发给响应方内网PC的数据包,能够得以匹配 。
  2. 满足兴趣流条件,在转发接口上检查SA不存在、过期或不可用,都会进行协商,否则使用当前SA对数据包进行处理 。


    推荐阅读