谈到IPSec 隧道还得回顾一下隧道的基础概念(当然我们平时爬出去所用的也是这个)。
隧道全称:专用虚拟网,依靠ISP和NSP在公共基础网络(也就是互联网)上构建的安全通信网络,这条专线是逻辑上的,并不是物理的。
专用:可以根据客户的需求定制符合自身需求的网络
虚拟:用户不需要拥有实际的长途数据线路,直接在公共基础网络的基础上构建的。

那么为什么这么多种类的,比如GRE,L2TP等,要大力推举IPSec呢。比如说Gre的不支持用户的身份认证(第一道门都没有,如果黑客进入,连验证都不需要了),只会对数据进行简单的加密的数据验证(”简单“两个字因为很能说明问题)。IPSec 也就是基于这两点进行改正的,支持用户身份认证,提供复杂的数据加密和数据验证。

IPSec是一组基于网络层,应用密码学的安全通信协议簇。他的工作原理主要基于两种工作模式,两种通信保护协议和**交换管理协议(IKE协商)。
IPSec隧道一、工作模式:
1.传输模式:通常适用于主机和主机之间通信。
封装模式:不改变原IP头部,在原数据包头后添加一个IPSec包头,将原来的数据封装成被保护的数据。
IPSec隧道
有很大的缺陷,不添加新的头部,所以他只能建立在原先已经可以通信的基础上进行。(局域网—互联网—局域网)上就不可以进行通信,原始包头是内网IP,不改变原始包头的情况下不能在公网上进行传递。那么有人可能会疑问了,我经过NAT地址转换就能通信了。可是IP头部不光有源IP,还有目的IP,NAT地址转换也只能改源IP地址,目的IP地址还是不能改变。所以传输模式在使用前得先解决设备之间的连通性。

2.隧道模式:经常用于私网与私网之间通过公网进行通信
封装模式:新增一个IP包头,在新IP包头后面添加一个IPSec包头,将原来的数据包封装成被保护的数据
IPSec隧道
隧道模式就能解决传输模式的弊端,添加了一个新的IP包头(等于可以修改目的IP),解决需要事前需要保证数据的连通性。

二、通信保护协议:
1.AH协议(Authentication Header,认证包头)
优点:提供数据的完整性检验、数据源认证和抗重放攻击。
缺点:不提供数据的加密,只能保证数据不被篡改。
注:无论是传输模式还是隧道模式下,AH提供对数据包保护时,保护的都是整个IP数据包

AH在传输模式下封装:
IPSec隧道
AH在隧道模式下封装:
IPSec隧道
PS:这里存在一个私网基于公共基础网络和私网通信的痛点,所以不能进行NAT穿越(下面在讲是什么问题,怎么解决)

2.ESP(Encapsulating Security Payload,封装有效载荷)
优点:提供数据完整性检验、数据源认证、抗重放攻击、数据保密和有限的数据流保护
注:数据保密和数据流保密是两个概念。数据保密是通过密码算法加密IP数据包相关部分来实现。数据流保密是由隧道模式下的保密服务提供。可能听起来比较绕,下面会有封装图。具体在封装图内讲解。

ESP在传输模式下封装:
IPSec隧道由于传输模式不光和产生新的IP头部,所以ESP只会对IP数据部分进行加密。对ESP头和IP加密部分还有填充部分进行哈希计算形成摘要,用于检测数据的完整性。将摘要放置数据包的最后面

ESP在隧道模式下封装:
IPSec隧道
由于隧道模式会产生新的IP头部,所以ESP会讲原始IP数据包进行加密。对ESP头部和IP加密部分还有填充部分进行哈希计算形成摘要,用于检测数据的完整性,将摘要放置在数据包的最后面。

看完两种封装模式应该就能发现其中的不同之处了把,传输模式下ESP只会加密IP数据部分,隧道模式下,ESP会对IP数据包进行加密,所以数据保密和数据流的保密的具体区别就在这。

AH和ESP的对比:
IPSec隧道
对于NAT穿越在详细讲解。有些人考虑会想到前面讲解NAT穿越只是传输模式不支持NAT穿越。那和AH又有什么关系呢。隧道模式支持NAT穿越,我采用AH+隧道模式不就可以了嘛。这还是和AH协议的特性有关。AH协议会将整个数据包进行哈希计算生成摘要。所以在进行NAT穿越时,改变原始IP头部。但是对端设备接收到这个数据包时,进行摘要对比,发现原本的IP和现在经过NAT转换的IP不一致,所以认为是经过篡改的信息。直接丢弃。ESP为什么可以解决这个问题呢,还是和ESP进行哈希计算时不对新IP头部进行操作,所以任你新的IP头部怎么变化都和我没有关系

三、**交换管理协议(IKE协商)
在这个阶段会进行相对应的安全保护协商,那么协商的具体内容是什么呢,其实是SA(安全联盟)。SA是由一个三元组来唯一标识的:安全参数索引(SPI)、目的IP地址和安全协议号(ESP或者AH)。SA是单向的,所以需要存在两个SA(入站数据和出站数据)。

IKE协商会有两个阶段:
***1.***第一阶段通信彼此双方建立一个已经通过身份验证和安全保护的通道。此阶段的交换简历一个ISAKMP安全联盟(也可成为IKE SA)。第一阶段有两种协商模式。(听起来可能很绕,后面会在总结概括以下)

主模式协商:
IPSec隧道
IPSec隧道
第一次交换(消息1和2):进行策略协商。第一个数据报文中,发送发会发起一个包括Ci(发送方Cookie)和SA负载(五元组包括:数据加密算法、哈希散列类型、身份认证方式、DH组和SA存活周期)。响应者接收到数据报文会进行回复,报文内含有Cr(响应者Cookie),协商完SA负载(利用发送方的五元组和自己的进行写协商)
第二次交换(消息3和4):交换DH算法(用于生成加***)
第三次交换(消息5和6):对等体验证,前两次交换就是为了第三次的交换做准备,第1-2包交换为认证做好策略。第3-4包是为了保护5-6数据包的安全算法提供**资源。验证通过后即通道建立完成(适用第一次交换协商的策略)。

野蛮模式协商:
IPSec隧道和主模式不同,野蛮模式只发送三次报文。
在第一条信息内,发送者发送5源组,DH值(不再是DH组)以及身份信息(所以身份信息是明文传送的)。
第二条信息内,如果相应者接收发起者的建立,则会回应一个选登的5原组,DH值,身份信息以及认证散列值(用于验证是响应方发的信息)。
第三条信息内,发送方接收到响应方的策略信息和hash值后,进行验证如果通过验证,则将自身的hash值用计算出的**进行加密后传输给响应方,证明发送方的身份

主模式和野蛮模式做对比:
IPSec隧道
野蛮模式只发送3条信息,所以发送速度更快
身份ID:主模式只能使用IP地址作为身份ID,野蛮模式可以使用IP地址或者手动指定生成身份ID。
当设备存在多个对等体时,必须首先查找到对等体的预共享**,而预共享**是基于ID来确定的,主模的ID信息只在第3次交换(5-6)的报文才能发送,所以就会形成矛盾(我要有预共享**才能发送ID,我需要ID才能生成预共享**),但是当只有一个对等体时,主模式就能确定对端的ID了。
而野蛮模式则没有这个后顾之忧,野蛮模式会在产生预共享**直接就交互(第1、2条信息)。但是野蛮模式也有一个相对应的缺点,即明文发送ID信息,也造成了相应的隐患。

使用场景区别:
与主模式相比,野蛮模式加快的协商的速度,但是没有对身份信息进行保护,所以野蛮模式运用于一些特定的场景
1.IPSec隧道中存在NAT设备(主模式的IP必须固定)
2.当发起者的IP不固定或者无法预知(存在多个对等体),双方都希望采用预共享**(需要ID生成)生成IKE SA
3.希望更快的进行协商

***2.***双方进行协商IPSec安全参数,用于进行传输数据的加密。第一阶段所做的一切准备都是为了第二阶段做铺垫,第二阶段需要协商产生IPSec SA(用于数据加密),IPSec SA的产生需要第一阶段的IKE SA的保护。如果不对IPSec SA的产生进行加密保护(IPSec SA泄露),那么后续采用IPSec SA加密的数据都是等于透明。
第二阶段只有一种模式:快速模式(和野蛮模式类似,但是安全,因为基于IKE SA保护)。
第一条信息由发起者告知响应者所需要的一些加密参数,第二条信息响应者回应发起者使用的加密参数,并发送hash值(提供响应者的在场证据)。第三条信息发起者发送hash值(提供发起者的在场证明)。

所以为什么说第一阶段是协商产生通道呢?因为在通道内传输的数据是安全的,如果没有进行第一阶段的协商,直接进行第二阶段协商,那么IPSec SA的生成过程就是暴露出来的,暴露出来的钥匙这不是等着黑客去偷取嘛。所以使用第一阶段的IKE SA加密生成IPSec SA就更加安全,相当于创建了一条通道。

相关文章:

  • 2021-07-28
  • 2022-12-23
  • 2021-10-23
  • 2021-12-05
  • 2021-05-19
  • 2021-04-17
  • 2021-04-18
猜你喜欢
  • 2021-11-05
  • 2021-07-10
  • 2022-03-08
  • 2022-01-14
  • 2022-01-21
  • 2021-05-10
  • 2021-08-16
相关资源
相似解决方案