本帖最后由 SANGFOR_HZ 于 2022-10-21 22:49 编辑
IPsec VPN详细讲解以及应用案例
一、IPsec 的简介
IPsec(IP Security)是IETF 制定的三层隧道加密协议,它为Internet 上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。特定的通信方之间在IP 层通过加密与数据源认证等方式,提供了以下的安全服务: ① 数据机密性(Confidentiality):IPsec 发送方在通过网络传输包前对包进行加密。 ② 数据完整性(Data Integrity):IPsec 接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。 ③ 数据来源认证(Data Authentication):IPsec 在接收端可以认证发送IPsec 报文的发送端是否合法。 ④ 防重放(Anti-Replay):IPsec 接收方可检测并拒绝接收过时或重复的报文。
IPsec 具有以下优点: ① 支持 IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE 建立和维护SA 的服务,简化了IPsec 的使用和管理。 ② 所有使用 IP 协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。 ③ 对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP 数据包的安全性,可以有效防范网络攻击。
二、IPsec的两类协议
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提供了两种封装模式:传输模式(Transport)的封装和隧道模式(Tunnel)的封装。 1、传输模式(Transport)的封装(AH和ESP的封装)形式,如图1所示:
2、隧道模式(Tunnel)的封装(AH和ESP的封装)形式,如图2所示:
图2:隧道模式的封装形式
从以上两张图可以看出传输模式和隧道模式的区别: ①传输模式在AH、ESP处理前后IP头部保持不变,主要用于End-to-End(端到端或者PC到PC)的应用场景。 ②隧道模式则在AH、ESP处理之后再封装了一个外网IP头,主要用于Site-to-Site(站点到站点或者网关到网关)的应用场景。
以下有个图是对传输模式、隧道模式适用于何种场景的详细说明,如图3所示:
图3:传输模式、隧道模式使用的场景
从上图的对比可以看出:①隧道模式可以适用于任何场景,②传输模式只能适合PC到PC的场景。隧道模式虽然可以适用于任何场景,但是隧道模式需要多一层IP头(通常为20字节长度)开销,所以在PC到PC的场景,建议还是使用传输模式。
为了使大家有个更直观的了解,我们看看图4,分析一下为何在Site-to-Site场景中只能使用隧道模式:
图4:为何在Site-to-Site场景中只能使用隧道模式
如图4所示,如果发起方内网PC发往响应方内网PC的流量满足网关的兴趣流匹配条件,发起方使用传输模式进行封装:
①IPSec会话建立在发起方、响应方两个网关之间。
②由于使用传输模式,所以IP头部并不会有任何变化,IP源地址是192.168.1.2,目的地址是10.1.1.2。
③这个数据包发到互联网后,其命运注定是杯具的,为什么这么讲,就因为其目的地址是10.1.1.2吗?这并不是根源,根源在于互联网并不会维护企业网络的路由,所以丢弃的可能性很大。
④即使数据包没有在互联网中丢弃,并且幸运地抵达了响应方网关,那么我们指望响应方网关进行解密工作吗?凭什么,的确没什么好的凭据,数据包的目的地址是内网PC的10.1.1.2,所以直接转发了事。
⑤最杯具的是响应方内网PC收到数据包了,因为没有参与IPSec会话的协商会议,没有对应的SA,这个数据包无法解密,而被丢弃。
我们从上面五点可以很好的解释了在Site-to-Site情况下为什么不能使用传输模式的原因。并且提出了使用传输模式的充要条件:兴趣流必须完全在发起方、响应方IP地址范围内的流量。比如在图中,发起方IP地址为6.24.1.2,响应方IP地址为2.17.1.2,那么兴趣流可以是源6.24.1.2/32、目的是2.17.1.2/32,协议可以是任意的,倘若数据包的源、目的IP地址稍有不同,对不起,请使用隧道模式。
四、IPsec的协商
IPsec的协商实质就是怎样建立起安全联盟(SA),这里有以下两种协商方式建立 SA:
①手工方式(manual)配置比较复杂,创建SA 所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE 而单独实现IPsec 功能。
②IKE 自动协商(isakmp)方式相对比较简单,只需要配置好IKE 协商安全策略的信息,由IKE自动协商来创建和维护SA。
我们在这以最常见的IPSec隧道模式为例,解释一下IPSec的协商过程,如图5所示:
图5:IPsec的协商过程
图5描述了由兴趣流触发的IPSec协商流程,原生IPSec并无身份确认等协商过程,在方案上存在诸多缺陷,如无法支持发起方地址动态变化情况下的身份确认、密钥动态更新等。伴随IPSec出现的IKE(Internet Key Exchange)协议专门用来弥补这些不足:
①发起方定义的兴趣流是源192.168.1.0/24目的10.0.0.0/8,所以在接口发送发起方内网PC发给响应方内网PC的数据包,能够得以匹配。
②满足兴趣流条件,在转发接口上检查SA不存在、过期或不可用,都会进行协商,否则使用当前SA对数据包进行处理。
③协商的过程通常分为两个阶段,第一阶段是为第二阶段服务,第二阶段是真正的为兴趣流服务的SA,两个阶段协商的侧重有所不同,第一阶段主要确认双方身份的正确性,第二阶段则是为兴趣流创建一个指定的安全套件,其最显著的结果就是第二阶段中的兴趣流在会话中是密文,除此之外IPSec的中安全性还体现在第二阶段SA永远是单向的,我可以从图6看出,如图6所示:
图6:第二阶段SA的方向
从图6可以发现,在协商第二阶段SA时,SA是分方向性的,发起方到响应方所用SA和响应放到发起方SA都是单独协商的,这样做的好处在于即使某个方向的SA被破解并不会波及到另一个方向的SA,这样就起到了安全性的作用。
五、IPsec VPN的应用案例
案例1:
案例2:
|