专利名称:无线局域网鉴别与保密基础结构组播密钥协商方法及系统的制作方法
技术领域:
本发明涉及无线局域网(Wireless Local Area Networks,简称WLAN), 尤其涉及一种无线局域网鉴別与保密基础结构中的组播密钥协商方法及系统。
背景技术:
无线局域网作为宽带无线IP (Internet Protocol,因特网协议)网络的 一种典型的实现形式,是指采用无线传输媒介的计算机局域网络,它能在难 以布线的区域进行通信,是传统有线局域网的重要补充。无线局域网技术是 计算机网络技术与无线通信技术相结合的产物,具有支持移动计算、架构灵 活快捷、维护所需费用较低和可扩展性好等优点,为通信的移动化和个人化 提供了手段。
随着全球信息化的逐步深入,网络安全的重要性越来越明显。由于信息 丢失、缺损和泄漏所造成的损失之大远远超出了人们的预测,因此各国均将 网络信息安全提升至国家安全战略的位置。
现有技术中的WAPI (无线局域网鉴别与保密基础结构)是一种提高无 线局域网的安全性的机制。WAPI将基于三元对等鉴别的访问控制方法应用 于无线局域网技术领域,以保障合法客户端通过合法接入点接入网络,并实 现客户端和接入点间的保密通信。
WAPI由无线局域网鉴别基础结构(WAI)和无线局域网保密基础结构 (WPI)两部分组成。
WAI是实现无线局域网中的身份鉴别和密钥管理的安全方案,用于完 成STA (STAtion,无线站点)和AP (Access Point,接入点)之间、STA 和STA之间的双向身份鉴别,并协商建立安全关联。其中,安全关联包含
>BKSA (基密钥安全关联)是证书鉴别过程协商的结果、或通过预 共享密钥(PSK)导出的结果;其中包含BK(基密钥)、BK/BKSA的生存
期等参数;
>USKSA (单播会话密钥安全关联)是单播会话密钥协商(基于BK 协商)的结果;其中包含USK(单播会话密钥)、USK/USKSA的生存期等 参数;
其中,USK由以下四个部分组成单播加密密钥、单播完整性校验密 钥、消息鉴别密钥、密钥加密密钥。
> MSKSA (组播会话密钥安全关联)是组播密钥通告的结果;其中 包含MSK (组播会话密钥)、MSK/MSKSA的生存期等参数;
> STAKeySA (站间密钥安全关联)是站间密钥通告的结果,其中包 含STAKey (站间密钥)等参数。
在WAPI中,采用两种方式导出BK,分别是在证书鉴别过程中协商、 或由预共享密钥直接导出。导出BK后,通信双方(例如,STA和AP)可 以使用BK进行单播会话密钥(USK)的协商,单播会话密钥协商完毕后, 通信双方使用单播会话密钥进行数据的传输保护,并使用单播会话密钥进行 组播密钥的协商。
图1是现有技术中的组播密钥协商方法流程图,包括如下步骤
101: AP向STA发送组播密钥通告分组;
组播密钥通告分组中包含USKID,密钥通告标识,密钥数据等字,殳; 其中
USKID用于标识AP和STA当前所使用的USK的标识符;
密钥通告标识的长度为 16 个字节,初始值为 0x5C365C365C365C365C365C365C365C36,在每次密钥更新通告时该字,殳 值加l;若通告的密钥不变,则本字段值保持不变。此外,该字段还用作分 组加密时的IV (Initialization Vector,初始化向量)的初值;
密钥数据是AP利用密钥加密密钥、采用协商选择的单播密码算法对通
6告主密钥加密后得到的密文;通告主密钥为AP生成的16个字节的随机数, 加密所用的IV的初值为上述密钥通告标识的值。
102:接收到组播密钥通告分组后,STA利用密钥加密密钥对密钥数据 进行解密,得到16个字节的通告主密钥,并利用KD-HMAC-SHA256算法 对通告主密钥进行扩展,生成长度为32个八位位組的组播会话密钥(MSK); 此外,STA还保存密钥通告标识,将其作为当前组播会话密钥所对应的IV 的初值;
其中,MSK的前16个字节为组^"加密密钥,后16个字节为组纟番完整 性校验密钥。
103: STA向AP发送组播密钥响应分组;
组播密钥响应分组中包含USKID,密钥通告标识等字段;上述各字段 的值应与组播密钥通告分组中的相应字段相同。
104: AP接收到组播密钥响应分组后,验证USKID、密钥通告标识等 字段是否与组播密钥通告分组中的相应字段相同,如果相同,则表明组播密 钥通告成功。
WPI是用于实现无线局域网中数据传输保护的安全方案,包括使用WAI 过程中协商出的各密钥进行数据加密、数据鉴别和重放保护等功能。
WPI保密基础结构对MAC子层的MPDU( MAC层+办议数据单元,MAC protocol data unit )进行加解密处理,但对于WAI协议分组不进行加解密处 理。WPI中采用的分组密码算法为SMS4 (称为WPI-SMS4) , WPI-SMS4 工作在OFB (output feedback,输出反馈)模式,如图2a和图2b所示。其 中,图2a为WPI采用的OFB加密模式示意图,图2b为WPI釆用的OFB 解密模式示意图。
如图2a和图2b所示,采用OFB模式对信息进行分组加解密时,在每 次加解密开始时对第一个分组需要4吏用IV。 IV的初值通常由加密方以明文 方式传送给解密方(例如,上述组播密钥通告分组中的密钥通告标识由AP 以明文方式传送给STA ),并且在加解密过程中按照预先设定的规则变化(例如,以固定步长递增),以尽量避免相同的信息使用相同的IV进行加密。 但是,由于IV的长度需要与分组加密算法的分组长度相同,因此很难
通过增加IV长度的方式来降低IV重复使用的概率,也就是说很难避免重复 使用IV。在这种情况下,由于IV的初值采用明文的方式由加密方发送给解
密方,或者由加密方和解密方按照易于猜测的固定规则设置(例如,双方都
将IV的初值设置为0),随后在加解密过程中又按照固定的规则变化,IV 溢出时发送方重新设置IV的初值,再次将IV的初值发送给解密方;因此只 要有足够的时间,窃听者就很容易识别并截获到足够多的使用相同IV的加 密数据,这对无线局域网的安全造成了较大的威胁。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提供一种可提高 无线局域网安全性的组播密钥的协商方法及系统。
为了解决上述问题,本发明提供一种无线局域网鉴别与保密基础结构组 播密钥协商方法,该方法包括
AP生成随机数sx和通告主密钥,使用密钥加密密钥对所述通告主密钥 进行加密得到密钥数据,并将密钥数据和PX包含在组播密钥通告分组中发 送给STA;其中,PX=gsx(modP);
接收到组播密钥通告分组后,STA生成随机数sy,使用所述密钥加密 密钥对所述密钥数据进行解密得到通告主密钥,对通告主密钥进行扩展生成 组播会话密钥,并将PY包含在组播密钥响应分组中发送给AP,其中,PY= gsy(mod P);
AP和STA使用K=(PY)sx(mod P)=(PX)sy(mod P)生成分组加解密过程中 ^使用的初始化向量IV的初值;
其中,P和g为正整数,且P〉g。
IV的初值;其中,N为AP和STA之间所采用的分组加密算法分组长度。 此外,AP和STA还从所述K或所述K的变换序列中提取L个比特作为IV的变换次数值S; L<N。
此外,AP和STA采用如下方式生成所述K的变换序列Str:
Str=T(K);或
Str= T(K川String;或
Str= ADDIDII T(K)|| String;
其中,T(K)表示从K对应的比特串中截取预先设定长度的比特串,||表 示比特串连接操作,String为AP和STA预先设定的比特串;ADDID由AP 和STA的介质访问控制地址对应的比特串连接而成。
此外,所述P为质数。
本发明还提供一种无线局域网鉴别与保密基础结构组播密钥协商系统, 该系统包含AP和STA, AP中设置有密钥生成单元A和通信单元A, STA 中设置有密钥生成单元B和通信单元B,其中
所述密钥生成单元A用于生成随枳4t sx和通告主密钥,4吏用密钥加密 密钥对所述通告主密钥进行加密得到密钥数据,并将密钥数据和PX包含在 组播密钥通告分组中,通过通信单元A发送给STA;其中,PX=gsx(mod P);
所述密钥生成单元B用于在通过通信单元B接收到组播密钥通告分组 后,生成随机数sy,使用所述密钥加密密钥对所述密钥数据进行解密得到通 告主密钥,对通告主密钥进行扩展生成组播会话密钥,并将PY包含在组播 密钥响应分组中,通过通信单元B发送给AP,其中,PY= gsy(modP);
所述密钥生成单元A和密钥生成单元B还用于4吏用K=(PY)sx(mod P)=(PX)sy(mod P)生成分组加解密过程中4吏用的初始化向量IV的初值;
其中,P和g为正整凄t,且P〉g。
此外,所述密钥生成单元A和密钥生成单元B从所述K或所述K的变 换序列中提取N个比特作为IV的初值;其中,N为所述AP和STA之间所 采用的分组加密算法分组长度。
此外,所述密钥生成单元A和密钥生成单元B还用于从所述K或所述K的变换序列中提取L个比特作为IV的变换次数值S; L<N。
此外,所述密钥生成单元A和密钥生成单元B采用如下方式生成所述 K的变换序列Str:
Str=T(K);或
Str= T(K)||String;或
Str= ADDIDII T(K川String;
其中,T(K)表示从K对应的比特串中截取预先设定长度的比特串,H表 示比特串连接操作,String为所述AP和STA预先设定的比特串;ADDID 由AP和STA的介质访问控制地址对应的比特串连接而成。
此外,所述P为质数。
综上所述,采用本发明的方法及系统,通信节点之间(例如AP和STA 之间)协商生成了相同的IV以及IV的变换次数值S,并且生成IV和S所 用的关键参数之一 K值是采用Diffie-Hellman算法的原理秘密协商得到的。 这样,由于IV值没有明文传输,窃听者无法获知各数据包所对应的IV值, 并且不知道经过多少个数据包后会出现重复的IV,因此也不知道哪些数据 包对应相同的IV值,增大了窃听者破解密钥的难度,提高了WAPI的安全 性。
图l是现有技术中的组播密钥协商方法流程图2a为现有技术中WPI采用的OFB加密模式示意图2b为现有技术中WPI采用的OFB解密模式示意图3是本发明实施例组播密钥的协商方法流程图4是本发明实施例无线局域网鉴别与保密基础结构组播密钥协商系 统结构示意图。
具体实施例方式
本发明的核心思想是,在进行组播会话密钥的协商时,通信双方分别生
成Diffie-Hellman算法所使用的临时公钥PX和PY,并交换PX值和PY值; 然后分别使用对应的临时私钥sx和sy、采用Diffie-Hellman算法的原理生成 相同的IV的初爿f直。
下面将结合附图和实施例对本发明进行详细描述。
图3是本发明实施例组播密钥的协商方法流程图,本实施例中的通信双 方(通信节点A和通信节点B )分别为AP和STA,在AP和STA协商生成 USK(由单播加密密钥、单播完整性校验密钥、消息鉴别密钥、密钥加密密 钥组成)后,由AP发起组播密钥的协商流程;该方法包括如下步骤
301: AP采用与STA预先协商设置的Diffie-Hellman算法参数P和g, 以及AP生成的随机数sx,计算PX-gSx(modP);
其中,P和g为整数,且P〉g; mod表示取模运算。
为了进一步提高安全性,P通常为大质数,因此可以将P称为 Diffie-Hellman算法的质数参数,而将g称为Diffie-Hellman算法的底数参数。
302: AP向STA发送组纟番密钥通告分组;
组播密钥通告分组中包含USKID,密钥数据和PX等参数;其中 USKID用于标识当前所使用的USK的标识符;
密钥数据是AP利用密钥加密密钥、采用协商选择的单播密码算法对通 告主密钥加密后的密文;通告主密钥为AP生成的16个字节的随机数。
303:接收到组播密钥通告分组后,STA采用步骤102中描述的方式生 成MSK;并生成随机数sy,计算并存储IV参数K=(PX)sy(mod P);
后续加解密双方(AP和STA)进行分组加解密时,可以从K中提取N 个比特作为IV的初值,L个比特作为IV的变换次数值S;其中,N:分组加 密算法的分组长度,且L〈N〈K的比特数。
也就是说,在加解密过程中,加解密双方可以按照固定的步长(例如1 ) 循环递增或递减IV,但是递增或递减的次数不能超过S。例如,以IV长度为4个比特为例,如果协商得到的IV为1100, S=4, 则在加解密过程中IV可以按照如下M^律循环递增
1100—1101—1110—1111—0001。
当然,加解密双方也可以不协商IV的变换次数值S,当IV溢出时重新 使用上述IV初值。由于窃听者不知道IV初值,因此也无法获知经过多少个 数据包后会出现重复的IV值。
此外,也可以对IV参数K进行函数变换生成变换序列Key,然后从变 换序列Key中提取IV的初值以及S值。
例如,可以采用如下子步骤生成IV的初值
303a:计算Key=KD-HMAC-SHA256(BK, K);
303b:从Key中提取N个比特(例如前N个比特)作为IV的初值。 当然,同样的方法也可以用于生成S值。
304: STA计算PY = gsy(modP),并向AP发送组播密钥响应分组;
组播密钥响应分组中包含USKID, PY等参数。
可选的,组〗番密钥响应分组中还可以包含底数参数更新标识,该标识用 于指示AP是否应在本次生成组播密钥/IV初值后更新底数参数g。例如当 底数参数更新标识的值为0时,表示不更新底数参数;当底数参数更新标识 的值为1时,表示更新底数参数。
此外,底数参数更新标识还可以用于指示更新后的底数参数g的位数或 位数的范围。例如当底数参数更新标识的值为0时,表示不更新底数参数; 当底数参数更新标识的值为1时,表示更新后的底数参数g为长度为8~10 比特的值;当底数参数更新标识的值为2时,表示更新后的底数参数g为长 度为11 ~ 13比特的值,以此类推。
STA可以根据本地的计算能力和对安全性的要求设置底数参数更新标 识的值,即设置是否更新底数参数g以及更新后的位数。
305:接收到组播密钥响应分组后,AP计算并存储IV参数=(PY)sx(mod P);然后釆用与步骤303相同的算法生成IV,和变换次数值S,。需要注意的是,根据模运算的规则可知,由于
K'= (PY)sx(mod P) =(gsy(mod P》sx(mod P) =(gsy x sx)(m0d P) =(gsx)(mod Pernod P) =(PX)sy(mod P)= K; 因此,IV'=IV, s,=s。
306: AP根据组播密钥协商响应分组中携带的底数参数更新标识判断是 否需要更新底数参数g,并根据本地的计算能力和对安全性的要求判断是否 支持STA的底数参数更新要求;如果支持,则AP在确定更新后的底数参数 g的位数后,按照预先设置的规则从计算得到的Key值(以二进制表示)中 选取对应个数的比特值组成新的底数参数g。
307: AP向STA发送组纟番密钥通告确:〖人分组;
组播密钥通告确认分组中可以包含底数参数更新确认标识,该标识用于 表示是否已更新底数参数g,并可以进一步表示更新后的底数参数g的位数。 例如
当底数参数更新确认标识的值为0时,表示未更新底数参数,当底数参 数更新确认标识的值为l时,表示已更新底数参数;或者当底数参数更新 确认标识的值为0时,表示未更新底数参数,当底数参数更新确认标识的值 为9时,表示更新后的底数参数g的长度为9比特,以此类推。
308:接收到组播密钥通告确认分组后,STA根据底数参数更新确认标 识采用与AP相同的方式对底数参数g进行更新。
上述306 ~ 308为可选步骤。
综上所述,采用以上步骤,AP和STA协商生成了相同的IV以及IV的 变换次数值S,并且生成IV和S所用的关键参数之一 K值是采用 Diffie-Hellman算法的原理秘密协商得到的。这样,由于IV值没有明文传输,窃听者无法获知各数据包所对应的IV值,并且不知道经过多少个数据包后
会出现重复的IV,因此也不知道哪些数据包对应相同的IV值,增大了密钥 的破解难度,提高了WAPI的安全性。
图4是本发明实施例无线局域网鉴别与保密基础结构组播密钥协商系 统结构示意图,该系统包含AP和STA, AP中设置有密钥生成单元A和 通信单元A, STA中设置有密钥生成单元B和通信单元B;其中
所述密钥生成单元A用于生成随才几数sx和通告主密钥, -使用密钥加密 密钥对所述通告主密钥进行加密得到密钥数据,并将密钥数据和PX包含在 组播密钥通告分组中,通过通信单元A发送给STA;其中,PX=gsx(mod P);
所述密钥生成单元B用于在通过通信单元B接收到组播密钥通告分组 后,生成随机数sy,使用所述密钥加密密钥对所述密钥数据进行解密得到通 告主密钥,对通告主密钥进行扩展生成组播会话密钥,并将PY包含在组播 密钥响应分组中,通过通信单元B发送给AP,其中,PY=gsy(modP);
所述密钥生成单元A和密钥生成单元B还用于^f吏用K=(PY)sx(mod P)-(PX)sy(modP)生成分组加解密过程中使用的初始化向量IV的初值;
其中,P和g为正整凄史,且P〉g。
图4中各网元的具体功能和连接关系(消息交互关系)在以上对图3所 示流程进行描述时已进行说明,此处不再赘述。
根据本发明的基本原理,上述实施例还可以有多种变换方式,例如
(一)AP和STA还可以使用更复杂的变换方式生成变换序列Key,如
首先对K进行字符变换令Str=T(K)||String,或令Str= ADDID|| T(K)IIString,然后再计算Key=KD-HMAC-SHA256(BK, Str)。
其中,T(.)为截取操作函数,表示从K中截取预先设定的长度的比特串。 上述T(K)可以是从按顺序(从前到后、或从后向前)从K对应的比特串中 截取预先设定的长度的比特串,也可以是从预先设定的比特位置从K对应 的比特串中截取预先设定的长度的比特串。(二) 除了从K或K的各种变换序列中提取出IV的初值外,也可以将 K或K的变换序列作为参数,直接使用哈希函数生成特定长度的IV初值。
(三) 使用本发明的方法在通信双方生成K时所采用的参数P通常为 大质数,但如果对IV初值的安全性要求不高的话,P也可以是一个小质数, 或一个大于g的正整数。
(四) 除了 KD-HMAC-SHA256算法外,还可以采用其它带密钥的哈希 算法(即HMAC算法)对通告主密钥进行扩展,生成组播会话密钥。
权利要求
1、一种无线局域网鉴别与保密基础结构组播密钥协商方法,其特征在于,该方法包括AP生成随机数sx和通告主密钥,使用密钥加密密钥对所述通告主密钥进行加密得到密钥数据,并将密钥数据和PX包含在组播密钥通告分组中发送给STA;其中,PX=gsx(mod P);接收到组播密钥通告分组后,STA生成随机数sy,使用所述密钥加密密钥对所述密钥数据进行解密得到通告主密钥,对通告主密钥进行扩展生成组播会话密钥,并将PY包含在组播密钥响应分组中发送给AP,其中,PY=gsy(mod P);AP和STA使用K=(PY)sx(mod P)=(PX)sy(mod P)生成分组加解密过程中使用的初始化向量IV的初值;其中,P和g为正整数,且P>g。
2、 如权利要求l所述的方法,其特征在于,值;其中,N为AP和STA之间所采用的分组加密算法分组长度。
3、 如权利要求2所述的方法,其特征在于,变换次数值S; L<N。
4、如权利要求2或3所述的方法,其特征在于, AP和STA采用如下方式生成所述K的变换序列Str: Str=T(K);或 Str=T(K)||String;或 Str= ADDIDII T(K)||String;其中,T(K)表示从K对应的比特串中截取预先设定长度的比特串,||表 示比特串连接操作,String为AP和STA预先设定的比特串;ADDID由AP和STA的介质访问控制地址对应的比特串连接而成。
5、 如权利要求l所述的方法,其特征在于, 所述P为质数。
6、 一种无线局域网鉴别与保密基础结构组播密钥协商系统,该系统包 含AP和STA,其特征在于,AP中设置有密钥生成单元A和通信单元A, STA中设置有密钥生成单元B和通信单元B,其中所述密钥生成单元A用于生成随机数sx和通告主密钥,使用密钥加密 密钥对所述通告主密钥进行加密得到密钥数据,并将密钥数据和PX包含在 组播密钥通告分组中,通过通信单元A发送给STA;其中,PX=gsx(mod P);所述密钥生成单元B用于在通过通信单元B接收到组播密钥通告分组 后,生成随机数sy,使用所述密钥加密密钥对所述密钥数据进行解密得到通 告主密钥,对通告主密钥进行扩展生成组播会话密钥,并将PY包含在组播 密钥响应分组中,通过通信单元B发送给AP,其中,PY= gsy(modP);所述密钥生成单元A和密钥生成单元B还用于使用K=(PY)sx(mod P)=(PX)sy(mod P)生成分组加解密过程中使用的初始化向量IV的初值;其中,P和g为正整数,且P〉g。
7、 如权利要求6所述的系统,其特征在于,所述密钥生成单元A和密钥生成单元B从所述K或所述K的变换序列 中提取N个比特作为IV的初值;其中,N为所述AP和STA之间所采用的 分组加密算法分组长度。
8、 如权利要求7所述的系统,其特征在于,所述密钥生成单元A和密钥生成单元B还用于/人所述K或所述K的变 换序列中提取L个比特作为IV的变换次数值S; L<N。
9、 如权利要求7或8所述的系统,其特征在于,所述密钥生成单元A和密钥生成单元B采用如下方式生成所述K的变 4灸序歹'J Str:<formula>formula see original document page 4</formula>其中,T(K)表示从K对应的比特串中截取预先设定长度的比特串,||表 示比特串连接操作,String为所述AP和STA预先设定的比特串;ADDID 由AP和STA的介质访问控制地址对应的比特串连4妻而成。
10、如权利要求6所述的系统,其特征在于, 所述P为质数。
全文摘要
一种无线局域网鉴别与保密基础结构组播密钥协商方法,包括AP生成随机数sx和通告主密钥,使用密钥加密密钥对通告主密钥进行加密得到密钥数据,并将密钥数据和PX包含在组播密钥通告分组中发送给STA;其中,PX=g<sup>sx</sup>(mod P);接收到组播密钥通告分组后,STA生成随机数sy,使用密钥加密密钥对所述密钥数据进行解密得到通告主密钥,对通告主密钥进行扩展生成组播会话密钥,并将PY包含在组播密钥响应分组中发送给AP,其中,PY=g<sup>sy</sup>(mod P);AP和STA使用K=(PY)<sup>sx</sup>(mod P)=(PX)<sup>sy</sup>(mod P)生成分组加解密过程中使用的初始化向量IV的初值;P和g为正整数,P>g。
文档编号H04W12/00GK101588538SQ20091014294
公开日2009年11月25日 申请日期2009年5月14日 优先权日2009年5月14日
发明者建 刘 申请人:建 刘