IKEIPSec ×××实例

IKE(internet key exchange互联网密钥交换)协议

IKE负责建立和维护IKE SAIPSec SA

l  对双方进行认证

l  产生密钥资源,交换公共密钥,管理密钥(密钥用于数据加密和HMAC)

l  协商封装参数(用何种封装协议,加密算法,验证算法)

IKE协商产生SA

IKE的组成部分

l  SKEME:定义如何通过公共密钥技术(DH算法)实现密钥交换

l  Oakley:提供了IPSec对各种技术的支持,提供了一种框架

l  ISAKMP:定义了消息交换的体系结构,包括两个IPSec对等体见得分组形式和状态转变(封装格式和协商包交换的方式)

由于IPSec ×××的主要配置就是ISAKMP,所以通常将IKEISAKMP认为是一样的

 

IKE工作

IKE工作分为两个阶段

Phase1:协商ISAKMP SA;包括主模式MM(main mode)和主动模式AM(active mode) ;双向的;用于双方的验证

AM主动模式:用于使用预共享密钥的remote access模式(使用证书的远程模式使用MM模式); 3个数据包

MM主动模式:用于其他模式; 6个数据包,前四个明文,后两个加密

Phase 2:协商IPSec SA;单向的;用于具体会话的处理

快速模式,3个数据包,全部加密

 

IKE Phase 1(MM,主模式)

数据包1,2 (明文)

negotiate IKE policy (message type 1,2)协商IKE策略

information echanges in these message types includes IP address and proposal,such as diffiehellman group number and encryption algorithm,are also exchange here.all message are carries in UDP packet with a destination UDP port number of 500.the UDP payload comprises a header ,an SA payload and one or more proposals.message type 1 offers many proposal and message type 2 contains a single proposal

协商IKE策略(信息类型1,2

在这些信息类型所包含的信息包括IP地址和建议集,例如DH组号和加密算法。这些信息使用UDP 500承载。UDP的负载包括一个头部,SA负载和一个或多个策略集。数据包1可提供多个策略集(用于对端选择)数据包2包含一个策略集(将选择好的proposal送回)

 

proposal包含:加密算法;验证算法;DH组号;认证方式(证书或预共享密钥);密钥有效期

由发起方A将其proposals排序封装在数据包1中发送接收方BB根据自己拥有的proposals对送来的proposal由前往后依次匹配,也就是说B用自己的proposal1与送来的proposals匹配,如果没有配置值,再使用自己的proposal2依次进行匹配,知道有一条匹配为止。那么一种比较推荐的操作是,将更严格安全级别更高的proposal放在更前的位置,有利于安全性的提高

注意,这里的proposal是对Phase1阶段的数据协商SA,也就是IKE

 

数据包3,4(明文)

执行DH交换,交换DH公共值和随机数,换句话说实现了密钥的协商

DH(离散对数问题)算法不详解,大概意思是由DH决定两个大素数和一个随机值(私钥),由DH算法生成公共值(公钥),并将公共值和大素数发送给对端,对端也生成一个随机数(私钥)并与接收到的素数执行DH算法生成另一个公共值并送回。由此完成了一个公钥的交换也就是DH交换。通过这种方式双方可以用自己的私钥和对端的公钥计算出一个相同的密钥(用于对称加密算法的密钥根)。实际上这类似于一个非对称加密算法的公钥交互过程,或者说DH算法在一个不安全的网络上实现了安全的密钥交换

DH算法的强度取决于两个素数的大小,素数越大越难于破解。DH组号决定了DH加密强度

DH交换的结果

l  SKEYID_e:用于加密IKE消息,也就是IPSec的加密密钥(包括Phase1Phase2

l  SKEYID_a:用于提供IKE消息的数据完整性和认证,也就是HMACkey(包括Phase1Phase2

l  SKEYID_d:用于计算后续的IPSec密钥资源(因为密钥有存活时间)

总之:IPSec中不管是用于加密数据的算法密钥还是用于验证的HMACkey都是由DHIPSec会话的第3,4个数据包得来的

 

数据包5,6(加密,验证)

用户双方的互相认证,前4个数据包决定了proposalkey等等相关信息,这里进行加密并进行哈希校验双方建立起IKE SA,完成了Phase1的工作

 

 

 

IKE Phase 1 summary

1、相互认证

                        i.              1-2个包协商的认证,加密和验证方式都是为了5-6个包认证服务的

                      ii.              3-4个包DH交换计算出来的密钥也是为了加密和验证(HMAC5-6包而提前准备的

2、建立IKE/ISAKMP SA(双向)

 

IKE Phase 2AM快速模式)

几乎完全雷同于Phase1中的1-25-6,因为密钥和验证资源已在Phase1中完成,这里省略此工作,不同的是比Phase1中的proposal多了一项:感兴趣流

IKE Phase2 summary

l  协商IPSec策略(处理感兴趣流)

l  建立IPSec SA(1,单向  2,协议相关)

 

 

 

 

IPSsec触发过程

 

 

crypto may处理方式

是否是感兴趣流

是否加密

有无map

Action

不是

解密

不是

解密

Drop

Forward

重点是,对于由map的接口收到匹配感兴趣且未加密的数据执行丢弃