wifi 802.11 kvr 漫游

802.11k

802.11k为无线局域网应该如何进行信道选择、漫游服务和传输功率控制提供了标准。他提供无线资源管理,让频段(BAND)、通道(CHANNEL)、载波(CARRIER)等更灵活动态地调整、调度,使有限的频段在整体运用效益上获得提升。在一个无线局域网内,每个设备通常连接到提供最强信号的接入点。这种管理有时可能导致对一个接入点过度需求并且会使其他接入点利用率降低,从而导致整个网络的性能降低,这主要是由接入用户的数目及地理位置决定的。在一个遵守802.11k规范的网络中,如果具有最强信号的接入点以其最大容量加载,而一个无线设备连接到一个利用率较低的接入点,在这种情况下,即使其信号可能比较弱,但是总体吞吐量还是比较大的,这是因为这时网络资源得到了更加有效的利用。

802.11r

802.11r标准,着眼于减少漫游时认证所需的时间,这将有助于支持语音等实时应用。使用无线电话技术的移动用户必须能够从一个接入点迅速断开连接,并重新连接到另一个接入点。这个切换过程中的延迟时间不应该超过50毫秒,因为这是人耳能够感觉到的时间间隔。但是802.11网络在漫游时的平均延迟是几百毫秒,这直接导致传输过程中的断续,造成连接丢失和语音质量下降。所以对广泛使用的基于802.11的无线语音通讯来说,更快的切换是非常关键的。802.11r改善了移动的客户端设备在接入点之间运动时的切换过程。协议允许一个无线客户机在实现切换之前,就建立起与新接入点之间安全且具备QoS的状态,这会将连接损失和通话中断减到最小。

802.11v

无线网络管理。V工作组是最新成立的小组,其任务将基于802.11k所取得的成果。802.11v主要面对的是运营商,致力于增强由Wi-Fi网络提供的服务。无线终端设备的控制涉及多个方面。负载平衡功能能够根据接入点的负载情况在它们之间分配无线终端设备。目前,这项任务是通过阻止终端设备连接在超载的接入点上或结束已经连接到接入点上的终端设备会话来实现的。可是,这些活动可能中断终端设备会话。802.11v设想通过将终端设备引导到具有可用带宽和资源的接入点,使负载平衡变得对用户透明。

该标准可以加快网络的部署。在使用802.11网络时,终端设备加入到具有SSID特性的网络。现在没有一种无须手工为终端设备配置SSID和安全证书、自动告知终端设备应当连接在什么网络上的机制。802.11v中建议了实现从基础设施进行安全终端配置的功能,这将大大减少大型网络中的部署时间。

 

802.11r

1.1  简介

802.11r协议中定义的FT(Fast BSS Transition,快速BSS切换)功能用来减少客户端在漫游过程中的时间延迟,从而降低连接中断概率、提高漫游服务质量。

1.1.1  FT实现方式

FT支持两种方式:

·     Over-the-Air:客户端直接与目标AP通信,进行漫游前的认证。

·     Over-the-DS:客户端通过当前AP与目标AP通信,进行漫游前的认证。

1. AC内over-the-air方式漫游

图1-1 AC内over-the-air方式漫游示意图

wifi 802.11 kvr 漫游_第1张图片

 

图1-1所示,客户端在连接至同一AC的AP间(AP 1到AP 2)漫游时,信息交互过程描述如下:

(1)     客户端已经与AP 1连接并且要漫游到AP 2;

(2)     客户端向AP 2发送认证请求;

(3)     客户端收到AP 2的认证请求回应;

(4)     客户端向AP 2发送重关联请求;

(5)     客户端收到AP 2的重关联请求回应;

(6)     客户端完成从AP 1到AP 2的漫游。

2. AC间over-the-air方式漫游

图1-2 AC间over-the-air方式漫游示意图

wifi 802.11 kvr 漫游_第2张图片

 

图1-2所示,AP 1和AP 2分别连接AC 1和AC 2,在同一移动域内漫游的信息交互过程描述如下:

(1)     客户端与AP 1建立连接;

(2)     AC 1同步客户端漫游信息(PMK、VLAN等信息)到AC 2;

(3)     客户端准备漫游,发送FT认证请求到AP 2;

(4)     客户端收到AP 2发送的FT认证回复;

(5)     客户端向AP 2发送重关联请求;

(6)     客户端收到AP 2的重关联请求回应;

(7)     客户端完成从AP 1到AP 2的漫游。

3. AC内over-the-ds方式漫游

图1-3 AC内over-the-ds方式漫游示意图

wifi 802.11 kvr 漫游_第3张图片

 

图1-3所示,客户端在连接至同一AC的AP间(AP 1到AP 2)漫游时,信息交互过程描述如下:

(1)     客户端与AP 1建立连接;

(2)     AC生成、同步、保存客户端的漫游表项;

(3)     客户端准备漫游,向AP 1发送FT认证请求;

(4)     客户端收到AP 1的FT认证回复;

(5)     客户端向AP 2发送重关联请求;

(6)     客户端收到AP 2的重关联请求回应;

(7)     客户端完成从AP 1到AP 2的漫游。

1.1.2  标准与协议

·     802.11r IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements

1.1.3  注意事项

·     如果有客户端无法关联使能了FT功能的服务,可能是由于客户端的型号较早而不支持FT协议。此时可以创建两个SSID相同的服务,一个使能FT功能,另一个不使能FT功能,而其它配置均相同,以便客户端可以正常使用网络服务。

·     不建议在服务模板下同时开启FT功能和802.1X周期性重认证功能,否则会导致客户端在每次重认证时间间隔到达时重新上线。关于802.1X周期性重认证功能的介绍和配置请参见“WLAN配置指导”中的“WLAN用户接入认证”。

·     快速BSS切换协商成功的客户端,不支持PTK更新。关于PTK更新的介绍和配置请参见“WLAN配置指导”中的“WLAN用户安全”。

1.2  802.11r配置

表1-1 配置802.11r

操作

命令

说明

进入系统视图

system-view

-

配置WLAN服务模板

wlan service-template service-template-name

-

开启FT功能

ft enable

缺省情况下,FT功能处于关闭状态

(可选)配置FT方式

ft method { over-the-air | over-the-ds }

缺省情况下,FT方式为over-the-air

(可选)配置关联超时时间

ft reassociation-timeout timeout

缺省情况下,关联超时时间为20秒

关联超时时间指的是,客户端在完成认证后,客户端发起关联请求的最大时间间隔。如果在此时间内客户端没有发起关联,则会终止此次漫游

 

 

 

 

802.11r协议理解

首先阅读了相关协议内容整理出了如下的802.11r时序图所谓基础,然后会详细理解其中的每一个步骤:
wifi 802.11 kvr 漫游_第4张图片

802.11链路认证:
1.OSA open System 基于MCA地址的身份验证
2.Shared-key authentication使用WEP 一共使用四个帧完成认证

关联过程:AP必须为STA在网络上注册,使分布式系统能够记录每个STA的位置
为了节省时间,在AP接收到关联请求的时候会立即给STA一个关联响应,但是如果AC最后响应不允许关联,此时可以将STA下线
如果STA支持80211r则会在关联报文中添加MDIE,如果支持80211i则添加RSNIE,AP收到assoc req帧后会拿这两个信息元素和自身的MDIE,RSNIE对比(也就是写入Beacon帧里的MDIE),如果不一致会导致关联失败,关联成功后,AP向STA发送assoc resp帧,并告知STA其R0KH_ID和R1KH_ID。为以后生产三层密钥(PMK_R0,PMK_R1,PTK)做准备;

802.1X认证过程:强AP与弱AC的形式,使AC在认证过程中是作为代理
802.11i协议定义了使用TLS连接生成的主密钥MSK(Master Secret Key)来作为PMK,因此只有采用了TLS方法的802.1X认证才能够用于无线接入。最常见的一种用法是802.1X使用PEAP+MSCHAPv2的认证方法,PEAP负责建立TLS连接并对内层认证数据加密,MSCHAPv2用于内层验证用户名和密码。
详细认证过程TBD

四次握手:使用EAPOL帧
在四次握手开始前,Client需要先关联到AP上,并且双方都需要准备好PMK之后才能开始四次握手。在前面1.3.2章节中介绍过,WPA-Personal方式双方可以直接计算出PMK,所以不需要经历图1-15的认证阶段,而WPA-Enterprise方式则需要通过802.1X认证来派生出PMK。
四次握手阶段的4个消息写作Message N(r, Nonce; GTK),N用来表示是第几个消息,r用来表示图1-13中的Key Replay Counter,逗号之后是随机数Nonce,如果是Authenticator产生的随机数则写作ANonce,如果是Supplicant产生的随机数则写作SNonce,如果没有随机数则不写。分号之后的参数是保存在消息的Key Data字段的,GTK表示Data中的数据是组播密钥。
消息1:四次握手的第一个消息是由AP首先发给Client,携带了AP产生的随机数ANonce,因为Key Replay Counter关系到后续报文加密计算,所以需要初始化Key Replay Counter。在整个四次握手的4个消息中,消息1是唯一不带Key MIC校验参数的消息,前面讲过Key Replay Counter需要在Key MIC校验合法后才进行更新,因此Client在收到消息1后并不会更新自己的Key Replay Counter。因为消息1是可能出现重传的,Client不能因为收到消息1就更新自己的Key Replay Counter导致该值被重置。
消息2: Client收到消息1之后会产生一个自己的随机数SNonce,从前面1.3.3.1章节的公式可以看出,Client已经知道自己和AP的无线MAC地址,也知道自己和AP的随机数SNonce和ANonce,Client已经满足公式计算的所有输入参数,因此Client可以计算出单播密钥PTK,但此时Client并未将PTK安装到无线驱动中,因为AP尚未确认该PTK。然后Client需要将SNonce发送给AP,这样AP才能够根据同样的算法派生出PTK。
消息3:此时Client和AP双方都派生出了PTK,但是PTK仅用于单播报文的通信加解密,组播和广播数据需要用到GTK密钥。因为是广播或组播通信,通信范围是一个AP下关联的所有Client,所以一个AP下的所有Client应该拥有一个共同的加解密密钥GTK,这个密钥由AP负责产生并定期更新,AP将密钥告知新接入的Client,因此AP还需要向Client发送消息3,将GTK放在Key Data字段中,但GTK也必须以加密的方式发送,加密密钥为消息2派生的PTK中的KEK密钥(图1-12中的KEK字段)。消息3会将Key Information中Install标记位置1,通知Client可以将密钥安装到无线驱动中。
消息4:该消息实际上是对消息3的确认消息,表示Client确认收到了消息3,否则会引起消息3的重传,因此消息4除了带有Key MIC验证消息完整性外,不包含任何其他信息。Client发出消息4后,就会向无线驱动中安装PTK和GTK密钥;AP收到消息4后,也会向无线驱动中安装该Client的PTK,AP上已经在使用GTK,所以GTK无需再次安装到无线驱动中。
Client在与AP首次连接时,四次握手消息都是处于未加密的状态,但是Client与AP成功连接后仍然可以通过四次握手更新PTK和GTK,在更新的情况下,四次握手消息会当作普通报文一样来处理,EAPOL报文会被前一次协商的PTK加密。GTK可以单独进行更新,更新GTK时相当于只进行了消息3和消息4的步骤。GTK是由AP来定时更新,AP上的GTK一旦更新,就需要通知AP上所有的Client更新GTK,但此时封装GTK的EAPOL报文仍然需要被每个Client的PTK加密,因此GTK的更新虽然是批量更新,但仍然是AP与每个Client单播通信。
因为每个PTK是Client与AP之间通过四次握手协商出来的,所以当Client在不同AP之间发生漫游时,都需要重新通过四次握手协商新的PTK,同时获取新AP的GTK。如果是WPA-Personal方式,PMK是提前准备好的,漫游时Client与新AP之间可以直接进行四次握手协商;如果是WPA-Enterprise方式,Client还需要重新进行一次802.1X认证来派生出新的PMK,才能与新AP之间进行四次握手协商,所以在WPA-Enterprise方式下漫游效率会降低,导致漫游发生时数据传输中断时间更久。
为了解决WPA-Enterprise方式下漫游慢的问题,Client可以与多个AP提前进行802.1X预认证,在漫游尚未发生时,Client就提前找扫描到的相同SSID的不同AP进行802.1X认证,Client自己缓存每个AP的PMK,每个AP也提前缓存该Client的PMK,当漫游真正发生时,Client和AP都已经缓存了PMK,所以双方可以直接进行四次握手来协商出新的PTK,这样就实现了与WPA-Enterprise方式相同的漫游效率。但是802.1X预认证和缓存PMK需要Client和AP双方都支持才行,双方有任何一方不支持802.1X预认证,都不能进行WPA-Enterprise方式下的快速漫游。
即使Client和AP双方都支持802.1X预认证,要实现WPA-Enterprise方式下的快速漫游还有一些需要注意的地方,那就是802.1X认证是Client首先发起第一个报文启动认证流程,而四次握手是AP首先发起第一个报文启动协商流程,两个流程首个请求发起者不一样。
从AP的角度来看,当一个Client关联上来之后,AP如果缓存了该Client的PMK,但AP不知道该Client是否也缓存了PMK能否快速进入四次握手阶段,因此AP会保持一小段静默时间,静默期间如果未收到Client发起802.1X认证,则AP进入四次握手阶段发出消息1。如果AP不支持802.1X预认证,也就不能缓存Client的PMK,当Client漫游过来后应该立即发送802.1X Identity来触发Client尽快进入802.1X认证阶段。
从Client的角度来看,当漫游到新AP后,如果Client缓存了PMK,则不主动发起802.1X报文,静静等待AP发出四次握手的消息1,如果超过了AP静默期仍然未收到四次握手的消息1,则需要放弃本地缓存的PMK,重新发起802.1X认证流程派生新的PMK。如果Client不能提前缓存PMK,则漫游后应该立即主动发起802.1X认证,AP会放弃原来缓存的PMK,通过802.1X认证来派生出新的PMK后,再进行四次握手。

probe帧:在无线网络中,probe帧是周期发送进行探测STA

Fast BSS Transmition:
快速漫游过程相比于普通的STA上线过程主要区别在于:
1.在链路认证的时候使用的是FT认证
2.快速漫游是建立在已经连接无线网络的前提下,所以发生了重新关联的过程
3.没有802.1X认证过程(PMK已经存在)
4.没有四次握手过程,密钥协商发生在重关联的过程

密钥计算公式:
wifi 802.11 kvr 漫游_第5张图片
XXXKey指的是PMK
PMK_R0指的是root key在AC中存放,R0KH指的是AC,R0KH-ID指的是该AC的MAC地址
PMK_R1指的是由PMK_R0和R0KH-ID派生出来的密钥在AP中存放,R1KH指的是AP,R1KH-ID指的是该AP的MAC地址
PMK_R0_Name指的是PMK_R0在AC的密钥存储表中的Index,生成方式见上图
PMK_R1_Name指的是PMK_R1在AP的密钥存储表中的Index,生成方式见上图
密钥存储表表现方式为键值对,比如(PMK_R0_Name,PMK_R0)

密钥结构:
1)PMK_R0为第一层密钥,它由MSK(PMK)或PSK推演出来,由PMK_R0密钥持有者保存(即R0KH和S0KH)。
2)PMK_R1为第二层密钥,它由R0KH和S0KH共同推演而来,由PMK_R1密钥持有者保存(即R1KH和S1KH)。
3)PTK为第三层密钥,它是由R1KH和S1KH共同推演而来。R0KH和R1KH为认证者端的结构,与之对应的S0KH和S1KH为客户端的结构。
S0KH和S1KH都是指STA

FT认证:
Auth报文中的FTAA代表该验证请求帧的验证算法为FT,而不是Open和shared key;帧中的MDIE必须和FAP自身的MDIE一致,否则会导致验证失败;同样的,如果PMKR0name不可用或者R0KH(这里的R0KH_ID必须是进行初始化关联阶段所获得的R0KH_ID)不可达,同样会报错(报错结果参见 state code)。
目标AP的R1KH利用PMKR0Name和帧中的其它信息计算出PMKR1Name。如果AP没有PMKR1Name标识的Key(PMK_R1),R1KH就会从STA指示的R0KH获得这个Key。目标AP收到一个新的PMK_R1后就会删除以前的PMK_R1安全关联以及它计算出的PTKSAs。STA和目标AP计算PTK和PTKName时需要用到PMK_R1,PMKR1Name,ANonce和SNonce。认证完成后,若是在TIE(Reassociate Deadline )时间或者重关联时间[TIE(Reassociate Deadline )]到期前未收到重关联帧,那么目标AP就要将PTKSA删除。
如果目标AP经过计算找不到PMK_R1,则向R0KH发送请求,R0KH计算出PMK_R1后,将PMK_R1SA发给R1KH。R1KH随后计算随机值Anonce,并通过3.7式计算出PTK,返回一个Auth response帧给工作站。

重新关联:
此时双方都已经计算出PTK了这里的两个帧是为了校验双方的PTK计算的是否一样。

你可能感兴趣的:(tcpip,802.11kvr)