之前的文章讲述的加密学理论知识和IPSec的基础知识。了解到了对称密钥与非对称密钥,了解到了IPSec的两类SA,知道了IPsec VPN有三个重要的协议ESP、AH和IKE,了解到了ESP和AH封装等。但是,使用IPSec VPN安全的数据加密及认证需要用到密钥,如何做到密钥的安全交互?这就需要用到之前没有详细讲解的IKE协议。
我们虽然知道了IKE协议通过两个阶段建立了两个SA,但是建立SA的具体流程仍不清楚。
下面我们开启新的章节,通过学习IKE协议深度了解IPSecVPN的工作流程。
1、 什么是IKE?
IPSec VPN使用了哪些协议?
IKE主要负责建立和维护IKE SA和IPSec SA广电大流量卡
主要实现对双方进行认证,产生密钥,管理密钥,交换公钥,协商协议参数等功能。
IKE是一个复合型的协议,是由三个协议组成,分别为,SKEME、Oakley和ISAKMP。
1.1 SKEME
该协议定义了如何通过DH算法实现密钥的交换。DH算法前面章节提到过,是一种非对称密钥算法,非对称密钥的作用主要是用于密钥交换和散列值加密成为数字签名。
IPSecVPN数据加密需要使用密钥,完整性校验需要用到密钥,密钥如何安全的交换就是使用这个协议定义的。
1.2 Oakley
该协议提供了IPSec对各种技术协议的支持,例如能够给使用哪种加密协议或者散列函数等等。
配置过IPsecVPN的应该都了解,配置加密认证算法的广电大流量卡时候只有那么几种,例如ESP能够使用算法有DES、3DES和AES,校验的散列函数算法有MD5和SHA,这是IPSec的一个协议框架,也就是说IPSec的开发者只能让用户从框架中选择所能用的算法,你不可能使用框架以外的算法作为IPSecVPN的算法。
IPSec框架
使用框架可以方便算法的扩充和删减,例如随着设备性能的增强和对于安全的重视,DES加密可能会被从IPSec框架中剔除。
1.3 ISAKMP
ISAKMP定义了协商报文的交换方式、定义了封装的格式。为什么有时候IKE SA也叫ISAKMP SA?这是因为ISAKMP才是IKE协议里用作协商报文交换的子协议,是由协议报文的交换才协商出的两类S广电大流量卡A。
ISAKMP协议有两阶段的协商,第一阶段为IKE SA的协商,主模式为6个协商数据报文的交互就能建立IKE SA。野蛮模式为3个协商数据报文的交互就能建立IKE SA。第二阶段为IPSec SA的协商,使用3个协商数据报文的交互就能建立IPSec SA。
IPSec VPN建立过程
2、 IKE SA协商过程
上文提到IKE SA的协商有两种模式,一种为主模式使用6个协商报文的交互建立IKE SA;一种为野蛮模式使用3个协商报文的交互建立IKE SA。
在思科设备中,除了使用EZVPN加预共享密钥的方式使用野蛮模式外,除此以外均使用主模式建立IKE SA。由于野蛮模式使用场景较少,所以我们下面通过广电大流量卡学习IKE第一阶段使用主模式的IKE SA协商过程。
2.1 第一阶段:主模式协商IKE SA
IKE主模式协商过程
粗略来说,第一二个协商报文是协商算法的,第三四个协商报文是协商产生随机密钥,第五六个协商报文是使用数字签名互相认证对端的。
下面我们来详细分析一下每个报文。
第一个协商报文:由发起方发送,在第一个协商报文中有两个主要的信息,一个是对端加密点的IP地址,另一个就是提案,提案的内容为使用哪些IKE子协议Oakley定义的框架内的算法来进行后续的协商报文以及所传输密钥的加密和校验。如同喊话接收方:”我要使用3DES加密,MD5算法进行校验你支不支持?”,如果发起方拥有多个提案需要则同时放给响应广电大流量卡方,由响应方从中挑选一个提案。提案通俗来讲就是一个使用算法和参数的集合。
知识扩展:协商报文均被封装在UDP数据包中,目标端口为UDP500发往接收方。所以有些VPN设备在配置IPSec VPN时,需要在端口上先开启IKE功能,目的就是为了打开并监听UDP500端口是否有收到IKE的协商报文。
第二个协商报文:由响应方响应,响应报文中需要有发起方的加密点IP地址和所选提案。响应方收到发起方的协商报文后,发现所使用的多个提案我都支持,但我必须挑选其中一个提案。便可以回复发送方:”我选1号提案,我要使用1提案里的算法。”
下图为提案选择流程图:
提案选择流程图
假设发起方拥有3个提案,接收方拥有2个提案。接广电大流量卡收方收到发起方送过来的三个提案,根据提案的ID由小到大与自己所拥有的提案进行匹配,率先匹配到的提案将被选中。
如上图所示,发起方发来的提案有10号,20号和30号,接收方首先用自己的1号提案依次匹配发起方的10、20和30号提案,发现没有能够匹配的提案后,使用自己的29号提案再次匹配发起方的10、20和30号提案,发现发起方的30号提案与自己的29号提案使用的算法和参数相同则选定发送方30号提案并通过报文告知发起方自己所提案。
第一、二个协商报文是明文传输的,主要作用是交互提案。
第三个和第四个协商报文:用来执行DH公共值交换,让VPN通信两端产生3个密钥。
三个密钥的作用分别用于1、加密第一阶段协商广电大流量卡的第五和第六个报文,2、提供IKE报文的数据完整性校验和源认证的,3、计算用于第二阶段的IPSec数据加密和校验的后续密钥。
经过第一二个报文VPN双方协商好了提案,第三四个报文双方生成了密钥。所以第五六个报文可以使用密文进行传输了。
第五和第六个协商报文:第五个报文是发起方通过密文传输身份信息由响应方进行认证。第六个报文是响应方通过密文传输身份信息由发起方进行认证。例如,如果使用了预共享密钥进行认证,密钥为123456,则发起方先发送自己密钥的密文报文给响应方,响应方收到后对照自己的预共享密钥,发现自己也是123456后响应方将自己的预共享密钥的密文报文给发起方,发起方匹配通过校验后,IKE S广电大流量卡A建立。
总结:IKE第一阶段分为两部分,第一部分是通过明文传输第1,2个报文协商提案,通过明文传输第3,4个报文进行DH交换VPN双方计算出密钥,提案和密钥都是为第二阶段第5、6个报文密文认证建立IKE SA做准备的。
知识扩展:什么是预共享密钥?预共享密钥的字面意思就是预先共享的密钥,类似对称密钥的带外传输。例如:网络管理员A的公司想与网络管理员B的公司建立IPSec VPN,他们的预共享密钥可以通过见面后对话协商,也可以通过电话协商,只要不是通过网络传输的密钥都为带外传输,没有被网络黑客窃取的风险。和银行使用网银类似,银行端预先设置了密钥,并把密钥通过U盾预先设置在了里面。
带内传输的对称密钥广电大流量卡为了在网络中安全的传输,我们之前在原创:VPN专题-1-加密学理论知识(第一部分)中讲过需要利用非对称密钥加密后进行传输。
2.2第二阶段:协商IPSec SA
IPSec SA协商报文
第二阶段,首先发起方需要通过第一个报文,重新提案数据加密传输时使用的加密方式、封装方式、认证方式等参数。(第一阶段的提案及DH交换协商实现的是第一阶段第5和第6个报文密文的认证预共享密钥认证和协商出第二阶段的密钥,由于第一阶段已经协商出用于第二阶段的密钥,第二阶段所有协商报文以及传输的数据报文均为密文。)
第一个协商报文:发起方将自己的HASH值、SA提案(加密认证等参数集),IPSec转换集,密钥材料和感兴趣数据流广电大流量卡等信息发给响应方。
第二个协商报文:响应方发送自己的HASH值、以及接受发起方SA提案的消息、响应方生成的SPI和通过发起方送来的密钥材料生成的密钥发送给发起方。
第三个协商报文:发起方通过HASH值确认并建立IPSec SA。
下图为提案选择流程图,与IKE SA选择提案的过程相同,只是提案的内容有所不同:
提案选择流程图
注意:这是是生成了一个IPSec 的SA,之前讲过IPSec SA是单向的,所以要想实现双向传输,需要交换发起方和响应方的位置重新协商3个协商报文实现另一方向的IPSec SA的建立。
以上内容均为本人对所掌握知识的总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理广电大流量卡解错误希望能够及时得到大家的指正,大家共同学习,共同进步。
欢迎关注我的头条号,私信交流,学习更多网络技术!
友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2
原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/39075.html