扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
IPsec VPN原理描述
1 IPsec VPN的分类
可以从多个角度给IPsec VPN分类,不过,看一下IPsec VPN试图解决的VPN二个主要设计问题是很有意义的.
--为把二个专用的网络组合成一个虚拟网络的无缝连接.
--将虚拟网络扩展成允许远程访问用户(也被称为road warriors)成为可信任网络的一部分.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
基于这二个设计的基础上, IPsec VPN可以被分为二类:
--LAN-to-LAN IPsec 实现(也被称作site-to-site VPN).
--远程访问客户端IPsec VPN实现.
2 IPsec VPN的组成
IPsec 结合了三个主要的协议从而组成了一个和谐的安全框架
--Internet密钥交换(IKE)协议----提供协商安全参数和创建认证密钥的框架
--ESP(负载安全封装)协议----提供加密,认证和保护数据的框架
--认证头(AH)协议----提供认证和保护数据的框架
在这些协议中,IKE和ESP在一起配置.尽管AH也是IPsec协议的一个重要成分.但不像使用IPsec时那样要做那么多的配置.一般情况下,AH的很多功能都被嵌入到ESP中了.
3 IKE介绍
IKE协议是负责在二个IPsec对等体间协商一条IPsec隧道的协议,IKE在隧道建立过程中主要完成以下任务:
--协商协议参数
--交换公共密钥
--对双方进行认证
--在交换后对密钥进行管理
IKE也是由三个协议组成
--SKEME----提供为认证目的使用公开密钥加密的机制
--Oakley----提供在二个IPsec对等体间达成相同加密密钥的基于模式的机制
--ISAKMP----定义了消息交换的体系结构,包括二个IPsec对等体间分组形式和状态转换.
IKE协议分为二个阶段.一条完整的IPsec隧道通过以下事件序列建立起来:
第一步: IPsec对等体收到感兴趣流量(即我们想被加密的流量)后,将产生IKE会话.
第二步: 使用IKE的主模式(6条消息)或主动模式(3条消息)协商来使二个IKE对等体的IKE安全联盟被创建.
第三步: 使用IKE的快速模式协商,创建二个IPsec对等体间的二个安全联盟.
第四步: 数据开始在加密的信道上传输,使用了ESP或是AH封装技术(或都采用了).
从第二步和第三步可以看出IKE协议分为二个阶段:
第一阶段使用主模式(6条消息)或主动模式(3条消息)来完成下面三个任务:
--协商形成用来认证二个对等体的一个参数集合并加密一部分主模式和所有的快速模式交换.如果协商中使用主动模式则没有主动模式被加密.
--二个对等体间相互认证.这里验证有三种方法:预共享,数字签名,加密临时值.
--当协商完成时产生密钥,该密钥用于生成实际加密数据的密钥资源.
第二阶段为快速模式(3条消息):
主要目标是允许二个对等协商一些用于产生IPsec安全联盟的属性,安全联盟可以加密二个主机间的数据(ESP).
4 IKE如何用来形成一条IPsec隧道的呢?
这一系列过程都是IKE这个协议来实现,IKE这个协议也存在着一些不足,“IKE之子”或第二版IKE正在开发之中.
主模式(6条消息)或主动模式(3条消息)
第一阶段三个任务,分别用6个消息(主模式)来完成,每二个为一组.
第一个消息由隧道的发起者发起,携带了如这样一些参数,如加密机制-DES,散列机制-MD5-HMAC,Diffie-Hellman组-2,认证机制-预共享.
第二个消息由响应者回应,内容基本一样,主要与发起者比较,是否与发起者匹配,不匹配就进行下一组的比较.如果最终都找不到匹配,隧道就停止建立.
第三个消息由发起者发出,但是在发出这个消息之前,有个过程必须先完成,就是Diffie-Hellman算法过程.
该过程的目的是什么呢?刚刚第一二条消息中所协商的算法它们必须需要一个KEY,这个KEY在二个对等体上必须一样,但同时这个KEY不能在链路中传递,因为传递KEY是一个不安全的手段.所以,该过程的目的是分别在二个对等间独立地生成一个DH公共值(该DH公共值不是我们上面所说的KEY),该公共值有什么用呢?因为二个对等体上都生成该DH公共值后,它们会在接下来的第三第四消息中传送给对方,打个比方,就是A收到了B的DH公共值Xb,B收到了A的DH公共值Xa.当A,B都收到了对方的该公共值后,问题就好解决了.因为有一个公式在数学中被论证成立,借助该公式,就可以在二个对等上生成一个只有他们二个对等体知道的相同的KEY,该公式为
发起者密秘=(Xb)amod p=(Xa)bmod p=响应者密秘
Xb为对等体B的DH公共值,Xa为对等体A的DH公共值
a为只有对等体A知道的秘密. b为只有对等体B知道的秘密.
注意,这里发起者秘密和响应者密秘相等,但这个秘密不是最终算法中使用的KEY,但对等体可通过该秘密材料来生成另外三个密钥,分别是:
SKEYID_d--此密钥被用于计算后续IPsec密钥资源.
SKEYID_a--此密钥被用于提供后续IKE消息的数据完整性以及认证.
SKEYID_e--此密钥被用于对后续IKE消息进行加密.
所以由发起者发起的第三条消息主要是向对等体发送自己的DH公共值和一个临时值.
临时值被用作生成上述3个SKEYID的材料.
第四条消息由响应者向发起者发送,主要是向发送者发送自己的DH公共值和临时值.
由于第一二条消息协商算法,第三四条消息生成KEY,所以在后续的第五六条消息就能被加密传送.
第五条消息由发起者向响应者发送,主要是为了验证对端就是自己想要与之通信的对端.这可以通过预共享,数字签名,加密临时值来实现.
第六条消息由响应者向发起者发送,主要目的和第五条一样.
在这六条消息过后,也就是验证一旦通过,就进入了第二阶段:快速模式,快速模式使用二条消息来实现.
快速模式
发起者会在第一条消息中发送IPsec SA的转换集属性,如:封装--ESP,完整性检验--SHA-HMAC,DH组--2,模式--隧道
响应者向发起者发送第二条消息,同意第一条消息中的属性,同时也能起到确认收到对端消息的作用.
这一步一旦完成,隧道就建立起来了,用户的数据就能被放入隧道中传送.
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者