一种实现漫游切换的方法和装置
技术领域
本专利涉及无线局域网(Wireless Local Area NetWork,简称WLAN)系统,更具体的说,是一种在无线局域网中实现终端在不同接入点之间快速漫游切换的方法和装置。
背景技术
IEEE(Institute Electrical and Electronics Engineers,美国电气和电子工程师协会)有关无线局域网(Wireless Local Area NetWork,简称WLAN)的802.11协议定义了如图1所示的基础结构网络(Infrastructure)。图中移动站点(Station,简称STA)表示具有无线功能的终端设备,比如带wifi功能的笔记本、手机、平板电脑等。接入点(Access Point,简称AP)负责STA的接入,STA和STA之间或者STA和有线网络的通信必须通过AP进行。STA必须首先和AP通过关联(Association)过程才能接入无线网络。关联在同一个AP下的STA组成了一个基本服务集(Basic Service Set,简称BSS)。
如图2所示,单个BSS服务范围比较小,如果将多个BSS串联在一起组成扩展服务集(Extended Service Set,简称ESS)可以增大网络覆盖范围。在同一个ESS中的AP使用相同的服务集标识符(Service Set Identifier,简称SSID)。
对于大型的WLAN部署,其中AP的数量庞大,一般采用瘦AP(FitAP)和接入控制器(Access Controller,简称AC)的组网方式。图3为比较典型的FitAP组网图。其中,AC主要负责对下挂AP的配置、管理。本文阐述的STA在AP间快速漫游的方法正是基于这种FitAP加AC的组网方式。
由于无线局域网传输媒介的开放性和共享性。目前WLAN普遍采用基于IEEE802.11i(无线局域网中的认证和加密协议)作为安全机制。IEEE802.11i协议包括STA接入的认证(802.1x)、密钥的产生方法、密钥管理、密钥更新几个部分组成。整个协议涉及的实体有STA、AP和认证服务器(Authentication Server,简称AS)三部分。
如图4所示为STA采用IEEE802.11i协议接入无线局域网的认证和密钥协商的过程。STA在成功关联到AP之后,通过AP和AS进行认证。认证成功后,STA和AS都会生成会话主密钥(Pairwise Master Key,简称PMK),AS再将PMK通过Access Accept(接入接受)消息发送给AP。最后,STA和AP通过PMK进行四次握手(图4中EAPOL-Key(基于局域网的可扩展认证协议-密钥)报文)得到会话临时密钥(Temporal Key)用于通信。
会话主密钥(PMK)是802.11i协议中的密钥导出体系中的最高阶密钥,其它密钥通过PMK导出。PMK可以通过STA和AS之间802.1x认证获得。
会话主密钥标识符(Pairwise Master Key Identifier,简称PMKID),PMKID的计算公式为HMAC(散列消息身份验证码)-SHA1(安全散列算法)-128(PMK,“PMK Name”‖AA‖SPA),其中AA一般为AP的BSSID(基本服务集标识符),SPA为STA的MAC(媒体接入控制)地址。
HMAC-SHA1-128是HMAC-SHA1散列算法结果的前128位。
会话主密钥安全关联(Pairwise Master Key Security Association,简称PMKSA)在IEEE802.11i协议中是一个比较重要的概念,它表示一次成功的802.1x认证结果。PMKSA主要包含PMKID、认证者MAC地址(通常为AP的BSSID)、PMK等信息。
通过上面的介绍可以知道,IEEE802.11i协议虽然保证了无线局域网的安全性,但是认证过程中STA和AS之间存在多条报文交互,当STA从一个AP切换到另外一个AP时,STA必须和AS重新认证,这样会造成切换过程网络延迟比较大。另外,当STA频繁的在多个AP之间切换时会对AS造成一定的压力。
在802.11i协议中定义了PMKSA缓存的机制,当STA通过某个AP认证成功后,STA和AP都会缓存本次认证的PMKSA。当STA再次漫游切换到这个AP的时候,STA通过在关联请求报文的RSN信息元素中携带PMKID通告其缓存的PMKSA,STA和AP之间可以利用缓存的PMKSA直接进行四次握手而免去了802.1x认证过程。上面所述的过程的前提是STA之前在这个AP上进行了802.1x认证,STA和AP都缓存了PMKSA。对于STA首次漫游切换到一个AP时仍然需要进行802.1x认证过程。对于比较大型的WLAN网络,当STA接入该网络后,从一个AP逐次漫游到多个其它AP,每次漫游都要重新认证,造成漫游切换过程中网络延迟比较大,对实时性的应用造成影响,降低了用户体验。
发明内容
本发明要解决的技术问题是提供一种实现漫游切换的方法及装置,以减小漫游切换的延时。
为了解决上述技术问题,本发明提供了一种实施漫游切换的方法,包括:
接入点设备与移动终端关联成功后,向接入控制器发送关联成功消息,所述关联成功消息包括:所述接入点设备的基本服务集标识符(BSSID)和所述移动终端的媒体接入控制地址;
所述接入点设备接收到所述接入控制器返回的关联成功确认消息后,从所述关联成功确认消息中解析出会话主密钥信息和所述移动终端的媒体接入控制地址;
所述接入点设备根据所述会话主密钥信息,决定在与所述移动终端进行密钥协商之前是否进行802.1x认证。
进一步地,上述方法还具有下面特点:所述根据所述会话主密钥信息,决定在与所述移动终端进行密钥协商之前是否进行802.1x认证,包括:
所述接入点设备若判断所述会话主密钥信息为空,则执行802.1x认证,802.1x认证成功后,根据802.1x认证得到的会话主密钥与所述移动终端进行密钥协商;若判断所述会话主密钥信息不为空,则根据指定公式计算得到会话主密钥标识,若判断所述会话主密钥标识与所述移动终端的关联请求中携带的会话主密钥标识相等,则与所述移动终端进行密钥协商,若不相等,则执行802.1x认证。
进一步地,上述方法还具有下面特点:所述接入点设备执行802.1x认证成功后,还包括:
所述接入点设备向所述接入控制器发送认证成功消息,所述认证成功消息包括:认证得到的会话主密钥、所述接入点设备的BSSID和所述移动终端的媒体接入控制地址。
为了解决上述问题,本发明还提供了一种接入点设备,包括:
第一模块,用于在与移动终端关联成功后,向接入控制器发送关联成功消息,所述关联成功消息包括:所述接入点设备的基本服务集标识符(BSSID)和所述移动终端的媒体接入控制地址;
第二模块,用于接收到所述接入控制器返回的关联成功确认消息后,从所述关联成功确认消息中解析出会话主密钥信息和所述移动终端的媒体接入控制地址;
第三模块,用于根据所述会话主密钥信息决定在与所述移动终端进行密钥协商之前,是否进行802.1x认证。
进一步地,上述设备还具有下面特点:所述第三模块包括:
第一单元,用于判断所述会话主密钥信息是否为空;
第二单元,用于在所述第一单元判断不为空的情况下,根据指定公式计算得到会话主密钥标识,判断所述会话主密钥标识与所述移动终端的关联请求中携带的会话主密钥标识是否相等;
第三单元,用于在所述第二单元判断相等的情况下,与所述移动终端进行密钥协商;
第四单元,用于在所述第一单元判断为空或所述第二单元判断不相等的情况下,执行802.1x认证,802.1x认证成功后,根据802.1x认证得到的会话主密钥与所述移动终端进行密钥协商。
进一步地,上述设备还具有下面特点:还包括,
第四模块,在所述第四单元执行802.1x认证成功后,向所述接入控制器发送认证成功消息,所述认证成功消息包括:认证得到的会话主密钥、所述接入点设备的BSSID和所述移动终端的媒体接入控制地址。
为了解决上述问题,本发明还提供了一种实施漫游切换的方法,包括:
接入控制器接收到第一接入点设备发送的认证成功消息后,从所述认证成功消息中解析出会话主密钥信息、所述第一接入点设备的基本服务集标识符(BSSID)和移动终端的媒体接入控制地址信息;
所述接入控制器缓存所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址信息。
进一步地,上述方法还具有下面特点:所述接入控制器缓存所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址信息,包括:
所述接入控制器根据所述BSSID查找对应的扩展服务集域,将所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址缓存在所述扩展服务集域内。
进一步地,上述方法还具有下面特点:所述接入控制器缓存所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址之后,还包括:
所述接入控制器接收到第二接入点设备发送的关联成功消息后,从所述关联成功消息中解析出所述第二接入点设备的BSSID和移动终端的媒体接入控制地址信息;
所述接入控制器根据所述第二接入点设备的BSSID查找对应的扩展服务集域,根据移动终端的媒体接入控制地址信息在该扩展服务集域内查找所述移动终端的认证信息,如找到所述移动终端的认证信息,则向所述第二接入点设备发送关联成功确认消息,所述关联成功确认消息包括:会话主密钥信息和所述移动终端的媒体接入控制地址信息。
为了解决上述问题,本发明还提供了一种接入控制器,包括:
第一模块,用于接收到第一接入点设备发送的认证成功消息后,从所述认证成功消息中解析出会话主密钥信息、所述第一接入点设备的基本服务集标识符(BSSID)和移动终端的媒体接入控制地址信息;
第二模块,用于缓存所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址信息。
进一步地,上述接入控制器还具有下面特点:
所述第二模块,具体用于根据所述BSSID查找对应的扩展服务集域,将所述会话主密钥信息、所述第一接入点设备的BSSID和移动终端的媒体接入控制地址缓存在所述扩展服务集域内。
进一步地,上述接入控制器还具有下面特点:还包括:
第三模块,用于接收到第二接入点设备发送的关联成功消息后,从所述关联成功消息中解析出所述第二接入点设备的BSSID和移动终端的媒体接入控制地址信息;
第四模块,用于根据所述第二接入点设备的BSSID查找对应的扩展服务集域,根据移动终端的媒体接入控制地址信息在该扩展服务集域内查找所述移动终端的认证信息;
第五模块,用于在所述第四模块找到所述移动终端的认证信息的情况下,向所述第二接入点设备发送关联成功确认消息,所述关联成功确认消息包括:会话主密钥信息和所述移动终端的媒体接入控制地址信息。
综上,本发明提供的一种实现漫游切换的方法及装置,在瘦AP组网模式下,STA首次漫游切换即可以省略802.1x认证,实现快速漫游的方法和装置,以减小STA在不同AP之间漫游切换的延时,增强用户的上网体验。
附图说明
图1是IEEE802.11协议中定义的基础结构无线局域网示意图;
图2是IEEE802.11协议中扩展服务集网络结构示意图;
图3是本发明采用的瘦AP模式组网网络结构示意图;
图4是现有技术采用的802.11i协议的无线局域网认证和密钥协商的流程图;
图5是本发明实施例的实现漫游切换的方法的流程图;
图6是本发明实施例中AP处理AC下发PMK的流程图;
图7是本发明实施例的AP设备的示意图;
图8是本发明实施例的AC设备的示意图;
图9是本发明实施例中STA首次接入无线局域网时认证过程以及AP和AC之间交互流程图;
图10是本发明实施例中STA首次漫游切换的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例中,至少包括一个STA、两台或者更多的AP、一台AC和一台AS。本实施例的组网示意图如图3所示。两台AP通过交换机和AC相连,AP通过AC和AS通信。其中,AP1和AP2属于同一个ESS,具有相同的SSID。
本发现实现快速漫游切换的方法,如图5所示,包括:
步骤101、STA首次接入该无线局域网时,通过其中任意的一个AP和AS进行802.1x认证,认证成功后,AP向AC发送STA认证成功的消息,该消息包括如下信息:认证得到的PMK、该AP的BSSID、STA的MAC地址。
步骤102、AC收到认证成功消息后,缓存上述的STA认证成功消息中包含的信息。
步骤103、当STA切换并关联到另一个AP时,该AP向AC发送STA关联成功消息,消息包括信息如下:该AP的BSSID、STA的MAC地址。
这样,STA在该ESS区域内移动,可以在任意AP间漫游切换。
步骤104、AC收到上述AP发送的STA关联成功消息后,根据STA的MAC地址查找对应MAC地址的认证成功消息信息。找到之后,AC向漫游切换后的AP发送关联确认消息,该消息包含:之前认证得到的PMK、STA的MAC地址。
步骤105、STA漫游切换到的AP收到AC发送到关联确认消息后,从中提取出PMK和STA的MAC地址,并进行如图6所示的PMKID重计算和比对操作,该操作还包括如下步骤:
步骤501、判断PMK是否为空,如果为空跳转执行步骤504,如果不为空跳转执行步骤502;
步骤502、利用PMK重新计算PMKID得到PMKID2;
计算公式为:HMAC-SHA1-128(PMK,“PMK Name”‖AA‖SPA),其中,PMK为AC下发的PMK,AA为AP自身的BSSID,SPA为STA的MAC地址。
步骤503、判断PMKID2与STA关联请求RSN(Robust Security Network,强健安全网络)信息元素中携带的PMKID是否相等,如果相等就跳转执行S505,如果不相等就跳转执行步骤504。
步骤504、执行802.1x认证过程。
步骤505、执行四次握手的密钥协商过程。
本实施例的AP设备,如图7所示,包括:
第一模块,用于与STA关联成功后向AC发送关联成功消息,该消息包含的信息为:AP的BSSID、STA的MAC地址;
第二模块,用于接收AC发送给AP的关联成功确认消息,并从中解析出PMK,STA的MAC地址信息,触发第三模块对AC下发的PMK做处理。
第三模块,用于检测AC下发的PMK不为空,之后根据AC下发的PMK重新计算PMKID和STA关联请求中的PMKID进行比较。如果相等,则跳转到执行四次握手的密钥协商过程,否则执行802.1x认证过程。
所述第三模块可以包括:
第一单元,用于判断所述PMK是否为空;
第二单元,用于在所述第一单元判断不为空的情况下,根据指定公式计算得到PMKID,判断所述PMKID与所述移动终端的关联请求中携带的PMKID是否相等;
第三单元,用于在所述第二单元判断相等的情况下,与所述移动终端进行密钥协商;
第四单元,用于在所述第一单元判断为空或所述第二单元判断不相等的情况下,执行802.1x认证,802.1x认证成功后,根据802.1x认证得到的会话主密钥与所述移动终端进行密钥协商。
第四模块,用于在与STA执行802.1x认证成功后向AC发送认证成功消息,该消息包含的信息有:认证得到的PMK、AP的BSSID、STA的MAC地址。
本实施例的AC,如图8所示,包括:
第一模块,用于接收AP发送的认证成功消息,从消息中解析出PMK、BSSID、STA的MAC地址信息后,触发第二模块缓存这些信息;
第二模块,用于缓存PMK、BSSID、STA的MAC地址信息;
具体地,所述第二模块根据BSSID查找其所属的ESS域,将PMK、BSSID、STA的MAC地址这三个信息封装成认证信息结构体缓存在对应的ESS域内。
第三模块,用于接收AP发送的关联成功消息,并从该消息中解析出BSSID、STA的MAC地址信息,同时触发第四模块查询STA认证信息结构体;
第四模块,用于根据BSSID查找其所属的ESS域,并在该ESS域内根据STA的MAC地址查找该STA的认证信息结构体,如果找到就触发第五模块发送关联成功确认消息;
第五模块,用于在第四模块查询到的STA认证信息结构体的情况下,向发送关联成功消息的AP发送关联成功确认消息,该消息包含PMK、STA的MAC地址信息。
通过本发明提供的方法和装置,能实现在瘦AP模式组网下,STA首次漫游切换即可省略802.1x认证过程。也就是说STA只需要在第一次接入无线局域网的时候通过AP和AS进行一次802.1x认证。认证成功之后,当STA切换到其它AP的时候,AP和STA可以直接进行密钥协商,而不需要STA再次和AS进行认证。和现有技术相比,本方法减小了漫游切换过程中的网络延迟,增强了用户体验。
下文结合附图并结合实例来详细阐述本发明。图3为典型的瘦AP模式无线局域网组网图,本发明采用该组网方式,该网络由至少两台AP、一台AC、一台AS组成。AP通交换机和AC相连,AP通过AC和AS相互通信。
STA首次接入无线网络时需要通过802.1x认证得到相应的会话临时密钥,同时AP将认证得到的PMK等信息发送给AC保存。其具体流程如图9所示:
步骤601,STA扫描无线网络,对于STA来说AP1信号最强,STA向AP1发起关联请求。
步骤602,AP1收到STA发送的关联请求后,如果STA关联成功,AP1回复STA关联响应。
步骤603,AP1向AC发送关联成功消息,消息包括:AP1的BSSID(为BSSID1)、STA的MAC地址(MACSTA)。
步骤604,AC接收到AP1发送的关联成功消息,解析出BSSID1、MACSTA。
步骤605,AC利用BSSID1查询对应ESS域中MAC地址为MACSTA的STA认证信息。
由于STA第一次接入该无线局域网,查询认证信息失败,之后发送关联成功确认消息。
步骤606,AC发送关联成功确认消息给AP1,该消息中包含PMK和STA地址MACSTA。
由于步骤605中认证信息查询模块未能查询到STA的认证信息,所以关联成功确认消息中PMK为空。
步骤607,AP1接收到AC发送给AP1的关联成功确认消息,从中解析出PMK,STA的MAC地址。
步骤608,AP1判断PMK为空,跳转执行802.1x认证流程。
步骤609,STA通过AP1跟AS进行802.1x认证。
步骤610,认证成功后,AP1向AC发送认证成功消息,该消息中包含认证得到的PMK、STA的MAC地址、AP1的BSSID(为BSSID1)。
步骤611,AC接收到AP1发送的认证成功消息,并从消息中解析出PMK、STA的MAC地址、BSSID1信息。
步骤612,AC根据BSSID1查询AP1所属的ESS域,将PMK、BSSID、STA的MAC地址这个三个信息封装成认证信息结构体缓存在对应的ESS域内。
步骤613,AP1根据802.1x认证得到的PMK,和STA进行四次握手的密钥协商过程,生成会话临时密钥。
STA成功接入到该无线局域网络。
当STA离开AP1信号覆盖区域进入AP2信号覆盖区域,STA将从AP1漫游到AP2,其具体流程如图10所示,包括下面步骤:
步骤701,STA探测到AP2的信号强于AP1,从AP1切换到AP2。
STA首先向AP2发送关联请求(或者重关联请求)报文,报文中RSN信息元素中携带STA根据PMK重新计算得到的PMKIDopt。
步骤702,AP2收到STA发送的关联请求(或者重关联请求)后,如果关联成功了,AP2向STA发送关联响应(或者重关联响应),并向AC发送关联成功消息。
步骤703,AP2向AC发送关联成功消息,消息包括AP2的BSSID(为BSSID2),STA的MAC地址(MACSTA)。
步骤704,AC接收到AP2发送的关联成功消息,解析出BSSID2、MACSTA,查询STA的认证信息。
步骤705,AC利用BSSID2查询对应ESS域中MAC地址为MACSTA的STA认证信息。
由于STA在第一次接入该无线局域网时已经上传认证成功信息,AC能查询到该认证信息。
步骤706,AC发送关联成功确认消息给AP2,消息中携带PMK和STA的MAC地址信息(MACSTA)。
步骤707,AP2接收到AC发送给AP2的关联成功确认消息,从中解析出PMK,STA的MAC地址(MACSTA)。
步骤708,AP2判断PMK不为空,会根据PMKID的公式:HMAC-SHA1-128(PMK,“PMK Name”‖AA‖SPA)重新计算得到PMKID2,其中,AA为BSSID2,SPA为MACSTA;然后,判断PMKID2和STA关联请求中携带的PMKIDopt两者相等,直接跳转到密钥协商过程。
步骤709,AP2根据AC下发的PMK,和STA通过四次握手的密钥协商过程,生成会话临时密钥。
STA成功漫游到该ESS域中的AP2,并且避免了802.1x认证过程,实现了快速漫游切换。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。