[转载]主流漫游技术-OKC&802.11r介绍

前言:什么是漫游?

漫游行为:

简单来说,就是设备从一个AP,连接到另一个AP。IP地址不需要重新申请。整个过程需要尽可能快的进行,否则对于用户而言,就会发现网络出现卡顿。而为了安全,网络的认证过程已经变得十分耗时(例如802.1X认证)。所以为了避免漫游时出现重新认证,开发出了OKC,以及802.11R协议进行补充。避免漫游时进行完整的认证过程。

       使用OKC,802.11R等协议,省去认证过程的漫游称为快速漫游

一、预先认证(preauthentication)

Preauthentication是802.11-2007中定义的Fast Roaming方法。是指STA通过当前连接的AP(AP1),跟它即将要连的AP(AP2)进行一次完整的802.1X认证。认证通过后,AP2中就会生成一条PMKSA Cache。

简单总结下:预认证是用于802.1X。与多个AP进行开放式系统认证并不是预认证。向新AP进行802.1X认证才是预认证

问题:

当使用WPA时能否进行预认证(preauthentication)?

按照802.11-2007标准,预认证能力是利用RSN IE来通告的。这意味着Wi-Fi联盟之前的WPA由于使用WPA IE而不是RSN IE而不能进行预认证。 

WPA2和WPA区别是什么呢?

它们对于快速漫游和安全特性有什么影响呢?  

首先,要知道一个BSS只要不支持WEP而支持TKIP或CCMP,那么就被认为是一个RSN。 但使用哪一种encryption cipher(s)也决定了BSS中的帧格式。具体来讲,如果网络支持WPA2 (AES-CCMP与可选的TKIP)安全,那么在许多管理帧中将包含RSN IE。但如果BSS仅支持WPA安全(TKIP),那么RSN IE将被WPA IE替换。WPA IE与RSN IE的功能类似,但RSN IE中的一些字段发生了变化或被忽略。 
仔细分析下WPA IE中遗漏的一些字段。首先WPA IE中不存在preauthentication字段,这也就意味着不能支持预认证功能。而且,WPA IE中不存在PMKID Count和PMKID List字段,而现在快速安全漫游中的许多特性(诸如PMK caching和Opportunistic Key Caching (OKC))都要使用这些字段,这两个字段缺失也意味着不能支持这些特性,这对于移动环境中使用WPA-Enterprise的人是一个考验。

下面看看WPA IE和RSN IE的差异。 
 https://img-blog.csdn.net/20160115152242658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
图 2-1 Beacon帧中携带的WPA IE 

https://img-blog.csdn.net/20160115152309660?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
图 2-2 关联请求帧中携带的WPA IE

https://img-blog.csdn.net/20160115152325501?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

图 2-3 Probe应答帧中携带的RSN IE

 

https://img-blog.csdn.net/20160115152339444?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

图 2-4 关联请求帧中携带的RSN IE

    图 2-1是Beacon帧(使用PSK安全)中携带的WPA IE, 可以与图 2-3给出的Probe应答帧(使用802.1X/EAP安全)中携带的RSN IE对比。然后比较图 2-2和图 2-4,分别是关联请求帧中携带的WPA IE和关联请求帧中携带的RSN IE。这里的截图使用了现实世界中常用的PSK和802.1X/EAP来展示两者的差异。
    注意:OUI从00:0F:AC变为00:50:F2(IEEE对Wi-Fi联盟),但是cipher type与authentication type的编码相同。在WPA IE中没有preauthentication bit,而且在(重)关联帧1如果对老客户需要支持TKIP,但又要支持CCMP,那么可以配置为WPA2就可以同时支持这两种ciphers,这将使网络中使用的是RSN IE。当然,你会发现一些使用TKIP的设备无论如何不支持快速安全漫游,但是客户真的希望具备该特性。 中没有PMKID count和PMKID list字段。注意这里的RSN IE截图中只有PMKID Count字段而没有PMKID List字段,这是由于PMKID Count取值为0,否则将会有PMKID list字段。如果对老客户需要支持TKIP,但又要支持CCMP,那么可以配置为WPA2就可以同时支持这两种ciphers,这将使网络中使用的是RSN IE。当然,你会发现一些使用TKIP的设备无论如何不支持快速安全漫游,但是客户真的希望具备该特性。

Preauthentication虽然在Roaming期间略过了802.1X,但还是每次都要做,只不过提前罢了。

OKC的出现,就是为了解决每次都要做802.1X的问题,可以提高效率,降低网络负荷。可是,OKC的方便是建立在牺牲安全性的基础上的。这会导致每个AP上都拿到相同的PMK。

为了同时解决Preauthentication和OKC的缺陷,IEEE推出了802.11r,对Fast Roaming进行了补充。

二、OKC

OKC(Opportunistic Key Caching)

也叫OPC(Opportunistic PMK Caching),是微软定义的一套标准,并不在802.11标准中。不过多数厂商都支持这种方式,也成为了一种事实标准。是在PMK caching基础上进行设计的。所以首先了解一下PMK caching

2.1、PMK caching

PMK caching是由802.11i协议定义的,一种用在单个AP与设备之间的认证中的有效技术。使用在当一个工作站已经认证在某个AP上,然后漫游到其他AP,之后又漫游回该AP。不用进行完整的认证,只需进行802.11i中定义的四次握手交换共享密钥过程即可。

所以PMK caching只适用802.1X认证。

工作原理:

       在漫游发生之后,会在关联请求帧中将PMKID上报,AP根据PMKID在PMK caching中进行查找对应的PMK,如果找到,就不需要再进行802.1X过程获取PMK了。

2.2、OKC

Opportunistic Key Caching:是与PMK caching类似的技术,也是为了避免复杂的802.1X认证过程。

OKC适用在同一网络下,同一AC下的多个AP之间进行的漫游。

与PMK caching不同,OKC会将PMK在AP之间进行交换。

工作原理:

当STA跟AP1经过完整的EAP/802.1X建立连接后,产生一条PMKSA,里面包含一个PMKID1,然后AP1把这个PMKSA传给它的邻居,其中一个就是AP2。

漫游发生前,STA要根据AA,SPA和PMKID1计算出一个PMKID2,把这个PMKID2放在RSN IE里,送给AP2。

AP2在收到这个PMKID2后,就像平时一样,会在自己的PMKSA Cache里找,当然,这是找不到的。因为Cache没有一个的PMKID是PMKID2。然后,AP2就要对Cache中的每一个Entry计算一次新的PMKID,其必要的几个元素,AA,SPA和PMKID1都是有的。每计算一个就跟PMKID2匹配一次,匹配成功就可以直接进行4次握手。

注意:

由于OKC是在PMK caching上进行开发,且并不是Wi-Fi联盟推出的协议,所以并不是每个设备厂商都支持。

参考文档:

《Aruba+OKC+Implementation》:

aruba公司关于OKC的官方文档,下载网址:

https://download.csdn.net/download/u012503786/10931601

代码参考:

       hostapd中的pmksa_cache.c和pmksa_cache_auth.c

三、802.11R

802.11R与OKC的不同:

1、802.11R不仅可以用在802.1X认证中,也可以用在PSK认证中

2、802.11R协议延伸出新的共享密钥生成过程

3、802.11R将密钥交换过程放到关联认证过程

4、802.11R不仅可以省去802.1X认证过程,也可以省去四次握手过程

参考文档:

《802.11r BSS Fast Transition Deployment Guide》:英文

       关于802.11r步骤的文档,没有802.11r的细节描述,下载地址:

       https://download.csdn.net/download/u012503786/10931616

《基于802.11R协议的快速漫游系统的设计与实现》:中文

       论文,介绍802.11r的实现过程细节,有抓包分析。

《IEEE Std 802.11r-2008》英文

       IEEE关于802.11r技术的标准文档,版本为2008年版,有详细的介绍,强力推荐下载地址:

       https://download.csdn.net/download/u012503786/10931632

 

《80211r原理明细》中文

       侧重于介绍802.11r的密钥产生以及状态机变化,下载地址:

       https://download.csdn.net/download/u012503786/10931623

 

代码参考:

       hostapd中的wpa_ft.c和wpa_auth_ft.c

*******************************************************************************************

无法下载可发送邮件至hanfs390@foxmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值