IPSec VPN基本原理详解

IPSec VPN是目前VPN技术中点击率非常高的一种技术 , 同时提供VPN和信息加密两项技术 , 这一期专栏就来介绍一下IPSec VPN的原理 。
IPSec VPN应用场景

IPSec VPN基本原理详解

文章插图
 
IPSec VPN的应用场景分为3种:
1. Site-to-Site(站点到站点或者网关到网关):如弯曲评论的3个机构分布在互联网的3个不同的地方 , 各使用一个商务领航网关相互建立VPN隧道 , 企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联 。
2. End-to-End(端到端或者PC到PC): 两个PC之间的通信由两个PC之间的IPSec会话保护 , 而不是网关 。
3. End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护 。
VPN只是IPSec的一种应用方式 , IPSec其实是IP Security的简称 , 它的目的是为IP提供高安全性特性 , VPN则是在实现这种安全特性的方式下产生的解决方案 。IPSec是一个框架性架构 , 具体由两类协议组成:
1. AH协议(Authentication Header , 使用较少):可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法(单向Hash函数)MD5和SHA1实现该特性 。
2. ESP协议(Encapsulated Security Payload , 使用较广):可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密 , 使用MD5或SHA1来实现数据完整性 。
为何AH使用较少呢?因为AH无法提供数据加密 , 所有数据在传输时以明文传输 , 而ESP提供数据加密;其次AH因为提供数据来源确认(源IP地址一旦改变 , AH校验失败) , 所以无法穿越NAT 。当然 , IPSec在极端的情况下可以同时使用AH和ESP实现最完整的安全特性 , 但是此种方案极其少见 。
IPSec封装模式介绍完IPSec VPN的场景和IPSec协议组成 , 再来看一下IPSec提供的两种封装模式(传输Transport模式和隧道Tunnel模式)
IPSec VPN基本原理详解

文章插图
 
上图是传输模式的封装结构 , 再来对比一下隧道模式:
IPSec VPN基本原理详解

文章插图
【IPSec VPN基本原理详解】 
可以发现传输模式和隧道模式的区别:
1. 传输模式在AH、ESP处理前后IP头部保持不变 , 主要用于End-to-End的应用场景 。
2. 隧道模式则在AH、ESP处理之后再封装了一个外网IP头 , 主要用于Site-to-Site的应用场景 。
从上图我们还可以验证上一节所介绍AH和ESP的差别 。下图是对传输模式、隧道模式适用于何种场景的说明 。
IPSec VPN基本原理详解

文章插图
 
从这张图的对比可以看出:
1. 隧道模式可以适用于任何场景
2. 传输模式只能适合PC到PC的场景
隧道模式虽然可以适用于任何场景 , 但是隧道模式需要多一层IP头(通常为20字节长度)开销 , 所以在PC到PC的场景 , 建议还是使用传输模式 。
为了使大家有个更直观的了解 , 我们看看下图 , 分析一下为何在Site-to-Site场景中只能使用隧道模式:
IPSec VPN基本原理详解

文章插图
 
如上图所示 , 如果发起方内网PC发往响应方内网PC的流量满足网关的兴趣流匹配条件 , 发起方使用传输模式进行封装:
1. IPSec会话建立在发起方、响应方两个网关之间 。
2. 由于使用传输模式 , 所以IP头部并不会有任何变化 , IP源地址是192.168.1.2 , 目的地址是10.1.1.2 。
3. 这个数据包发到互联网后 , 其命运注定是杯具的 , 为什么这么讲 , 就因为其目的地址是10.1.1.2吗?这并不是根源 , 根源在于互联网并不会维护企业网络的路由 , 所以丢弃的可能性很大 。
4. 即使数据包没有在互联网中丢弃 , 并且幸运地抵达了响应方网关 , 那么我们指望响应方网关进行解密工作吗?凭什么 , 的确没什么好的凭据 , 数据包的目的地址是内网PC的10.1.1.2 , 所以直接转发了事 。
5. 最杯具的是响应方内网PC收到数据包了 , 因为没有参与IPSec会话的协商会议 , 没有对应的SA , 这个数据包无法解密 , 而被丢弃 。


推荐阅读