March 2010 doc.: IEEE 802.11-10/314r0 IEEE P802.11 Wireless LANs Rekeying Protocol Fix Text Date: 2010-03-12 Author(s): Name Affiliation Robert Stacey Intel Adrian Stephens Jesse Walker Herbert Liondas Emily Qi Intel Intel Intel Intel Address 2111 NE 25th Ave, Hillsboro OR 97124, USA Phone email [email protected] [email protected] [email protected] [email protected] [email protected] Abstract This submission provides instructions for editing REVmb Draft 2.01 for the purpose of adding a fix to the rekeying protocol. Submission page 1 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 7 Frame formats 7.3.2.25 RSN information element 7.3.2.25.3 RSN capabilities Editor – Replaced reserved bit B13 the Extended Key ID for Unicast field as shown below (only the second half of the figure is edited) B8 Reserved B9 Peerkey enabled Bits: 1 1 B10 B11 B12 SPP ASPP APBAC MSDU MSDU Capable Required 1 1 1 Figure 7-74 – RSN Capabilities field format B13 Extended Key ID for Unicast 1 B134 B15 Reserved 32 Editor – Insert description for Bit 13 and change “B13” to “B14” in following bullet — Bit 12: PBAC (protected block ack agreement capable). A STA sets the PBAC subfield of RSN Capabilities field to 1 to indicate it supports PBAC. Otherwise, this subfield is set to 0. — Bit 13: Extended Key ID for Unicast. This subfield is set to 1 to indicate that the STA supports Key ID values in the range 0 through 1 for a PTKSA and STKSA when the cipher suite is CCMP. A value of 0 indicates that the STA only supports Key ID 0 for a PTKSA and STKSA. — Bits 8 and 134–15: Reserved. The remaining subfields of the RSN Capabilities field are reserved. 7.4a.3 A-MPDU contents Editor – Add the underlined text below as the third paragraph in this section: All the MPDUs within an A-MPDU are addressed to the same RA. All QoS data frames within an AMPDU that have a TID for which an HT-immediate Block Ack agreement exists have the same value for the Ack Policy subfield of the QoS Control field. All protected MPDUs within an A-MPDU have the same Key ID. An A-MPDU is transmitted in one of the contexts specified in Table 7-57x (A-MPDU Contexts). Ordering of MPDUs within an A-MPDU is not constrained, except where noted in these tables. See 9.7d.1 (A-MPDU contents). Submission page 2 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 8 Security 8.4 RSNA security association management 8.4.1 Security associations 8.4.1.1 Security association definitions 8.4.1.1.2 PTKSA Editor – Edit the bulleted list as follows (inserting Key ID) The PTKSA consists of the following elements: — PTK — Pairwise cipher suite selector — Supplicant MAC address or STA’s MAC address — Authenticator MAC address or BSSID — Key ID — If FT key hierarchy is used, — R1KH-ID — S1KH-ID — PTKName 8.4.1.1.3 GTKSA Editor – Edit the bulleted list as follows (inserting Key ID) A GTKSA consists of the following elements: — Direction vector (whether the GTK is used for transmit or receive). — Group cipher suite selector. — GTK. — Authenticator MAC address. — Key ID — All authorization parameters specified by local configuration. This can include parameters such as — the STA’s authorized SSID. 8.4.1.1.5 STKSA Editor – Edit the bulleted list as follows (inserting Key ID) The STKSA consists of the following elements: — STK — Pairwise cipher suite selector — Initiator MAC address — Peer MAC address — Key ID Submission page 3 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 8.5 Keys and key distribution 8.5.2 EAPOL-Key frames Editor – Add the Key ID KDE to Table 8-4 at the appropriate position: OUI 00-0F-AC Table 8-4 – KDE Data type Meaning <ANA> Key ID KDE Editor – Append the following to section (8.5.2): The format of the Key ID KDE is shown in Figure 8-32b. KeyID Reserved (0) bits 0-1 bits 2-15 Figure 8-32b – Key ID KDE The KeyID field contains the Authenticator selected Key ID. 8.5.4 4-Way Handshake 8.5.3.3 4-Way Handshake Message 3 Editor – Edit the Key Data field description as follows: Key Data = For PTK generation, the AP’s Beacon/Probe Response frame’s RSN element, and, optionally, a second RSN element that is the Authenticator’s pairwise cipher suite assignment, and, if a group cipher has been negotiated, the encapsulated GTK and the GTK’s key identifier (see 8.5.2 (EAPOL-Key frames)), and if Management Frame Protection is negotiated, the IGTK KDE. For STK generation Initiator RSNE, Lifetime of SMK is used. If the Extended Key ID for Unicast subfield of the RSN Capabilities field is set to 1 for both the Authenticator/STA_I and Supplicant/STA_P, then the Authenticator/STA_I includes the Key ID KDE with the assigned key identifier. Editor – Edit subsequent paragraphs as follows: Processing for PTK generation is as follows: If the Extended Key ID for Unicast subfield of the RSN Capabilities field is set to 1 for both the Authenticator and the Supplicant, then the Authenticator assigns a new Key ID for the PTKSA in the range 0 through 1 that is different from the Key ID assigned in the previous handshake and uses the MLME-SETKEYS.request primitive to install the new key in the IEEE 802.11 MAC to receive Class 3 individually addressed MPDUs protected by the PTK with the assigned Key ID. Otherwise the Key ID 0 is used and installation of the key is deferred until after Message 4 has been received. The Authenticator sends Message 3 to the Supplicant. Note -- If an existing PTK is still in effect, the Authenticator IEEE 802.11 MAC continues to transmit Class 3 individually addressed MPDUs (if any) using the existing key. With the installation of the new Submission page 4 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 key for receive, the Authenticator is able to receive Class 3 individually addressed MPDUs using either the old key (if present) or the new key. On reception of Message 3, the Supplicant silently discards the message if the Key Replay Counter field value has already been used or if the ANonce value in Message 3 differs from the ANonce value in Message 1. The Supplicant also a) Verifies the RSNE. If it is not identical to that the STA received in the Beacon or Probe Response frame, the STA shall disassociate. If a second RSN element is provided in the message, the Supplicant uses the pairwise cipher suite specified in the second RSNE or deauthenticates. b) Verifies the Message 3 MIC. If the calculated MIC does not match the MIC that the Authenticator included in the EAPOL-Key frame, the Supplicant silently discards Message 3. c) Updates the last-seen value of the Key Replay Counter field. d) If the Extended Key ID for Unicast subfield of the RSN Capabilities field is set to 1 for both the Authenticator and Supplicant: Uses the MLME-SETKEYS.request primitive to configure the IEEE 802.11 MAC to receive Class 3 individually addressed MPDUs protected by the PTK with the assigned Key ID. de) Constructs Message 4. ef) Sends Message 4 to the Authenticator. fg) Uses the MLME-SETKEYS.request primitive to configure the IEEE 802.11 MAC to send and, if the receive key has not yet been installed, to receive Class 3 individually addressed MPDUs protected by the PTK. The GTK is also configured by MLMESETKEYS primitive. Processing for STK generation is as follows: If the Extended Key ID for Unicast subfield of the RSN Capabilities field is set to 1 for both the STA_I and the STA_P, then the Authenticator assigns a new Key ID for the STKSA in the range 0 through 1 that is different from the Key ID assigned in the previous handshake and uses the MLME-SETKEYS.request primitive to install the new key in the IEEE 802.11 MAC to receive Class 3 individually addressed MPDUs protected by the STK with the assigned Key ID. Otherwise the Key ID 0 is used and installation of the key is deferred until after Message 4 has been received. The STA_I sends Message 3 to the STA_P. Note -- If an existing STK is still in effect, the STA_I IEEE 802.11 MAC continues to transmit Class 3 individually addressed MPDUs (if any) using the existing key. With the installation of the new key for receive, the STA_I is able to receive Class 3 individually addressed MPDUs using both the old key (if present) or the new key. On reception of Message 3, the STA_P silently discards the message if the Key Replay Counter field value has already been used or if the INonce value in Message 3 differs form the INonce value in Message 1. Otherwise, a) The STA_P verifies the Message 3 MIC using SKCK key in SMKSA. If the calculated MIC does not match the MIC that the STA_P included in the EAPOL-Key frame, the STA_I silently discards Message 3. b) If the MIC is valid, the STA_P checks that the RSNIE bit-wise matches that from the 4-Way Handshake Message 2. If these are not exactly the same, STA_P silently discards the message and deletes existing 4-Way Handshake states. c) If they do match, the STA_P constructs Message 4. It also compares the Key Lifetime value from KDE with value in its SMKSA. If value in SMKSA is less, it discards the value received in Message 3. Otherwise, it updates the value in SMKSA with value in Message 3. d) If the Extended Key ID for Unicast subfield of the RSN Capabilities field is set to 1 for both the Authenticator and Supplicant then prior to sending Message 4, STA_P uses the MLMESETKEYS.request primitive to configure the IEEE 802.11 MAC to receive Class 3 individually addressed MPDUs protected by the STK with the assigned Key ID. Submission page 5 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 e) After sending Message 4, STA_P uses the MLME-SETKEYS.request primitive to configure the IEEE 802.11 MAC to send and, if the receive key has not yet been installed, to receive Class 3 individually addressed MPDUs protected by the STK with the assigned Key ID. 8.5.3.4.4 4-Way Handshake Message 4 Editor: Update the “processing for PTK generation” and “processing for STK generation” sections as follows: Processing for PTK generation is as follows: The Supplicant sends Message 4 to the Authenticator. Note that when the 4-Way Handshake is first used, Message 4 is sent in the clear. On reception of Message 4, the Authenticator verifies that the Key Replay Counter field value is one that it used on this 4-Way Handshake; if it is not, it silently discards the message. Otherwise: a) The Authenticator checks the MIC. If the calculated MIC does not match the MIC that the Supplicant included in the EAPOL-Key frame, the Authenticator silently discards Message 4. b) If the MIC is valid, the Authenticator uses the MLME-SETKEYS.request primitive to configure the PTK into the IEEE 802.11 MAC to send and, if the receive key has not yet been installed, to receive Class 3 individually addressed MPDUs using for the new PTK. c) The Authenticator updates the Key Replay Counter field so that it will use a fresh value if a rekey becomes necessary. Processing for STK generation is as follows: The STA_P sends Message 4 to the STA_I. On reception of Message 4, the STA_I verifies that the Key Replay Counter field value is one that it used on this 4-Way Handshake; if it is not, it silently discards the message. Otherwise, a) The STA_I checks the MIC. If the calculated MIC does not match the MIC that the STA_P included in the EAPOL-Key frame, the STA_I silently discards Message 4. b) If the MIC is valid, the STA_I configures the STK into the IEEE 802.11 MAC uses the MLMESETKEYS.request primitive to configure the 802.11 MAC to send and, if the receive key has not yet been installed, to receive Class 3 individually addressed MPDUs using for the new STK. c) The STA_I updates the Key Replay Counter field so that it will use a fresh value if a rekey becomes necessary. 8.7.2 RSNA frame pseudo-code 8.7.2.3 Per-MPDU Rx pseudo-code Editor – Edit the pseudo-code as follows (insert underlined text): if ((MPDU has individual RA and Pairwise key exists for the MPDU’s TA) or (MPDU has a group addressed RA and network type is IBSS and IBSS GTK exists for MPDU’s RA)) then if MPDU has individual RA then lookup pairwise key using Key ID from MPDU else lookup group key using Key ID from MPDU Submission page 6 Robert Stacey, Intel March 2010 doc.: IEEE 802.11-10/314r0 endif if key is null then discard the frame body and increment dot11WEPUndecryptableCount 10.3.17 SetKeys 10.3.17.1 MLME-SETKEYS.request Editor -- Add the “Direction” parameter at the end of the SetKeyDescriptor table: Name Direction Type Integer Valid range Receive, Transmit, Both Description Indicates the direction for which the keys are to be installed. Receive indicates that the keys are being installed for the receive direction. Transmit indicates that the keys are being installed for the transmit direction. Both indicates that the keys are being installed for both the receive and transmit directions. 10.3.17.1.4 Effect of receipt Editor – Replace the single paragraph of this section as follows: Receipt of this primitive causes the MAC to set the appropriate keys and to begin using them for future MA-UNITDATA.request and MA-UNITDATA.indication primitives provided the MLMESETPROTECTION. request primitive has been issued. Receipt of this primitive causes the MAC to apply the keys as follows provided the MLMESETPROTECTION.request primitive has been issued: If the Direction element indicates Transmit or Both then the MAC uses the key information for the transmission of all subsequent frames to which the key applies. If the Direction element indicates Receive or Both then the MAC installs the key with the associated Key ID such that received frames of the appropriate type and containing the matching Key ID will be processed using that key and its associated state information. Submission page 7 Robert Stacey, Intel
© Copyright 2026 Paperzz