IPSEC构建站点到站点连接的基本过程
对于站点到站点的会话,构建连接的基本过程如下:
一个×××网关对等体发起了到另外一个远程的×××网关对等体的会话(触发流量)
如果没有存在×××的连接,那么ISAKMP/IKE阶段1开始,两个对等体协商如何保护管理连接。
Diffie-hellman用于为管理连接中的加密算法和HMAC功能来安全的共享密钥。
在安全管理连接中来执行设备验证。
ISAKMP/IKE阶段1结束,阶段2开始;对等体协商参数和密钥信息用来保护数据连接(这是在安全管理连接下实现的,或者你也可以选择性的再次使用Diffie hellman)
数据连接被建立,阶段2结束,×××网关现在可以通过数据连接来保护用户流量。
最终,管理连接和数据连接将会超时,并重新构建连接
ISAKMP/IKE阶段1中的工作模式分为主模式和积极模式(或野蛮模式)
ISAKMP/IKE阶段1:
一.管理连接在阶段1建立,它是一个双向的过程。源和目标都是使用的UDP 500
二.在ISAKMP/IKE阶段1将会发生三件事情:建立双向的ISAKMP SA
1.安全关联建立和安全参数协商(加密算法,HASH算法,DH组,身份认证)。
2.DH算法(密钥交换)
3.对等体认证(pre-shared,rsa-sig,加密随即数)
三.ISAKMP/IKE阶段1基本上负责建立一个安全的管理连接,然后,执行这
3个步骤有两种模式:
1.主模式;(Main mode)
2.积极模式,或者被称为侵略模式(Aggressive mode)
主模式
执行3步双向交换过程,总共6 个数据包
主模式的好处:设备验证的步骤发生在安全的管理连接中,因为这个连接是在前两个步骤中构建的,因此,两个对等体需要发送给对方的任何实体信息都可以免受***。
站点到站点和使用证书做设备验证的远程访问使用的默认模式
主模式管理连接的状态:
状态 解释
MM_NO-STATE 处于阶段1的主模式过程中,SP未协商好,SA未建立好
MM_SA_SETUP 处于主模式中,SP协商好,初始化SA建立好
MM_KEY-EXCH 处于主模式中,发生了DH交换,计算密钥KDH,并生成许多密钥
MM_KEY_AUTH 处于主模式中,成功完成对等体的身份认证,阶段1完成,阶段二开始了;
注意:这里的第5个包应该是IDi不是IDr。X、Y就是交互的公钥N是随机数
1:发起者send一个cookie Ci 和SA负载(SAI:encryption algorithm,hash algorithm,authentication method,lifetime ,and so on)用来协商参数
2:响应者发送一个SAr(已经挑选的安全参数)和cookie Cr: 如果没有可以挑选的参数,响应者会返回一个负载拒绝;(return a notify payload rejecting proposals)
3和4: 互相交换生成KEY的材料(公钥和一些随机数据),一旦KEY材料被交换,将会产生四个不同 的KEY;
1: KDH=DH算法(用自己的私钥+对方公钥)
2: SKEYID=hash (pre-shared key ,Ni | Nr)
3: SKEYIDd=hash(SKEYID, KDH| Ci | Cr | 0 ) 作为阶段2生成KEY的材料
4: SKEYIDa = hash(SKEYID, SKEYIDd | KDH| Ci | Cr | 1) 用来ISAKMP包完整性用的key
5: SKEYIDe=hash(SKEYID,SKEYIDa | KDH| Ci | Cr | 2 ) 用来加密ISAKMP包的key
5和6:完成设备认证,使用SKEYIDe进行加密,SKEYIDa 进行HASH认证(HASH_i,HASH_r)所涉及的算法都是最前面两个包协商出来的;最重要的是在这次交换中还有个ID交换(IDi,IDr);
6.HASHi = hash(SKEYID, X|Y|Ci|Cr|SAr|IDi)
7.HASHr = hash(SKEYID, X|Y|Cr|Ci|SAi|IDr)
总结:主模式=1个双向ISAKMP SA+2次加密+3次交换+4个状态+5个KEY+6个包+7步运算
IKE积极模式
只进行3次交换以便协商密钥和进行验证.
优点:建立管理连接的时候速度快;
缺点;发送的实体信息都是明文的,牺牲了安全性;
Cisco远程访问×××中设备验证用的是组预共享密钥的话,那么默认模式就是积极模式.
状态 解释
AG_NO_STATE 处于阶段1的积极模式中,没有建立管理SA,没有协商参数AG_INIT_EXCH 对等体之间已经成功协商了IKE策略参数,发生了DH交换,并生成了共享密钥KDH
AG_AUTH 处于积极模式中,成功完成对等体的身份认证,阶段1完成
第三个包是加密的
1.在第一条消息中,发起放发送ISAKMP报头,安全关联,DH公开值,临时值和身份ID
2.在第二条消息中,应答方用选定提议的所有参数和DH公开值进行应答,该消息被验证,但没有加密.
3第三条消息由发起方发回给应答方,该消息被验证,让应答方能够确定其中的散列值是否与计算得到的散列值相同,进而确定消息是否有问题.积极模式没有主模式安全,因为身份是以明文方式传输的且不能协商DH参数
总结:积极模式=1个双向ISAKMP SA+1次加密+3个步骤+3个包+3个状态+5个KEY+7步运算
ISAKMP/IKE阶段2
ISAKMP/IKE阶段2只有一个模式:快速模式.它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的.快速模式有两个主要的功能:
1.协商安全参数来保护数据连接。
2.周期性的对数据连接更新密钥信息.
阶段2所关心的事:
1.什么流量需要被保护?(感兴趣流量)
2.应当使用什么样的安全协议来保护流量(AH,ESP)
3.基于选择的安全协议,数据流量是如何 被保护的?(例如使用什么样的HMAC功能)
4.使用什么样的操作模式?(传输模式,隧道模式)
5.当刷新密钥信息的时候,是ISAKMP/IKE阶段1的管理用来共享心的密钥还是完美转发密钥用于刷新密钥?
6.数据连接的生存周期是多少?
状态:QM-IDLE 表示阶段一已成功完成,阶段2开始或结束
快速模式交换3条消息。这些消息都是使用IKE进行保护,这意味着将使用IKE phase1中导出来的SKEYIDe和SKEYIDa对所有分组进行加密和验证。
1.第1条消息来自发起方,包括ISAKMP报头和IPSec SA 有效负载,后者包含用于大量传输数据的所有提议和变换。在发起方和应答方之间将交换一个新的临时值(Ni2),它用于生成新的密钥信息,还可能用于防范重放***。所有的IPSec密钥都是从SKEYIDd推导出来的,因此如果知道这个SKEYIDd的***者将能够推导出所有用于IPSec的当前和未来的密钥。直到重新协商IKE为止,为加强对IPSec密钥的保护,使用完善转发安全性(PFS)来解除未来密钥和当前密钥的关系。启用PFS后,将交换新的DH公开值(X和Y)并使用计算得到的共享密钥K
来生成密钥信息
2.第2条消息由应答方发送给发起方,其中包含选定的提议以及ISAKMP报头,临时值(Nr2)和HASH(2)
3.第3条也是最后一条消息中,发起方使用HASH(3)进行验证。这是在传输IPSec数据流前验证通信信道的有效性
双方进行以下计算,生成密钥4个(横向相同,纵向不同)
第一种情况
1.KEYMAT=HASH(SKEYIDd,安全协议/Ni2/Nr2/SPI)
按同样的方法推导出2、3、4
第二种情况(需重新发生公钥交换,用DH生成KDH2)
KEYMAT=HASH(DKEYIDd、安全协议/Ni2/Nr2/SPI/KDH2)
按同样的方法推导出2、3、4
两个密钥为inbound另两个为outbound
默认是使用第一种方法,要用第二种方法需启用PFS功能。
总结:阶段2=1个模式+1个状态+2个单向的ipsec sa+3个包+4个密钥