NUDT 杨磊
如果采用的是802.1X认证方式,R0KH就根据认证交互过程中从radius认证服务器 那得到的主绘话密钥(MSK)计算出PMK_R0;如果是采用PSK方式则直接根据 PSK进行计算。当认证成功后,R0KH删除MD中以前存有的与S0KH有关的 PMK_R0的安全关联,以及由它计算出来的PMK_R1的安全关联。
R0KH同时根据MD内的不同R1KH_ID计算出PMK_R1, 并将它传给同一MD中的所有R1KHs。PMK Rls是用来计算成对临时密钥(PTK)的。R1KH接收到PMK—R1时就会删除以前的 PMK_R1的安全关联,以及它所计算出的PTKSAs
PMK_R0,PMK_R1,PTK的生命周期取决于进行802.1x验证时得到的MSK,长度不能超过MSK本身的生命周期
密钥的计算公式参见下一节
11
NUDT 杨磊
3.2密钥计算公式
具体计算方法请参考IEEE802.11r-2008
3.3密钥的分发和索取
为了实现工作站切换AP时的快速漫游,802.11r规定,在工作站初次与MD进行初始化关联后,认证者在合适的时候(对此802.11r文档没有明确说明,从状态机上看应该是计算出PTK之后,再为其他R1KH计算分发PMK_R1),需要遍历MD中的所有R1KH_ID并计算出相关的PMK_R1发往MD内的所有R1KHs,此后工作站在进行漫游时,可以通过事先配发的PMK_R1计算出PTK,避免再进行费时的802.1x认证。
PMK_R1的计算分发由R0KH完成,所用的计算公式为3-5和3-6,
12
NUDT 杨磊
计算过程如下图所示:
由于每个R1KH_ID在MD中的唯一性,计算出的PMK_R1是不同的,因此对于每一个STA,在不同的R1KH里保存的PMK_R1也是唯一的。但对应的PMK_R0则是一样的。
密钥的索取机制发生的条件为快速漫游时目的AP的R1KH密钥管理实体上没 有找到STA要求的PMK R1。这种情况可能是MD中临时添加了新的AP,或者 R0KH密钥管理实体分发密钥时MD中的某个AP没有启动,而不是因为链路不通,或链路不安全。此时R1KH密钥管理实体会根据STA发出的R0KH_ID字段找到 R0KH密钥管理实体索取PMK_R1。此时R0KH密钥管理实体会根据发出请求的 R1KH_ID推演出PMK_R1和PMKRlName存储在R1KH密钥管理实
13
NUDT 杨磊
体中。
四.802.11r新增的数据结构
4.1:MDIE(移动域元素)
一般来说,可将一个ESS看做一个移动域(MD),具体到实现,可将一个AC与其控制下的所有AP及所有关联到这些AP上的STA看做一个移动域.MDIE用于标识该移动域ID与性能.如果MD支持802.11r,那这个元素应该添加到Beacon帧和Probe resp帧里,该元素格式如下
14
NUDT 杨磊
EID用于标识MDIE自身,长度字段设置为3,MDID标识MD,最后一个字段标识MD的性能,格式如下:
B0置1,代表该MD通过over_the_DS的方法执行快速转换; B0置0,代表该MD通过over_the_Air的方式执行快速转换; B1置1,代表“带资源请求的FT协议” B2保留。
4.2:FTIE(快速转换信息元素)
FTIE元素传递与密钥协商有关的信息,如完整性校验值(MIC)、认证者端的 随机数(ANonce)、STA端的随机数(SNonce)、GTK、 R1KH—ID和R0KH—ID。这个信息元素的格式如下图:
15