802.11芯片中管理WPI密钥的方法和装置
技术领域
本发明涉及无线网络通信领域,尤其涉及一种在802.11芯片中管理WPI密钥的方法和装置。
背景技术
我国在2003年5月份提出了无线局域网国家标准GB15629.11,这是我国在这一领域惟一获得批准的协议。标准中包含了全新的WAPI(WLAN Authentication and PrivacyInfrastructure)安全机制,这种安全机制由WAI(WLAN Authentication Infrastructure)和WPI(WLAN Privacy Infrastructure)两部分组成,WAI和WPI分别实现对用户身份的鉴别和对传输的数据加密。
WAI采用公开密钥密码体制,利用证书来对WLAN系统中的STA和AP进行互相身份认证。在STA和AP的身份都鉴别成功之后,双方将会进行密钥协商,并依据协商出的密钥进行WPI过程。
WAPI规范定义三个实体:
1)鉴别器实体AE(Authenticator Entity):为鉴别请求者实体在接入服务之前提供鉴别操作的实体。该实体驻留在AP或STA中;
2)鉴别请求者实体ASUE(Authentication SUpplicant Entity):在接入服务之前请求进行鉴别操作的实体。该实体驻留在STA中;
3)鉴别服务实体ASE(Authentication Service Entity):为鉴别器实体和鉴别请求者实体提供相互鉴别服务的实体。该实体驻留在ASU中。
WPI采用SMS4对称密码算法实现对MAC层MPDU进行的加、解密操作。实现了WAPI协议的无线设备在通信前,需要经过协商生成密钥,参与通信的密钥包括:
1)单播加密密钥:128位,用于在会话中加密解密单播MPDU,简写为OFB;
2)单播完整性校验密钥:128位,用于在会话中对单播MPDU完整性进行校验,简写为CBC;
3)组播加密密钥:128位,用于在会话中加密解密组播MPDU,简写为G_OFB;
4)组播完整性校验密钥:128位,用于在会话中对组播MPDU完整性进行校验,简写为G_CBC。
在使用密钥加密解密每个MPDU时,WPI使用的SMS4算法还要求定义一个附属于单播/组播密钥的数据分序号PN。PN是一个128位的整数,被作为加密解密中SMS4算法使用的IV,要求针对每对通信对端的每帧单调递增。
请参阅图1,该图描述了参与WPI过程的密钥和附属于密钥的PN.
密钥在生成后,可以在运行过程中进行更新。规定AE可以发起基密钥、单播密钥和组播密钥的更新,ASUE可以发起基密钥和单播密钥的更新。密钥更新后PN也要更新。旧密钥的删除必须在新密钥激活后才能进行,在此之前,新旧密钥都需要保留并有效。
数据发送时,WPI-SMS4的MPDU封装过程如下,其中“||”为链接操作:
1)利用完整性校验密钥与数据分组序号PN,使用校验算法对完整性校验数据进行计算,得到完整性校验码MIC;
2)利用加密密钥与数据分组序号PN,通过加密算法对MPDU数据||MIC进行加密,得到MPDU数据||MIC的密文;
3)封装后再组帧发送。
数据接收时,WPI-SMS4的MPDU解封装过程如下:
1)判断数据分组序号PN是否有效,若无效,则丢弃该数据;
2)利用解密密钥与数据分组序号PN,通过解密算法对分组中的MPDU数据||MIC密文进行解密,恢复出MPDU数据||MIC明文。
3)利用完整性校验密钥与数据分组序号PN,通过校验算法对完整性校验数据进行本地计算,若计算得到的值与分组中的完整性校验码MIC不同,则丢弃该数据;
4)解封装后将MPDU明文进行MAC协议的处理。
由上述描述可知,在使用WPI后,如果MAC硬件作为AP使用时,要中转BSS内每个STA的数据,所以MAC硬件需要管理BSS中所有STA的密钥,同时也要维持每个STA使用的PN。在进行单播密钥和组播密钥更新的过程中,还需要为该STA同时维持两套单播密钥和PN。另一方面,作为AP使用的MAC在收发WPI保护的数据时,需要对数据进行缓存,直到取得需要的密钥和PN码。所以该MAC硬件必须要尽可能快的得到密钥和PN,以保证数据的流化处理和减少芯片内的缓存。
如果MAC硬件作为STA使用时,在BSS中,只需要存储自己的密钥。但是在IBSS中,则需要管理IBSS内所有STA使用的PN。在进行单播密钥和组播密钥更新的过程中,还需要为该STA同时维持两套单播密钥和PN。另一方面,作为STA的MAC在收发WPI保护的数据时,需要对数据进行缓存,直到取得需要的密钥和PN码。所以该MAC硬件必须要尽可能快的得到密钥和PN,以保证数据的流化处理和减少了芯片内的缓存。
而且由上述描述也可知,在WPI过程中,每通信端需要维持6个密钥组件,分别是:一个128位单播加密密钥,一个128位单播完整性校验密钥,一个128位单播PN码,一个128位组播加密密钥,一个128位组播完整性密钥,一个128位组播PN码。在密钥更新的时候,还需要维持两套上诉组件。基于如上分析,实现WPI需要维持多个密钥,每个密钥需要占用128位。当BSS/IBSS设计容量较大时,要占用大量存储空间。
发明内容
为解决上述的WPI密钥数量、密钥存储容量和密钥获取速度问题,本发明提供了一种方法,无论该802.11MAC作为STA或者AP,都能够有效的管理WPI的密钥。在不占用片内存储空间的情况下,能管理大量的WPI密钥,并在加密和解密时,能够尽快的获取到需要的密钥和PN。
请参阅图3,该图描述了本发明中WPI密钥管理模块的各部分组成。
所述WPI密钥管理模块,主要包括IO接口上的成员索引表1、密钥表基地址字段2,片外内存单播密钥表3,片外内存组播密钥表4,以及片内的WPI相关寄存器组5。
所述IO端口上的成员索引表1,由N项组成,N为WPI密钥管理的容量;每项用三个字描述,描述内容包括通信端STA的MAC地址,AID和WPI密钥管理信息。
所述IO端口上的密钥表基地址字段2,包括一个单播密钥基地址字段,用于描述片外内存中的单播密钥表的起始地址;还包括一个组播密钥基地址字段,用于描述片外内存中的组播密钥表的起始地址;
所述片外内存单播密钥表3,由N项组成,每项包括两套WPI的单播加密密钥(OFB),单播完整性校验密钥(CBC)和单播PN码,每项和IO端口上的成员索引表项一一对应;
所述片外内存组播密钥表4,由N项组成,每项包括两套WPI组播加密密钥(OFB),组播完整性校验密钥(CBC)和组播PN码,每项也和IO端口上的成员索引表项一一对应;
所述片内WPI相关寄存器组5,分为N项,每项包括三个寄存器,分别存储通信端STA的MAC地址,AID和WPI密钥管理信息,每项都通过硬件连线一一连接到对应的IO端口上的索引表项上。
当上述装置用于WPI密钥管理时,通过如下步骤实现:
1)将片外内存单播密钥表3和片外内存组播密钥表4的起始地址设置到IO端口上的密钥表基地址字段2中;
2)设置片外内存单播密钥表和组播密钥表中密钥的同时,设置IO端口的成员索引表中的对应项各字段;
3)当要求WPI加密的MPDU发送时,802.11 MAC内的加密逻辑根据MPDU的目的地址,并行比较片内WPI相关寄存器组5中存储的地址,得到索引号,该索引号也就是片外内存密钥表中该密钥的地址偏移;根据该索引号,得到密钥进行加密;
4)当要求WPI解密的MAC MPDU发送时,802.11 MAC内的解密逻辑根据MPDU的源地址,并行比较片内WPI相关寄存器组5中存储的地址,得到索引号,该索引号也就是片外内存密钥表中该密钥的地址偏移;根据该索引号,得到密钥进行解密。
由上述描述可知,在本发明中,WPI密钥存储于片外内存中,不占用片内存储资源。同时,本发明定义在IO端口上的索引表,能够预先定义很大的数量的表项,以实现对大量WPI密钥的存储和管理。在收发MPDU时,本发明通过对索引表的并行地址比对,可以在极短的时间内得到通信端的索引,而该索引也正是所需密钥在密钥表中的偏移,这样就可以尽快的开始密钥和PN的获取。通过本发明,可以进行大数量WPI密钥的管理,高效的WPI密钥获取,从而实现数据的流水化处理,减少芯片内缓存,降低实现难度和成本。
附图说明
图1为WPI数据保护需要的密钥和其附属PN示意图
图2为实现有WPI功能的802.11 MAC的结构示意图
图3为实现本发明所述方法的装置结构示意图,图中各缩写说明如下:
1)OFB00:WPI的单播加密密钥;
2)OFB01:密钥切换过程中同时有效的单播加密密钥;
3)CBC00:WPI的单播完整性校验密钥;
4)CBC01:密钥切换过程中同时有效的单播完整性校验密钥;
5)PN00:附属于单播密钥的PN码;
6)PN01:密钥切换过程中同时有效的单播PN码;
7)G_OFB00:WPI的组播加密密钥;
8)G_OFB01:密钥切换过程中同时有效的组播加密密钥;
9)G_CBC00:WPI的组播完整性校验密钥;
10)G_CBC01:密钥切换过程中同时有效的组播完整性校验密钥;
11)G_PN00:附属于组播密钥的PN码;
12)G_PN01:密钥切换过程中同时有效的组播PN码;
13)UKeyTableAddr:存储片外单播密钥表地址的寄存器;
14)MKeyTableAddr:存储片外组播密钥表地址的寄存器;
15)Avail:标示成员索引表中的第i项对应的STA当前是否有效;
16)UKeyIdx:单播密钥索引指示,表示采用单播密钥表对应项第几套密钥;
17)DblUKeyAval:在密钥切换过程中,指示当前两套单播密钥是否均有效;
18)MKeyIdx,组播密钥索引指示,表示采用组播密钥表对应项第几套密钥;
19)DblMKeyAval:在密钥切换过程中,指示当前两套组播密钥是否均有效。
具体实施方案
请参阅图2,该图描述了一个实现有WPI功能的802.11 MAC系统的结构。
实现有WPI功能的802.11 MAC系统的部件包括:一个802.11的MAC硬件,负责实现802.11MAC协议;一个片外内存,用于存储数据,在本发明中,单播密钥表和组播密钥表存储在这里。在802.11 MAC装置中,包含一个WPI相关寄存器组,用于实现WPI密钥的存储和状态存储;包含一个WPI加解密模块,用于WPI加密和解密;包含一个802.11协议模块,用于处理协议;还包含一些其他模块。
单播密钥表,组播密钥表,WPI相关寄存器组以及IO接口上的成员索引表和密钥表基地址共同构成了WPI密钥管理模块。
请参阅图3,该图描述了一个具体实现的WPI密钥管理模块的组成结构。
WPI密钥管理模块,主要包括IO接口上的成员索引表1、密钥表基地址字段2,片外内存单播密钥表3,片外内存组播密钥表4,以及片内的WPI相关寄存器组5。IO接口使用字为基本定义单位。
所述IO端口上的成员索引表1,由N项组成,N为WPI密钥管理的容量,在本实现中,N被定义为256。每项用三个字描述,描述内容包括通信端STA的MAC地址,AID和WPI密钥管理信息。图中线(1)表示WPI密钥管理信息由若干字段组成,其中Avail字段,用于指示该STA当前是否有效;UkeyIdx字段,用于指示当前采用单播密钥表对应项第几套密钥;DblUKeyAvail字段,用于在密钥切换过程中,指示当前两套单播密钥是否均有效;MkeyIdx字段,用于指示当前采用组播密钥表对应项第几套密钥;DblMKeyAvail字段,用于在密钥切换过程中,指示当前两套组播密钥是否均有效。
所述IO端口上的密钥表基地址字段2,包括一个单播密钥基地址字段,用于描述片外内存中的单播密钥表的起始地址,图中用UkeyTableAddr表示;还包括一个组播密钥基地址字段,用于描述片外内存中的组播密钥表的起始地址,图中用MkeyTableAddr表示;图中线(9)表示片外内存单播密钥表3对应到IO端口上的单播密钥表基地址字段;线(10)表示片外组播密钥表4对应到IO端口上的组播密钥表基地址。
所述片外内存单播密钥表3,由N项组成,每项包括两套WPI的单播加密密钥,单播完整性校验密钥和单播PN码,每项和IO端口上的成员索引表项一一对应。定义两套密钥表,用于在密钥更新的时候,保持两套密钥同时有效。图中OFB00表示WPI的单播加密密钥;OFB01表示密钥切换过程中同时有效的单播加密密钥;CBC00表示WPI的单播完整性校验密钥;CBC01表示密钥切换过程中同时有效的单播完整性校验密钥;PN00表示附属于单播密钥的PN码;PN01表示密钥切换过程中同时有效的单播PN码。
所述片外内存组播密钥表4,由N项组成,每项包括两套WPI组播加密密钥,组播完整性校验密钥和组播PN码,每项也和IO端口上的成员索引表项一一对应。每项定义两套密钥,用于在密钥更新的时候,保持两套密钥同时有效。图中G_OFB00表示WPI的组播加密密钥;G_OFB01表示密钥切换过程中同时有效的组播加密密钥;G_CBC00表示WPI的组播完整性校验密钥;G_CBC01表示密钥切换过程中同时有效的组播完整性校验密钥;G_PN00表示附属于组播密钥的PN码;G_PN01表示密钥切换过程中同时有效的组播PN码;IO端口索引表中某项的索引就是密钥表中该项的索引,也就是该项的地址偏移。
所述片内WPI相关寄存器组5,分为M项,每项包括三个寄存器,分别存储通信端STA的MAC地址,AID和WPI密钥管理信息。每项都通过硬件连线一一连接到对应的IO端口上的索引表项上。图中线(3)线(4)表示IO端口上的MacAddr两个部分在片内对应一个MacAddr寄存器;线(5)表示IO端口上的AID对应片内的AID寄存器;线(6)表示IO端口上的WPIMng字段对应片内WPIMng寄存器;片内WPIMng寄存器包括Avail字段,UkeyIdx字段,DblUKeyAvail字段,MkeyIdx字段,DblMKeyAvail字段,一一连接到IO端口上相应字段。片内WPI相关寄存器组5,还包括一个单播密钥表基地址寄存器和一个组播密钥表基地址寄存器,图中线(7)和线(8)表示这两个寄存器连接到IO端口上的UKTblAddr,MKTblAddr自动上。
当使用上述装置进行WPI密钥管理时,包括如下关键步骤:
1)在系统初始化时,建立内存中的单播密钥表3和组播密钥表4。然后设置他们的起始地址到IO端口上的密钥表基地址字段2上的单播密钥表基地址和组播密钥表基地址。
2)当某个通信端的STA的WPI密钥建立时,将密钥存储到密钥表的某项中,然后在IO端口的成员索引表中的对应项设置Avail字段。
3)当某个通信端的STA的WPI密钥无效时,在IO端口的成员索引表中的对应项复位Avail字段。
4)当某个通信端的STA的WPI密钥更新时,更新密钥表中的项,然后IO端口的成员索引表中的对应项设置UkeyIdx/MkeyIdx字段。在两讨密钥同时有效的期间,设置DblUKeyAvail/DblMKeyAvail字段。
5)当要求WPI加密的MAC MPDU发送时,802.11 MAC内的加密逻辑根据MPDU的目的地址,并行比较WPI密钥管理部件中的寄存器组存储的地址,得到索引号,该索引号也就是密钥表中该密钥的地址偏移。根据该索引号,将片内密钥表地址寄存器中存储的地址进行偏移,得到密钥进行加密。
6)当要求WPI解密的MAC MPDU发送时,802.11 MAC内的解密逻辑根据MPDU的来源地址,并行比较WPI密钥管理部件中的寄存器组存储的地址,得到索引号,该索引号也就是密钥表中该密钥的地址偏移。根据该索引号,将片内密钥表地址寄存器中存储的地址进行偏移,得到密钥进行解密。