AUTHENTICATION PROTECTION MECHANISM

Certain aspects relate to an apparatus includes an interface configured to obtain a first frame including a first information element (IE) indicating a list of encoding algorithms and a processing system configured to generate a second frame including a second IE indicating at least one of an encoding algorithm from the list or the list. The interface is further configured to output the second frame for transmission to a device and obtain a first random number from the device and the processing system is further configured to generate a code based on the first random number, a second random number and a master key and generate a third frame comprising the second IE, the second random number and an integrity protected IE generated based on the second IE and the code. Furthermore, the interface is configured to output the third frame for transmission to the device.

FIELD

The present disclosure relates generally to communications networks, and more particularly, to methods and apparatuses for protecting authentication between devices against potential attacks that would compromise data being exchanged during authentication.

BACKGROUND

Various wireless technologies are being deployed for wireless communications. One of such wireless technologies is Wi-Fi, which is based on the IEEE 802.11 series of standards for specifying how a wireless client such as a user terminal can connect to the Internet via an access point. Before the user terminal can connect to the Internet, authentication is needed. To do so, the access point and user terminal exchange messages to independently prove to each other that they know the pre-shared key or pairwise master key, without disclosing such key. In addition, the access point and the user terminal need to agree which encoding algorithm will be used by both for securely exchanging data between them. Different types of encoding algorithms such as Advanced Encryption Standard (AES), Data Encryption Standard (DES) and Rivest cipher 6 (RC6) can be used. The more secured the encoding algorithm is, the less likely it would be for data being exchanged to be compromised by attacks.

BRIEF SUMMARY

Certain aspects provide an apparatus for wireless communications. The apparatus generally includes an interface that is configured to obtain a first frame including a first information element (IE) indicating a list of encoding algorithms and a processing system that is configured to generate a second frame including a second IE indicating at least one of an encoding algorithm from the list or the list. In addition, the interface is further configured to output the second frame for transmission to a second apparatus, and thereafter, obtain a first random number from the second apparatus and the processing system is further configured to generate a code based on the first random number, a second random number and a master key and generate a third frame including the second IE, the second random number and an integrity protected IE, said integrity protected IE being generated based on the second IE and the code. Furthermore, the interface is further configured to output the third frame for transmission to the second apparatus.

Certain aspects provide an apparatus for wireless communications. The apparatus generally includes a processing system that is configured to generate a first frame including a first IE indicating a list of encoding algorithms and an interface configured to output the first frame for broadcast to a plurality of wireless nodes, and thereafter, obtain a second frame from one of the plurality of wireless nodes, said second frame including a second IE indicating at least one of an encoding algorithm or a second list of encoding algorithms including the indicated encoding algorithm. In addition, the processing system is further configured to generate a first random number and the interface is further configured to output the first random number for transmission to the one wireless node after obtaining the second frame, and thereafter, obtain a third frame including a third IE, a second random number and an integrity protected IE. Furthermore, the processing system is further configured to obtain a code based on the first and second random numbers and a master key, process the integrity protected IE by using the code to obtain an unprotected IE, compare the unprotected IE with the third IE and take one or more actions based on the comparison.

Aspects generally include methods, apparatuses, computer readable medium, wireless node, access point and access terminal, as substantially described herein with reference to and as illustrated by the accompanying drawings. Numerous other aspects are provided.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one aspect may be beneficially used on other aspects without specific recitation.

DETAILED DESCRIPTION

The word “communicate” is used herein to mean “transmit”, “receive” or “transmit and receive”. The word “communication” or “communications” is used herein to mean “transmission”, “reception” or “transmission and reception”.

Example of Wireless Communications Network

The following description is directed to certain implementations for the purposes of describing the innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in different ways and may be incorporated into various types of communication networks or network components. In some aspects, the teachings herein may be employed in a multiple-access network capable of supporting communication with multiple users by sharing the available network resources (e.g., by specifying one or more of bandwidth, transmit power, coding, interleaving, and so on). For example, the teachings herein may be applied to any one or combinations of the following technologies or standards: Code Division Multiple Access (CDMA), Multiple-Carrier CDMA (MCCDMA), Wideband CDMA (W-CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Single-Carrier FDMA (SC-FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), IS-95, cdma2000, IS-856, W-CDMA, TDSCDMA, 802.11 (Wi-Fi), 802.16, Global System for Mobile Communication (GSM), Evolved UTRA (E-UTRA), IEEE 802.20, Flash-OFDM®, Long Term Evolution (LTE), Ultra-Mobile Broadband (UMB), Ultra-Wide Band (UWB), Bluetooth®, GSM/General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Terrestrial Trunked Radio (TETRA), Evolution Data Optimized (EV-DO), 1xEV-DO, EV-DO Rev A, EV-DO Rev B, High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), Evolved High Speed Packet Access (HSPA+), AMPS, or other technology of 3G, 4G, or 5G.

The teachings herein may be incorporated into (e.g., implemented within or performed by) a variety of wired or wireless apparatuses (e.g., nodes). In some aspects, a wireless node implemented in accordance with the teachings herein may include an access point or an access terminal.

An access point (“AP”) may include, be implemented as, or known as a Node B, a Radio Network Controller (“RNC”), an evolved Node B (eNB), a Base Station Controller (“BSC”), a Base Transceiver Station (“BTS”), a Base Station (“BS”), a Transceiver Function (“TF”), a Radio Router, a Radio Transceiver, a Basic Service Set (“BSS”), an Extended Service Set (“ESS”), a Radio Base Station (“RBS”), or some other terminology.

FIG. 1illustrates a multiple-access network100with access points and user terminals. For simplicity, only one access point110is shown inFIG. 1. An access point (AP) is generally a fixed station that communicates with the user terminals and also may be referred to as a base station or some other terminology. A user terminal may be fixed or mobile and also may be referred to as a mobile station, an access terminal, a station (STA), a client, a cellular phone, a personal digital assistant (PDA), a handheld device, a wireless modem, a laptop computer, a personal computer, or some other terminology.

The access point110may communicate with one or more user terminals or stations120at any given moment on the downlink and uplink. The downlink (i.e., forward link) is the communications link from the access point to the user terminals, and the uplink (i.e., reverse link) is the communications link from the user terminals to the access point. A user terminal also may communicate peer-to-peer with another user terminal. A network controller130couples to and provides coordination and control for the access points.

The network100can be a Multiple Input Multiple Output (MIMO) network by employing multiple transmit and multiple receive antennas for communications on the downlink and uplink. If so, the access point110is equipped with a number Napof antennas and represents the multiple-input (MI) for downlink transmissions and the multiple-output (MO) for uplink transmissions. A set Nuof selected user terminals120collectively represents the multiple-output for downlink transmissions and the multiple-input for uplink transmissions. In some implementations, it may be desirable to have Nap≥Nu≥1 if the data symbol streams for the Nuuser terminals are not multiplexed in code, frequency or time by some means. Numay be greater than Napif the data symbol streams can be multiplexed using different code channels with CDMA, disjoint sets of sub-bands with OFDM, and so on. Each selected user terminal transmits user-specific data to and receives user-specific data from the access point. In general, each selected user terminal may be equipped with one or multiple antennas (i.e., Nut≥1). The Nuselected user terminals can have the same or different number of antennas.

The network or system100may be a time division duplex (TDD) network or a frequency division duplex (FDD) network. For a TDD network, the downlink and uplink share the same frequency band. For an FDD network, the downlink and uplink use different frequency bands. The network100also may utilize a single carrier or multiple carriers for transmission. Each user terminal may be equipped with a single antenna so as to keep costs down or multiple antennas if additional cost can be afforded. The network100may represent a high speed Wireless Local Area Network (WLAN) operating in a 60 GHz band.

FIG. 2illustrates example components of the access point110and user terminal or station120illustrated inFIG. 1, which may be used to implement aspects of the present disclosure. One or more components of the access point110and station120may be used to practice aspects of the present disclosure. For example, antenna224, transmitter/receiver unit222, processors210,220,240,242, and/or controller230or antenna252, transmitter/receiver254, processors260,270,288, and290, and/or controller280may be used to perform the operations described herein and illustrated with reference toFIGS. 6, 6A, 7 and 7A.

FIG. 2shows a block diagram of the access point/base station110and two user terminals/user equipment120mand120xin a network100. The access point110is equipped with Napantennas224athrough224ap. The user terminal120mis equipped with Nut,mantennas252mathrough252mu, and the user terminal120xis equipped with Nut,xantennas252xathrough252xu. The access point110is a transmitting entity for the downlink and a receiving entity for the uplink. Each user terminal120is a transmitting entity for the uplink and a receiving entity for the downlink. As used herein, a “transmitting entity” is an independently operated apparatus or device capable of transmitting data via a frequency channel, and a “receiving entity” is an independently operated apparatus or device capable of receiving data via a frequency channel. In the following description, the subscript “dn” denotes the downlink, the subscript “up” denotes the uplink, Nupuser terminals are selected for simultaneous transmission on the uplink, and Ndnuser terminals are selected for simultaneous transmission on the downlink. Moreover, Nupmay or may not be equal to Ndn, and Nup, and Ndnmay include static values or can change for each scheduling interval. Beamforming (such as beam-steering) or some other spatial processing techniques may be used at the access point and user terminal.

On the uplink, at each user terminal120selected for uplink transmission, a TX data processor288receive traffic data from a data source286and control data from a controller280. The controller280may be coupled with a memory282. The TX data processor288processes (such as encodes, interleaves, and modulates) the traffic data {dup,m} for the user terminal based on the coding and modulation schemes associated with the rate selected for the user terminal and provides a data symbol stream {sup,m}. A TX spatial processor290performs spatial processing on the data symbol stream {sup,m} and provides Nut,mtransmit symbol streams for the Nut,mantennas. Each transmitter unit (TMTR)254receives and processes (such as converts to analog, amplifies, filters, and frequency upconverts) a respective transmit symbol stream to generate an uplink signal. The Nut,mtransmitter units254provide Nut,muplink signals for transmission from the Nut,mantennas252to the access point110.

A number Nupof user terminals may be scheduled for simultaneous transmission on the uplink. Each of these user terminals performs spatial processing on its data symbol stream and transmits its set of transmit symbol streams on the uplink to the access point.

At the access point110, the Napantennas224athrough224apreceive the uplink signals from all Nupuser terminals transmitting on the uplink. Each antenna224provides a received signal to a respective receiver unit (RCVR)222. Each receiver unit222performs processing complementary to that performed by the transmitter unit254and provides a received symbol stream. An RX spatial processor240performs receiver spatial processing on the Napreceived symbol streams from the Napreceiver units222and provides Nuprecovered uplink data symbol streams. The receiver spatial processing is performed in accordance with the channel correlation matrix inversion (CCMI), minimum mean square error (MMSE), successive interference cancellation (SIC), or some other technique. Each recovered uplink data symbol stream {sup,m} is an estimate of a data symbol stream {sup,m} transmitted by a respective user terminal. An RX data processor242processes (such as demodulates, de-interleaves, and decodes) each recovered uplink data symbol stream {sup,m} in accordance with the rate used for that stream to obtain decoded data. The decoded data for each user terminal may be provided to a data sink244for storage and a controller230for further processing.

On the downlink, at the access point110, a TX data processor210receives traffic data from a data source208for Ndnuser terminals scheduled for downlink transmission, control data from a controller230, and possibly other data from a scheduler234. The various types of data may be sent on different transport channels. The TX data processor210processes (such as encodes, interleaves, and modulates) the traffic data for each user terminal based on the rate selected for that user terminal. The TX data processor210provides Ndndownlink data symbol streams for the Ndnuser terminals. A TX spatial processor220performs spatial processing on the Ndndownlink data symbol streams, and provides Naptransmit symbol streams for the Napantennas. Each transmitter unit (TMTR)222receives and processes a respective transmit symbol stream to generate a downlink signal. The Naptransmitter units222provide Napdownlink signals for transmission from the Napantennas224to the user terminals. The decoded data for each STA may be provided to a data sink272for storage and/or a controller280for further processing.

At each user terminal120, the Nut,mantennas252receive the Napdownlink signals from the access point110. Each receiver unit (RCVR)254processes a received signal from an associated antenna252and provides a received symbol stream. An RX spatial processor260performs receiver spatial processing on Nut,mreceived symbol streams from the Nut,mreceiver units254and provides a recovered downlink data symbol stream {sdn,m} for the user terminal. The receiver spatial processing can be performed in accordance with the CCMI, MMSE, or other known techniques. An RX data processor270processes (such as demodulates, de-interleaves, and decodes) the recovered downlink data symbol stream to obtain decoded data for the user terminal.

At each user terminal120, the Nut,mantennas252receive the Napdownlink signals from the access point110. Each receiver unit (RCVR)254processes a received signal from an associated antenna252and provides a received symbol stream. An RX spatial processor260performs receiver spatial processing on Nut,mreceived symbol streams from the Nut,mreceiver units254and provides a recovered downlink data symbol stream {sdn,m} for the user terminal. The receiver spatial processing is performed in accordance with the CCMI, MMSE, or some other technique. An RX data processor270processes (such as demodulates, de-interleaves, and decodes) the recovered downlink data symbol stream to obtain decoded data for the user terminal.

FIG. 3illustrates various components that may be utilized in a wireless device302that may be employed within the network100. The wireless device302is an example of a device that may be configured to implement the various methods described herein. The wireless device302may be an access point110or a user terminal120.

The wireless device302may include a processor304which controls operation of the wireless device302. The processor304also may be referred to as a central processing unit (CPU). Memory306, which may include both read-only memory (ROM) and random access memory (RAM), provides instructions and data to the processor304. A portion of the memory306also may include non-volatile random access memory (NVRAM). The processor304typically performs logical and arithmetic operations based on program instructions stored within the memory306. The instructions in the memory306may be executable to implement the methods described herein.

The wireless device302also may include a housing308that may include a transmitter310and a receiver312to allow transmission and reception of data between the wireless device302and a remote location. The transmitter310and the receiver312may be combined into a transceiver314. A plurality of transmit antennas316may be attached to the housing308and electrically coupled to the transceiver314. The wireless device302also may include (not shown) multiple transmitters, multiple receivers, and multiple transceivers.

The wireless device302also may include a signal detector318that may be used in an effort to detect and quantify the level of signals received by the transceiver314. The signal detector318may detect such signals as total energy, energy per subcarrier per symbol, power spectral density and other signals. The wireless device302also may include a digital signal processor (DSP)320for use in processing signals.

The various components of the wireless device302may be coupled together by a bus system322, which may include a power bus, a control signal bus, and a status signal bus in addition to a data bus.

FIG. 4illustrates typical messages being exchanged between an access point (AP)402and a client404such as a user terminal during authentication. The AP402advertises a list of encoding algorithms or ciphers (listAP) supported by such AP to be used for encoding data after authentication is completed. Some examples of encoding algorithms include DES, Triple DES (3DES), which extends the key size of DES by applying the algorithm three times in succession with three different keys, RC6, Blowfish and AES. The AP402can advertise such list by transmitting a frame such a beacon frame406or broadcasting the frame having the list therein. More specifically, the frame includes a field or an Information Element (IE) that in turn includes an indication of the list. When the client404receives the list, it chooses one of the encoding algorithms from the list. Typically, the client404will choose the most secured encoding algorithm from the list that is also being supported by client. That way, the exchange of data after authentication will be more secure.

After choosing the encoding algorithm, the client404sends an association request (Assn Req)408with an indication of the chosen encoding algorithm therein. The association request can have a field or an IE having the indication of the chosen encoding algorithm therein. When the AP402receives association request with the IEclienttherein, the AP402generates and transmits a first message410including a random number such as an ANonce to the client404. After receiving the ANonce, the client generates a second message412including a random number such as a SNonce, the IEclientand a Message Integrity Code (MIC). The MIC is generated based on the received ANonce, SNonce and a master key being known to both client404and AP402but not being known to the attacker. Thereafter, the client404transmits the second message412to the AP402.

After receiving the second message412, the AP generates its own MIC by using the received SNonce, ANonce and the master key and then compare its generated MIC with the received MIC and if they match, the AP402will encode a group key (GK) by using the encoding algorithm indicated in the IEclientand transmits a third message414having such encoded group key therein to the client404so that the client404can securely receive multicast or broadcast messages from the AP402. The group key is a shared key that is known to all clients being connected to the AP402.

The exchange of data as described above is vulnerable to attacks and thus data being exchanged during and after authentication would be compromised. For example, an attacker will try to downgrade or lower the level of security associated with communications between the AP402and the client404. Less secured communications mean it will easier for the attacker to decode the encoded data of such communications.

To downgrade the security level of communications between the AP402and the client404, the attacker can be located at point A, spoof the MAC address of the client404and intercept data being exchanged between the AP402and client404. More specifically, the attacker can intercept the second message412being sent from the client404to the AP402and then only replace the IEclientwith IEattackhaving an indication of an encoding algorithm that is less secured than the encoding algorithm indicated in the IEclient. For example, if the IEclientindicates AES, the IEattackwould indicate RC6, which is easier to decode than AES. When the AP402receives the attacker's message, the MIC in the attacker's message still matches with the MIC generated at the AP402since the SNonce has not changed and thus the AP402proceeds to use the encoding algorithm indicated by IEattack, which is RC6 in this example, to encode the group key and thereafter transmit such encoded group key to the client404without knowing that the attacker's preference for RC6 being used. As a result, it will be easier for the attacker to decode or decipher the encoded group key since computation power needed to decode RC6 data is less than computation power needed to decode AES data. Accordingly, the attacker knows the group key and thus the attacker can, for example, inject any traffic into the network and, also, decode traffic transmitted over the network.

Instead of replacing IEclientwith IEattack, the attacker can also be located at point B, spoof the MAC address of the AP402, intercept the list of encoding algorithms indicated in the beacon frame406and replaced such list with attacker's list of encoding algorithms that are capable of being decoded by the attacker. When the client404receives the attacker's list, the client basically is choosing one of the attacker's preferred encoding algorithms and accordingly, data will be compromised.

The following examples of apparatuses, methods, computer readable mediums, access terminal and access point effectively detect potential attacks during authentication and abort the authentication process.

Example of Authentication Protection Mechanism

FIG. 5illustrates data being exchanged between an access point and a client in according with inventive aspects being described herein with respect toFIG. 6,FIG. 6A,FIG. 7andFIG. 7A. The access point is the AP110ofFIG. 1orFIG. 2and the client is one of the stations ofFIG. 1or STA120mofFIG. 2.

FIG. 6is a flow diagram of example operations600for wireless communications, in accordance with certain aspects of the present disclosure. The operations600may be performed by an apparatus or a wireless device302ofFIG. 3. In certain aspects, the wireless device302is the STA120m.

At block602, the STA120mobtains a first frame502including a first IE indicating a list of encoding algorithms (listAP). The first frame502includes a beacon frame or a broadcast frame generated by the AP110.

At block604, the STA120mgenerates a second frame504, which includes a second IE (IESTA) indicating at least one of an encoding algorithm from the listAP. More specifically, the STA120mchooses one of the encoding algorithm from the list and the second IE indicates the chosen encoding algorithm. After generating the second frame504, the STA120mthen outputs the second frame504for transmission to the AP110at block606.

In certain aspects, the IESTAof the second frame indicates both the chosen encoding algorithm and the listAPso that when the AP110receives the second frame, it can verify whether the received list is the same as the listAPsince the IESTAcould be replaced with IEattackas discussed above. If the received list does not match with the listAP, the AP110can immediately stop communicating with the STA120m, i.e., abort all further operation associated with the STA120m.

After the transmission of the second frame, the STA obtains a first random number (RN1) from the AP110at block608. The fist random number includes an ANonce generated by the AP110.

At block610, the STA generates a codeSTAbased on the first random number, a second random number (RN2) and a master key. In one aspect, codeSTAis a Message Integrity Code (MIC). The second random number includes an SNonce and is generated by the STA. Regarding the master key, such master key is known a priori by the STA120mand the AP110and include a pairwise master key (PMK).

At block612, the STA120mgenerates a third frame506, which includes (i) the IESTA, which indicates the chosen encoding algorithm, the listAPor both as discussed above, (ii) the second random number and (iii) an integrity protected IE. More specifically, the STA120mgenerates the integrity protected IE by using the IESTAand the code. That is, the integrity protected IE is an encoded IE. Effectively, the third frame506includes an unprotected IESTAand a “protected” IESTA. In certain aspects, the third frame506can also include the code that was generated by the STA120mand used by STA to generate the integrity protected IE.

Thereafter, the STA120moutputs the third frame for transmission to the AP110at block614. In certain aspects, the third frame506is output for unicast transmission to the AP110.

An attacker located at point A can certainly intercept the third frame506and transmits attacker's version of the third frame in which IESTAis replaced with IEattackbut the integrity protected IE and second random number are still present. After receiving the attacker's version of the third frame, the AP110uses the received second random number, first random number and the master key to generate a codeAP, which is the same as the codeSTA, uses codeSTAto decode the integrity protected IE to obtain the IESTAand then compare the obtained IESTAto the IEattackper block508ofFIG. 5. This comparison obviously indicates no match and thus the AP110can immediately stop communicating with the STA120m, abort any further operation associated with STA120mper block510ofFIG. 5or both. Accordingly, by providing both unprotected IESTAand “protected” IESTAin the same frame, the STA120meffectively enables the AP110to detect any attack and if so, abort the authentication process.

Furthermore, an attacker located at point B can intercept the first frame502and replace the listAPwith attacker's listattackof encoding algorithms that the attacker is capable of decoding if used to encode. Accordingly, in certain aspects, the IESTAcan also include an indication of the list of encoding algorithms from which the STA120mhad chosen the encoding algorithm to be used by both STA120mand AP110. Since IESTAof the second frame504indicating both the chosen encoding algorithm and the list, the AP110can verify whether the received list matches the APlist. If so, the AP110would continue with the authentication process and if not, the AP110would abort the authentication process.

In addition to replacing listAPwith listattackin frame502, the attacker can also intercept the second frame504and replace the listattackback with listAPso that the AP110does not know that the STA120mhad chosen from listattack. Furthermore, the attacker can intercept the third frame506and replace the listattackwith listAPin the unprotected IESTAso that the AP110would think the STA120mhad received listAP. Since the third frame506includes both unprotected IE and “protected” IE, any tampering of the unprotected IE will be detected because the tampered IE with listAPwon't match the IE obtained from decoding the “protected” IE because the IE obtained from such decoding will indicate listattack, which was received and used by the STA120m.

FIG. 7is a flow diagram of example operations700for wireless communication, such as authentication, in accordance with certain aspects of the present disclosure. The operations700may be performed by an apparatus that can be configured as a wireless device302being illustrated inFIG. 3. In certain aspects, such wireless device302is the AP110communicating with a plurality of wireless nodes such as stations as illustrated inFIG. 1.

At block702, the AP110generates a first frame such as frame502having a first IE indicating a list (listAP) of encoding algorithms and then, at block704, outputs the first frame502for broadcast to a plurality of the stations. Since the stations can support different encoding algorithms, the list will enable each station to choose the one it would like to use to communicate with the AP110. In certain aspects, the first frame includes a beacon frame.

At block706, the AP110obtains a second frame such as frame504from one of the plurality of stations such as STA120m. The second frame includes a second IE indicating an encoding algorithm or a second list of encoding algorithms including the indicated encoding algorithm. In certain aspects, the second list is the same as the listAP. In other aspects, the second list is not the same as listAPbecause an attacker located at point B could have intercepted the first frame502and replaced listAPwith listattackhaving encoding algorithms that are less secured than the encoding algorithms of listApand thus, at this time, the STA120mis only aware of listattack. Accordingly, the second list indicated by the second IE would be listattack, not listAP.

After obtaining the second frame504from the STA120m, at block708, the AP110generates a first random number such as an ANonce. In certain aspects, the AP110only generates the first random number if the obtained second list indicated by the second IE is the same as the listAP, which was broadcasted by the AP110. If the obtained second list is different from the listAP, the AP110can immediately stop communicating with the STA120msince the listAPbroadcasted by the AP110either was tampered with or was not received by the STA120m.

After the first random number is generated, it gets outputted for transmission to the STA120mat block710. The first random number will enable the STA120mto continue with the authentication process.

At block712, the AP110obtains a third frame including a third IE, a second random number such as SNonce and an integrity protected IE. In certain aspects, the obtained third IE is the same as the obtained second IE per block706if the third frame was truly transmitted by the STA120. In other aspects, the third IE is not the same as the second IE because an attacker located at point B had intercepted a frame such as frame506transmitted by the STA120mand replaced the IE in the frame506with IEattackindicating an encoding algorithm that is less secured than the one indicated in the third IE transmitted by the STA120m.

At block714, the AP110obtains a code based on the received second random number, the first random number and a master key known a priori to both the STA120mand AP110. At block716, the AP110processes the integrity protected IE by using the code to obtain an unprotected IE since the integrity protected IE was generated based on another code that was also obtained based on the same first and second random numbers and the same master key.

At block718, the AP110compares the unprotected IE with the third IE and, at block720, the AP110takes one or more actions based on the comparison.

In certain aspects, if the comparison indicates that unprotected IE and the third IE are the same, which means the third IE was truly transmitted by the STA120m, the one or more actions include encoding a group key by using the encoding algorithm indicated in the third IE.

In certain aspects, the third IE indicates an encoding algorithm and a list of encoding algorithms including the indicated encoding algorithm. In these aspects, even if the comparison indicates that unprotected IE and the third IE are the same, the AP110can also determine whether the list is the same as listAP. If lists are the same, AP encodes a group key by using the encoding algorithm indicated in the third IE and then outputs the encoded group key510for transmission to the STA120m. If the lists are not the same, the AP immediately stops communicating with or aborts any further operation associated with the STA120msince the STA120mwas not using the listAPto choose its encoding algorithm.

In certain aspects, the obtained third frame also can include a code. If the code was truly transmitted by the STA120m, such code is the code that was used to generate the integrity protected IE included in the third frame. The AP110can determine whether the code obtained per block714matches the code in the third frame. If the lists are the same, AP encodes a group key by using the encoding algorithm indicated in the third IE and then transmits the encoded group key510to the STA120m. If the lists are not the same, the AP immediately stops communicating with or aborts any further operation associated with the STA120msince the STA120mwas not using the listAPto choose its encoding algorithm.

As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiples of the same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c). As used herein, including in the claims, the term “and/or,” when used in a list of two or more items, means that any one of the listed items can be employed by itself, or any combination of two or more of the listed items can be employed. For example, if a composition is described as containing components A, B, and/or C, the composition can contain A alone; B alone; C alone; A and B in combination; A and C in combination; B and C in combination; or A, B, and C in combination.

The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” For example, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form. Unless specifically stated otherwise, the term “some” refers to one or more. Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase, for example, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, for example the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”

The various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include various hardware and/or software component(s) and/or module(s), including, but not limited to a circuit, an application specific integrated circuit (ASIC), or processor. Generally, where there are operations illustrated in figures, those operations may have corresponding counterpart means-plus-function components with similar numbering. More specifically, operations600illustrated inFIG. 6correspond to means600A illustrated inFIG. 6Aand operations700illustrated inFIG. 7correspond to means700A illustrated inFIG. 7A.

For example, means for transmitting (or means for outputting for transmission) may include a transmitter (e.g., the transmitter unit222) and/or an antenna(s)224of the access point110or the transmitter unit254and/or antenna(s)252of the station120illustrated inFIG. 2or a bus and/or bus interface or any combination thereof. Means for receiving (or means for obtaining) may include a receiver (e.g., the receiver unit222) and/or an antenna(s)224of the access point110or the receiver unit254and/or antenna(s)252of the station120illustrated inFIG. 2or a bus and/or bus interface or any combination thereof. Means for processing, means for determining, means for obtaining, means for generating, means for decoding, means for comparing, means for taking one or more actions, or means for aborting may include a processing system, which may include one or more processors, such as the RX data processor242, the TX data processor210, the TX spatial processor220, and/or the controller230of the access point110or the RX data processor270, the TX data processor288, the TX spatial processor290, and/or the controller280of the station120illustrated inFIG. 2.

In some cases, rather than actually transmitting a frame a device may have an interface to output a frame for transmission (a means for outputting). For example, a processor may output a frame, via a bus interface, to a radio frequency (RF) front end for transmission. Similarly, rather than actually receiving a frame, a device may have an interface to obtain a frame received from another device (a means for obtaining). For example, a processor may obtain (or receive) a frame, via a bus interface, from an RF front end for reception. In some cases, the interface to output a frame for transmission and the interface to obtain a frame (which may be referred to as first and second interfaces herein) may be the same interface.

Thus, certain aspects may include a computer program product for performing the operations presented herein. For example, such a computer program product may include a computer-readable medium having instructions stored (and/or encoded) thereon, the instructions being executable by one or more processors to perform the operations described herein. For example, instructions for performing the operations described herein and illustrated in the appended figures.