4、802.11r协议详解:快速BSS切换(FT)、密钥层次结构、FT认证流程

各位好,我是老周。今天我们来聊聊802.11r协议,也就是常说的快速BSS切换(FT)。这个协议在WiFi漫游优化里,属于核心中的核心。我刚开始接触它的时候,也觉得密钥层次、认证流程这些东西挺绕的。但搞明白之后,你会发现它其实很巧妙。

说白了,802.11r要解决一个很实际的问题:当你的手机从一个AP走到另一个AP时,能不能别让我等那么久?传统的802.11认证流程,每次切换都要和认证服务器(比如RADIUS)重新握手,耗时可能达到几百毫秒。对于语音、视频这类实时业务,这简直是灾难。

4.1 为什么需要802.11r?

我们先看一个典型的场景。你拿着手机在公司里走动,从A区走到B区。传统流程是这样的:

  1. 手机扫描到新AP(B区AP)。
  2. 手机与新AP完成802.11认证(Open System)。
  3. 手机与新AP完成802.1X认证(EAP交换,与RADIUS服务器交互)。
  4. 生成成对主密钥(PMK),然后进行四次握手,生成加密密钥。
  5. 完成关联,开始传输数据。

这里面最耗时的就是第3步。EAP认证可能需要几百毫秒甚至更久。802.11r的思路就是:能不能把第3步省掉?或者,能不能提前把密钥准备好?

核心思想:802.11r通过引入密钥层次结构和快速BSS切换(FT)机制,让STA(站点)在切换时,不需要每次都和认证服务器交互,而是利用已有的密钥材料,快速推导出与新AP通信所需的密钥。

我个人习惯把802.11r看作是一种“密钥预分发”机制。你第一次关联时,还是需要完整的802.1X认证。但之后每次切换,都只需要在AP之间传递一个“密钥容器”,STA用这个容器就能快速完成认证。

4.2 密钥层次结构

要理解FT,必须先搞懂它的密钥体系。802.11r定义了一套清晰的密钥派生路径。我画了一张图,你可以对照着看。

802.11r 密钥层次结构图 802.11r 密钥层次结构 MSK (主会话密钥) PMK0 (成对主密钥) PMK-R0 (R0密钥) PMK-R1 (R1密钥) PTK (成对临时密钥) 说明: MSK由认证服务器生成,PMK0由STA和AS推导。PMK-R0和PMK-R1由R0KH和R1KH管理。 FT认证的核心就是利用PMK-R1直接推导PTK,跳过完整的802.1X流程。

这张图展示了从MSK到PTK的完整派生路径。我来逐一解释:

  • MSK(主会话密钥):这是最顶层的密钥,由认证服务器(AS)在802.1X认证成功后生成。它不直接用于加密数据,而是作为所有后续密钥的根。
  • PMK0(成对主密钥):由MSK推导而来。在传统802.11中,PMK0就是PMK。但在802.11r中,它只是中间产物。
  • PMK-R0(R0密钥):由PMK0和R0KH-ID(R0密钥持有者标识)推导。R0KH通常是一个控制器或一组AP的集合。PMK-R0是“域级”密钥。
  • PMK-R1(R1密钥):由PMK-R0和R1KH-ID(R1密钥持有者标识)推导。R1KH就是具体的AP。PMK-R1是“AP级”密钥。
  • PTK(成对临时密钥):由PMK-R1和随机数(ANonce、SNonce)通过四次握手生成。PTK才是真正用于加密单播数据的密钥。

我的经验:在实际部署中,R0KH通常对应AC(无线控制器),R1KH对应每个AP。这样,当STA在同一个AC下的AP之间漫游时,只需要在AC内部完成PMK-R1的传递,不需要和RADIUS服务器交互。我曾经帮一个客户优化过,漫游时延从300ms降到了30ms以内。

4.3 FT认证流程

802.11r定义了两种FT认证方式:Over-the-Air 和 Over-the-DS。我主要讲Over-the-Air,因为这是最常用的方式。

FT认证流程分为两个阶段:初始关联 和 快速切换。

4.3.1 初始关联(Initial Mobility Domain Association)

这是STA第一次关联到支持FT的网络。流程和传统802.1X类似,但多了FT信息元素(FT IE)。

  1. STA发送Probe Request,AP回复Probe Response,其中包含Mobility Domain IE(移动域标识)。
  2. STA发送Authentication Request,AP回复Authentication Response。
  3. STA发送Association Request,其中包含FT IE(包括R0KH-ID、R1KH-ID等信息)。
  4. AP回复Association Response,也包含FT IE。
  5. 完成802.1X认证(EAP交换),生成MSK和PMK0。
  6. AP(作为R1KH)从R0KH获取PMK-R1。
  7. 完成四次握手,生成PTK,开始通信。

嗯,这里要注意:初始关联并没有省掉802.1X。它只是把FT的“种子”埋下了。

4.3.2 快速切换(Fast BSS Transition)

当STA需要切换到另一个AP时,真正的FT流程才开始。我以Over-the-Air为例:

  1. 触发:STA通过扫描发现目标AP(Target AP)。
  2. FT Authentication Request:STA向目标AP发送FT Authentication帧。这个帧里包含了:
    • 当前AP的R0KH-ID和R1KH-ID。
    • STA的SNonce(随机数)。
    • MIC(消息完整性校验码),用于验证STA的身份。
  3. FT Authentication Response:目标AP收到后,会做两件事:
    • 如果目标AP没有STA的PMK-R1,它会通过DS(分布式系统)向当前AP或R0KH请求PMK-R1。
    • 目标AP生成ANonce,结合PMK-R1和SNonce,推导出PTK。
    • 目标AP回复FT Authentication帧,包含ANonce、MIC等信息。
  4. FT Reassociation Request:STA收到响应后,也推导出PTK。然后发送FT Reassociation Request,其中包含MIC(用新PTK计算)。
  5. FT Reassociation Response:目标AP验证MIC,确认无误后,回复FT Reassociation Response。此时,STA和目标AP已经拥有相同的PTK。
  6. 数据通信:切换完成,开始传输数据。

关键点:整个快速切换过程,STA和目标AP之间只交换了4个帧(FT Auth Req/Resp, FT Reassoc Req/Resp)。没有802.1X,没有RADIUS交互。这就是快的秘密。

我画了一个流程图,帮你理清这个交互过程。

FT Over-the-Air 快速切换流程图 FT Over-the-Air 快速切换流程 STA 当前AP 目标AP 1. 扫描到目标AP 2. FT Auth Req (SNonce, MIC) 3. 请求PMK-R1 4. FT Auth Resp (ANonce, MIC) 5. FT Reassoc Req (MIC) 6. FT Reassoc Resp (MIC) 7. 数据通信开始 注意:步骤3中,目标AP通过DS(分布式系统)从当前AP或R0KH获取PMK-R1,这个过程对STA透明。

4.4 关键参数与配置

在实际配置中,有几个参数需要特别注意。我整理了一个表格,方便你对照。

参数 含义 配置建议
Mobility Domain ID 移动域标识,同一组支持FT的AP共享此ID 确保同一漫游域内的AP配置一致
R0KH-ID R0密钥持有者标识,通常是AC的MAC地址 使用AC的BSSID或指定MAC
R1KH-ID R1密钥持有者标识,通常是AP的MAC地址 使用AP的BSSID
FT Over-the-Air / Over-the-DS FT认证方式选择 大多数场景推荐Over-the-Air
PMK-R1 Lifetime PMK-R1的有效期 建议与PMK0生命周期一致,通常为8-24小时

避坑指南:我曾经遇到过一个案例,客户部署了802.11r,但漫游时延反而变高了。排查后发现,是R0KH-ID配置错误。STA在FT Authentication Request中携带的R0KH-ID,和目标AP期望的不一致,导致目标AP无法找到对应的PMK-R1,最终回退到完整802.1X认证。所以,务必确保所有AP的R0KH-ID和R1KH-ID配置正确且一致。

4.5 802.11r的局限性

802.11r不是万能的。它有几个前提条件:

  • 所有AP必须支持802.11r:如果网络中存在不支持FT的AP,STA在切换时可能会回退到传统流程,导致体验不一致。
  • 需要良好的DS(分布式系统)连接:PMK-R1的传递依赖AP之间的通信。如果AP之间网络延迟高,会影响切换速度。
  • 客户端兼容性:虽然现代操作系统(iOS、Android、Windows 10+)都支持802.11r,但一些老旧设备可能不支持。我建议在部署前做兼容性测试。

好了,关于802.11r协议,核心内容就是这些。密钥层次结构是理解FT的基础,认证流程是实战的关键。你想想看,掌握了这些,你就能在实际网络中,把漫游时延从几百毫秒降到几十毫秒。这就是技术的价值。