确保低功率传输的通信装置和方法与流程

文档序号:19816883发布日期:2020-01-31 19:32阅读:433来源:国知局
确保低功率传输的通信装置和方法与流程

本公开总体上涉及通信装置和通信方法。



背景技术:

ieee(电气和电子工程师协会)802.11ba任务组目前正在标准化与唤醒无线电(wake-upradio,wur)装置的操作有关的无线通信技术。wur装置是主连接无线电(primaryconnectivityradio,pcr)装置的伴随无线电装置,并且可以在与pcr相同的频带中操作或者也可以在不同的频带中操作。pcr可以是任何现有的主流ieee802.11修正案(802.11a,802.11g,802.11n或802.11ac),或者甚至可以是其他可适用的未来修正案(例如802.11ax)。wur装置的目的是在接收到有效的唤醒分组(也称为wurphy协议数据单元(ppdu))时触发pcr装置脱离睡眠的过渡,而pcr用作主无线通信无线电。pcr装置仅在主动通信期间开启,而在空闲监听期间,pcr装置关闭,且只有wur装置正在运行。期望wur装置的主动接收单元功耗小于1毫瓦,这与pcr装置的主动接收单元功耗相比要小得多。具有wur装置的设备可以被称为wur设备,并且wur模式可以指的是其中仅wur处于操作中而pcr被关闭的操作模式,而pcr模式可以指的是在开启pcr装置的情况下的操作。

ieee802.11ba修正案是针对通信设备通常由电池供电且非常需要在保持合理低延迟时延长电池寿命的应用和物联网(iot)用例。

引用列表

非专利文献(npl)

[npl1]ieeestd802.11-2016

[npl2]ieee802.11-17/0575r2,specificationframeworkfortgba,2017年7月

[npl3]ieee802.11-16/0722r1,"proposalforwake-upreceiver(wur)studygroup"

[npl4]ieee802.11-17/0660r0,"wursecurityproposal"

[npl5]ching-tsunghsueh等人的"asecureschemeagainstpowerexhaustingattacksinhierarchicalwirelesssensornetworks"

专利文献(pl)

[pl1]us2017/0099662al-pascalthubert等人的"dynamicallyhashedmacaddressfortransmissioninanetwork"



技术实现要素:

由于可以预期wur设备的大部分节电是设备关闭主pcr装置并长时间处于wur模式的结果,因此不必要地切换到pcr模式对设备的电池寿命有害。由于在wur模式下可用于通信的数据速率较低,因此与pcr信号相比,wur信号预期为更简单且更短。结果,wur信号非常容易被别有用心的恶意设备捕获和再现。这使wur设备特别容易受到重放攻击,从而攻击者会捕获中央控制单元用来唤醒wur设备的真正wur信号,并在将来使用它们虚假地唤醒wur设备,以引起电池消耗。这样的攻击也可以称为耗电攻击或拒绝睡眠攻击。

本公开的一个非限制性和示例性实施例提供了用于发送和接收安全wur信号并防止对wur设备进行上述恶意攻击的装置。

在一个总体方面,这里公开的技术的特征在于:一种通信装置,包括:密码电路,其使用共享的密码密钥和密码盐来生成在唤醒无线电(wur)帧的地址字段上计算的密码编码的消息完整性码(messageintegritycode,mic);发送信号生成单元,其通过用mic替换wur帧的地址字段,来生成安全wur信号;以及发送单元,其发送安全wur信号。

应当注意,一般或特定实施例可以被实现为系统、方法、集成电路、计算机程序、存储介质、或其任意选择性的组合。

本公开中描述的通信装置和通信方法提供了用于发送和接收安全wur信号并防止由于对wur设备的恶意攻击而引起的虚假唤醒的装置。

根据说明书和附图,所公开的实施例的其他益处和优点将变得显而易见。益处和/或优点可以通过说明书和附图的各种实施例和特征来单独获得,而不需要为了获得一个或多个这样的益处和/或优点提供全部实施例和特征。

附图说明

图1显示了示例异构802.11无线网络,其具有真正的wur能力的设备和恶意的wur能力的设备的混合。

图2显示了802.11ba任务组中考虑的wurppdu的格式。

图3描绘了帧传输序列,该序列图示了恶意攻击的示例。

图4示出了根据第一实施例的用于协商/发起wur模式的帧传输序列。

图5示出了根据第一实施例的用于wur模式协商/发起的wur动作帧的格式。

图6描述了用于获得要在安全传输中使用的密钥的4次握手。

图7是根据第一实施例的对wur安全元素中的密码套件字段进行编码的表。

图8示出了根据第一实施例的针对安全wur帧提出的帧格式。

图9a示出了根据第一实施例的针对安全wur帧提出的替代帧格式。

图9b示出了根据第一实施例的用于通知密码盐值的wur动作帧的格式。

图10a示出了根据第二实施例的针对安全wur帧提出的帧格式。

图10b示出了根据第二实施例的用于通知mic的wur动作帧的格式。

图11a描绘了根据第三实施例的用于安全wur传输中的第一帧传输序列。

图11b示出了根据第三实施例的用于安全wur传输中的第二帧传输序列。

图12示出了根据第四实施例的用于安全wur传输中的帧传输序列。

图13示出了根据第五实施例的用于通知密码盐范围的wur动作帧的格式。

图14是根据第五实施例的示例mic值的表。

图15示出了根据第五实施例的针对安全wur帧提出的帧格式。

图16示出了根据第五实施例的针对安全多播wur帧提出的帧格式。

图17示出了根据第六实施例的定时同步功能(tsf)字段的格式。

图18示出了根据第六实施例的针对安全wur帧提出的帧格式。

图19是当p-tsf被用于时间同步时可以发生的示例时钟漂移问题的表。

图20示出了根据第六实施例的创建用于输入到wur认证模块的tsf字段的中间过程。

图21示出了根据第六实施例的在发送单元侧创建安全wur帧的示例过程。

图22示出了根据第六实施例的在接收单元侧验证安全wur帧的示例过程。

图23示出了根据第六实施例的针对安全多播wur帧提出的帧格式。

图24示出了根据第六实施例的针对安全多播wur帧提出的替代帧格式。

图25示出了根据第六实施例的针对不安全wur帧提出的帧格式。

图26示出了根据第七实施例的分组编号(pn)字段的格式。

图27示出了根据第七实施例的针对安全wur帧提出的帧格式。

图28示出了根据第七实施例的针对更新pn字段提出的帧格式。

图29示出了根据第八实施例的针对安全wur帧提出的帧格式。

图30是实现所公开的传输方案的示例ap的简化框图。

图31是实现所公开的传输方案的示例ap的详细框图。

图32是实现所公开的传输方案的示例wursta的简化框图。

图33是实现所公开的传输方案的示例wursta的详细框图。

具体实施方式

借助于以下附图和实施例可以更好地理解本公开。这里描述的实施例本质上仅是示例性的,并且用于描述本公开的一些可能的应用和用途,并且相对于在本文未明确描述的替代实施例,不应将其视为对本公开的限制。

图1示出了可以在其中应用本公开的无线通信网络100的示例。无线通信可以基于流行的无线标准,例如ieee802.11。无线通信网络100可以包括接入点(ap)110和与ap110相关联的三个站(sta)120、130和140。ap110配备有主连接无线电(pcr)装置(以下简称为“pcr”)112,该装置能够发送和接收802.11波形(例如,正交频分复用(ofdm))中的无线信号,以及能够发送唤醒无线电(wur)波形(例如开关键控(ook))中的无线信号。sta120、130和140是wur能力的sta,并且分别配备有pcr122、132和142以及唤醒无线电接收单元(wurx)装置(以下简称为“wurx”)124、134和144。sta130和140能够发送和接收802.11信号,并且还能够接收wur信号。pcr132和142可以仅在主动通信(pcr模式)期间被开启,而在空闲监听期间,pcr可以被关闭并且只有wurx134和144可以运行(wur模式)。然而,sta120可以是定制设备,其具有wur能力的sta的所有功能,并且此外sta120的pcr122还具有发送唤醒无线电(wur)波形((ook)中的无线信号的能力。或者sta120可以简单地是既具有wurap功能又具有wursta功能的设备。当ap110需要与以wur模式中操作的sta进行通信时,它可以首先发送唤醒信号以通过开启对应的pcr并关闭wurx来指示sta过渡为pcr模式。随后,ap和sta可以在pcr上执行通信。一旦通信结束,sta可以通过关闭pcr并开启wurx来切换回到wur模式。

图2显示了ieee802.11ba任务组中正考虑的唤醒信号传输方案。唤醒信号可以被表示为wurphy协议数据单元(ppdu)200。wurppdu200由两个不同的部分构成。第一部分由20mhz遗留(legacy)(也称为非高吞吐量(ht))802.11前同步码210和一个称为wur标记的额外ofdm符号218构成,它们在整个20mhz信道上以802.11ofdm波形发送。第二部分是唤醒分组(wup)净荷220,其在20mhz信道内的更窄的子信道(例如4mhz子信道)中以wurook波形发送。尽管在图2中仅显示了单个wup净荷220,但还可以在20mhz信道内的不同、不重叠的子信道上发送多于一个的wup净荷,例如三个wup净荷。

遗留802.11前同步码210提供与不了解wur信号的遗留802.11sta的共存。前同步码210还包括非ht短训练字段(l-stf)212、非ht长训练字段(l-ltf)214和非ht信号字段(l-sig)216。l-sig216携带关于wup净荷220的长度的信息,从而允许遗留802.11设备将它们的传输推迟达正确的持续时间。在l-sig216之后立即发送以二进制相移键控(bpsk)调制的持续时间为4微秒的wur标记218,以防止802.11n设备错误地将wurppdu200解码为802.11n分组。

wup净荷220携带实际的唤醒信号,并且包括唤醒前同步码222和wur帧230。唤醒前同步码222用于自动增益控制(agc)、定时同步、分组检测等,而wur帧230携带控制信息。wur帧230也可以被称为wurmac协议数据单元(mpdu),并且可以进一步由各种子字段构成,例如由mac报头240、帧校验序列(fcs)252以及可选的帧主体250构成。mac报头240可以进一步包括:指定帧类型、帧长度等的帧控制字段242,可以携带发送单元地址、接收单元地址中的一个或两者的地址字段242。取决于帧类型,可以在td控制字段246中携带其他控制信息。例如,在wur信标帧中,td控制字段246可以携带时间戳字段,而在单播wur帧中,td控制字段246可以携带分组编号等。

图3描绘了帧传输序列300,其示出了由图1中的无线网络100中的攻击者发起的示例重放攻击。攻击者可以是图1中的sta120,而ap和sta可以分别是图1中的ap110和sta130。sta130可能已经与ap110进行了wur模式协商,并且可能在sta130的pcr132关闭时只有sta130的wurx134的情况下进行操作。另一方面,攻击者sta120让它的wurx124和pcr122均被开启,并且可能正在监视ap110和sta130之间的通信量。当ap110从高层协议获取目的地为sta130的数据时,它将数据帧保存在缓冲单元中并发送wurppdu310以唤醒sta130。在接收到wurppdu310时,sta130验证了ppdu是向它寻址,并且继续开启它的pcr132且向ap110发送ps轮询帧312。同时,攻击者120的wurx124也接收wurppdu310并将其保存在存储单元中以备将来使用。ap110通过将缓冲的数据帧314发送到sta130来响应ps轮询帧312。sta130通过向ap110发送确认(ack)帧316来确认数据帧314的接收,并且sta130可以通过关闭其pcr无线电132而继续进行到wur模式。在稍后的时间点,攻击者sta120可以使用捕获的wurppdu310,以通过向sta130重发wurppdu310来向sta130发起重放攻击,从而使其过渡到pcr模式。由于wurppdu320是ap110过去发送的有效wurppdu的重放,因此它对sta130而言似乎是有效的wurppdu,并且它可以继续发送另一个ps轮询帧322且可以等待ap110向其发送数据帧。最终,当sta130未从ap接收任何帧时,它可能会在pcr模式超时并返回到wur模式,但是不必要地转换为pcr模式已经失去了一些电力。如果没有实施减轻这种攻击的措施,则攻击者sta120可以重复重放攻击,直到sta130电池耗尽为止。

在后面的部分中详细描述了几个示例性实施例以详细描述本公开。在以下部分中详细描述了根据本公开的用于减轻恶意的虚假唤醒攻击的各种实施例。

<第一实施例>

图4描绘了由wursta用来与它的ap协商在wur模式期间使用的参数的帧交换序列400。在wursta第一次进入wur模式之前,需要完成帧交换400。这随后还可以用于更改与wur模式有关的参数,而且用于进入或退出wur模式。图5中的wur动作帧500可以用于wur模式协商。wursta通过发送wur模式请求帧410来发起wur模式协商,wur模式请求帧410可以是wur动作帧500的变体,其中wur模式元素510中的wur模式请求/响应字段512被设置为wur模式请求。或者,也可以在wur动作字段502内携带wur模式请求指示。在任何一种情况下,wur模式请求帧是指携带wur模式请求的指示的wur动作帧。尽管图5中未显示,但wur模式元素也可以携带其他与wur模式操作相关的参数,诸如占空比参数等。根据第一实施例,wur模式元素还包含安全字段514,该安全字段可以由wursta设置为1,以请求ap为wurppdu的将来传输启用安全传输模式。wursta可以从一开始就请求安全wur传输,或者仅在wursta检测到它受到攻击时才请求安全wur传输。尽管wursta可能无法仅从一两次虚假唤醒中检测到攻击,但是如果sta一直被唤醒而没有从ap接收到任何后续下行链路帧达到超过某个阈值,例如5次,则sta可以认为自己受到攻击,并请求启用安全性。在接收到wur模式请求帧410时,ap以wur模式响应帧420进行响应,这是图5中的wur动作帧500的另一变体,其中wur模式元素510中的wur模式请求/响应字段512被设置为wur模式响应。或者,也可以在wur动作字段502内携带wur模式响应指示。在任何一种情况下,wur模式响应帧是指携带wur模式响应的指示的wur动作帧。除了wursta的wur模式操作所需的参数之外,如果wursta已请求为wur传输启用安全性,则ap还包括在wur模式响应帧420中图5中的wur安全元素520,该wur模式响应帧420携带安全wur通信所需的参数。一旦已经通知了安全参数,则ap将在需要唤醒wursta时使用安全wurppdu430。

图5中的wur安全元素520携带wur安全参数530,该wur安全参数530包含关于将由wursta用来接收安全wurppdu的密钥的信息。由于wursta也是ieee802.11设备,因此sta尽可能重用现有的802.11安全框架是有意义的。稳健的安全网络关联(rsna)是ieee802.11设备使用的默认安全协议。尽管在rsna中有几种安全算法(诸如带有密码块链接消息认证码协议(ccmp)的计数单元模式、galois/计数单元模式(gcm)协议(gcmp)、广播/多播完整性协议(bip)等),以及几种哈希算法,但是这些算法使用的密钥可大致分为成对密钥或组密钥。成对密钥用于一对设备之间的单播通信,而组密钥用于广播或多播通信。成对密码套件字段540指示要用于单播wurppdu的密码套件,并且由组织唯一标识符(oui)字段542和套件类型字段544进行标识。如果在ap和wursta之间已经协商了多于一个成对密钥,则成对密钥id字段545指示用于wurppdu的成对密钥的标识符。组密钥计数548指示包括在元素中的组密钥的数目。如果将相同的组密钥用于所有wur广播和多播ppdu,则仅需要一个组密钥,但是,如果ap决定对广播和多播wurppdu使用不同的组密钥,则可以在元素中包括两个或更多个组密钥。组密钥数据字段550的长度是可变的,并且包括关于组密钥的信息。对于每个包括的组密钥,组密码套件字段550指示用于广播或多播wurppdu的密码套件,并由组织唯一标识符(oui)字段552和套件类型字段554进行标识。组密钥信息字段560标识组密钥及其用途。如果已经在ap和wursta之间协商多于一个密钥,则密钥id字段562指示要用于wurppdu的组密钥的标识符;gtk/igtk字段564指示组密钥是组临时密钥(gtk)还是完整性组临时密钥(igtk),并且广播/多播字段566指示是要使用组密钥还是广播或多播wurppdu。组id字段568可以用于指定与组密钥相关联的特定多播组,并且仅当将广播/多播字段566设置为多播时才设置该字段。密钥长度字段570指示包装密钥(wrappedkey)字段580的长度,并且如果包装密钥字段580不包括在元素中,则密钥长度字段570可以将其设置为0。当密钥id字段指示要用于wurppdu的组密钥与协商用于pcr中的组密钥相同时,则省略包装密钥字段580,否则包装密钥字段580包含将用于wurppdu的加密的gtk或igtk密钥。

图6描绘了wur模式协商过程600,其中ap和wursta协商排他地用于wurppdu的单独的密钥。即使有可能为wurppdu重用与用于pcr通信的密钥相同的密钥,但如果wursta有能力,则ap也可以与wursta发起单独的4次握手过程620,以获取排他地用于wurppdu的ptk和gtk/igtk。由于pcr操作模式和wur操作模式彼此非常不同,并且sta一次只能以一种模式操作,因此生成排他地用于wurppdu的单独的密钥可以是有益的,因为安全风险被隔离到每种操作模式且对于密钥重复的密码盐的风险被最小化。此外,重新协商用于pcr的组密钥不必影响用于wurppdu的组密钥。在wur模式请求过程610中从sta接收到请求为wurppdu启用安全性的wur模式请求帧410时,ap可以选择发起4次握手620以导出用于对wurppdu进行编码/解码的单独密钥。虚线框中所示的4次握手620与sta与ap关联以协商用于安全会话的成对瞬态密钥(ptk)和组密钥(gtk和igtk)时在rsna中使用的相同,除了密钥是排他地用于wurppdu的,因此可以将密钥称为w-ptk,w-gtk和w-igtk,以将它们与pcr通信期间使用的密钥区分开。在wur模式响应过程630中,ap通过发送携带wursta进入wur模式所需的其余参数的wur模式响应帧420来结束wur模式协商。在这种情况下,wur模式响应帧420不包括图5所示的包装密钥字段580。然而,ap可以选择在将来的时间向wursta发送图5中的包括包装密钥字段580的主动wur模式响应帧500,以在wursta处于wur模式时组密钥已经可以改变的情况下更新组密钥。

图7是在wur安全性元素中编码使用的oui和套件类型并且用于标识用于安全wurppdu的安全性算法的表700。ap可以基于诸如sta的能力的因素选择适当的算法来使用。例如,对于资源非常有限的wursta,ap可以选择简单的哈希函数,诸如sha1-128或sha-256,而对于具有更高处理能力的wursta,ap可以选择ccmp-128密码套件。如果ap指示成对密码套件的“使用组密码套件”,则ptk不用于wurppdu,而仅使用组密钥。尽管建议对单播wurppdu使用成对密码套件,但在某些情况下,ap也可以决定对所有wurppdu使用组密码套件。

图8示出了携带密码编码的mic字段816的安全wur帧800,该mic字段816帮助预期的接收单元wursta分类地认证该帧的发送单元。为了将安全wur帧与不安全wur帧进行区分,ap将帧控制字段812中的安全比特814设置为1。安全比特814向接收wursta警告在wur帧内出现mic字段816。如前所述,由于用于传输wurppdu的信号相对简单,攻击者用通过强制sta唤醒而导致wursta浪费电池电力的恶意意图来重放较早的wurppdu甚至生成伪造的wur帧,这并不是很困难。如果wur帧包含某些字段,该些字段只能由信任的发送单元使用共享的密钥来生成并且可以由预期的wursta使用相同的密钥进行验证,则可能会挫败此类尝试。此类字段通常称为消息认证码(mac)或消息完整性码(mic)。ap可以使用在ieee802.11设备中也常用的流行的密码哈希函数,诸如sha-1-128,sha-256,sha-384或md5等,以生成mic字段816,或者ap也可以选择使用诸如密码块链接消息认证码(cbc-mac)的块密码算法来生成mic字段816,该算法继而可以基于诸如aes-128-cmac或aes-256-cmac的高级加密标准(aes)。ap对用于生成mic字段816的密码算法的选择可以基于诸如sta的能力的因素,例如对于资源非常有限的wursta,ap可以选择诸如sha1-128或sha-256的简单哈希函数,而对于具有更高处理能力的wursta,ap可以选择基于aes的ccmp-128。使用mac或mic来提供安全性的关键假设是以下事实:不拥有密钥的攻击者无法生成相同的mic,或者基于mic反向工程密钥计算开销过大。但是,攻击者仍然有可能嗅探到真正的安全wurppdu,并在将来使用它来发起重放攻击。为了防止这种重放攻击,发送单元必须确保每个mic计算对于特定密钥的每个安全wurppdu使用不同的唯一的输入(或随机数)。这种唯一的输入通常称为“盐(salt)”或“nonce”。

在ieee802.11ba任务组中正考虑几种类型的wur帧,并且即使帧的格式可能相似,如图2中的通用wur帧230所示,帧字段的内容也可能取决于帧类型而会略有不同。寻址到单个wursta的wur帧可以称为单播wur帧,寻址到一组wursta的wur帧可以称为多播wur帧,而寻址到与ap相关联的所有wursta的wur帧可以被称为广播wur帧。单播wur帧可以包含地址字段244内的接收单元地址(ra)和发送单元地址(ta),并且td控制字段246可以包含时间戳字段或分组编号,而可以缺少帧主体250字段。类似地,纯粹用于时间同步(即,不用于唤醒wursta)的广播wur帧(诸如wur信标)可以仅包含地址字段244内的发送单元地址(ta),而td控制字段246可以包含用于时间同步的时间戳字段,并且可以缺少帧主体250。另一方面,多播wur帧可以包含地址字段244中的发送单元地址,td控制字段中的时间戳或分组编号,而帧主体字段250可以包含由多播帧唤醒的目标的wursta的列表。

再次参考图8,如果wur帧包含对于每个wur帧不同的唯一编号,例如,部分-tsf(p-tsf)字段818,则这可以用作密码功能的盐。p-tsf字段可以代表由ap维护的时间同步功能(timesynchronizationfunction,tsf)的一些选定比特。如果wur帧是单播帧,则ap使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、发送单元地址(ta)和接收单元地址(ra)、以及p-tsf字段,作为密码算法的输入以获得mic。通常,标准密码函数的输出可能太长而无法直接在wurppdu中使用,并且可能需要被截断以适合wur帧的有限大小。例如,如果ap使用sha-256生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(sha-256(tk||ta||ra||p-tsf))

tk=成对密钥ptk或w-ptk的临时密钥(tk)部分,并且其长度取决于在4次握手期间选择的密码套件,例如对于ccmp-128为128比特等。

ta=发送单元地址(ap的mac地址=bss的基本服务集标识符(bssid))

ra=分配给目的地sta的接收单元地址或wurid(wid)(例如,接收方wursta的aid12)

truncate-l=将sha-256函数的输出(128比特)截断为l比特的函数。

l=地址字段244的比特数

x||y=x和y的级联

或者,如果ap使用aes-128-cmac生成mic,则将tk、ta、ra和p-tsf作为输入馈送入aes引擎,这将返回128比特的编号作为mic,然后将mic截断为l比特。

最后,ap用mic字段816替换图2中的地址字段244,将安全比特814设置为1,并在整个wur帧800上计算fcs830,并发送携带wur帧800的安全wurppdu。

至于接收wur帧800的接收wursta,它首先通过检查fcs字段830来验证该帧是无错误的。安全比特814向sta警告wur帧800是安全帧,并且其地址字段被mic字段816替换,而帧类型字段813指示该帧是单播wur帧。sta使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、作为发送单元地址(ta')的其bss的bssid、和作为接收单元地址(ra')的分配给sta的wurid(wid)(例如,sta的aid12)、以及作为对密码算法的输入的p-tsf字段818以获得mic。例如,如果ap已在wur模式响应帧中指示sha-256用作用于成对通信的密码套件,则sta处的密码过程可总结为:

mic'=truncate-l(sha-256(tk'||ta'||ra'||p-tsf))

由于ta和ra的两者用作mic计算的输入,因此,如果计算出的mic'与mic字段816匹配,则wursta隐式地将自身识别为wur帧的接收单元,并得出该帧为由其ap发送的可信的帧的结论。为了进一步保护其自身免受重放攻击,wursta可以基于p-tsf字段执行附加的检查,例如,sta可以检查p-tsf值大于过去接收到的wur帧的值,并且检查在接收到的wur帧中的p-tsf值和本地保持的p-tsf之间的差在与其本地p-tsf值相距某个可接受的值之内,例如小于最大预期时钟漂移。如果p-tsf检查失败,则wursta丢弃该帧,否则sta继续基于wur帧的内容采取预期的动作,例如,如果wur帧800是单播wur帧,则唤醒其pcr。为了防止分配给p-tsf字段的比特数太少并且p-tsf值在达到最大值后可能翻转并导致真正的wur帧被错误地分类为重放wur帧的情况,ap必须确保每次p-tsf值翻转时都更改密钥。对于第三方wursta,如果对密码函数的任何输入(例如,密钥或ra)不同,则mic'计算将不与wur帧中携带的mic字段匹配,并且wursta可以安全地丢弃这样的帧。

上面的示例假定wur帧的地址字段244中同时出现ta和ra。但是,如果要确保的wur帧仅携带ta,例如wur信标帧,则使用组密钥gtk或w-gtk的临时密钥(tk)部分、作为发送单元地址(ta)的其bss的bssid以及p-tsf字段,作为密码算法的输入来计算mic。

mic=truncate-l(sha-256(tk||ta||p-tsf))

具有相同组密钥的任何wursta都将能够验证mic,并将能够正确地接收广播的wur信标,并基于接收到的帧的p-tsf字段同步其本地p-tsf。

参照图9a,示出了wur帧900,该wur帧900不携带可以用作密码计算的盐的唯一编号。即使这样的帧包括mic字段,如果密码计算不包括对发送单元和接收方两者都知道的任何唯一盐值,则接收单元也仍然容易受到重放攻击。在没有盐值的情况下,则如果给定的wur帧的内容保持不变,则密码计算将对于该帧输出相同的mic。为了克服这种情况,在wur模式协商期间,对于与ap协商安全wur模式的每个wursta,ap可以提供基本随机数用作生成用于不携带可以用作密码计算的盐的唯一编号的wur帧类型的密码盐的基数。图9b中的wur动作帧950可以被ap用于该目的。在wur动作帧的该变体中,可以在wur动作字段内携带指示,该指示指示了动作帧是来自wursta的请求帧还是来自ap的响应帧。当wur动作帧被用于携带密码盐时,将wur动作字段设置为wur模式响应。尽管未示出,但是也可以存在wur安全性元素520。此外,ap还包括密码盐元素960,以提供用于密码盐的基数。由于可能有多于一个wur帧类型可以需要单独的密码盐,因此ap可以在密码盐元素960内包括一个或多个密码盐参数字段962。每个密码盐参数字段962包括:帧类型字段964,其指定该密码盐要应用的wur帧类型;以及密码盐基础字段966,其指定用作指示的wur帧类型的盐的起始编号。wur帧类型字段964的编码与图8中的帧类型字段813相同。对于需要这种密码盐的单播或多播wur帧类型,ap会每wursta的每帧类型或已协商的安全wur传输的每多播组的每帧类型维护一个唯一编号。已协商安全wur传输的每个wursta还针对单播每帧类型维护一个唯一编号,以及针对其所属于的每个多播组每帧类型维护一个唯一编号。默认情况下,密码盐基可以在初始化期间设置为零,或者ap也可以选择不同的随机值作为起始编号。在安全wur帧的每次成功发送之后,ap将与该wur帧关联的密码盐的值增加一。类似地,成功接收到这样的安全wur帧的wursta也将与该wur帧关联的密码盐的值增加一。如果r_sta表示ap为wursta的特定帧类型所维护的密码盐的当前值,则ap使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid和接收单元地址(ra)、以及r_sta,作为密码算法的输入以获得mic。例如,如果ap使用sha-384生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(sha-384(tk||bssid||ra||r_sta))

l=地址字段244的比特数减去ra字段914的比特数

ap用mic字段916替换图2中地址字段244的ta部分,将帧控制912中的安全比特设置为1,并在整个wur帧900上计算fcs930,并发送安全wur帧900。

在接收wursta处,它首先将ra字段914与它自己的wurid进行比较,如果存在匹配,则它将继续比较mic字段916。如果r_sta'表示sta为特定帧类型维护的密码盐的当前值,则它使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、其bss的bssid、和作为接收单元地址(ra')的分配给sta的wurid(wid)、以及r_sta',作为密码算法的输入以获得mic'。例如,如果ap在wur模式响应帧中已指示sha-384用作用于成对通信的密码套件,则sta处的密码过程可总结为:

mic'=truncate-l(sha-384(tk'||bssid'||ra'||r_sta'))

如果所计算的mic'与mic字段916匹配,则wursta隐式地将自身识别为wur帧的接收单元,并且还得出该帧是由其ap发送的可信帧的结论。同时,sta将由sta针对特定帧类型维护的密码盐增加一,并且继续唤醒其pcr。在从wursta接收到响应帧时,ap还将ap针对wursta的特定帧类型维护的密码盐增加一。在这种情况下,由于每次成功进行wur传输后,at和sta都会始终使密码盐值增加,因此任何重放的wurppdu将无法通过mic检查,因而使重放攻击受挫。

为了从ap和sta可能失去同步并且具有不同密码盐的值的情况下恢复过来,可以采用几种选项:

1.ap可以保存r_sta的过去的一个或多个值。如果sta没有使用r_sta的特定值唤醒wur帧的重复传输,则ap可以重新使用过去的r_sta的保存的值来生成要在wur帧中发送的mic。

2.除了密码盐基,ap还向每个wursta提供另一个唯一的随机数e_sta,以用于紧急/备份。sta将e_sta保存到存储单元中。如果sta基于r_sta不响应携带mic的重复的wur帧,则ap使用e_sta作为密码盐来生成mic。一经接收到wur帧,sta将wur帧中的mic与使用r_sta和e_sta生成的mic进行比较。如果任一个值匹配,则认为wur帧是可信的。一旦已使用了特定的e_sta,就在ap和sta之间协商新的e_sta。

作为一个细微的变化,,mic'值也可以由wursta在sta处于pcr模式时使用密码盐的最新值来预先计算,并保存到pcr和wur均可访问的公用存储单元中。当sta接收到安全wur帧时,它仅将接收到的帧中的mic字段与存储单元中保存的mic'进行比较,以确定接收到的wur帧的可信性。当ap选择计算量更密集的密码套件时,此选项可能是更可取的,因为与wur模式相比,wursta在pcr模式期间可能会访问功能更强大的cpu,从而导致节省一些电力。

如前所述,由于预期可用于wurppdu传输的数据速率相对较低,因此保持wur帧的长度尽可能短是有益的。用mic替换ta字段或同时替换ta和ra字段具有使安全wur帧的长度增加最小化的附加优点。另外,由于用于密码计算的输入字段的长度不是大问题,因此,不是将诸如12比特的aid12的缩写的地址字段用于ra、或将12比特的bss颜色(网络标识符)用作ta,而是48比特长的完整mac地址可用作mic计算的ra和ta。这进一步降低了例如由于相邻的obss使用相同的bss颜色而导致mic意外误报的机会。作为示例,假设图2中的地址字段244是16比特长,如果用图8所示的mic字段816替换地址字段,则安全wur帧的长度保持与不安全wur帧相同。

<第二实施例>

参考图10a,提出了针对不携带可用作密码计算的盐的唯一编号的wur帧的替代解决方案。在wur模式协商期间,对于与ap协商安全wur模式的每个wursta,对于需要这种密码盐的每个单播或多播wur帧类型,ap都会每wursta的每帧类型或每多播组的每个帧类型维护一个唯一编号作为基数,以生成针对帧类型的密码盐。默认情况下,可以在初始化期间将基数设置为零,或者ap也可以选择其他随机值作为起始编号。使用基数的当前值作为密码盐,ap在sta进入wur模式之前为每个wursta计算mic,并使用pcr将mic发送到wursta。如果r_sta表示ap为wursta的特定帧类型维护的基数的当前值,则ap使用其密钥,例如成对密钥ptk或w-ptk的临时密钥(tk)部分、bssid和接收单元地址(ra)、以及r_sta,作为密码算法的输入以获得mic。例如,如果ap使用hmac-md5生成mic,则ap处的密码过程可以总结为:

mic=hmac-md5(tk||bssid||ra||r_sta)

ap可以使用将模式指示设置为wur模式响应的图10b中的wur动作帧1050来将mic发送到wursta。ap可以在mic元素1060内包括一个或多个mic参数字段1062。每个mic参数字段1062包括:帧类型字段1064,其指定该mic将被应用到的帧类型;以及mic字段1066,其携带将用于验证所指示的wur帧类型的mic。mic字段1066的长度取决于用于计算mic的密码套件。wur帧类型字段1064的编码与图8中的帧类型字段813相同。已协商安全wur传输的每个wursta针对单播每帧类型接收和保存一个唯一mic,以及针对其所属的每个多播组每帧类型接收和保存一个唯一mic。随后,当ap需要向处于wur模式的wursta发送需要单独的密码盐的安全wur帧时,它发送用r_sta1014、针对wursta维护的基数的当前值替换图2中的地址字段244的wur帧1000。这样,用于基数的比特数受分配给图2中的地址字段244的比特数的限制。

在接收wursta处,它使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、其bss的bssid和作为接收单元地址(ra')的分配给sta的wurid(wid)(例如sta的aid12)、以及在wur帧1000中接收的r_sta,作为密码算法的输入以获得mic'。例如,如果ap在初始wur模式协商期间已指示hmac-md5用作用于成对通信的密码套件,则sta处的密码过程可总结为:

mic'=hmac-md5(tk'||bssid'||ra'||r_sta))

如果计算出的mic'与帧类型的保存的mic匹配,则wursta隐式地将自身识别为wur帧的接收单元,并得出该帧是其ap发送的可信帧的结论。在每次成功传输安全wur帧后,ap会将与wur帧关联的基数的值增加一,使用该基数重新计算mic,并sta回到wur模式之前在pcr会话期间将mic提供给wursta。使用此方法的一个优点是不需要截断mic,并且使用全长度的mic来验证wur帧的可信性,但是在每个pcr会话期间都存在mic的额外传输。当不频繁发送wur帧但期望更高级别的安全性时,此方法可以是适用的。

<第三实施例>

参考图11a,呈现了不携带可用作密码计算的盐的唯一编号的wur帧的另一种替代解决方案。除了明确提供随机数以用作密码盐之外,wursta还可以从pcr会话期间交换的帧中隐式接收要用作密码盐的编号。对于单播wur帧,wursta成功接收到的来自ap的最新单播数据帧或单播管理帧的mac报头的序列控制字段中携带的序列编号可以用作密码盐。例如,如果sn表示最近发送的数据帧1110的序列编号的当前值,则ap使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid和接收单元地址(ra)以及sn,作为密码算法的输入以获得mic。例如,如果ap使用sha-256生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(sha-256(tk||bssid||ra||sn))

l=地址字段244的比特数

ap用生成的mic替换单播wurppdu1120的地址字段,将安全比特设置为1,并在wurppdu内携带的整个wur帧上计算fcs,并发送安全单播wurppdu1120。

在接收wursta处,它使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、其bss的bssid和作为接收单元地址(ra')的分配给sta的wurid(wid)(例如sta的aid12)、以及最近接收的数据帧1110的序列编号sn'作为密码算法的输入,以获得mic'。例如,如果ap在初始wur模式协商期间已指示sha-256用作用于成对通信的密码套件,则sta处的密码过程可以总结为:

mic'=truncate-l(sha-256(tk'||ta'||ra'||sn'))

如果计算出的mic'与wurppdu1120的mic字段匹配,则wursta隐式地将自身识别为wur帧的接收单元,并且还得出该帧是由其ap发送的可信帧,并继续唤醒其pcr。

对于多播wurppdu,由于需要多于一个的wursta才能对wurppdu进行认证,因此对于作为多播wurppdu的预期接收方的所有sta,隐式密码盐必须相同。最近的802.11信标帧中携带的时间戳字段可用作多播wurppdu的隐式密码盐。例如,如果tsf表示最近发送的信标帧1130的时间戳字段的当前值,则ap使用其为多播组协商的秘密组密钥(例如组密钥gtk、igtk或w-gtk的临时密钥(tk)部分)、bssid和接收方多播组的组id(gid)、以及tsf,作为密码算法的输入以获得mic。例如,如果ap使用aes-128-cmac生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(aes-128-cmac(tk||bssid||gid||tsf))

在这里,aes-128-cmac(tk||bssid||gid||tsf)用于表示以tk、bssid、gid和tsf为输入的aes-128-cmac算法的输出。

ap用生成的mic替换多播wurppdu1140的地址字段,将安全比特设置为1,并在wurppdu内携带的整个wur帧上计算fcs,并发送安全多播wurppdu1140。

在接收wursta处,每次它从其ap接收到信标帧时,它将最近接收到的信标帧1130中携带的时间戳字段在存储单元中保存为tsf。随后,当sta接收到安全wur帧,并且如果接收到的wur帧的帧类型指示多播帧,并且如果sta属于多播组,则它使用其组密钥gtk、igtk或w-gtk、其bss的bssid和sta所属于的多播组的组id(gid')、以及保存的时间戳tsf',作为密码算法的输入以获得mic'。例如,如果ap在初始wur模式协商期间已指示aes-128-cmac用作用于成对通信的密码套件,则sta处的密码过程可以总结为:

mic'=truncate-l(aes-128-cmac(tk'||bssid||gid'||tsf'))

如果所计算的mic'与wurppdu1140的mic字段匹配,则wursta隐式地将自身识别为多播wur帧的接收单元,并且还得出该帧是其ap发送的可信帧的结论,并继续唤醒其pcr。

wursta可能会在wur模式下运行很长一段时间,并且只需要很少被唤醒。在这种情况下,wursta可能不会经常切换到pcr模式。但是,这样的wursta仍将定期接收wur信标帧,以保持与ap的时间同步。对于这样的wursta,ap可以改为使用已知wursta已接收到的最新wur信标帧内携带的p-tsf作为寻址到sta的下一个安全wur帧的密码盐。例如,基于诸如wursta的占空比的信息,ap可以知道wursta监听的wur信标帧。在帧交换序列1150中示出了示例。如果ap知道wursta将监听wur信标1160,并且如果p-tsf表示wur信标帧1160的p-tsf字段的值,则ap将p-tsf值保存在存储单元中。随后,当ap需要唤醒sta时,ap使用其密钥(例如,成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid和接收方wursta的接收单元地址(ra)、以及保存的p-tsf,作为密码算法的输入以获得mic。例如,如果ap使用aes-256-cmac生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(aes-256-cmac(tk||bssid||ra||p-tsf))

ap用生成的mic替换wurppdu1170的地址字段,将安全比特设置为1,并在wurppdu内携带的整个wur帧上计算fcs,并发送安全多播wurppdu1170。

在接收wursta处,每当它从其ap接收到wur信标帧(例如wur信标1160)时,它将wur信标中携带的p-tsf字段在存储单元中保存为p-tsf'。随后,当sta接收到安全wur帧时,它使用其密钥、其bss的bssid和作为ra'的其wid、以及保存的p-tsf',作为密码算法的输入以获得mic'。例如,如果ap在初始wur模式协商期间已指示将aes-256-cmac用作用于成对通信的密码套件,则sta处的密码过程可以总结为:

mic'=truncate-l(aes-256-cmac(tk'||bssid||ra'||p-tsf'))

如果所计算的mic'与由wurppdu1170携带的安全wur帧的mic字段匹配,则wursta隐式地将自身识别为wur帧的接收单元,并且还得出该帧是由其ap发送的可信帧的结论,并继续唤醒其pcr。

如果wur信标帧还携带单调递增的wur信标编号,则替代地使用p-tsf作为密码盐,ap和wursta也可以将wur信标编号用作mic计算的密码盐。

如果某些wursta的占空比很低,或者占空比与其他wursta不一致,则将难以确保此类wursta分别接收到最新的pcr信标帧或最新的wur信标帧的tsf或p-tsf。在这种情况下,ap和wursta可以跟踪每个wursta的目标wur信标发送时间(twbtt)的序列编号。由于所有wursta都知道wur信标间隔(ap发送wur信标的周期性间隔),即使没有接收到wur信标,wursta仍然能够跟踪最新twbtt的序列编号。该序列编号然后可以用作用于mic计算的密码盐。

<第四实施例>

即使诸如hmac或cmac的密码函数在无线通信系统中被广泛使用并且被认为比许多其他密码函数简单得多,但是在某些资源非常有限的部署中,当wursta在wur模式下运行时,即使哈希计算也可能占用wursta的大量资源。在这种情况下,ap可能必须放宽安全wur帧的定义,并依靠ap和wursta都知道的一些秘密信息的常识来保护wur帧。作为示例,在每个pcr会话期间,ap在加密的wur动作帧1210内向wursta提供随机生成的秘密数r_sta,该加密的wur动作帧1210可以除了mic元素携带随机数r_sta以代替mic之外类似于图10b中的帧1050。wursta将随机数在存储单元中保存为r_sta'。随后,当ap需要唤醒wursta时,ap用生成的mic替换wurppdu1220的地址字段,将安全比特设置为1,并且在wurppdu内携带的整个wur帧上计算fcs并发送安全wurppdu1220。接收wursta将地址字段244与保存的r_sta'进行比较,并且如果存在匹配,则wursta隐式地将自身识别为wur帧的接收单元,并得出该帧是由其ap发送的可信帧的结论。wursta还通过检查地址字段244中携带的随机数在过去从未被使用来检查重放攻击,以及如果为真则唤醒其pcr。ap再次使用加密的wur动作帧向sta提供之前从未被使用的新随机数,以用于下一个安全wur帧,依此类推。

<第五实施例>

在第一实施例中,提到了对于与ap协商安全wur模式的每个wursta,ap可以提供随机数以用作生成用于不携带可用作密码计算的盐的唯一编号的wur帧类型的密码盐的基数。ap和wursta都通过递增其各自的基数来隐式生成要用于下一个wur帧的密码盐。作为替代,为了减少缺乏在ap和wursta之间密码盐的同步的风险,ap向wursta提供用作密码盐的编号的范围。使用wur动作帧1350,ap可以提供密码盐基1366和密码盐范围指数1368,以用于如帧类型字段1364所指示的特定wur帧类型。作为示例,如果s_sn表示密码盐基1366的值,并且num_sn表示密码盐范围指数1368的值,则ap可以指示在范围[s_sn,s_sn+2num_sn-1]内的数字。一经接收到密码盐范围,使用指定的密码算法,wursta可以使用其秘密的成对密钥、其bss的bssid和作为ra的其wid。作为输入来预先计算范围内每种密码盐的mic值并将mic值保存在存储单元中,以备将来在wur模式下使用。图14中的表1400显示了由wursta在s_sn=100和num_sn=8的情况下计算的mic值的示例表。此处的mic值已被截断为16比特。当ap需要唤醒wursta时,ap使用其秘密的成对密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid和接收方wursta的接收单元地址(ra),并从系列中的第一个csn作为密码盐开始,作为密码算法的输入以计算mic。ap用生成的mic1516替换图15中的安全wur帧1500的ta字段,将安全比特设置为1,并在整个wur帧1500上计算fcs,并发送携带wur帧1500的安全wurppdu。

随后,当wursta接收到安全wur帧1500时,首先将ra字段1514与其自己的wurid进行比较,并且如果存在匹配,则继续比较wur帧类型,并且如果在其存储单元中存在该帧类型的mic表,则sta从其最后使用的mic值开始,按升序将mic字段1516与存储的mic值进行比较,并且如果存在匹配,则wursta隐式地将自身识别为wur帧的接收单元,并得出以下结论:该帧是由其ap发送的可信帧,并继续唤醒其pcr。一旦ap用尽了指定范围内的所有密码盐,它将为wursta提供新范围的密码盐,以用于验证后续的安全wur帧。

安全多播wur帧的过程非常相似。ap向wursta提供密码盐的单独的范围,以验证安全多播wur帧。一经接收到密码盐范围,使用指定的密码算法,wursta可以使用其秘密组密钥、其bss的bssid和作为ra的它所属于的多播组的组id,作为输入来预先计算范围内的每个密码盐的mic值,并将mic值保存在存储单元中,以备将来在wur模式期间使用。当ap需要唤醒一组wursta时,ap使用其组密钥(例如组密钥gtk、igtk或w-gtk的临时密钥(tk)部分)、bssid和接收方多播组的组id,并以系列中的第一个csn作为密码盐开始,作为密码算法的输入,来计算mic。ap用生成的mic1616替换图16中的安全多播wur帧1600的ta字段,将安全比特设置为1,并在整个wur帧1600上计算fcs,并发送携带多播wur帧1600的安全wurppdu。

接收到安全多播wur帧1600的每个wursta都将wur帧类型进行比较,并且如果在其存储单元中存在针对该帧类型的mic表,则sta从最后使用的mic值开始按升序将mic字段1616与所存储的mic值进行比较,并且如果存在匹配,则wursta隐式地将其自身识别为多播wur帧1600的接收单元之一,并且还得出以下结论:该帧是由其ap发送的可信帧,并继续唤醒其pcr。一旦ap用尽了指定范围内的所有密码盐,它将为wursta组提供新范围的密码盐,以用于验证后续的安全多播wur帧。

<第六实施例>

最近的ieee802.11ba提案、ieee802.111-17/1004r01提出了通过向wur帧添加消息完整性检查(mic)字段来创建安全wur帧的类似思想。通常将用作ap的发送单元地址(ta)的bssid字段以及由ap和sta维护的定时同步功能(tsf)用作mic计算的输入。使用秘密组密钥(例如,igtk)在整个wur帧上计算mic,并且将fcs字段替换为计算出的mic字段。传输期间wur帧中的任何错误都将导致在接收单元处mic验证失败,从而执行fcs字段的功能。但是该提案具有如下所述的一些缺点:

a)使用tsf作为mic计算的输入将需要在安全wur帧的发送单元(ap)和接收单元(wursta)处进行一些预处理,如本公开中以下所详述的那样。

b)组密钥旨在用于广播/多播传输,并且对于所有关联的sta都可以是已知的。igtk/gtk或任何其他组密钥容易受到“内部攻击”,即受到与相同ap关联的设备的攻击,这是由于该设备知道igtk/gtk。由于“内部攻击者”知道igtk,因此它可以容易地创建具有有效mic的伪造的安全wurppdu。

图17显示了由在基础结构模式下操作的所有ieee802.11设备维护的tsf1700的格式。tsf1700是64比特长的计数单元,其时间分辨率为1微秒,并且帮助bss中的所有802.11设备与ap维持时间同步。ap使用信标帧的时间戳字段周期性地广播其tsf的当前值。从与sta关联的ap接收信标帧的每个sta在调整接收单元处理延迟之后,用接收的时间戳替换其本地tsf。为了便于参考,从比特0开始,tsf1700可以分为八个八比特组,从tsf-0到tsf-7,如图17所示。

图18示出了根据第六实施例的安全wur帧1800的帧格式。wur帧1800的mac报头1810包括帧控制字段1812、接收单元地址(ra)字段1814和部分tsf(p-tsf)字段1816。帧控制字段遵循与图8中的帧控制字段812相同的格式。为了区分安全wur帧和不安全wur帧,ap将帧控制字段812内的安全比特设置为1。安全比特向接收的wursta警告wur帧内出现mic字段。ra字段1814可以被设置为接收wursta的分配的wurid(wid),例如其aid12。p-tsf字段1816用于wur模式期间的时间同步,并且ap可以选择发送图17中的tsf1700的tsf-1八比特组作为p-tsf。帧主体字段1820是可选的,并且可以仅在某些帧类型中出现。为了创建安全wur帧,ap使用预先协商的密码函数并以tsf作为密码盐在整个wur帧上计算mic。ap的ta(bssid)也用作mic计算的附加输入。帧的fcs字段由计算出的mic字段1830替换,该mic字段用作认证标签并且同时还用于检测wur帧中的任何错误。

然而,由于如下所述的同步损耗问题,直接将本地tsf用于mic计算是不可行的。使用图17中的tsf1700的tsf-1八比特组作为p-tsf将提供具有256μs的分辨率和65536μs的翻转周期的部分时间戳。要用作p-tsf的tsf比特的选择可以取决于wur部署场景,并且可能已在初始wur协商阶段在ap和wursta之间进行了协商。如果将tsf-1八比特组用作p-tsf,则不能期望ap和sta的tsf-0字段会同步。因此,小于p-tsf的tsf比特不应在mic计算中使用。另外,以wur模式运行的wursta可能不会非常有规律地接收802.11信标帧,因此,由wursta维护的本地tsf可能不会与ap的tsf紧密同步。即使wursta使用广播wur帧(例如wur信标)中p-tsf字段中携带的部分时间戳来保持其本地tsf的对应比特同步,但是由于可用于p-tsf字段的比特数有限,部分时间戳还是会定期翻转并且需要递增tsf的更高八比特组。由于硬件限制,预计ap的时钟以及wursta的时钟都将具有一定的时钟漂移,该时钟漂移表示为±ppm(百万分之)。通常,与ap相比较,可以使用便宜得多的硬件组件来实现wursta,并且预期wursta的时钟漂移更大。图19中的表1900说明了当ap选择发送图17中的tsf1700的tsf-1八比特组作为p-tsf时,由于时钟漂移错误而可能发生的定时同步问题的示例。该示例假定ap和wursta之间的总时钟漂移为±200ppm,即ap的时钟和wursta的时钟每百万单位相差200个单位。表1900的上半部分示出了sta的时钟比ap的时钟运行得更快的情况,而下半部分示出了相反的情况。为简洁起见,仅显示了tsf的tsf-1八比特组(8:15比特)和tsf-2八比特组(16:23比特)。假设在从接收到最后一个wur信标起的10秒钟时段的末尾处,wur信标每10秒发送一次,那么在这段时间内,wursta的时钟将会向前漂移近2000μs,并且其tsf-1:tsf-2可以翻转到0:201,而ap的tsf-1:tsf-2仍为249:200,如行1910所示。ap的tsf-2和wursta的tsf-2只有在附加的七个单位之后在行1919处才重新同步到201。同样,在相反的情况下,wursta的时钟在一个wur信标间隔内将向后漂移接近2000μs,并且其tsf-1:tsf-2可能仍为248:200,而ap的tsf-1:tsf-2已经翻转至0:201,如行1930所示。ap的tsf-2和wursta的tsf-2只有在附加的七个单位之后在行1940处才重新同步到201。这表明,如果wursta错过了一个wur信标,则将存在近4000μs的“tsf失准窗口”,在此期间ap的tsf和sta的tsf失准。如果sta错过了更多wur信标,则“tsf失准窗口”只会更大。通常,可以跳过但仍允许wursta恢复tsf同步的wur信标的最大数目n,由下式确定:

错过n个wur信标的最大漂移≦(翻转周期)/2

翻转周期由用于p-tsf字段的比特数及其分辨率来确定,并计算为2l*r,其中l是用于p-tsf的比特数,而r是p-tsf的分辨率。由于wursta可能需要使用与ap使用的tsf值完全相同的值才能正确验证mic,因此ap和wursta的两者需要预处理各自的本地tsf,以在将tsf用作mic计算的输入之前考虑时钟漂移的影响。通常,可以采取以下步骤来纠正“tsf失准窗口”期间的tsf失准:

如果接收到的wur帧中的p-tsf比sta的对应tsf比特多了多于(翻转周期)/2个单位,则sta可以假定sta的时钟更快以及sta处发生了翻转,并且可以通过递减1来调整其较高的tsf八比特组。

类似地,如果接收到的wur帧中的p-tsf比sta的对应tsf比特少了(翻转周期)/2个单位或更少,则sta可以假设sta的时钟更慢以及在ap处发生了翻转,并且可以通过将其增加一来调整其较高的tsf八比特组。对于我们的示例,使用图17中的tsf1700的tsf-1八比特组作为p-tsf,可以将翻转周期计算为28*256μs=65536μs。因此,可以将可能错过的wur信标的最大数目计算为16,这将在256μs的p-tsf分辨率下转换为32000μs=125个单位的最大“tsf失准窗口”。可以采取以下步骤来纠正“tsf失准窗口”期间的tsf失准:

如果接收到的wur帧中的p-tsf比sta的tsf-1八比特组多了125个单位以上,则sta可以假定sta的时钟更快以及在sta处发生了翻转,并且可以通过递减一来调整其较高的tsf八比特组。

同样,如果接收到的wur帧中的p-tsf比sta的tsf-1八比特组少了125个单位以上,则sta可以认为sta的时钟更慢以及在ap处发生了翻转,并且可以通过将其递增1来调整其较高的tsf八比特组。

参照图20,示意性地示出了上述tsf的预处理。2010表示由ap(tsf)或wursta(tsf')维护的本地tsf。2020表示经过预处理后的本地tsf(tsf*)的副本。当ap将tsf-1用作p-tsf字段时,在ap处,将tsf-0比特全部掩蔽为零来形成tsf*,并将tsf-1八比特组复制到图18中的p-tsf字段1816中。然后将tsf*用作mic计算的密码盐,并将wur帧1800的fcs字段替换为计算出的mic1830。在接收wursta处,由本地tsf'构成副本tsf*,并且将tsf-0八比特组2022全部掩蔽为零。接下来,将tsf-1八比特组2024替换为p-tsf字段1816。

如果图18中的wur帧1800是单播帧,则ap使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid以及预处理的tsf*,作为密码算法的输入,以在除fcs字段之外的整个wur帧(即,mac报头1810以及如果存在的话,可选的帧主体1820)上计算mic。通常,标准密码函数的输出可能太长而无法直接在wurppdu中使用,并且可能需要被截断以适合wur帧的有限大小。

例如,如果ap使用密码哈希函数sha-256生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(sha-256(tk||wur帧*||bssid||tsf*))

tk=成对密钥ptk或w-ptk的临时密钥(tk)部分,且其长度取决于在4次握手期间选择的密码套件,例如对于ccmp-128为128比特,等等。

wur帧*=mac报头1810以及可选的帧主体1820

bssid=bss的基本服务集标识符(bssid)=ap的mac地址

truncate-l=将sha-256函数的输出(128位)截断至l比特的函数。

l=fcs字段252的比特数

x||y=x和y的级联

ap用生成的mic1830替换wur帧1800的fcs字段,并发送安全wur帧1800。

在接收wursta处,当它接收到安全wur帧1800时,并且在确定该安全wur帧是单播wur帧之后,确认ra字段1814与sta的wid匹配。如果ra匹配,则sta在除fcs字段之外的整个wur帧(即,mac报头1810以及如果存在的话,可选的帧主体1820)上使用其sta的密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、sta的bssid'以及经过预处理的tsf*,作为密码算法的输入来获得mic’。例如,如果ap在初始wur模式协商期间已指示sha-256用作用于成对通信的密码套件,则sta处的密码过程可以总结为:

mic'=truncate-l(sha-256(tk'||wur帧*||bssid'||tsf*))

如果所计算的mic'与由wur帧1800携带的安全wur帧的mic字段匹配,则wursta隐式地将其自身识别为wur帧的接收单元,并且还得出以下结论:该帧是由其ap发送的可信帧,并继续唤醒其pcr。

参照图21,示出了通过重用802.11ccmp密码封装来生成安全wur帧的替代方法2100。即使可以使用简单的密码哈希函数来产生用于wur帧认证的mic,ap也可以选择重用用于加密pcr传输的ieee802.11ccmp密码封装以生成mic字段1830。尽管在pcr期间使用ieee802.11ccmp密码封装来加密数据帧和管理帧,但它还会生成mic以认证mac报头的内容。即使不需要对wur帧进行加密,也可以重用ieee802.11ccmp密码封装过程来生成用于认证wur帧的mic。ap可以通过在图5中的wur安全元素520中指定将图7中的表700中的ccmp-128用作密码套件,来指定在wur模式协商期间将使用ccmp来生成mic。使用以下步骤来使用ccmp生成安全wur帧:

a)通过创建副本tsf*并将tsf*的n个最低有效比特(lsb)掩蔽为零,来对tsf2122进行了如前所述的预处理,其中n是p-tsf的lsb的比特索引。例如,如果将tsf-1用作p-tsf,则n=8,且tsf的8个lsb,即比特0到比特7被掩蔽为零。

b)通过在图8中的帧控制字段812中设置安全比特814,将不安全wur帧2110标记为安全wur帧,并使用整个wur帧(如果存在的话,包括图18中的可选帧主体1820)作为附加认证数据(aad)2116。

c)从bssid2120和tsf*2114构建ccmnonce块2118。

d)将aad2116、nonce块2118和ap的临时密钥(tk)2124馈送给密码电路2130,密码电路2130在这种情况下是获得mic2132的ccm加密模块。

e)然后将生成的mic2132截断以适合图2中的fcs字段252。

f)最后,通过将mic2132附加到mac报头和帧主体2112而形成安全wur帧2150。

图22说明了使用ccmp密码函数在接收wursta处认证安全wur帧的过程。wursta使用以下步骤来认证安全wur帧:

a)对安全wur帧2210进行解析以将mac报头和帧主体2212、p-tsf2214和mic字段2216分离。

b)mac报头和帧主体2212用作附加认证数据(aad)2230。

c)本地tsf'2220如前所述通过创建副本tsf*并将tsf*的n个最低有效比特(lsb)掩蔽为零来被预处理,其中n为p-tsf的lsb的比特索引。例如,如果将tsf-1用作p-tsf,则n=8,且tsf的8个lsb,即比特0到比特7被掩蔽为零。用p-tsf2214替换与p-tsf字段相对应的比特,并针对如先前所述的时钟漂移(tsf失准)调整tsf*的较高比特,以形成预处理的tsf*2232。

d)从bssid2222和tsf*2232构建ccmnonce块2234。

e)aad2230、nonce块2234和sta的临时密钥(tk)2224被馈送到密码电路2250,密码电路2250在这种情况下为获取mic的ccm加密模块。

f)所生成的mic被截断至图2中的fcs字段252的长度以形成mic'2252。将mic'与来自安全wur帧2210的mic2216进行比较,并且如果两者相同,则mic验证通过并且wur帧被认为是可信的。mic验证还可以确保wur帧没有错误。

g)由于在mic的计算中使用了tsf,因此mic验证也充当隐式重放检查。但是,作为一种附加的重放保护措施,本地tsf'和已处理的tsf*可以进行进一步的重放检查,例如,通过确保tsf'和tsf*之间的差异小于p-tsf翻转周期。如果通过了重放检查2244,则将mac报头和帧主体2212作为可信的不安全wur帧2260用于进行进一步处理。此时,在考虑了密码验证过程中可能存在的延迟之后,还可以使用处理后的tsf*更新本地tsf'。

参照图23,示出了用于安全多播帧2300的一个选项。如前所述,多播wur帧寻址到一组wursta,因此必须使用多播组的所有sta已知的组密钥来创建安全多播帧。通常在一个基础结构bss中,一次只生成一个gtk和一个igtk,并且已与ap协商安全传输的bss中的所有sta都会从ap接收到组密钥。但是,使用组密钥会导致易受“内部攻击”,即与相同ap关联的另一设备的攻击,这是由于另一设备知道igtk/gtk。由于“内部攻击者”知道gtk/igtk,因此它可以容易地创建具有有效mic的伪造安全wurppdu。为了降低所谓的“内部攻击”的风险,每次形成新的多播组时,ap都会派生一组与该特定多播组和与分配给多播组的组id关联的新的组密钥(gtk或igtk)集。wur安全元素520可以用于将组密钥传送到多播组的每个成员。在这种情况下,组id字段568被设置为分配给多播组的组id,并且加密的组密钥被携带在包装密钥字段580内。ap以与创建安全单播wur帧相同的方式创建安全多播wur帧2300,除了将ra字段2314设置为多播组的组id并且使用分配给特定多播组的组密钥而不是使用用于广播帧的公共组密钥来计算mic字段2330。在接收wursta处,如果安全多播wur帧的ra字段2314与该sta所属的多播组的组id匹配,则sta使用与该多播组关联的组密钥来将mic进行比较,并对多播wur帧进行认证。仅当mic验证通过时,才处理多播wur帧,并且sta可以继续唤醒其pcr。对不同的多播组使用不同的组密钥将“内部攻击”的范围限制为特定的多播组,因为属于一个多播组的攻击者不拥有另一个多播组的组密钥,因此将无法启动“内部攻击”。

参照图24,示出了用于安全多播帧2400的替代选项。如果未为多播组分配组id,而是通过包括组成员sta的ra的寻呼列表(pagedlist)来识别多播wur帧的目标接收方,或者多播帧仅寻址到多播组的少数几个sta,则此选项适用。如果分配的话,则可以将多播帧的ra字段设置为多播组id。否则,可以将其设置为多播组的成员sta之一的ra。在这种情况下,wur帧携带帧主体,并且这使用图8中的长度字段815中的非零值来指示。帧主体携带由该帧寻址的其余多播sta的ra的列表。对于这样的多播帧格式,可以使用以下方法在ap处使用两层认证创建安全多播wur帧:

a)首先,通过使用ap和每个sta之间协商的成对密钥ptk或w-ptk的临时密钥(tk)部分为所寻址的sta的每个ra创建哈希值。例如,如果ra1表示sta的ra,如前所述的tsf*表示处理后的tsf,并且假设sha-256被用作哈希函数,则在ap处可以创建哈希ra为:

ra=truncate-l(sha-256(tk||ra1||bssid||tsf*))

l=图2中地址字段244的比特数

b)不安全多播wur帧的ra字段中的每个都替换为对应的计算出的哈希值2414、2422...2424,并将帧控制字段2412中的安全比特设置为1。

c)第二,在除了fcs字段之外的整个wur帧2400上使用组密钥计算mic,这类似于前面所述的过程,且fcs字段被替换为生成的mic2430。

在接收wursta处,如果sta属于多播组,则在除了fcs字段之外的整个wur帧2400上使用组密钥来计算mic',这类似于前面所述的过程。如果计算的mic'与mic字段2430匹配,则sta通过使用在ap和sta之间协商的成对密钥ptk或w-ptk的临时密钥(tk')部分来创建其wid的哈希值。例如,如果ra1表示sta的wid,如前所述的tsf*表示处理后的tsf,并且假设sha-256被用作哈希函数,则在sta处可以创建哈希ra为:

ra=truncate-l(sha-256(tk'||ra1||bssid'||tsf*))

l=图2中地址字段244的比特数

sta接下来将多播wur帧2400中的每个ra字段与哈希ra进行比较,且如果存在匹配,则wursta隐式地将自己识别为多播wur帧的接收单元之一,并继续进行进一步处理帧,例如唤醒其pcr。

参照图25,示出了不安全wur帧2500的帧格式。尽管在结构上类似于安全wur帧,但不安全wur帧无需在td控制字段2516中携带p-tsf。同样,fcs字段用于携带循环冗余校验(crc)2530,其在整个wur帧上计算,以便检测传输期间的错误。由于wur帧相对较短,因此8到12比特的crc就足够了,因此,不安全wur帧的fcs字段可以比携带mic的安全wur帧中的fcs字段短。例如,假设12比特的p-tsf字段、12比特长的crc字段和16比特长的mic,则不安全wur帧可以比安全wur帧短16比特。在安全性不是大问题的闭门应用中,由于不安全wur帧的长度较短,因此针对安全和不安全wur帧使用不同的大小可以有助于wursta节省更多电力。

<第七实施例>

代替使用时间戳作为重放保护,还可以使用单调递增的序列编号或分组编号来实现重放保护。图26显示了可用于为wurppdu提供重放保护的48比特长的分组编号(pn)。为了便于参考,pn可以分为6个八比特组,并称为pn-0、pn-1、pn-2、pn-3、pn-4和pn-5,其中pn-0是最低的八比特组,且pn-5是最高的八比特组。pn具有48比特,足以为wurppdu提供唯一编号,而不必担心pn编号空间的翻转。ap为它协商传输安全wurppdu的每个密钥维护唯一的pn,并确保对于给定的密钥,在wurppdu传输期间pn永远不会重复。如果协商排他地用于wurppdu的单独密钥,则为wurppdu维护的pn与pcr期间使用的pn不同。由于wurppdu可用于携带分组编号的比特数有限,因此wurppdu仅携带pn的一部分,而pn的其余比特在本地维护。pn的由wurppdu携带的部分可以称为部分pn(p-pn)。例如,在wurppdu中仅可以携带pn-0八比特组,而其余的pn八比特组不被发送。已经协商了安全wurppdu的每个wursta都维护本地pn,并且每次接收到有效的安全wurppdu时,wursta就会用wurppdu中接收到的p-pn替换pn的对应比特。如果协商了排他地用于wurppdu的单独密钥,则为wurppdu维护的pn与pcr期间使用的pn不同。如果接收到的p-pn的值小于pn的对应比特的值,则将pn的较高比特递增一,以考虑p-pn比特的翻转。

图27示出了根据第七实施例的安全wur帧2700的帧格式。wur帧2700的mac报头2710包括帧控制字段2712、接收单元地址(ra)字段2714和部分pn(p-pn)字段2716。帧控制字段遵循与图8中的帧控制字段812相同的格式。为了区分安全wur帧和不安全wur帧,ap将帧控制字段2712内的安全比特设置为1。安全比特向接收wursta警告wur帧内存在mic字段。ra字段2714可以被设置为接收wursta的分配的wurid(wid),例如其aid12。p-pn字段1816用作部分分组编号,并且ap可以选择发送图26中的pn2600的pn-0八比特组作为p-pn。帧主体字段2720是可选的,并且可以仅在某些帧类型中出现。为了创建安全wur帧,ap使用预先协商的密码函数并以与用于mic计算的密钥相关联的pn作为密码盐在整个wur帧上计算mic。ap的ta(bssid)也用作mic计算的附加输入。帧的fcs字段被计算出的mic字段2730替换,该mic字段用作认证标签,并且同时还用于检测wur帧中的任何错误。

如果图27中的wur帧2700是单播帧,则ap使用其密钥(例如成对密钥ptk或w-ptk的临时密钥(tk)部分)、bssid以及与成对密钥相关联的pn,作为密码算法的输入,以在除fcs字段以外的整个wur帧(即,mac报头2710以及如果存在的话,可选的帧主体2720)上计算mic。

例如,如果ap使用密码哈希函数sha-256生成mic,则ap处的密码过程可以总结为:

mic=truncate-l(sha-256(tk||wur帧*||bssid||pn))

tk=成对密钥ptk或w-ptk的临时密钥(tk)部分,且其长度取决于在4次握手期间选择的密码套件,例如对于ccmp-128为128比特,等等。

wur帧*=mac报头1810以及可选的帧主体1820

bssid=bss的基本服务集标识符(bssid)=ap的mac地址

truncate-l=将sha-256函数的输出(128比特)截断至l比特的函数。

l=fcs字段252的比特数

x||y=x和y的级联

ap用生成的mic2730替换wur帧2700的fcs字段,并发送安全wur帧2700。

在接收wursta处,当它接收到安全wur帧2700时,并且在确定它是单播wur帧之后,确认ra字段2714与sta的wid匹配。如果ra匹配,则sta在除fcs字段之外的整个wur帧(即,mac报头2710以及如果存在的话,可选的帧主体2720)上使用sta的密钥(例如成对密钥ptk或w-ptk的临时密钥(tk')部分)、sta的bssid'以及本地pn'(在用接收到的p-pn2716更新后),作为密码算法的输入,以获得mic'。例如,如果ap在初始wur模式协商期间已指示sha-256用作用于成对通信的密码套件,则sta处的密码过程可以总结为:

mic'=truncate-l(sha-256(tk'||wur帧*||bssid'||pn'))

如果计算出的mic'与wur帧2700携带的安全wur帧的mic字段匹配,则wursta隐式地将自身识别为wur帧的接收单元,并且还得出以下结论:该帧是由其ap发送的可信帧,并继续唤醒其pcr。

即使wursta尝试使其本地pn与ap的pn保持同步,有时两者也可能不同步。这将导致wursta处的mic验证失败,并且在sta处会出现mic损坏的wurppdu。当wursta继续接收具有与其wid匹配的ra字段的wurppdu但mic验证仍然失败时,它可能会检测到pn同步问题。为了从这种pn同步问题中恢复,wursta可以将图28中的wur动作帧2800发送到ap以请求pn更新。wur动作帧2800与图5中的wur动作帧500加上附加的pn更新元素2810相同。wursta将pn更新字段2820中的请求/响应比特2822设置为请求,来请求pn更新。sta还设置单播比特2822、多播比特2824或广播比特2826,以指示其在请求哪个pn更新。在接收到用于pn更新的请求时,ap发送其中pn更新字段2820中的请求/响应比特2822被设置为响应并且pn字段2824携带由ap针对对应的密钥(单播、多播或广播)维护的pn的值的wur动作帧2800。在接收到pn更新元素时,wursta用pn字段2828替换其本地pn。

<第八实施例>

参考图29,提出了一种用于不携带可用作密码计算的盐的唯一编号的wur帧的安全传输的混合解决方案。可以将安全wur帧2900创建为两步过程。第一步,将mac报头2910的ra字段替换为密码哈希值2914。可以通过使用ap和wursta都已知但未在wur帧2900中发送的随机密码盐在ra字段上运行密码函数来计算哈希值。如在第一、第三或第五实施例中所公开的,可以在ap和wursta之间共享随机密码盐。第二步,如在第六和第七实施例中所公开的,在除了fcs字段之外的整个wur帧上计算mic字段2930。然后将fcs字段替换为mic字段2930。在接收wursta处,首先验证mic字段2930有效,如果是,则将哈希的ra字段2914与本地计算的哈希值进行比较。如果两个哈希值相同,则sta将自身识别为wur帧2900的接收方,并且可以继续唤醒其pcr。只要使用唯一的密码盐来计算哈希的ra字段2914,就可以确保mic字段2930将对于每个wur帧都是不同的,因此可以挫败重放攻击。

<接入点的配置>

图30是实现本公开中描述的安全传输方案的示例ap的pcr3000的框图。ap可以是图1中的ap110。pcr3000连接到天线3002,并且用于802.11信号的发送和接收以及唤醒信号的发送。pcr3000由rf/模拟前端3010、phy处理单元3020和mac处理单元3030构成,mac处理单元3030连接到密码电路3040。

rf/模拟前端3010负责向/从天线3002传输模拟信号,并且可以包括诸如自动增益控制(agc)、低通滤波器(lpf)、模数转换器(adc)等等的子组件。

phy处理单元3020负责phy层信号的处理,并且还包括ofdm调制单元/解调单元3022。ofdm调制单元/解调单元3022负责发送信号的ofdm调制或接收到的ofdm信号的解调。在发送侧,除了将ofdm调制应用于802.11ppdu之外,ofdm调制单元/解调单元3022还用于通过填充选定的ofdm子载波来生成wur信号(例如ook)。

mac处理单元3030负责各种与mac相关的处理,例如重传、分段、聚合等。另外,mac处理单元3030还包括wur净荷生成单元3032,其负责生成在由ap发送的wur分组中携带的净荷的内容。

密码电路3040用于密码计算以创建安全wurppdu。ap使用密码电路3040来生成要在安全wurppdu中使用的消息完整性码(mic)。密码电路3040还可用于在pcr模式期间对受保护的802.11帧进行加密和解密。

图31是能够发送安全wurppdu的示例ap3100的更详细的框图,其可以是图1中的ap110。ap3100包括耦合到存储单元3120的中央处理单元(cpu)3130、次级存储装置3140、一个或多个无线通信接口3150以及其他有线通信接口3170。次级存储装置3140可以是用于永久存储相关指令代码、数据等的非易失性计算机可读存储介质。

在启动时,cpu3130可以将指令代码以及相关数据复制到易失性存储单元3120以用于执行。指令代码可以是ap3100的操作所需的操作系统、用户应用程序、设备驱动程序、执行代码等。指令代码的大小以及因此次级存储装置3140和存储单元3120两者的存储容量可以实质上大于图33中的sta3300的存储容量。

ap3100还可以包括电源3110,该电源在大多数情况下可以是输电线,但是在某些情况下也可以是某种高容量电池,例如汽车电池。有线通信接口3170可以是以太网接口、或电力线接口、或电话线接口等。

无线通信接口3150可以包括用于蜂窝通信的接口,或者用于诸如zigbee的短距离通信协议的接口,或者它可以是wlan接口。无线接口3150还可以包括mac模块3152和phy模块3160。ap的mac模块3152可以实质上比图33中的sta3300的mac模块更复杂,并且可以包括许多子模块。在其他子模块中,mac模块3152可以包括wur净荷生成单元3158、pcr净荷生成单元3154和分组调度单元3156。phy模块3160负责mac模块数据转换到发送/接收信号或者从发送/接收信号转换mac模块数据,并且还包括ofdm调制单元/解调单元3162。密码电路3164用于密码计算以创建安全wurppdu,并且还可以用于在pcr模式期间对受保护的802.11帧进行加密和解密。无线接口也可以经由phy模块耦合到一个或多个天线3102,这些天线3102负责在无线介质上实际发送/接收无线通信信号,或从无线介质实际发送/接收无线通信信号。

根据本公开的ap可以包括为清楚起见在图30和图31中未示出的许多其他组件。仅示出与本公开最相关的那些组件。

<sta的配置>

图32示出了wursta3200,其能够接收安全wurppdu并且配备有两个单独的无线电:用于发送和接收802.11ofdm信号的pcr3220以及用于接收wur信号的wur3210。

wur3210还包括几个子组件,例如负责从天线3202接收模拟无线电信号的rf/模拟前端3212,负责检测和解码唤醒信号的前同步码部分的wur前同步码检测模块3214、以及负责解码和处理唤醒信号的净荷部分的wur分组解码/处理模块3216。

pcr3220包括rf/模拟前端3222、phy处理单元3230、和mac处理单元3240。rf/模拟前端3222负责向/从天线3202传输模拟信号,并且可以包括诸如自动增益控制(agc)、低通滤波器(lpf)、模数转换器(adc)等等的子组件。phy处理单元3230负责phy层信号的处理,并且还包括ofdm调制单元/解调单元3232,其负责对发送ofdm信号的调制或接收到的ofdm信号的解调。

密码电路3230用于密码计算以验证安全wurppdu。sta使用密码电路3230来生成消息完整性码(mic),以用于与安全wurppdu中携带的mic进行比较。密码电路3230还可用于在pcr模式期间对受保护的802.11帧进行加密和解密。

图33是示例sta3300的详细框图,该示例sta3300能够如本公开中所述接收安全wurppdu,并且可以是图1中的sta130或sta140。sta3300包括耦合到存储单元3320的中央处理单元(cpu)3330、次级存储装置3340、一个或多个pcr接口3350以及wur接口3360。pcr接口3350和wur接口3360的两者连接到同一无线天线3302。次级存储装置3340可以是用于永久存储相关指令代码、数据等的非易失性计算机可读存储介质。

在启动时,cpu3330可以将指令代码以及相关数据复制到易失性存储单元3320以用于执行。指令代码可以是sta3300的操作所需的操作系统、用户应用程序、设备驱动程序、执行代码等。sta3300还可以包括电源3310,例如锂离子电池或纽扣电池等,或者也可以是电源供电。pcr接口3350可以包括用于蜂窝通信的接口,或者用于诸如zigbee的短距离通信协议的接口,或者它可以是wlan接口。

pcr接口3350包括mac模块3352和phy模块3354,phy模块3354还包括ofdm调制单元/解调单元3358。

wur接口3360包括几个子组件,诸如负责从天线3302接收模拟无线电信号的rf/模拟前端3362、负责检测和解码唤醒信号的前同步码部分的wur前同步码检测模块3364、负责对可能涉及安全wur帧的验证的wur帧进行解码和处理的wur分组解码/处理模块3366。wur接口3360还可以存储用于验证安全wurppdu的密码计算的专用密钥3370。wur接口3360还可以维护用于检测重放攻击的独立的wur重放计数单元3372。在任何时间点,预期只有一个无线接口正在运行,pcr接口3350或wur接口3360。

密码电路3380用于用来验证安全wurppdu的密码计算,并且还可以用于在pcr模式期间对受保护的802.11帧进行加密和解密。

根据本公开的sta可以包括为了清楚起见在图32或图33中未示出的许多其他组件。仅示出与本公开最相关的那些组件。

在前述实施例中,本公开通过示例的方式配置有硬件,但是也可以由软件与硬件协作来提供。

另外,在实施例的描述中使用的功能块通常被实现为作为集成电路的lsi设备。功能块可以形成为单独的芯片,或者功能块的一部分或全部可以集成到单个芯片中。这里使用术语“lsi”,但是根据集成程度,也可以使用术语“ic”、“系统lsi”、“超级lsi”、或“超lsi”。

另外,电路集成不限于lsi,并且可以通过lsi以外的专用电路或通用处理单元来实现。在制造lsi之后,可以使用可编程的现场可编程门阵列(fpga)或允许重新配置lsi中电路单元的连接和设置的可重配置处理单元。

如果由于半导体技术或源自该技术的其他技术的进步而出现了替换lsi的电路集成技术,则可以使用该技术来集成功能块。另一种可能性是生物技术等的应用。

工业适用性

本公开可以被应用于无线装置以从状态失配中恢复,其中在该状态失配中,活动无线电的接收单元的状态不同于发送单元的记录。

附图标记列表

110、2200ap

120、130、140、3300wursta

112、122、132、142、3000、3150、3220、3350pcr

124、134、144、3210、3360wurx

3002、3102、3202、3302天线

3010、3222、3362rf/模拟前端

3020、3160、3224、3354phy处理电路

3022、3162、3228、3358ofdm调制单元/解调单元

3040、3164、3230、3380密码电路

3032、3158wur净荷生成单元

3030、3152、3226、3352mac处理电路

3154pcr净荷生成单元

3156分组调度单元

3110、3310电源

3120、3320存储单元

3130、3330cpu

3140、3340次级存储装置

3150无线i/f

3170有线通信i/f

3214、3364wur前同步码检测

3216、3366wur分组解码/处理模块

3370密钥

3372wur重放计数单元

缩略语

ap:接入点

crc:循环冗余码

fcs:帧校验序列

gmk:组主密钥

gtk:组临时密钥

igtk:完整性组临时密钥

mac:介质访问控制

mic:消息完整性码

ook:开关键控

obss:重叠基本服务集

ofdm:正交频分复用

pcr:主连接无线电

phy:物理层

pmk:成对主密钥

pn:分组编号

ppn:部分分组编号

ptk:成对临时密钥

ptsf:部分定时同步功能(tsf)

ra:接收单元地址

rsna:稳健的安全网络关联

sta:站

ta:发送单元地址

tsf:定时同步功能

tk:临时密钥

wup:唤醒分组

wur:唤醒无线电

wurx:唤醒接收单元

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1