专利名称:密钥验证方法及装置的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种密钥验证方法及装置。
背景技术:
IEEE 802.11 是第一代无线局域网(Wireless Local Area Networks,简称为WLAN)标准之一。该标准定义了物理层(Physical Layer,简称为PHY)和媒体访问控制层(Medium Access Control,简称 为MAC)协议的规范,该规范允许无线局域网及无线设备制造商在一定范围内建立互操作网络设备。经过二十年的发展,IEEE 802.11 WLAN标准工作组发展完善了一系列标准家族,其中具有较大影响力以及应用较为广泛的是802.1la,802.1lb,802.Hg,802.1ln,802.1lac 等标准。与IEEE 802.11相对应的W1-Fi联盟是1999年成立的非营利性国际组织,用来检验以IEEE802.11规格为基础的WLAN产品的互操作性。W1-Fi联盟成员的目标是通过产品的互操作性来提高使用者的经验。如图1所示,一个ffiEE 802.11网络包括:工作站(Station,简称为STA)、无线接入点(Access Point, AP) 其中,STA是任何具备IEEE 802.11的MAC层和PHY层接口的设备,通常由一台PC机或笔记本计算机加上一块无线网卡构成,此外无线的终端还可以是非计算机终端上的能提供无线连接的嵌入式设备(例如802.11手机^AP可以看成是一个无线的Hub,用于提供STA和现有骨干网络之间的桥接,该骨干网络可以是有线的,也可以是无线的。一个AP和在其覆盖范围的一个或多个STA组成一个基本服务集(Basic ServiceSet,简称为BSS)。BSS通过基本服务集标识BSSID来进行唯一标识,BSSID即是AP的MAC地址。终端在一个BSS内可以互相通信。采用相同的服务集标识SSID的多个BSS形成的更大规模的虚拟BSS,则定义为扩展 服务集(Extended Service Set,简称为ESS)。终端在同一 ESS内可以通信并且可以在下属的多个BSS间移动。在ESS内连接多个BSS的网络以及有线网络称为分布式系统(Distribution System,简称为DS)。DS可以采用无线或有线技术,通常采用以太网技术。为了完成认证以及IP地址分配功能,WLAN网络还包括认证服务器(Authentication Server,简称为AS)和动态主机配置协议服务器(Dynamic HostConfiguration protocol Server,简称为DHCP服务器),如图2所示。AS是为STA提供认证服务的实体,仅有通过认证的STA才能被授权接入802.11网络。AS也可以嵌入在AP中。DHCP服务器则为STA分配IP地址。STA通过该WLAN网络可以接入Internet。如图3所示为IEEE 802.1li所引入的安全的密钥体系架构。其中,成对主密钥(Pairwise Master Key,简称为PMK)是STA和AS在EAP认证过程中各自生成的密钥,长度为256位。成对临时密钥(Pairwise Transient Key,简称为PTK)是STA和AP分别根据ΡΜΚ,以及STA生成的随机数SNonce和AP生成的随机数ANonce,各自推导出的密钥。PTK的低128位为密钥确认密钥(Key Confirmation Key, KCK),中间128位为密钥加密密钥(Key Encryption Key,简称为KEK),剩下的高位MSB为临时密钥(Temporal Key,简称为TK)。其中,KCK用于为4次握手过程和组密钥握手过程中的EAPOL-KEY (ExtensibleAuthentication Protocol OVER LAN KEY)消息提供数据源认证;KEK用于为4次握手和组密钥握手的密钥信息帧EAP0L-KEY消息提供机密性保护;TK用户保护STA和AP之间的数据报文的传输。此外,IEEE802.11 还定义了组临时密钥(Group Temporal Key,简称为 GTK)。GTK是AP生成的一个随机数,在组密钥握手过程中,AP将GTK用KEK加密后,传输给STA。图4示出了 STA初始接入IEEE 802.11网络时安全建立的流程图,具体步骤如下:步骤1-2:通过AP广播信标(Beacon)消息,或者STA向AP主动发送探测请求(Probe Request)消息,AP向STA响应探测响应(Probe Response)消息,告知STA关于AP的能力、参数和安全参数等信息。步骤3-4 =STA和AP之间进行开放系统认证。该过程并没有建立真正的安全。步骤5-6 =STA和AP之间进行关联。通过该步骤,STA和AP之间建立了一个IEEE802.11 信道。步骤7 =STA和AS之间进行EAP认证。在该过程完成后,STA和IEEE 802.11网络完成了双向认证,并分别生成了 PMK。步骤8:AS通过远程用户拨号认证系统(Remote Authentication Dial In UserService,简称为RADIUS)接入接受(Access Accept)消息,告知AP认证成功,并将EAP过程中生成的PMK发送给AP。步骤9:AP向STA发送802.1X消息,其中封装有EAP成功(ΕΑΡ-Success)消息。步骤10:AP和STA之间开始进行四次握手过程,验证双方生成的密钥。AP生成随机数第一随机数ANonce,并将其携带于密钥信息帧(EAPOL-Key)消息中,发送给STA。步骤11:STA生成第二随机数SNonce,并根据SNonce和接收到的ANonce,以及EAP过程中生成的PMK生成PTK,并截取PTK获取密钥确认密钥KCK、KEK和临时密钥TK ;STA向AP发送EAPOL-Key消息,其中携带第二随机数SNonce。该消息携带用KCK计算的消息验证石马(Message Integrity Code,简称为 MIC)。步骤12:AP根据接收到的SNonce,和自己生成的ANonce以及EAP过程中生成的PMK,按照和STA同样的算法,推导出PTK,并截取PTK获取KCK、KEK和TK。AP用生成的KCK对接收到的EAPOL-Key消息进行验证。如果验证成功,AP向STA发送EAPOL-Key消息,该消息携带随机数ANonce,并携带用KCK计算的消息验证码MIC。步骤13 =STA对接收到的EAPOL-Key消息进行验证。如果验证成功,STA安装根据截取PTK获得的临时密钥TK,并向AP发送EAPOL-Key消息。该消息携带用KCK计算的消息验证码MIC。至此,STA和AP之间的4次握手过程结束。步骤14 =STA和AP之间进行组密钥握手过程。AP可选地生成第三随机数GNonce,并随机选择组临时密钥GTK,用KEK加密GTK,将加密的GTK和/或随机数GNonce携带于EAPOL-Key消息中,发送给STA。该消息同样也携带用KCK计算的消息验证码MIC。步骤15: STA对接收到的EAPOL-Key消息进行验证,如果成功,用KCK解密获得GTK ;STA向AP发送EAPOL-Key消息,携带用KCK计算的消息验证码MIC。AP对接收到的消息进行验证。至此,STA完成了初始连接的建立,可以进行数据包的收发了。步骤16 =STA和WLAN网络会进行DHCP过程,获取IP地址。
移动用户不断地进入或离开一个ESS的覆盖区域。每次当移动设备进入一个ESS时,移动设备必须进行如图4所示的STA初始入网建立初始链路的过程。而在该初始链路建立的过程中,安全的步骤较多,从而导致初始入网的时延较长。当大量用户同时在较短时间内需要接入WLAN网络时(例如在地铁站,大量用户下了地铁后需要连接WLAN网络获取相关的路线信息),入网时延较长的问题会更严重。针对相关技术中初始链路建立的过程中,安全验证的步骤较多,导致入网时延较长的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中初始链路建立的过程中,安全验证的步骤较多,导致入网时延较长的问题,本发明提供了一种密钥验证方法及装置,以至少解决该问题。根据本发明的一个方面,提供了一种密钥验证方法,包括:STA接收来自于AP的密钥验证消息,其中,密钥验证消息携带有第一消息验证码;STA对第一消息验证码进行验证;在验证成功后,STA向AP发送携带有第二消息验证码的密钥验证完成消息,以使AP对第二消息验证码进行验证。上述STA接收来自于AP的密钥验证消息之前,还包括以下之一:STA和AP认证成功;STA和AP开始进行认证。上述密钥验证消息还携带有以下至少之一:第一随机数、第二随机数、计数器值、关联标识。在STA接收来自于AP的密钥验证消息之前,还包括:AP生成第一随机数或计数器值;AP按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、STA生成的第二随机数以及AP生成的第一随机数计算获取成对临时密钥PTK,或者对PMK和计数器值计算获取PTK,并截取PTK获得密钥确认密钥KCK ;AP根据KCK计算获取第一消息验证码,并将第一消息验证码携带在密钥验证消息中发送。上述AP截取PTK获得KCK时,还包括:AP截取PTK获得密钥加密密钥KEK和/或临时密钥TK。在将第一消息验证码携带在密钥验证消息中发送之前,还包括:AP将第一随机数发送至STA JljAP将第一消息验证码携带在密钥验证消息中发送包括:AP采用KEK或TK对密钥验证消息进行加密后发送。在上述STA接收来自于AP的密钥验证消息之前,还包括:AP随机选取组临时密钥GTK,采用KEK加密GTK ;AP将加密的GTK携带在密钥验证消息中向STA发送。在AP将加密的GTK和/或第三随机数携带在密钥验证消息中向STA发送之后,还包括=STA接收来自于AP的密钥验证消息;STA采用KEK解密密钥验证消息获得GTK。上述STA对第一消息验证码进行验证包括:STA按照预定的密钥衍生算法对认证过程中生成的PMK、AP生成的第一随机数、以及STA生成的第二随机数计算获取PTK,或者对PMK和计数器值计算获取PTK,并截取PTK获得KCK ;STA采用KCK对第一消息验证码进行验证。上述STA截取PTK获得KCK时,还包括:STA截取PTK获得KEK和/或TK。上述密钥验证完成消息还携带有以下至少之一:第一随机数、第二随机数。
上述密钥验证消息还携带有以下至少之一:第一 EAP相关消息和/或第一 DHCP相关消息;上述密钥验证完成消息还携带有以下至少之一:第二 EAP相关消息和/或第二DHCP相关消息。第一 EAP相关消息包括:EAP成功消息;第一 DHCP相关消息包括:DHCP提供消息、DHCP确认消息;第二 DHCP相关消息包括:DHCP发现消息、DHCP请求消息。上述STA向AP发送密钥验证完成消息包括以下之一:当密钥验证完成消息包括第二 DHCP相关消息时,STA采用KEK或TK加密第二 DHCP相关消息后,将加密后的第二 DHCP相关消息封装在密钥验证完成消息中向AP发送;STA采用KEK或TK加密密钥验证完成消息后向AP发送。在STA与AP进行认证之前,还包括:AP向STA发送网络发现消息,其中,网络发现消息包括:第三EAP相关消息。在STA与AP进行认证时,还包括:STA和DHCP服务器进行部分或者全部DHCP过程。在STA与AP进行认证之前,还包括:STA向AP发送第一消息,其中,第一消息携带有以下至少之一:STA生成的第二随机数,计数器值、第四EAP相关消息、第三DHCP相关消
肩、O上述第一消息为以下之一:关联请求消息;802.1X消息。在AP对第二消息验证码验证成功后,还包括:AP向STA发送第二消息,其中,第二消息包括:第四DHCP相关消息。上述第二消息为以下之一:关联响应消息;密钥信息帧EAPOL-Key ;802.1X消息。上述密钥验证消息和密钥验证完成消息为密钥信息帧EAPOL-Key消息。根据本发明的另一方面,提供了一种密钥验证装置,包括:第一接收模块,用于接收来自于AP的密钥验证消息,其中,密钥验证消息携带有第一消息验证码;第一验证模块,用于对第一消息验证码进行验证;第一发送模块,用于在验证成功后,向AP发送携带有第二消息验证码的密钥验证完成消息,以使AP对第二消息验证码进行验证。上述第一验证模块包括:获取单元,用于按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、密钥验证装置生成的第二随机数和AP生成的第一随机数计算获取成对临时密钥PTK,或者对PMK和计数器值计算获取PTK,并截取PTK获得密钥确认密钥KCK ;验证单元,用于采用KCK对第一消息验证码进行验证。根据本发明的又一方面,提供了一种密钥验证装置,包括:第二发送模块,用于向STA发送密钥验证消息,其中,密钥验证消息携带有第一消息验证码;第二接收模块,用于在STA对第一消息验证码验证成功后,接收来自于STA的密钥验证完成消息,其中,密钥验证完成消息携带有第二消息验证码;第二验证模块,用于对第二消息验证码进行验证。上述装置还包括:生成模块,用于生成第一随机数;获取模块,用于按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、STA生成的第二随机数、以及生成模块生成的第一随机数计算获取成对临时密钥PTK,或者对PMK和计数器值计算获取PTK,并截取PTK获得密钥确认密钥KCK ;计算模块,用于根据KCK计算获取第一消息验证码;则第二发送模块,用于根据KCK计算获取第一消息验证码,并将第一消息验证码携带在密钥验证消息中发送。
上述装置还包括:第三发送模块,用于将第一随机数发送至STA。通过本发明,在STA与AP认证成功后,通过STA验证由AP发送的带有第一消息验证码的密钥验证消息,并在验证成功后,向AP发送带有第二消息验证码的密钥验证完成消息,使AP对第二消息验证码进行验证,解决了相关技术中初始链路建立的过程中,安全验证的步骤较多,导致入网时延较长的问题,进而减少了现有技术中安全验证的繁琐步骤,且达到了缩短了入网时延的效果,从整体上提升了系统的性能,同时也提高了用户体验。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据相关技术的一种IEEE 802.11网络结构示意图;图2是根据一种WLAN网络的结构示意图;图3是根据IEEE 802.1li引入的密钥架构的结构示意图;图4是根据目前IEEE 802.11定义的终端建立初始链路的流程图;图5是根据本发明实施例的密钥验证方法的流程图;图6是根据本发明优选实施例一的密钥验证方法的流程图;图7是根据本发明优选实施例二的密钥验证方法的流程图;图8是根据本发明实施例的一种密钥验证装置的结构框图;图9是根据本发明优选实施例的一种密钥验证装置的结构框图;图10是根据本发明实施例的另一种密钥验证装置的结构框图;图11是根据本发明优选实施例的另一种密钥验证装置的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如图5所示,针对相关技术中初始链路建立的过程中,安全验证的步骤较多,且入网时延较长的问题,本实施例提供了一种密钥验证方法,包括以下步骤:步骤S502,STA接收来自于AP的密钥验证消息,其中,密钥验证消息携带有第一消息验证码;步骤S504,STA对第一消息验证码进行验证;步骤S506,在验证成功后,STA向AP发送携带有第二消息验证码的密钥验证完成消息,以使AP对第二消息验证码进行验证。在本实施例中,由于相关技术中初始链路建立的过程中,安全验证的步骤较多,导致入网时延较长,采用图5所示的通过STA验证由AP发送的带有第一消息验证码的密钥验证消息,并在验证成功后,向AP发送带有第二消息验证码的密钥验证完成消息,使AP对第二消息验证码进行验证的方法,从而可以减少现有技术中安全验证的繁琐步骤,达到了缩短了入网时延的效果,从整体上提升了系统的性能,同时也提高了用户体验。优选地,STA接收来自于AP的密钥验证消息之前,还包括以下之一的处理: (I) STA和AP认证成功;
(2) STA和AP开始进行认证。即步骤S502的触发条件包括:STA与AP认证成功,或者STA与AP开始进行相互认证。优选地,上述密钥验证消息还可以携带有以下至少之一:第一随机数(如ANonce)、第二随机数(如SNonce)、关联标识(AID)。在步骤S502中,在STA接收来自于AP的密钥验证消息之前,还可以包括以下处理:(I)AP生成第一随机数或者计数器值;(2) AP按照预定的密钥衍生算法对认证过程中生成的PMK、STA生成的第二随机数和AP生成的第一随机数计算获取PTK,并截取PTK获得密钥确认密钥KCK ;或者,AP按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、计数器值COUNT计算获取成对临时密钥PTK,并截取PTK获得密钥确认密钥KCK ;其中,如果采用计数器值的话,STA和AP各自维护一个计数器。初始入网时或每次认证成功后计数器进行初始化,在每一次推导PTK之前或之后STA和AP各自递增自己维护的计数器。STA和AP各自维护的计数器值需要进行同步。(3) AP根据KCK计算获取第一消息验证码,并将第一消息验证码携带在密钥验证消息中发送。优选地,当AP截取PTK获得KCK时,还可以获得以下之一:密钥加密密钥(KEK);临时密钥(TK);临时密钥(TK)和密钥加密密钥(KEK)的组合。在步骤S502中,将第一消息验证码携带在密钥验证消息中发送之前,还可以包括以下处理:AP将第一随机数发送至STA。则当AP在发送携带有第一消息验证码的密钥验证消息时,还可以采用上述KEK或TK对密钥验证消息或密钥验证消息的部分信息元进行加密后发送。在优选实施过程中,在STA接收来自于AP的密钥验证消息之前,还可以包括以下处理:(I)AP随机选取组临时密钥GTK,采用KEK加密GTK ;(2) AP将加密的GTK携带在密钥验证消息中向STA发送。可选地,在AP将GTK和/或第三随机数携带在密钥验证消息中向STA发送之前,还可以包括以下处理:AP生成第三随机数。其中,在AP将加密的GTK和/或第三随机数携带在密钥验证消息中向STA发送之后,还可以包括以下处理:STA接收来自于AP的密钥验证消息,之后采用KEK解密上述密钥验证消息获得GTK。优选地,上述步骤S504中,STA对第一消息验证码进行验证可以进一步包括以下处理:STA按照预定的密钥衍生算法对认证过程中生成的PMK、STA生成的第二随机数和AP生成的第一随机数计算获取PTK,并截取PTK获得KCK ;STA采用KCK对第一消息验证码进行验证;或者,STA按照预定的密钥衍生算法对认证过程中生成的PMK、计数器值COUNT计算获取上述PTK,并截取上述PTK获得KCK ;其中,上述密钥验证完成消息还可以携带有以下至少之一:第一随机数、第二随机数、计数器值COUNT。
优选地,当STA截取PTK获得KCK时,还可以包括:STA截取PTK获得KEK和/或TK0优选地,密钥验证消息还可以携带有以下至少之一:第一 EAP相关消息和/或第一DHCP相关消息。优选地,密钥验证完成消息还可以携带有以下至少之一:第二 EAP相关消息和/或第二 DHCP相关消息。在具体实施过程中,如果的密钥验证消息携带有第一 EAP相关消息和/或第一DHCP相关消息,密钥验证完成消息携带有第二 EAP相关消息和/或第二 DHCP相关消息,则STA在成功完成对接收到的消息的验证后,将封装的第一 EAP相关消息和/或第一 DHCP相关消息发送给上层处理,若还存在后续消息,则继续接收上层返回的相应后续消息。例如,上述第一 EAP相关消息可以为:EAP-SuCCeSS消息;上述第一 DHCP相关消息可以为:DHCP提供消息、DHCP确认消息;上述第二 DHCP相关消息可以为:DHCP发现消息、DHCP请求消息。优选地,上述步骤S506中,STA向AP发送密钥验证完成消息可以进一步包括以下之一的处理:处理一:当密钥验证完成消息包括DHCP相关消息时,STA采用KEK或TK加密DHCP相关消息后,将加密后的DHCP相关消息封装在密钥验证完成消息中向AP发送;处理二:STA采用KEK或TK加密密钥验证完成消息后向AP发送。优选地,在STA与AP进行认证之前,还可以包括以下处理:AP向STA发送网络发现消息,其中,网络发现消息包括:第三EAP相关消息。例如,上述第二 EAP相关消息可以为EAP-Request/Identity消息。上述网络发现消息可以为:Beacon消息或者Probe Response消息。优选地,在STA与AP进行认证之前,还可以包括以下处理:STA向AP发送第一消息,其中,第一消息携带有以下至少之一:STA生成的第二随机数、计数器值COUNT、第四EAP相关消息、第三DHCP相关消息。其中,上述第一消息可以为以下之一:关联请求消息;802.1X消息。例如,上述第四EAP相关消息可以为:EAP-Response/Identity ;上述第三DHCP相关消息可以为:DHCP Discover消息。在AP对第二消息验证码验证成功后,还可以包括以下处理:AP向STA发送第二消息,其中,第二消息包括:第四DHCP相关消息。其中,上述第二消息可以为以下之一:关联响应消息;密钥信息帧(EAPOL-Key);802.1X 消息。例如,上述第四DHCP相关消息可以为:DHCP Ack消息。需要注意的是,上述第一 EAP相关消息、第二 EAP相关消息、第三EAP相关消息、第四EAP相关消息、第一 DHCP相关消息、第二 DHCP相关消息、第三DHCP相关消息、以及第四DHCP相关消息均为上层消息。优选地,在STA与AP进行认证时,包括:STA和DHCP服务器进行部分或者全部DHCP过程。通过上述并行处理,可以进一步减少处理时间,降低用户接入网络的时延。
需要注意的是,上述密钥验证方法可以应用于IEEE 802.11网络中,当然,还可以应用于其他网络中。对于IEEE 802.11网络而言,上述密钥验证消息和密钥验证完成消息可以为EAPOL-Key消息。以下结合图6和图7的两个示例进一步描述上述优选实施方式。优选实施例一图6是根据本发明优选实施例一的密钥验证方法的流程图。如图6所示,该密钥验证方法主要包括以下处理:步骤S602,STA和AP之间进行交互,STA获知AP的安全能力。该过程可以通过AP广播的信标消息或者STA和AP之间进行的探测请求/探测响应消息交互进行;或者通过AP广播的信标消息或者STA和AP之间进行的探测请求/探测响应消息,以及STA与AP之间进行的关联请求/关联响应消息交互进行。优选地,在该过程中,STA可以将生成的随机数SNonce发送给AP。步骤S604,STA和AP之间进行认证。该认证过程可以基于EAP的双向认证。当成功完成认证后,STA和AP各自生成密钥PMK。优选地,在该过程中,STA可以将生成的随机数SNonce或计数器值COUNT发送给AP。其中,如果采用计数器值的话,STA和AP各自维护一个计数器。初始入网时或每次认证成功后计数器进行初始化,在每一次密钥验证流程之前STA和AP各自递增自己维护的计数器。优选地,在进行EAP的过程中,STA、AP和DHCP服务器可以同时进行部分或者全部DHCP过程。步骤S606,AS向AP发送EAP-Success消息,该消息封装于RADIUS消息中,携带密钥 PMK。步骤S608,密钥验证。若AP还未生成随机数ANonce,则AP生成随机数ANonce ;AP根据接收到的PMK,以及SNonce和ANonce,按照IEEE 802.11协议规定的密钥衍生算法,推导密钥PTK ;或者,AP根据接收到的PMK,以及COUNT值,按照IEEE 802.11协议规定的密钥衍生算法,推导密钥PTK。AP依据推导出的PTK,截取获得KCK和/或KEK和/或TK ;AP向STA发送密钥验证消息。该消息携带参数:随机数ANonce,和/或随机数SNonce,和/或AP为该STA分配的关联标识AID,用KCK计算得到的该消息的消息验证码MIC。可选地,若STA和AP使用计数器值COUNT生成密钥PTK,则AP收到STA发送的COUNT值后,与自己维护的计数器值进行比较。若接收到的COUNT值大于自己维护的计数器值,则令自己维护的计数器值等于接收到的COUNT值,并使用该COUNT值推导PMK ;若接收到的COUNT值等于自己维护的计数器值,则使用该COUNT值推导PMK ;接收到的COUNT值小于自己维护的计数器值,则判定为无效消息,进入异常处理流程。优选地,该密钥验证消息携带封装的上层消息=EAP-Success消息,和/或DHCP相关消息。DHCP相关消息可以为:DHCP Offer消息,或DHPC Ack消息。优选地,AP将DHCP相关消息用KEK加密后,封装于密钥验证消息中。优选地,若AP在前面的步骤中,已经将ANonce发送给STA,则该步骤中AP可以对密钥验证消息进行加密后再发送。加密使用的密钥可以为KEK,或TK。优选地,AP可以和STA同时进行组密钥握手。AP可选生成随机数GNonce,并随机选择组临时密钥GTK,用密钥加密密钥KEK加密GTK,将加密的GTK和/或随机数GNonce携带于密钥验证消息中,发送给STA。其中,该密钥验证消息可以为=EAPOL-Key消息。步骤S610,密钥验证完成。STA根据EAP过程中生成的密钥PMK,以及接收到的随机数ANonce,和自己生成的随机数SNonce,按照和AP同样的密钥衍生算法,推导出密钥PTK,并截取PTK获取KCK和/或KEK和/或TK ;或者,STA根据接收到的PMK,以及COUNT值,按照IEEE 802.11协议规定的密钥衍生算法,推导密钥PTK。STA根据推导出的KCK对接收到的密钥验证消息的MIC进行验证;若验证通过,STA向AP发送密钥验证完成消息,其中携带随机数SNonce,和/或随机数ANonce。该消息携带用KCK计算的消息验证码MIC。优选地,若该密钥验证完成消息携带有上层消息如DHCP相关消息,则STA在成功完成对接收到的消息的验证后,将封装的上层消息发送给上层处理,接收上层返回的相应后续消息。DHCP相关消息可以为:DHCP Discover消息或DHCP Offer消息。优选地,STA将DHCP相关消息用KEK加密后,封装于密钥验证完成消息中;或STA将整个密钥验证完成消息进行加密后发送给AP,加密使用的密钥可以为KEK,或TK。若接收到的密钥验证消息中包括加密的组密钥GTK,STA用KEK解密获得GTK。该密钥验证完成消息可以为=EAPOL-Key消息。步骤S612,STA和AP之间进行余下的DHCP或全部DHCP过程。如果在步骤S602中,还未成功完成关联过程,则该DHCP消息可以承载在关联过程的消息中发送。如果在步骤S602中,已经完成了关联过程,则此处的DHCP过程可以承载于密钥信息帧(EAP0L-KEY)消息中发送,或者在用户数据报文中发送。至此,STA和AP之间成功完成初始链路的建立,可以安全地收发数据报文了。优选实施例二如图7所示,该实施例示出了一种快速建立WLAN初始链路的方法,具体包括步骤S702 至 S720。步骤S702,AP与STA进行安全能力发现流程,在该流程中,AP告知STA关于AP的能力、参数和安全参数等信息。可选地,该过程包括关联请求/关联响应消息交互。优选地,在该过程的下行链路消息中,封装有EAP-Request/Identity消息。可选地,该下行链路消息还可以携带参数:AP生成的随机数ANonce (即上述第一随机数)。此处的下行链路消息可以为:信标消息,或探测响应消息,或关联响应消息。步骤S704, STA向AP发送第一消息,该消息封装有EAP-Response/Identity消息。优选地,STA生成随机数SNonce (即上述第二随机数),并在第一消息中携带该随机数 SNonce。优选地,该第一消息中携带封装的DHCP Discover消息。此处的第一消息可以为:关联请求消息,或802.1X消息。步骤S706,AP 将 EAP-Response/Identity 消息封装于 RADIUS 消息中,发送给 AS。步骤S708,可选地,AP将第一消息中封装的DHCP Discover消息转发给DHCP服务器;DHCP服务器向AP发送DHCP Offer消息,携带网络的配置参数和IP地址信息。步骤S706、步骤S708、步骤S710、步骤S712没有严格的时间顺序。步骤S710,STA和AS之间进行基于EAP的认证。在双方成功完成认证后,STA和AS分别生成密钥PMK。
步骤S712,AS向AP发送EAP-Success消息,该消息封装于RADIUS消息中,携带密钥 PMK。步骤S714,若AP还未生成随机数ANonce,则AP生成随机数ANonce ;AP根据接收到的PMK,以及SNonce和ANonce,按照IEEE 802.11协议规定的密钥衍生算法,推导密钥PTK ;或者,AP根据接收到的PMK,以及COUNT值,按照IEEE 802.11协议规定的密钥衍生算法,推导密钥PTK。AP依据推导出的PTK,截取获得KCK和/或KEK和/或TK ;AP向STA发送密钥验证消息,该消息携带参数:随机数ANonce,和/或随机数SNonce,或计数器值COUNT,和/或AP为该STA分配的关联标识AID,用KCK计算得到的该消息的消息验证码MIC。其中,如果采用计数器值的话,STA和AP各自维护一个计数器。初始入网时或每次认证成功后计数器进行初始化,在每一次密钥验证流程之前STA和AP各自递增自己维护的计数器。STA和AP各自维护的计数器值需要进行同步。优选地,该密钥验证消息携带封装的上层消息=EAP-Success消息,和/或DHCPOffer消息。优选地,AP将DHCP Offer消息用KEK加密后,封装于密钥验证消息中。可选地,若AP在前面的步骤中,已经将ANonce发送给STA,则该步骤中AP可以对密钥验证消息进行加密后再发送。加密使用的密钥可以为KEK,或TK。优选地,AP可以和STA同时进行组密钥握手。AP可选地生成随机数GNonce,并随机选择组临时密钥GTK (Group Temporal Key),用密钥加密密钥KEK (Key Encryption Key)加密GTK,将加密的GTK和/或随机数GNonce携带于密钥验证消息中,发送给STA。该密钥验证消息可以为:EAP0L-Key消息。步骤S716,STA根据EAP过程中生成的密钥PMK,以及接收到的随机数ANonce,和自己生成的随机数SNonce,按照和AP同样的密钥衍生算法,推导出密钥PTK,并截取PTK获取KCK和/或KEK和/或TK ;或者,STA根据EAP过程中生成的密钥PMK,以及COUNT值,按照和AP同样的密钥衍生算法,推导出密钥PTK,并截取PTK获取KCK和/或KEK和/或TK ;STA根据推导出的KCK对接收到的密钥验证消息的MIC进行验证;若验证通过,STA向AP发送密钥验证完成消息,其中携带随机数SNonce,和/或随机数ANonce。该消息携带用KCK计算的消息验证码 MIC (Message Integrity Code)。优选地,若该密钥验证消息携带有上层消息EAP-Success消息和/或DHCP Offer消息,则STA在成功完成对接收到的消息的验证后,将封装的上层消息发送给上层处理,接收上层返回的相应后续消息。优选地,该密钥验证完成消息携带封装的上层消息:DHCP Request消息。优选地,AP将DHCP Request消息用KEK加密后,封装于密钥验证完成消息中;或STA将整个密钥验证完成消息进行加密后发送给AP,加密使用的密钥可以为KEK,或TK。若接收到的密钥验证消息中包括加密的组密钥GTK,STA用KEK解密获得GTK。该密钥验证完成消息可以为=EAPOL-Key消息。步骤S718,AP用生成的KCK对接收到的密钥验证完成消息进行验证。如果验证成功,若密钥验证完成消息中携带上层消息DHCP Request,可选地,AP向DHCP服务器转发DHCPRequest消息,DHCP服务器向AP返回DHCP Ack消息。步骤S720,AP向STA发送第二消息。可选地,该消息携带参数:AP为该STA分配的关联标识AID,和/或上层消息DHCP Ack消息。该第二消息可以为:关联响应消息,或802.1X消息,或密钥信息帧EAPOL-Key消
肩、O需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图8是根据本发明实施例的一种密钥验证装置的结构框图。如图8所示,该装置包括:第一接收模块102,用于在STA与接入点AP认证时或认证成功后,接收来自于AP的密钥验证消息,其中,密钥验证消息携带有第一消息验证码;第一验证模块104,用于对第一消息验证码进行验证;第一发送模块106,用于在验证成功后,向AP发送携带有第二消息验证码的密钥验证完成消息,以使AP对第二消息验证码进行验证。优选地,上述密钥验证装置可以设置在STA中。其中,上述密钥验证消息还可以携带有以下至少之一:第一随机数、第二随机数、计数器值、关联标识。其中,上述密钥验证完成消息还携带有以下至少之一:第一随机数、第二随机数。优选地,如图9所示,第一验证模块104可以包括:获取单元1042,用于按照预定的密钥衍生算法对认证过程中生成的PMK、AP生成的第一随机数和STA生成的第二随机数计算获取成对临时密钥PTK,或者对PMK和计数器值计算获取PTK,并截取PTK获得KCK ;验证单元1044,用于采用KCK对第一消息验证码进行验证。获取单元1042和验证单元1044依次连接或耦合。优选地,获取单元1042截取PTK获得KCK时,还可以截取PTK获得KEK和/或TK。上述密钥验证消息和密钥验证完成消息均可以携带上层消息。密钥验证消息携带的上层消息可以为第一 EAP相关消息和第一 DHCP相关消息,例如,第一 EAP相关消息为EAP成功EAP-Success消息;第一 DHCP相关消息为:DHCP提供消息、DHCP确认消息;密钥验证完成消息携带的上层消息可以为第二 EAP相关消息和第二 DHCP相关消息,例如,第二第二DHCP相关消息可以为DHCP请求消息或DHCP发现消息。优选地,第一发送模块106向AP发送密钥验证完成消息包括以下之一:当密钥验证完成消息包括第二 DHCP相关消息时,第一发送模块106采用KEK或TK加密第二 DHCP相关消息后,将加密后的第二 DHCP相关消息封装在密钥验证完成消息中向AP发送;第一发送模块106采用KEK或TK加密密钥验证完成消息后向AP发送。需要说明的是,上述装置中的各模块,各单元相互结合的优选工作方式具体可以参见图5至图7的描述,此处不再赘述。图10是根据本发明实施例的另一种密钥验证装置的结构框图。如图10所示,该密钥验证装置包括:第二发送模块202,用于向工作站STA发送密钥验证消息,其中,密钥验证消息携带有第一消息验证码;第二接收模块204,用于在STA对第一消息验证码验证成功后,接收来自于STA的密钥验证完成消息,其中,密钥验证完成消息携带有第二消息验证码;第二验证模块206,用于对第二消息验证码进行验证。优选地,上述密钥验证装置可以设置在AP中。其中,上述密钥验证消息还可以携带有以下至少之一:第一随机数、第二随机数、计数器值、关联标识。其中,密钥验证完成消息还携带有以下至少之一:第一随机数、第二随机数。优选地,如图11所示,该密钥验证装置还可以包括:生成模块208,用于生成第一随机数;获取模块210,用于按照预定的密钥衍生算法对认证过程中生成的PMK、STA10生成的第二随机数和生成模块208生成的第一随机数计算获取PTK,或者对PMK和计数器值计算获取PTK,并截取该PTK获得密钥确认密钥KCK ;计算模块212,用于根据KCK计算获取第一消息验证码;则第二发送模块202,用于根据KCK计算获取第一消息验证码,并将该第一消息验证码携带在密钥验证消息中发送。其中,生成模块208、获取模块210、计算模块212和第二发送模块202依次连接或耦合。在优选实施过程中,获取模块210在截取该PTK获得KCK的同时,还可以获得KEK和/或TKo优选地,如图11所示,上述密钥验证装置还包括:第三发送模块214,用于将第一随机数发送至STA。优选地,上述密钥验证装置在STA接收来自于上述密钥验证装置的密钥验证消息之前,还可以可选地生成第三随机数;随机选取GTK,采用KEK加密GTK ;将加密的GTK和/或第三随机数携带在密钥验证消息中向STA发送。优选地,上述密钥验证装置将加密的GTK和/或第三随机数携带在密钥验证消息中向STA发送之后;STA接收来自于上述密钥验证装置的密钥验证消息;STA采用KEK解密密钥验证消息获得GTK。在STA与上述密钥验证装置进行认证之前,上述密钥验证装置向STA发送网络发现消息,其中,网络发现消息包括:第三EAP相关消息。STA在与网络进行认证时,可以和DHCP服务器进行部分或者全部DHCP过程。STA向上述密钥验证装置发送第一消息,其中,第一消息携带有以下至少之一:STA生成的第二随机数,计数器值。其中,第一消息还可以携带有:上层消息。包括:第四EAP相关消息和/或第三DHCP相关消息。例如,第一消息可以为以下之一:关联请求消息;802.1X消息。上述密钥验证装置对第二消息验证码验证成功后,向STA发送第二消息,其中,第二消息包括:第四DHCP相关消息。例如,第二消息为以下之一:关联响应消息;密钥信息帧EAPOL-Key ;802.1X消息。需要注意的是,上述密钥验证消息和密钥验证完成消息可以为EAPOL-Key消息。需要说明的是,上述装置中的各模块,各单元相互结合的优选工作方式具体可以参见图5至图7的描述,此处不再赘述。综上所述,借助本发明提供的上述实施例,可以大大加快终端建立初始链路的速度,减少终端初始接入WLAN网络的时延。特别是对于大量用户需要在极短时间内接入WLAN网络的场景,成功的减少了现有技术中安全验证的繁琐步骤,且缩短了入网时延的效果,从整体上提升了系统的性能,同时也提高了用户体验。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种密钥验证方法,其特征在于,包括: 工作站STA接收来自于接入点AP的密钥验证消息,其中,所述密钥验证消息携带有第一消息验证码; 所述STA对所述第一消息验证码进行验证; 在验证成功后,所述STA向所述AP发送携带有第二消息验证码的密钥验证完成消息,以使所述AP对所述第二消息验证码进行验证。
2.根据权利要求1所述的方法,其特征在于,所述STA接收来自于所述AP的密钥验证消息之前,还包括以下之一:所述STA和所述AP认证成功;所述STA和所述AP开始进行认证。
3.根据权利要求1所述的方法,其特征在于,所述密钥验证消息还携带有以下至少之一:所述第一随机数、所述第二随机数、计数器值、关联标识。
4.根据权利要求1所述的方法,其特征在于,在所述STA接收来自于所述AP的密钥验证消息之前,还包括: 所述AP生成第一随机数或计数器值; 所述AP按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、所述STA生成的第二随机数以及所述AP生成的第一 随机数计算获取成对临时密钥PTK,或者对所述PMK和计数器值计算获取所述PTK,并截取所述PTK获得密钥确认密钥KCK ; 所述AP根据所述KCK计算获取所述第一消息验证码,并将所述第一消息验证码携带在所述密钥验证消息中发送。
5.根据权利要求4所述的方法,其特征在于,所述AP截取所述PTK获得所述KCK时,还包括:所述AP截取所述PTK获得所述密钥加密密钥KEK和/或临时密钥TK。
6.根据权利要求5所述的方法,其特征在于,在将所述第一消息验证码携带在所述密钥验证消息中发送之前,还包括:所述AP将所述第一随机数发送至所述STA ; 则所述AP将所述第一消息验证码携带在所述密钥验证消息中发送包括:所述AP采用所述KEK或所述TK对所述密钥验证消息进行加密后发送。
7.根据权利要求5所述的方法,其特征在于,在所述STA接收来自于所述AP的密钥验证消息之前,还包括: 所述AP随机选取组临时密钥GTK,采用所述KEK加密所述GTK ; 所述AP将加密的所述GTK携带在密钥验证消息中向所述STA发送。
8.根据权利要求7所述的方法,其特征在于,在所述AP将加密的所述GTK和/或所述第三随机数携带在所述密钥验证消息中向所述STA发送之后,还包括: 所述STA接收来自于所述AP的所述密钥验证消息; 所述STA采用所述KEK解密所述密钥验证消息获得所述GTK。
9.根据权利要求1所述的方法,其特征在于,所述STA对所述第一消息验证码进行验证包括: 所述STA按照所述预定的密钥衍生算法对认证过程中生成的PMK、所述AP生成的第一随机数、以及所述STA生成的第二随机数计算获取PTK,或者对所述PMK和计数器值计算获取所述PTK,并截取所述PTK获得所述KCK ; 所述STA采用所述KCK对所述第一消息验证码进行验证。
10.根据权利要求9所述的方法,其特征在于,所述STA截取所述PTK获得所述KCK时,还包括:所述STA截取所述PTK获得KEK和/或TK。
11.根据权利要求1所述的方法,其特征在于,所述密钥验证完成消息还携带有以下至少之一:第一随机数、第二随机数。
12.根据权利要求1至11中任一项所述的方法,其特征在于, 所述密钥验证消息还携带有以下至少之一:第一 EAP相关消息和/或第一 DHCP相关消息; 所述密钥验证完成消息还携带有以下至少之一:第二 EAP相关消息和/或第二 DHCP相关消息。
13.根据权利要求12所述的方法,其特征在于, 所述第一 EAP相关消息包括:EAP成功消息; 所述第一 DHCP相关消息包括:DHCP提供消息、DHCP确认消息; 所述第二 DHCP相关消息包括:DHCP发现消息、DHCP请求消息。
14.根据权利要求12所述的方法,其特征在于,所述STA向所述AP发送所述密钥验证完成消息包括以下之一: 当所述密钥验证完成消息包括所述第二 DHCP相关消息时,所述STA采用所述KEK或所述TK加密所述第二 DHCP相关消息后,将加密后的所述第二 DHCP相关消息封装在密钥验证完成消息中向所述AP发送; 所述STA采用所述KEK或所述TK加密所述密钥验证完成消息后向所述AP发送。
15.根据权利要求1所述的方法,其特征在于,在所述STA与所述AP进行认证之前,还包括:所述AP向所述STA发送网络发现消息,其中,所述网络发现消息包括:第三EAP相关消息。
16.根据权利要求1所述的方法,其特征在于,在所述STA与所述AP进行认证时,还包括: 所述STA和DHCP服务器进行部分或者全部DHCP过程。
17.根据权利要求1所述的方法,其特征在于,在所述STA与所述AP进行认证之前,还包括:所述STA向所述AP发送第一消息,其中,所述第一消息携带有以下至少之一:所述STA生成的所述第二随机数,计数器值、第四EAP相关消息、第三DHCP相关消息。
18.根据权利要求17所述的方法,其特征在于,所述第一消息为以下之一:关联请求消息;802.1X消息。
19.根据权利要求1所述的方法,其特征在于,在所述AP对所述第二消息验证码验证成功后,还包括:所述AP向所述STA发送第二消息,其中,所述第二消息包括:第四DHCP相关消息。
20.根据权利要求19所述的方法,其特征在于,所述第二消息为以下之一:关联响应消息;密钥信息帧EAPOL-Key ;802.1X消息。
21.根据权利要求1至11、15至20中任一项所述的方法,其特征在于,所述密钥验证消息和所述密钥验证完成消息为密钥信息帧EAPOL-Key消息。
22.一种密钥验证装置,其特征在于,包括: 第一接收模块,用于接收来自于接入点AP的密钥验证消息,其中,所述密钥验证消息携带有第一消息验证码; 第一验证模块,用于对所述第一消息验证码进行验证; 第一发送模块,用于在验证成功后,向所述AP发送携带有第二消息验证码的密钥验证完成消息,以使所述AP对所述第二消息验证码进行验证。
23.根据权利要求22所述的装置,其特征在于,所述第一验证模块包括: 获取单元,用于按照所述预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、所述密钥验证装置生成的所述第二随机数和所述AP生成的第一随机数计算获取成对临时密钥PTK,或者对所述PMK和计数器值计算获取所述PTK,并截取所述PTK获得密钥确认密钥KCK ; 验证单元,用于采用所述KCK对所述第一消息验证码进行验证。
24.一种密钥验证装置,其特征在于,包括: 第二发送模块,用于向工作站STA发送密钥验证消息,其中,所述密钥验证消息携带有第一消息验证码; 第二接收模块,用于在所述STA对所述第一消息验证码验证成功后,接收来自于所述STA的密钥验证完成消息,其中,所述密钥验证完成消息携带有第二消息验证码; 第二验证模块,用于对所述第二消息验证码进行验证。
25.根据权利要求24所述的装置,其特征在于,还包括: 生成模块,用于生成第一随机数; 获取模块,用于按照预定的密钥衍生算法对认证过程中生成的成对主密钥PMK、所述STA生成的第二随机数、以及所述生成模块生成的第一随机数计算获取成对临时密钥PTK,或者对所述PMK和计数器值计算获取所述PTK,并截取所述PTK获得密钥确认密钥KCK ; 计算模块,用于根据所述KCK计算获取所述第一消息验证码; 则所述第二发送模块,用于根据所述KCK计算获取所述第一消息验证码,并将所述第一消息验证码携带在所述密钥验证消息中发送。
26.根据权利要求25所述的装置 ,其特征在于,还包括: 第三发送模块,用于将所述第一随机数发送至所述STA。
全文摘要
本发明公开了一种密钥验证方法及装置,该方法包括STA接收来自于AP的密钥验证消息,其中,密钥验证消息携带有第一消息验证码;STA对第一消息验证码进行验证;在验证成功后,STA向AP发送携带有第二消息验证码的密钥验证完成消息,以使AP对第二消息验证码进行验证。通过本方法提供的技术方案,减少了现有技术中安全验证的繁琐步骤,且达到了缩短了入网时延的效果,从整体上提升了系统的性能,同时也提高了用户体验。
文档编号H04W12/06GK103096307SQ20111033197
公开日2013年5月8日 申请日期2011年10月27日 优先权日2011年10月27日
发明者冯成燕 申请人:中兴通讯股份有限公司