wifi安全性里FT密钥是什么加密方式?
手机wifi添加网络安全性里,wpa/wpa2/psk后多个(FT)貌似有的手机有有的没有。
FT是Fast BSS Transition首字母的缩写,其中BSS是Basic Service Set的缩写。可以翻译成快速漫游或者快速切换,技术标准为802.11r。
后缀如果有FT,表明支持快速漫游,比如PSK-FT,802.1-FT、SAE-FT、FILS-FT。
如果后缀没有FT,表明不支持802.11r的快速漫游,比如PSK、SAE。
早期的Wi-Fi漫游效率低下。现在假设老王想连接一个802.1x企业Wi-Fi网络AP1。
至少需要7个RTT(Round Trip Time):
-
Authentication 1* RTT
-
Association/Reassociation 1* RTT
-
802.1X / EAP 3 * RTT +
-
4-way handshake 2 *RTT
更要命的是,上文加亮部分,是一个最小数量的RTT次数。至于这个次数具体是多少取决于EAP method。以EAP-TLS为例,不仅仅要牵扯到Client、AP、AC、AAA/Radius Server(AS)、AD至少5个元素,还牵扯到双向证书的认证和校验,以及ECDHE公钥交换、以及用对方ECDHE公钥与自己ECDHE私钥,双方共同计算出Master Session Secret。然后再推导出一个Exportable Master Session Key,并由AS加密传输给AP/AC。整个过程完成几百个毫秒到几秒不等。
由于Client、AP都拥有Master Session Key(MSK),然后按照算法推导出PMK。
并在4-way handshake成功推导出PTK,802.1x打开逻辑端口。老王的DHCP会话才能开始,拿到IP参数之后才算连上了网。悠远而漫长。。。
如果老王漫游到该网络下的AP2,又要重复以上的过程。如果老王在视频通话,在漫游的好几秒钟之内,视频是无法刷新的,视频流量全丢了。
于是,IEEE专家制定一个快速漫游的机制802.11r,希望将漫游的RTT次数控制在2次,即:
-
Authentication-FT 1* RTT
-
Reassociation-FT 1* RTT
问题来了,短短的2 RTT时间能够完成Client与AP之间的PTK的同步吗?
当然可以。
怎么实现的呢?
首先,AP会在beacon或者probe response里通告自己FT的capability.
Client会在第一次associate request AP1的时候,通知AP1,自己也有FT capability。
然后在第一次4-way handshake的时候,AC用MSK推导PMK-R0,而不是PMK。用PMK-R0Name标识。然后用PMK-R0、Client MAC、AP1 MAC、标签推导出PMK-R1,并将PMK-R1加密传输给AP1.
Client拥有MSK,推导PMK-R0、PMK-R0Name标识、然后用PMK-R0、Client MAC、AP1 MAC、标签推导出PMK-R1。
两者推导的PMK-R1,应该是一样的,只要用PMK-R1跑一次4-way handshake,双方就可以得到PTK,至于接下来的流程和上文类似,第一次连接就这样完成了。
记住,这个过程和普通的802.1X连接并没有本质的差别,也快不了,是少10多个RTT时间。但是却留下了宝贵的FT遗产,即PMK-R0、PMK-R0Name。
FT快速漫游
老王漫游到同一个漫游域(Mobile Domain ID相同)且SSID相同的AP2上。
老王的Client窃喜,因为可以FT了。
-
1. Client 用Authentication Frame携带RSNE, PMKID= PMK-R0Name。Authentication 算法= FT, Client的Nonce。
-
AP2收到之后,提取PMK-R0Name,请求AC给自己签发一个PMK-R1。AC根据PMK-R0Name,查表,得到PMK-R0,然后用上文的算法签发一个PMK-R1,并附带它的标识PMK-R1Name,并加密传输给AP2。
2. AP2用Authentication Frame携带RSNE, PMKID= PMK-R1Name,以及AP 的Nonce。
3. Client收到2,发现PMK-R1Name与自己计算的相同,双方的PMK-R1相同。至此Client根据公开的算法推导出PTK。为了证明自己拥有PTK,Client发出Reassociation Request携带EAPOL-key,填充MIC。
4. AP2收到3,用PTK校验MIC,发现无误,至此双方同步PTK。于是AP2将GTK、IGTK、BIGTK使用PTK/KEK加密传输给Client,使用Reassociation Response Frame。
至此PTK、GTK分享完毕,一次FT快速漫游结束,一共花了2RTT时间。
还能再快一些吗?以上是FT over AIR的过程,如果FT over DS只需要1个RTT时间。
即authentication提前使用AP1完成,使用action frame携带authentication frame。
原文始发于微信公众号(车小胖谈网络):Wi-Fi安全性里FT密钥是什么加密方式?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论