一种无线局域网中密钥协商方法 【技术领域】
本发明涉及到无线局域网(WLAN),具体来说,涉及到无线局域网中密钥协商的方法。
背景技术
2003年5月,国家宽带无线IP工作组发布了WLAN国标GB15629.11。在GB15629.11第8章中提出了新的WLAN安全机制——无线局域网鉴别和保密基础结构(WAPI)。WAPI主要包括无线局域网鉴别基础结构(WAI)和无线局域网保密基础结构(WPI)两部分内容。
WAI用于实现无线局域网基础(Infrastructure)模式中无线终端(STA)与接入点(AP)之间的认证和密钥协商。WAI鉴别过程包括证书鉴别与会话密钥协商两个过程,如图1所示。WAI鉴别过程中的三个实体为无线终端STA、无线接入点AP和认证服务器ASU。
证书鉴别的详细过程为:
1)鉴别激活。当STA关联或重新关联至AP时,由AP向STA发送鉴别激活以启动整个鉴别过程。
2)接入鉴别请求。STA向AP发出接入鉴别请求,即将STA证书与STA的当前系统时间发往AP,其中系统时间称为接入鉴别请求时间。
3)证书鉴别请求。AP收到STA接入鉴别请求后,首先记录鉴别请求时间,然后向ASU发出证书鉴别请求,即将STA证书、接入鉴别请求时间、AP证书及AP的私钥对它们的签名构成证书鉴别请求发送给ASU。
4)证书鉴别响应。ASU收到AP的证书签别请求后,验证AP的签名和AP证书的有效性,若不正确,则鉴别过程失败,否则进一步验证STA证书。验证完毕后,ASU将STA证书鉴别结果信息(包括STA证书和鉴别结果)、AP证书签别结果信息(包括AP证书和鉴别结果及接入鉴别请求时间)和ASU对它们的签名构成证书鉴别响应发回给AP。
5)接入鉴别响应。AP对ASU返回的证书签别响应进行签名验证,得到STA证书的鉴别结果,根据此结果对STA进行接入控制。AP将收到的证书签别响应回送至STA。STA验证ASU的签名后,得到AP证书的鉴别结果,根据该鉴别结果决定是否接入该AP。
至此STA与AP之间完成了证书鉴别过程。若鉴别成功,则AP允许STA接入,否则解除其关联。
会话密钥协商过程为:
STA与AP证书鉴别成功之后进行密钥协商,
1)密钥协商请求。AP产生一串随机数据,利用STA的公钥加密后,向STA发出密钥协商请求。此请求包含请求方所有的备选会话算法信息。
2)密钥协商响应。STA收到AP发来的密钥协商请求后,首先进行会话算法协商,若响应方不支持请求方的所有备选会话算法,则向请求方响应会话算法协商失败,否则在请求方提供的备选算法中选择一种自己支持的算法;再利用本地的私钥解密协商数据,得到AP产生的随机数据;然后产生一串随机数据,利用AP的公钥加密后,再发送给AP。
密钥协商成功后,STA与AP将自己与对方分别产生的随机数据进行模2和运算生成会话密钥,利用协商地会话算法对通信数据进行加、解密。
为了进一步提高通信的保密性,在通信一段时间或交换一定数量的数据之后,STA和AP之间可重新进行会话密钥的协商,过程同上。
由GB15629.11中对以上过程的描述,可以看到WAI机制中的密钥协商方法只能用于单播密钥协商,形成STA与AP之间的成对单播通信保护密钥,而不能应用于组播密钥协商。因为在同一基本服务集(BSS)中,所有STA和AP需要共享同一组播密钥,所以组播密钥协商必须以AP统一分发的方式进行。而GB15629.11中并没有设计这样的组播密钥协商机制,因此依照GB15629.11实现的WLAN系统将无法进行动态的组播密钥协商,因而也就无法很好地支持广播/组播保密通信。
【发明内容】
本发明所要解决的技术问题是:弥补GB15629.11中没有组播密钥协商机制的不足,完善WLAN系统的密钥协商过程,为系统提供组播通信密钥,实现无线局域网中密钥协商。
本发明所述的无线局域网中密钥协商方法,包括以下处理步骤:
WLAN系统的基础模式中,接入网络的STA和网络之间完成GB15629.118.3所述的证书鉴别过程后,STA和AP需要发起本发明的密钥协商过程,
第一步,单播密钥协商请求。AP产生一串随机数,利用STA的公钥加密后发送给STA,作为单播密钥协商请求。此请求还包括请求方所有的备选会话算法信息和密钥重放计数器。该密钥重放计数器用来防止对密钥协商消息的重放攻击。如果单播通信中用到抗重放攻击的单播包序列号,本消息中还应该包含单播包序列号。
第二步,单播密钥协商响应。STA收到AP发来的单播密钥协商请求后,首先进行会话算法协商,若响应方不支持请求方的所有备选会话算法,则向请求方响应会话算法协商失败,否则在请求方提供的备选算法中选择一种自己支持的算法;再利用本地的私钥解密协商数据,得到AP产生的随机数据,安装该单播通信密钥和单播包序列号;然后产生一串随机数据,利用AP的公钥加密后,再发送给AP。在本消息中还要包含拷贝的单播密钥协商请求中的密钥重放计数器。
第三步,组播密钥协商请求。单播密钥协商完成后,AP把组播密钥加密保护后作为组播密钥协商请求消息发给STA。对该组播密钥的加密可以采用对方的公钥也可以采用前面协商的单播密钥。组播密钥协商请求中还要包括密钥重放计数器。该密钥重放计数器可以采用上面单播密钥协商中的密钥重放计数器来保持密钥协商消息的连贯性,也可以采取单独的密钥重放计数器。如果组播通信中用到抗重放攻击的组播包序列号,则本消息中还要包含组播包序列号。
第四步,组播密钥协商确认。STA收到AP的组播密钥协商请求后,安装该组播密钥及组播包序列号,并向AP发送组播密钥协商确认消息。该消息中包含从组播密钥协商请求中拷贝的密钥重放计数器。
对于以上的密钥协商消息,除对密钥进行加密保护外,还可以对消息进行完整性保护,增强协商过程的安全性。在STA与AP通信过程中,可以随时采用上述过程进行单播或组播密钥的更新。
采用本发明所述方法,可以在WLAN系统中实现安全高效的密钥协商,支持WLAN系统进行组播通信保护,使得按照GB15629.11开发的WLAN系统更加完善。
附图说明
图1是GB15629.11描述的WAI证书鉴别和密钥协商流程图。
图2是采用本发明密钥协商方法后的完整认证和密钥协商流程图。
图3是基础模式中密钥协商方法的详细流程图。
【具体实施方式】
在WLAN系统的基础模式中,STA与AP按照GB15629.118.3进行WAI证书鉴别过程后,发起本发明描述的密钥协商过程,如图2所示。与现有GB15629.11的WAI证书鉴别和密钥协商流程在密钥协商的处理上有所不同,具体包括以下过程:
1)接入点向无线终端发送单播密钥协商请求;
2)无线终端向接入点发送单播密钥协商响应;
3)接入点向无线终端发送组播密钥协商请求;
4)无线终端向接入点发送组播密钥协商确认;
如图3所示,密钥协商的详细过程如下,
1)首先是单播密钥协商。AP产生一串随机数,利用STA的公钥加密后作为单播密钥协商请求发送给STA。此请求还包括请求方所有的备选会话保密算法信息和密钥重放计数器。密钥重放计数器用来防止对密钥协商消息的重放攻击。如果单播通信中用到抗重放攻击的单播包序列号,本消息中还应该包含单播包序列号。
2)STA收到AP发来的密钥协商请求后,首先进行会话算法协商,若响应方不支持请求方的所有备选会话算法,则向请求方响应会话算法协商失败,否则
3)STA在AP提供的备选算法中选择一种自己支持的算法作为会话保密算法。
4)STA利用本地的私钥解密协商数据,得到AP产生的随机数据。
5)STA产生一串随机数据,和AP的随机数据进行模2和运算后作为单播通信密钥。STA安装该单播通信密钥和单播包序列号。
6)STA将自身产生的随机数据利用AP的公钥加密后,构成单播密钥协商响应消息发送给AP。在本消息中还要包含拷贝的单播密钥协商请求中的密钥重放计数器。
7)AP收到单播密钥协商响应消息后,检查里边的密钥重放计数器是否正确,即是否和前面单播密钥协商请求中的值相同。如果不同,则断开关联;如果相同,则
8)AP用自己私钥解密出STA的随机数据,和自己产生的随机数据进行模2和运算得到单播通信密钥。AP安装该单播通信密钥,并更新密钥重放计数器,将其值加1。
9)如果单播密钥协商过程中出现错误的话,双方可以断开连接或重新发起单播密钥协商。
10)单播密钥协商完成后,开始组播密钥协商。
11)AP取出当前组播密钥,或临时产生出安全随机数作为组播密钥,将该组播密钥用对方公钥或前面单播密钥协商得到的保密算法和单播密钥进行保护。AP把加密的组播密钥和密钥重放计数器、组播包序列号(如果需要的话)一起构成组播密钥协商请求消息发送给STA。
12)STA收到AP的组播密钥协商请求后,检查消息中的密钥重放计数器是否正确,即看它是否大于STA端保存的密钥重放计数器。如果计数器值错误,则STA需要与AP断开关联。如果该密钥重放计数器正确无误,则
13)STA从组播密钥协商请求消息中解密出组播密钥,并安装该组播密钥和更新组播包序列号。如果组播密钥安装成功,则
14)STA向AP发送组播密钥协商确认消息,内容为密钥重放计数器。表明已安装该组播密钥。
15)AP收到组播密钥协商确认消息后,检查该消息中密钥重放计数器。如果密钥重放计数器与AP发送的组播密钥协商请求中相同,则AP安装配置该组播密钥,并将密钥重放计数器的值加1。
16)如果组播密钥协商过程中某个环节出现错误,双方可以重新发起协商过程,或者断开关联。如果全都顺利完成,则组播密钥协商成功。
17)单播和组播密钥协商都完成后,通信双方用协商的算法和密钥进行通信保密。在STA与AP通信过程中,为防止组播密钥泄漏,可以设置经过固定的时间间隔,双方重新发起组播密钥协商过程进行组播密钥的更新。
另外,在通信过程中如果怀疑密钥泄漏,或发现数据完整性校验错误和触发了管理事件等情况下,也可以随时进行密钥协商,产生出新的单播和组播密钥。