IKE IPSec基础-密钥交换与密钥保护Internet密钥交换

网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息 。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等 。当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段 。Internet密钥交换(IKE)
两台IPSec计算机在交换数据之前,必须首先建立某种约定,这种约定,称为"安全关联",指双方需要就如何保护信息、交换信息等公用的安全设置达成一致,更重要的是,必须有一种方法,使那两台计算机安全地交换一套密钥,以便在它们的连接中使用 。见图七 。

IKE IPSec基础-密钥交换与密钥保护Internet密钥交换

文章插图
 
图七、Internet密钥交换
Internet 工程任务组IETF制定的安全关联标准法和密钥交换解决方案--IKE(Internet密钥交换)负责这些任务,它提供一种方法供两台计算机建立安全关联 (SA) 。SA 对两台计算机之间的策略协议进行编码,指定它们将使用哪些算法和什么样的密钥长度,以及实际的密钥本身 。IKE主要完成两个作用:
·安全关联的集中化管理,减少连接时间
·密钥的生成和管理
一、什么是SA?
安全关联SA(Security Association)是单向的,在两个使用 IPSec的实体(主机或路由器)间建立的逻辑连接,定义了实体间如何使用安全服务(如加密)进行通信 。它由下列元素组成:1)安全参数索引SPI;2)IP目的地址;3)安全协议 。
SA是一个单向的逻辑连接,也就是说,在一次通信中,IPSec 需要建立两个SA,一个用于入站通信,另一个用于出站通信 。若某台主机,如文件服务器或远程访问服务器,需要同时与多台客户机通信,则该服务器需要与每台客户机分别建立不同的SA 。每个SA用唯一的SPI索引标识,当处理接收数据包时,服务器根据SPI值来决定该使用哪种SA 。
二、第一阶段SA(主模式SA,为建立信道而进行的安全关联)
IKE建立SA分两个阶段 。第一阶段,协商创建一个通信信道(IKE SA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务;第二阶段,使用已建立的IKE SA建立IPsec SA 。分两个阶段来完成这些服务有助于提高密钥交换的速度 。第一阶段协商(主模式协商)步骤:
1.策略协商,在这一步中,就四个强制性参数值进行协商:
1)加密算法:选择DES或3DES
2)hash算法:选择MD5或SHA
3)认证方法:选择证书认证、预置共享密钥认证或Kerberos v5认证
4)Diffie-Hellman组的选择
2.DH交换
虽然名为"密钥交换",但事实上在任何时候,两台通信主机之间都不会交换真正的密钥,它们之间交换的只是一些DH算法生成共享密钥所需要的基本材料信息 。DH交换,可以是公开的,也可以受保护 。在彼此交换过密钥生成"材料"后,两端主机可以各自生成出完全一样的共享"主密钥",保护紧接其后的认证过程 。
3.认证 DH交换需要得到进一步认证,如果认证不成功,通信将无法继续下去 。"主密钥"结合在第一步中确定的协商算法,对通信实体和通信信道进行认证 。在这一步中,整个待认证的实体载荷,包括实体类型、端口号和协议,均由前一步生成的"主密钥"提供机密性和完整性保证 。
三、第二阶段SA(快速模式SA,为数据传输而建立的安全关联)
这一阶段协商建立IPsec SA,为数据交换提供IPSec服务 。第二阶段协商消息受第一阶段SA保护,任何没有第一阶段SA保护的消息将被拒收 。
第二阶段协商(快速模式协商)步骤:
1.策略协商,双方交换保护需求:
·使用哪种IPSec协议:AH或ESP
·使用哪种hash算法:MD5或SHA
·是否要求加密,若是,选择加密算法:3DES或DES 在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信 。
2.会话密钥"材料"刷新或交换
在这一步中,将生成加密IP数据包的"会话密钥" 。生成"会话密钥"所使用的"材料"可以和生成第一阶段SA中"主密钥"的相同,也可以不同 。如果不做特殊要求,只需要刷新"材料"后,生成新密钥即可 。若要求使用不同的"材料",则在密钥生成之前,首先进行第二轮的DH交换 。
3.SA和密钥连同SPI,递交给IPSec驱动程序 。
第二阶段协商过程与第一阶段协商过程类似,不同之处在于:在第二阶段中,如果响应超时,则自动尝试重新进行第一阶段SA协商 。
第一阶段SA建立起安全通信信道后保存在高速缓存中,在此基础上可以建立多个第二阶段SA协商,从而提高整个建立SA过程的速度 。只要第一阶段SA不超时,就不必重复第一阶段的协商和认证 。允许建立的第二阶段SA的个数由IPSec策略属性决定 。
四、SA生命期
第一阶段SA有一个缺省有效时间,如果SA超时,或"主密钥"和"会话密钥"中任何一个生命期时间到,都要向对方发送第一阶段SA删除消息,通知对方第一阶段SA已经过期 。之后需要重新进行SA协商 。第二阶段SA的有效时间由IPSec驱动程序决定 。
密钥保护
一、密钥生命期
生命期设置决定何时生成新密钥 。在一定的时间间隔内重新生成新密钥的过程称为"动态密钥更新"或"密钥重新生成" 。密钥生命期设置决定了在特定的时间间隔之后,将强制生成新密钥 。例如,假设一次通信需要1万秒,而我们设定密钥生命期为1千秒,则在整个数据传输期间将生成10个密钥 。在一次通信中使用多个密钥保证了即使攻击者截取了单个通信密钥,也不会危及全部通信安全 。密钥生命期有一个缺省值,但"主密钥"和"会话密钥"生命期都可以通过配置修改 。无论是哪种密钥生命期时间到,都要重新进行SA协商 。单个密钥所能处理的最大数据量不允许超过100兆 。
二、会话密钥更新限制
反复地从同一个的"主密钥"生成材料去生成新的"会话密钥"很可能会造成密钥泄密 。"会话密钥更新限制"功能可以有效地减少泄密的可能性 。例如,两台主机建立安全关联后,A先向B发送某条消息,间隔数分钟后再向B发送另一条消息 。由于新的SA刚建立不久,因此两条消息所用的加密密钥很可能是用同一"材料"生成的 。如果想限制某密钥"材料"重用次数,可以设定"会话密钥更新限制" 。譬如,设定"会话密钥更新限制"为5,意味着同一"材料"最多只能生成5个"会话密钥" 。
若启用"主密钥精确转发保密(PFS)",则"会话密钥更新限制"将被忽略,因为PFS 每次都强制使用新"材料"重新生成密钥 。将"会话密钥更新限制"设定为1和启用PFS效果是一样的 。如果既设定了"主密钥"生命期,又设定了"会话密钥更新限制",那么无论哪个限制条件先满足,都引发新一轮SA协商 。在缺省情况下,IPSec不设定"会话密钥更新限制" 。
三、Diffie-Hellman(DH)组
DH组决定DH交换中密钥生成"材料"的长度 。密钥的牢固性部分决定于DH组的强度 。IKE共定义了5个DH组,组1(低)定义的密钥"材料"长度为768位;组2(中)长度为1024位 。密钥"材料"长度越长,所生成的密钥安全度也就越高,越难被破译 。
DH组的选择很重要,因为DH组只在第一阶段的SA协商中确定,第二阶段的协商不再重新选择DH组,两个阶段使用的是同一个DH组,因此该DH组的选择将影响所有"会话密钥"的生成 。
在协商过程中,对等的实体间应选择同一个DH组,即密钥"材料"长度应该相等 。若DH组不匹配,将视为协商失败 。
四、精确转发保密PFS(Perfect Forward Secrecy)
与密钥生命期不同,PFS决定新密钥的生成方式,而不是新密钥的生成时间 。PFS保证无论在哪一阶段,一个密钥只能使用一次,而且,生成密钥的"材料"也只能使用一次 。某个"材料"在生成了一个密钥后,即被弃,绝不用来再生成任何其他密钥 。这样可以确保一旦单个密钥泄密,最多只可能影响用该密钥加密的数据,而不会危及整个通信 。
PFS分"主密钥"PFS和"会话密钥"PFS,启用"主密钥"PFS,IKE必须对通信实体进行重新认证,即一个IKE SA只能创建一个IPsec SA,对每一次第二阶段SA的协商,"主密钥"PFS都要求新的第一阶段协商,这将会带来额外的系统开销 。因此使用它要格外小心 。
然而,启用"会话密钥"PFS,可以不必重新认证,因此对系统资源要求较小 。"会话密钥"PFS只要求为新密钥生成进行新的DH交换,即需要发送四个额外消息,但无须重新认证 。PFS不属于协商属性,不要求通信双方同时开启PFS 。"主密钥"PFS和"会话密钥"PFS均可以各自独立设置 。

    推荐阅读