一种基密钥的更新方法及系统
技术领域
本发明涉及无线局域网(Wireless Local Area Networks,简称WLAN)领域,尤其涉及一种无线局域网的基密钥更新方法及系统。
背景技术
无线局域网作为宽带无线IP(Internet Protocol,因特网协议)网络的一种典型的实现形式,是指采用无线传输媒介的计算机局域网络,它能在难以布线的区域进行通信,是传统有线局域网的重要补充。无线局域网技术是计算机网络技术与无线通信技术相结合的产物,具有支持移动计算、架构灵活快捷、维护所需费用较低和可扩展性好等优点,为通信的移动化和个人化提供了手段。
随着全球信息化的逐步深入,网络安全的重要性越来越明显,因为信息丢失、缺损和泄漏所造成的损失额度之大远远超出了人们的预测,因此各国均将网络信息安全提升至国家安全战略的位置。
现有技术中的WAPI(Wireless Local Area Network Authentication andPrivacy Infrastructure,无线局域网鉴别与保密基础结构)是一种提高无线局域网的安全性的机制。WAPI将基于三元对等鉴别的访问控制方法应用于无线局域网技术领域,以保障合法客户端通过合法接入点接入网络,并实现客户端和接入点间的保密通信。
WAPI由无线局域网鉴别基础结构(WAI)和无线局域网保密基础结构(WPI)两部分组成。
WAI是实现无线局域网中的身份鉴别和密钥管理的安全方案,用于完成STA(STAtion,无线站点)和AP(Access Point,接入点)之间、STA和STA之间的双向身份鉴别,并协商建立安全关联。
其中,安全关联包含:
BKSA(基密钥安全关联):是证书鉴别过程协商的结果、或通过预共享密钥(PSK)导出的结果;其中,BKSA中包含:BK(基密钥)、生存期等参数;
USKSA(单播会话密钥安全关联):是单播密钥协商(基于BK协商)的结果;其中包含USK(单播会话密钥)、USK/USKSA的生存期等参数;
MSKSA(组播会话密钥安全关联):是组播密钥通告的结果;其中包含MSK(组播会话密钥)、MSK/MSKSA的生存期等参数;
STAKeySA(站间密钥安全关联):是站间密钥通告的结果,其中包含STAKey(站间密钥)等参数。
WPI是用于实现无线局域网中数据传输保护的安全方案,包括使用WAI过程中协商出的各密钥进行数据加密、数据鉴别和重放保护等功能。
图1是现有技术中WAPI证书鉴别过程流程图,在证书鉴别过程中完成BK的建立/更新,具体包括如下步骤:
101:AP向STA发送鉴别激活分组,发起证书鉴别过程;
鉴别激活分组中可以包含:AP的证书、ECDH(椭圆曲线密码体制的Diffie-Hellman(戴菲-赫曼)交换)参数等字段。
此外,鉴别激活分组中还包含:标识(FLAG)字段和鉴别标识字段。其中,FLAG字段的第0个比特为BK更新标识;当BK更新标识为0时表示需要进行完整的证书鉴别过程,并在该过程中生成BK;当BK更新标识为1时表示进行BK的更新。
如果BK更新标识为0,则鉴别标识字段的值为AP新生成的随机数;如果BK更新标识为1,则鉴别标识字段的值为上一次进行证书鉴别时所使用的鉴别标识。
102:接收到鉴别激活分组后,STA保存AP的证书(用于后续对AP的签名进行验证),并产生用于ECDH交换的临时私钥sx和临时公钥px;
此外,当鉴别激活分组中的BK更新标识为1时,STA还需要检查该分组中的鉴别标识字段的值与上一次证书鉴别过程中保存的鉴别标识是否相同,如果不相同,则丢弃该鉴别激活分组,并结束本流程。
103:STA生成接入鉴别请求分组,并发送给AP;
接入鉴别请求分组中包含:临时公钥px、STA的证书等字段,以及STA对上述字段的签名值。
此外,接入鉴别请求分组中还包含FLAG字段和鉴别标识字段;上述字段的作用和值与鉴别激活分组的同名字段相同。
104:接收到接入鉴别请求分组后,AP对STA的签名进行验证(使用STA证书中包含的公钥),若签名验证失败,则丢弃该分组;否则AP生成证书鉴别请求分组发送给鉴别服务器;
证书鉴别请求分组中包含:STA的证书和AP的证书。
此外,AP接收到接入鉴别请求分组后,还会检查该分组中的FLAG字段和鉴别标识与AP发送的鉴别激活分组中的同名字段的值是否相同,如果不同,则丢弃该分组,并结束本流程。
105:鉴别服务器对STA的证书和AP的证书进行验证;
106:鉴别服务器根据对STA的证书和AP的证书的验证结果,构造证书鉴别响应分组,并且附加鉴别服务器的签名后将证书鉴别响应分组发送给AP;
107:AP验证鉴别服务器的签名,签名验证成功后,进一步验证对STA的证书的验证结果,验证成功后,执行以下操作:
107a:生成用于ECDH交换的临时私钥sy和临时公钥py;
107b:使用STA发送的临时公钥px和本地生成的临时私钥sy进行ECDH计算,生成基密钥BK。
108:AP向STA发送接入鉴别响应分组;
接入鉴别响应分组中包含:临时公钥py,证书验证结果,鉴别服务器签名,以及AP对上述字段的签名。
109:接收到接入鉴别响应分组后,STA验证鉴别服务器和AP签名以及证书验证结果,如果签名正确,并且鉴别服务器对AP的证书验证成功,则STA使用临时公钥py和临时私钥sx进行ECDH计算生成BK。
需要注意的是,根据ECDH的原理,STA和AP生成的BK相同。
至此,STA和AP完成了WAPI的证书鉴别过程,并在此过程中协商出了基密钥BK;此后,STA和AP可以使用BK进行密钥协商,生成单播密钥,并使用单播密钥进行数据的加密传输。
由上可知,现有技术是在证书鉴别过程中完成BK的更新,并采用预先设置、或待更新的基密钥的生存期等参数作为新的BKSA参数。现有技术中的上述方法存在以下不足:
(1)由于在进行BK更新时,WAPI标准中要求接入鉴别请求分组中的鉴别标识字段必须与上一次发送的接入鉴别请求分组中的同名字段相同,并且接入鉴别请求分组中的其它字段也可以与上一次发送的接入鉴别请求分组中的同名字段相同,这样,当非法用户截获到STA发送的用于进行BK更新的接入鉴别请求分组后,可以将其发送给AP,即对AP发起重放攻击。
虽然上述重放攻击并不一定能使非法用户获取AP的密钥信息,但由于AP在接收到接入鉴别请求分组之后无法检测该分组是否为合法用户发送,因此将执行后续的步骤104~108;也就是说,非法用户可以通过重复发送截获到的接入鉴别请求分组对AP和鉴别服务器进行拒绝服务攻击;这将耗费AP和鉴别服务器的大量处理资源。
此外,在进行拒绝服务攻击的同时,非法用户还可以收集大量的接入鉴别响应分组数据包,用于对AP的签名字段(即AP的证书对应的私钥)进行攻击。
(2)在BK的更新过程中没有进行生存期等BKSA参数的协商,BKSA参数只能采用先前使用的参数值。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提供一种基密钥的更新方法及系统,以便有效地防止非法用户通过重复发送先前截获到的接入鉴别请求分组向AP、甚至向鉴别服务器发起拒绝服务攻击。
为了解决上述问题,本发明提供一种基密钥的更新方法,第一通信节点采用第二通信节点的临时公钥py0和第一通信节点的临时私钥sx0生成基密钥BK0、且第二通信节点采用第一通信节点的临时公钥px0和第二通信节点的临时私钥sy0生成基密钥BK0后,该方法包括:
当第二通信节点接收到第一通信节点发送的用于对BK0进行更新的接入鉴别请求后,判断该请求中包含的基密钥更新标识与生成BK0时所使用的基密钥更新标识是否相同,如果不相同,则使用该请求中包含的第一通信节点的临时公钥px和第二通信节点的临时私钥sy进行椭圆曲线密码体制的戴菲-赫曼ECDH计算,生成基密钥BK1,并将第二通信节点的临时公钥py包含在接入鉴别响应中发送给第一通信节点;
接收到所述接入鉴别响应后,第一通信节点使用所述py和第一通信节点的临时私钥sx进行ECDH计算,生成基密钥BK1;
其中,px≠px0、和/或py≠py0。
此外,所述基密钥更新标识为:所述第一通信节点生成并包含在鉴别激活分组中发送给第二通信节点的随机数、或所述第二通信节点生成的随机数。
此外,所述接入鉴别请求、或所述接入鉴别响应中包含所述BK1的生存期值。
此外,px=px0且py≠py0、或py=py0且px≠px0。
此外,如果第二通信节点判定接收到的所述接入鉴别请求中包含的基密钥更新标识与生成BK0时所使用的基密钥更新标识相同,则向第一通信节点返回基密钥更新失败响应分组。
此外,所述第一通信节点和第二通信节点分别为:无线站点STA和接入点AP、或AP和STA、或STA和STA、或AP和AP。
本发明还提供一种基密钥的更新系统,该系统包含第一通信节点和第二通信节点,其特征在于,第一通信节点中包含:第一存储单元、第一密钥更新单元和第一通信单元;第二通信节点中包含:第二存储单元、第二密钥更新单元和第二通信单元,其中:
所述第一存储单元用于存储采用第二通信节点的临时公钥py0和第一通信节点的临时私钥sx0生成的基密钥BK0;
所述第二存储单元用于存储采用第一通信节点的临时公钥px0和第二通信节点的临时私钥sy0生成的所述BK0、以及生成所述BK0时所使用的基密钥更新标识;
所述第二密钥更新单元用于在通过所述第二通信单元接收到所述第一通信节点发送的用于对所述BK0进行更新的接入鉴别请求后,判断该请求中包含的基密钥更新标识与所述第二存储单元中存储的基密钥更新标识是否相同,如果不相同,则使用该请求中包含的第一通信节点的临时公钥px和第二通信节点的临时私钥sy进行ECDH计算,生成基密钥BK1,并将第二通信节点的临时公钥py包含在接入鉴别响应中通过所述第二通信单元发送给第一通信节点;
所述第一密钥更新单元用于在通过所述第一通信单元接收到所述接入鉴别响应后,使用所述py和第一通信节点的临时私钥sx进行ECDH计算,生成基密钥BK1;
其中,px≠px0、和/或py≠py0。
此外,所述第一密钥更新单元还用于设置所述BK1的生存期值,并将其包含在所述接入鉴别请求中发送给第二通信节点;或
所述第二密钥更新单元还用于设置所述BK1的生存期值,并将其包含在所述接入鉴别响应中发送给第一通信节点。
此外,px=px0且py≠py0、或py=py0且px≠px0。
此外,如果所述第二密钥更新单元判定所述接入鉴别请求中包含的基密钥更新标识与所述第二存储单元中存储的基密钥更新标识相同,则通过所述第二通信单元向第一通信节点返回基密钥更新失败响应分组。
综上所述,采用本发明的基密钥更新方法及系统,可以有效地防止非法用户通过重复发送先前截获到的接入鉴别请求分组向AP、甚至向鉴别服务器发起拒绝服务攻击,增强了无线局域网系统的安全性、提高了系统的服务质量。
附图说明
图1是现有技术中WAPI证书鉴别过程流程图;
图2是本发明实施例基密钥的更新方法流程图;
图3是本发明实施例基密钥的更新系统结构示意图。
具体实施方式
本发明的核心思想是,STA每次都使用不同的基密钥更新标识进行BK的更新,AP接收到更新BK的请求后,判断该请求中的基密钥更新标识是否与该STA先前使用的基密钥更新标识相同,如果相同则拒绝该BK更新请求。
下面将结合附图和实施例对本发明进行详细描述。
图2是本发明实施例基密钥的更新方法流程图,包括如下步骤:
201:AP向STA发送鉴别激活分组,发起基密钥的更新。
鉴别激活分组中包含:AP的证书、基密钥更新标识等字段。
基密钥更新标识是AP为本次基密钥更新所生成的随机数,该随机数的长度应当能保证该标识值重复的概率很小,通常可以是32字节长。
此外,鉴别激活分组中还包含FLAG字段,用于标识该分组的作用是进行基密钥的更新。
202:接收到鉴别激活分组后,STA产生用于ECDH交换的临时私钥sx和临时公钥px。
此外,STA还可以检查鉴别激活分组中的基密钥更新标识与先前使用的标识值是否相同,如果相同,STA可以返回基密钥更新失败响应分组,该分组中可以包含失败原因(即:基密钥更新标识重复),本流程结束。
203:STA生成接入鉴别请求分组,并发送给AP;
接入鉴别请求分组中包含:临时公钥px、STA的证书、基密钥更新标识等字段,以及STA对上述字段的签名值。
其中,基密钥更新标识与AP发送的鉴别激活分组中的同名标识值相同。
204:接收到接入鉴别请求分组后,AP对STA的签名进行验证(使用STA证书的公钥),若签名验证失败,则丢弃该分组;否则AP生成证书鉴别请求分组发送给鉴别服务器;
证书鉴别请求分组中包含:STA的证书和AP的证书。
此外,AP接收到接入鉴别请求分组后,还需要检查该分组中的基密钥更新标识与STA先前发送的接入鉴别请求分组中使用的基密钥更新标识是否相同,如果相同,则丢弃该分组,并向STA返回基密钥更新失败响应分组,该分组中可以包含失败原因(即:基密钥更新标识重复),本流程结束。
STA接收到基密钥更新失败响应分组后,可以根据该失败原因值重新生成基密钥更新标识,将其包含在接入鉴别请求中发送给AP。
205:鉴别服务器对STA的证书和AP的证书进行验证;
206:鉴别服务器根据对STA的证书和AP的证书的验证结果,构造证书鉴别响应分组,并且附加鉴别服务器的签名后将证书鉴别响应分组发送给AP;
207:AP验证鉴别服务器的签名,签名验证成功后,进一步验证对STA的证书的验证结果,验证成功后,执行以下操作:
207a:生成用于ECDH交换的临时私钥sy和临时公钥py;
207b:使用STA发送的临时公钥px和本地生成的临时私钥sy进行ECDH计算,生成基密钥BK。
208:AP向STA发送接入鉴别响应分组;
接入鉴别响应分组中包含:临时公钥py,证书验证结果,鉴别服务器签名,以及AP对上述字段的签名。
209:接收到接入鉴别响应分组后,STA验证鉴别服务器和AP签名以及证书验证结果,如果签名正确,并且鉴别服务器对AP的证书验证成功,则STA使用临时公钥py和临时私钥sx进行ECDH计算生成BK。
至此,STA和AP利用证书鉴别过程完成了BK的更新;此后,STA和AP可以使用更新后的BK进行密钥协商,生成单播密钥,并使用单播密钥进行数据的加密传输。
根据本发明的基本原理,上述实施例还可以有多种变换方式,例如:
(一)即使没有接收到AP发送的鉴别激活分组,STA也可以通过向AP发送接入鉴别请求分组来发起BK的更新,即通过步骤202~209完成BK的更新。
在这种情况下,接入鉴别请求分组中包含的基密钥更新标识是STA为本次更新生成的随机数。
(二)由于AP向鉴别服务器发送包含STA证书和AP证书的证书鉴别请求的重要目的是防止STA证书和AP证书由于某些原因被吊销,因此无需每次都向鉴别服务器发送证书鉴别请求,也就是说,在进行BK的更新时,步骤204~206为可选步骤。
(三)在鉴别激活分组、或接入鉴别请求分组、或接入鉴别响应分组中可以包含基密钥生存期字段,以便在更新基密钥时同时对基密钥的生存期进行更新。
(四)用于进行ECDH交换的临时公钥px和py中的一个可以是上一次生成或更新BK时所使用的临时公钥值;例如,STA仅在第一次创建BK时生成临时公钥px,之后进行BK更新时重复使用该临时公钥,以减少STA的计算量。
图3是本发明实施例基密钥的更新系统结构示意图,如图3所示,该系统包含:第一通信节点和第二通信节点。
第一通信节点和第二通信节点可以是:接入点和无线站点、或接入点和接入点、或无线站点和无线站点、或接入点和接入点。
第一通信节点中包含:第一存储单元、第一密钥更新单元和第一通信单元;第二通信节点中包含:第二存储单元、第二密钥更新单元和第二通信单元。
所述第一存储单元用于存储采用第二通信节点的临时公钥py0和第一通信节点的临时私钥sx0生成的基密钥BK0;
所述第二存储单元用于存储采用第一通信节点的临时公钥px0和第二通信节点的临时私钥sy0生成的所述BK0、以及生成所述BK0时所使用的基密钥更新标识;
所述第二密钥更新单元用于在通过所述第二通信单元接收到所述第一通信节点发送的用于对所述BK0进行更新的接入鉴别请求后,判断该请求中包含的基密钥更新标识与所述第二存储单元中存储的基密钥更新标识是否相同,如果不相同,则使用该请求中包含的第一通信节点的临时公钥px和第二通信节点的临时私钥sy进行ECDH计算,生成基密钥BK1,并将第二通信节点的临时公钥py包含在接入鉴别响应中通过所述第二通信单元发送给第一通信节点;
所述第一密钥更新单元用于在通过所述第一通信单元接收到所述接入鉴别响应后,使用所述py和第一通信节点的临时私钥sx进行ECDH计算,生成基密钥BK1;
其中,px≠px0、和/或py≠py0。
此外,所述第一密钥更新单元还用于设置所述BK1的生存期值,并将其包含在所述接入鉴别请求中发送给第二通信节点;或
所述第二密钥更新单元还用于设置所述BK1的生存期值,并将其包含在所述接入鉴别响应中发送给第一通信节点。
此外,如果所述第二密钥更新单元判定所述接入鉴别请求中包含的基密钥更新标识与所述第二存储单元中存储的基密钥更新标识相同,则通过所述第二通信单元向第一通信节点返回基密钥更新失败响应分组。