KEY GENERATION FOR SEAMLESS ROAMING

A seamless mobility domain (SMD) is described where a PTK for a wireless device is pre-computed or pre-generated before the client roams from a serving AP to a target AP in the SMD. The pre-computed PTK can be distributed (i.e., pushed) to one or more target APs before the wireless device roams, or the PTK can be stored in a key stored and then retrieved from the key store by a target AP once the wireless device roams to the target AP. In another embodiment, the PMK and/or PTK keys are generated using a SMD identifier, such as a SMD MAC address or a special ID for the SMD.

TECHNICAL FIELD

Embodiments presented in this disclosure generally relate to roaming in a seamless mobility domain (SMD) using pre-generated keys.

BACKGROUND

Ultra-high reliability study group (UHR SG) and IEEE 802.11bn (Wi-Fi 8) have discussed roaming enhancements to support more reliable and seamless roaming. To achieve seamless roaming, it is desired to reduce roaming transition time and minimize delays added due to roaming related operations.

With fast transition (FT), a key hierarchy is generated where pairwise master keys (PMK) are generated for each access point (AP) in the mobility domain. That is, a root key (referred to as PMK R0) is created for each station (STA) or client that associates with the mobility domain. PMKs for each AP (i.e., PMK R1's) are then generated from the root key PMK R0. As the STA roams between the APs in the mobility domain, both the STA and APs have to generate new pairwise transient keys (PTKs). This is performed using nonce exchanges between the STA and the new AP, thereby increasing roaming time.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

One embodiment presented in this disclosure is a network device that includes one or more memories and one or more processors communicatively coupled to the one or more memories, wherein the one or more processors are configured to, individually or collectively, perform operations. The operations include, after a wireless device associates with a first AP in a seamless mobility domain (SMD), generating a pairwise transient key (PTK) for exchanging encrypted content between the wireless device and a second AP in the SMD and, before the wireless device communicates with the second AP, making the PTK available to the second AP.

One embodiment presented in this disclosure is a method that includes associating a wireless device to a first AP in a SMD; generating a PTK for exchanging encrypted content between the wireless device and a second AP in the SMD; and, before the wireless device communicates with the second AP, making the PTK available to the second AP.

One embodiment presented in this disclosure is a network device that includes one or more memories and one or more processors communicatively coupled to the one or more memories, wherein the one or more processors are configured to, individually or collectively, perform operations. The operations include, after, or when, a wireless device associates to an AP in a SMD, generating a PMK for the wireless device and generating a PTK for exchanging encrypted content between the wireless device and the AP based on the PMK. Moreover, at least one of the PMK or the PTK is generated using an identifier for the SMD where the identifier for the SMD can be one of an SMD MAC address or an SMD ID.

EXAMPLE EMBODIMENTS

Embodiments herein describe a seamless mobility domain (SMD) where a PTK for a client/STA/non-AP MLD (or more generally, a wireless device) is pre-computed or pre-generated before the client roams from a serving AP to a target AP in the SMD. The pre-computed PTK can be distributed (i.e., pushed) to one or more target APs before the client roams, or the PTK can be stored in a key store and then retrieved from the key store by a target AP once the client initiates a roam to the target AP. In one embodiment, the pre-computed PTK can be the same PTK shared by every AP in the SMD (FIG. 3). In other embodiments, the system pre-computes separate PTKs for the APs in the SMD using a root PTK (FIG. 4), or by using the PTK generated at the serving AP (FIG. 6). By pre-computing the PTK(s), the 4-way handshake typically used to generate a PTK when a client is roaming can be avoided, thereby reducing roaming times. In each of these embodiments, the PTKs can be precomputed without requiring separate nonce exchange between the wireless device and the target AP for PTK generation.

Embodiments herein also include generating PMK and/or PTKs using a SMD identifier (ID). This advantageously ties the PMKs and PTKs to the SMD. The SMD ID can be a SMD MAC address (which may be different from the MAC addresses of the APs in the SMD), a special ID for the SMD (which may be shorter than a MAC address), or is the same as the MAC address of one of the APs in the SMD. The SMD ID can be used as an input to the hashing function that generates the PMK or PTK. Moreover, using a SMD ID to generate a PMK or PTK can be advantageous regardless of whether the PTKs are pre-computed before a roam, or computed during a roam.

FIG. 1 illustrates pre-generating a PTK in a seamless mobility domain, according to one embodiment. In this example, the SMD 100 includes both a serving AP 110A (which the STA 105 is currently associated with) and a target AP 110B where the STA 105 may roam to in the future. While two APs are shown, the SMD 100 can include any number of APs. For example, the APs in a deployment (e.g., a multi-story building, a campus, a warehouse, etc.) may be part of the same SMD 100. In one embodiment, the SMD 100 enables STAs to transition between APs without losing connectivity. The SMD 100 enables a STA to associate once to an AP in the SMD 100 and then roam seamlessly to any other AP in the SMD 100. The SMD 100 can enable services such as key sharing, which is discussed in more detail below, that facilitate a STA to roam seamlessly (i.e., without having to reassociate with the target AP 105B).

The arrow 115 in FIG. 1 illustrates that the STA 105 has initially associated with the serving AP 110A. When a STA 105 first associates to an AP in a SMD 100 (or more generically, a mobility domain) the station is authorized using, e.g., Simultaneous Authentication of Equals (SAE) or Extensible Authentication Protocol (EAP) as defined in IEEE 802.1x, or pre-shared key (PSK). Once authenticated, the SMD generates a PMK from which a PTK can be generated. This PMK and PTK can be used universally in the SMD (e.g., every AP uses the same PMK and PTK as shown in FIG. 3), the same PMK is used by every AP but every AP uses a different PTK (as shown in FIG. 4), every AP receives a different PMK and PTK (as shown in FIG. 5), or a PTK for the serving AP 110A is used to generate a different PTK for each of the APs (as shown in FIG. 6).

In the embodiments shown in FIGS. 3, 4, and 6, the PTKs are pre-generated (i.e., before the STA 105 decides to roam to the target AP 110B), while in FIG. 5 the PTKs are generated after (or when) the STA 105 decides to roam to the target AP 110B.

FIG. 1 illustrates that a pre-generated PTK 120 can be generated either by the serving AP 110A or a WLAN controller (WLC) 125, as represented by the dashed lines. Further, although not shown in FIG. 1, instead of pushing the pre-generated PTK 120 to the target AP 110B (referred to as a push model), the serving AP 110A or WLC 125 may store the pre-generated PTK 120 in a key store which is accessible by the APs in the SMD, and the target AP 110B can pull the PTK 120 from the key store after learning the STA 105 is roaming to the target AP 110B (referred to as a pull model). In either case, the pre-generated PTK 120 has already been generated so that the STA 105 and the target AP 110B do not have to exchange nonces to generate respective PTKs during the roam, thereby reducing roaming latency.

FIG. 2 is a flowchart of a method 200 for pre-generating a PTK in a SMD, according to one embodiment. At block 205, a STA (also referred to as a client, a non-AP MLD, or a wireless device) associates to a first AP in a SMD.

At block 210, the SMD generates a PTK for exchanging encrypted content with the STA and a second AP in the SMD. That is, the PTK is generated (or computed) before the STA has roamed to the second AP. For example, the STA may still be associated with the first AP (e.g., the serving AP). As such, at block 210, the PTK is referred to a pre-generated or pre-computed PTK since it is generated for use by the second AP (e.g., the target AP) before the STA has roamed to the second AP.

This pre-generated PTK can be generated by the first AP, or could be generated by a controller in the SMD, such as the WLC 125 in FIG. 1. Because the PTK is generated from a PMK, the PMK may be transmitted to whatever actor is tasked with pre-computing the PTK.

While the method 200 describes pre-computing one PTK, the SMD may generate multiple PTKs for multiple target APs. For example, in some embodiments, the SMD pre-computes separate PTKs for a set of potential roaming target APs in the SMD. For instance, the SMD may generate a PTK for each AP in the SMD, or may generate PTKs for a subset of the APs (e.g., only the APs that are neighbors of the first AP currently serving the STA).

After block 210, the method 200 either transmits the PTK to the second AP at block 215 or stores the PTK in a key store at block 220. That is, block 215 is an example of a push model where the pre-computed PTK(s) are pushed to the second AP(s) while block 220 is an example of a pull model where the pre-computed PTK(s) are stored in a key store. When a STA begins to roam to the second AP, the second AP can query the key store to retrieve (i.e., pull) the pre-computed PTK.

At block 225, the STA roams from the first AP to the second AP. The embodiments herein are not limited to any particular seamless roaming process. In one embodiment, the STA can inform the first AP it wishes to roam to the second AP, and the first AP can transfer roaming context to the second AP to perform seamless roaming. This roaming context can include agreements or capabilities, association context, a roaming MAC address (a MAC address used as Transmitter Address (TA) when roaming). In another embodiment, the STA can inform the second AP it wishes to roam to it while the first AP is still the serving AP for the STA (referred to as “roaming through target”). The second AP can then fetch the roaming context from the first AP.

In one embodiment, the transferred context includes the PTK and/or the PMK the second AP can use to communicate securely with the wireless device. That is, the first AP can transfer this information to the second AP (or the second AP can fetch this information from the first AP).

At block 230, the second AP uses the PTK to exchange encrypted content with the STA. The encrypted content can include encrypted data or encrypted management frames. In one embodiment, the second AP does not have to compute the PTK it uses to securely communicate with the STA since the PTK was pre-computed at block 210. The STA 105 can roam without having to reassociate, and without having to renegotiate the PTK (e.g., using a 4-way handshake and an exchange of nonce words).

FIG. 3 is a workflow 300 for pre-generating a universal PTK in a SMD 100, according to one embodiment. The workflow 300 illustrates two different ways to perform an initial authentication between the STA 105 and the SMD 100. Arrow 305 illustrates performing PSK/SAE authorization between the STA 105 and the serving (or first) AP 110A, while arrow 315 illustrates performing 802.1X/EAP authorization between the STA 105 and the serving AP 110A. If using PSK/SAE authorization, this is performed before the STA 105 transmits a (re) association request and the serving AP 110A transmits a response as shown by arrow 310. However, if performing 802.1X/EAP authorization, this authorization is performed after the (re) association request/response shown by the arrow 310.

In either case, after authentication, both the STA 105 and the serving AP 110A generate a PMK-SMD. That is, the PMK-SMD is independently generated on both the STA 105 and the serving AP 110. Alternatively, the PMK-SMD can be generated at a WLC.

In one embodiment, the STA 105 and serving AP 110A receive (or generate) a master PMK (MPMK) which they then use to generate the PMK-SMD. For example, the MPMK can be generated from the MSK (for IEEE 802.1X authentication), the PSK (for password-based authentication) or PMK (for SAE based authentication) as defined in 802.11 standard.

In one embodiment, the STA 105 and the serving AP 110A uses a key derivative function (KDF) from IEEE 802.11 to generate the PMK-SMD:

The KDF can be modified to generate the PMK-SMD as follows:

KDF-Hash-Length is the KDF for the negotiated AKM (Authentication and Key Management) cipher suite. “Hash” indicates the hash algorithm (e.g. SHA-256). “Length” indicates the length of the hash algorithm's digest (e.g. 192 bits, 256 bits etc.). In the previous equation, the inputs to the KDF hash are the MPMK, the string “ST PMK”, service set identifier (SSID) length, a SSID, a MAC Address for the SMD, MAC address for the serving AP 110A, and the SPA (e.g., the MAC address for the STA 105). These inputs are concatenated when input into the hash function.

The “ST-PMK” provides a unique label for PMK-SMD generation, where ST represents “Seamless BSS Transition”. Alternatively, this label can be any other appropriate unique string used for this KDF and could be agreed upon in a standard.

The context string includes the SMD MAC Address to tie the PMK-SMD with the SMD. This string also includes the AP MLD MAC address of the AP MLD generating the PMK-SMD. Plus, it includes the SPA, which is the MAC address of the STA 105.

Alternatively, a shortened SMD ID (SMD Identifier) can be included in the PMK-SMD generation as below:

In another embodiment, the PMK-SMD is not tied to any SMD ID and uses same algorithm as defined in 802.11 standard. As such, using a SMD ID to generate the PMK is not a requirement.

In another embodiment, the PMK-SMD may not be tied to the SSID, e.g. this could be the case when the SMD is defined to include APs that belong to more than one extended service set (ESS)/SSID.

In one embodiment, the PTK-SMD is generated as part of the 4-way handshake executed after the (Re)Association Request/Response exchange between the STA 105 and serving AP 110A, during the initial association of the STA with the SMD 100.

Arrow 320 illustrates the STA 105 and the serving AP 110A performing a 4-way handshake to generate the PTK-SMD. In one embodiment, the PTK-SMD is generated from the PMK-SMD as follows:

The “ST-PTK” label can be set to any other appropriate label for the PTK generation.

Alternative, a shortened SMDID (which can be shorter than a MAC address) can be included instead in the PTK-SMD generation as below:

In another embodiment, the PTK-SMD only includes the SMD MAC Address, and does not include the MLD MAC Address of the serving AP 110A where the PTK-SMD is generated. This ties the PTK-SMD to only the SMD.

In one embodiment, the PTK-SMD gets rekeyed using the Robust Security Network Association (RSNA) rekeying procedure. This rekeying may be performed after roaming has occurred.

Arrow 325 illustrates distributing the PMK-SMD and the PTK-SMD to one or more target APs 110B. Arrow 325 represents a push model where the PMK-SMD and the PTK-SMD are pushed to the target APs 110B where they are installed. In this example, this is done at the time of initial association of the STA 105 with the SMD 100, but can be performed when the STA 105 roams to another AP within the SMD 100.

Arrow 330 illustrates a pull model where the PMK-SMD and the PTK-SMD are transmitted and stored in a key store 360. The key store 360 can then provide the PMK-SMD and the PTK-SMD when requested by one of the target APs 110. For example, when STA 105 initiates roaming to another target AP 110B as shown by arrow 335, and if the PMK-SMD and PTK-SMD are not already installed at the target AP 110B, these keys can be fetched from the key store 360 (as shown by arrow 340) and installed. However, with the push model, the PMK-SMD and the PTK-SMD are already installed at the target AP 110B when the roaming request illustrated by the arrow 335 is received.

While FIG. 3 illustrates the serving AP 110A making the PTK available to the target AP(s) (e.g., distributing the PMK-SMD and the PTK-SMD to either the target APs 110B or to the key store 360), in another embodiment, the WLC may distribute these keys.

The advantage of both the push and pull models shown in FIG. 3 is the target APs 110B do not have to negotiated with the STA 105 to generate PTKs, since the PTK can be pre-computed on both the STA 105 and the target AP 110B. In the pull model, the only latency is the time for the target AP 110B to fetch the pre-computed PMK-SMD and PTK-SMD from the key store 360.

FIG. 3 also illustrates a key hierarchy 350. As shown, a PTK-SMD is generated from a PMK-SMD. Each AP in the SMD uses the same PMK-SMD and PTK-SMD to communicate with the STA 105. When a new STA 105 associates with the SMD 100, a new PMK-SMD and PTK-SMD are generated and distributed as discussed above. That is, every STA associated with the SMD has a different PMK-SMD and PTK-SMD which each of the APs in the SMD 100 use to exchange encrypted content with the respective STAs.

FIG. 4 is a workflow 400 for pre-generating PTKs for each AP in the SMD 100, according to one embodiment. Like in FIG. 3, the workflow 400 in FIG. 4 uses the same PMK-SMD. However, unlike in FIG. 3, the workflow 400 generates different PTKs for the APs in the SMD 100.

Arrow 405 illustrates performing PSK/SAE authorization between the STA 105 and the serving (or first) AP 110A, while arrow 415 illustrates performing 802.1X/EAP authorization between the STA 105 and the serving AP 110A. If using PSK/SAE authorization, this is performed before the STA 105 transmits a (re) association request and the serving AP 110A transmits a response as shown by arrow 410. However, if performing 802.1X/EAP authorization, this authorization is performed after the (re) association request/response shown by the arrow 410.

In either case, after authentication, both the STA 105 and the serving AP 110A generate a PMK-SMD. That is, the PMK-SMD is independently generated on both the STA 105 and the serving AP 110. Alternatively, the PMK-SMD can be generated at a WLC. The PMK-SMD can be generated using any of the techniques and equations discussed above in FIG. 3.

Arrow 420 illustrates the STA 105 and the serving AP 110A performing a 4-way handshake to generate a root PTK (i.e., PTK-SMD-R0) at both the STA 105 and the serving AP 110A. The serving AP 110A (or a WLC) can use the root PTK-SMD-R0 to generate respective PTKs (i.e., PTK-R1 keys) for one or more target APs 110B. That is, the workflow 400 has two levels of PTK-SMD keys: a PTK-SMD-R0 and PTK-R1 keys. In one embodiment, the PTK-R0 Key Holder is the AP that generates the PTK-SMD-R0 (the serving AP 110A in this example, but could be the WLC). The PTK-R1 Key Holder is the AP that is the holder of that PTK-R1 (e.g., the serving AP 110A).

A single PTK-SMD-R0 is generated as below by the PTK-R0 Key Holder. The PTK-SMD-R0 can have the same validity/expiry period as the PMK-SMD.

where PTK-R0-KH MAC Address is the MAC Address of the AP where the PTK-SMD-R0 is generated.

In another embodiment, the PTK-SMD-R0 only includes the SMD MAC Address and does not include the MLD MAC Address of the AP where the PTK-SMD-R0 is generated (e.g., the serving AP 110A). This ties the PTK-SMD-R0 to only the SMD:

A set of PTK-R1 keys can be derived from the PTK-SMD-R0 by the R0 Key Holder, one for each of the APs of the SMD 100 as follows:

where PTK-R1-KH MAC Address is the MLD MAC Address of the AP for which the PTK-R1 is generated (holder of the PTK-R1).

The PTK-R1 keys can have shorter expiry period and get rekeyed using the RSNA rekeying procedure.

Each PTK-R1 does not have to be tied to the SMD MAC Address explicitly. Also, the generation of different PTK-R1 keys for each of the APs of the SMD 100 does not require a new set of nonce exchanges between the STA 105 and the corresponding target AP 110B. Once the PTK-R1 keys are generated, these can be installed on the corresponding target APs 110B which are the PTK-R1 Key holders. Moreover, a PTK-R1 can get rekeyed using the existing RSNA rekeying procedure.

Arrow 425 illustrates distributing the PMK-SMD and the PTK-R1 keys to one or more target APs 110B. That is, each target AP 110B gets the same PMK-SMD, but a different PTK-R1 key. Arrow 325 represents a push model where the PMK-SMD and the PTK-R1 keys are pushed to the target APs 110B where they are installed. In this example, this is done at the time of initial association of the STA 105 with the SMD 100, but can be performed when the STA 105 roams to another AP within the SMD 100.

Arrow 430 illustrates a pull model where the PMK-SMD and the PTK-R1 keys are transmitted and stored in a key store 360. The key store 360 can then provide the PMK-SMD and the PTK-R1 keys when requested by one of the target APs 110. For example, when STA 105 initiates roaming to another target AP 110B as shown by arrow 435, and if the PMK-SMD and its corresponding PTK-R1 key are not already installed at the target AP 110B, these keys get fetched from the key store 360 as shown by arrow 440 and installed. However, with the push model, the PMK-SMD and the PTK-R1 keys are already installed at the target AP 110B when the roaming request illustrated by the arrow 435 is received.

While FIG. 4 illustrates the serving AP 110A distributing the PMK-SMD and the PTK-R1 keys to either the target APs 110B or to the key store 360, in another embodiment, the WLC may distribute these keys.

Moreover, as shown, the STA 105 still locally generates a PTK-R1 to use when communicating with the target AP 110B but the STA 105 can generate the PTK-R1 without having to do any exchange with the target AP 110B, which means roaming does not need additional exchanges such as the case with FT. The STA 105 can generate the PTK-R1 from the locally generated root PTK-SMD-R0, which was in turn derived from the PMK-SMD. Advantageously, roaming can be performed with two frame exchanges (e.g., a roaming request and a roaming response). Moreover, the STA 105 can generate its PTK-R1 after it determines to roam to the target AP 110B, or can pre-compute its PTK-R1 before the STA 105 decides to roam.

FIG. 4 also illustrates a key hierarchy 450. As shown, a root PTK-SMD-R0 is generated from a PMK-SMD. Each AP in the SMD uses a different PTK-R1 (i.e., PTK-R1A, PTK-R1B, etc.) to communicate with the STA 105. When a new STA 105 associates with the SMD 100, a new PMK-SMD, root PTK-SMD-R0, and PTK-R1's are generated and distributed as discussed above. That is, every AP uses a different PTK-R1 to exchange encrypted content with the respective STAs.

FIG. 5 is a workflow 500 for generating PMKs and PTKs for each AP in the SMD 100, according to one embodiment. Unlike in FIGS. 3 and 4, in workflow 500 the PTKs for the APs are not pre-computed, but the PMKs are pre-computed and distributed to the other APs before the STA 105 roams.

Arrow 505 illustrates performing PSK/SAE authorization between the STA 105 and the serving (or first) AP 110A, while arrow 515 illustrates performing 802.1X/EAP authorization between the STA 105 and the serving AP 110A. If using PSK/SAE authorization, this is performed before the STA 105 transmits a (re) association request and the serving AP 110A transmits a response as shown by arrow 510. However, if performing 802.1X/EAP authorization, this authorization is performed after the (re) association request/response shown by the arrow 510.

In either case, after authentication, both the STA 105 and the serving AP 110A generate a root PMK-SMD-R0, and a PMK-R1. The root PMK-SMD-R0 can be generated using the same techniques to generate the PMK-SMD described in FIGS. 3 and 4.

In addition, the serving AP 110A generates PMK-R1 key(s) for one or more target APs 110B in the SMD 100. That is, unlike in FIGS. 3 and 4 where the same master PMK (i.e., the PMK-SMD) is used by each AP, here, a different master PMK is generated for each AP in the SMD 100 on a per STA/client basis. The different PMK-R1 keys can be derived from root PMK-SMD-R0 as follows:

where PMK-R1-KH MAC Address is the MLD MAC Address of the AP for which the PMK-R1 is generated (holder of the PMK-R1 which is the serving AP 110A in this example).

Arrow 520 illustrates the STA 105 and serving AP 110A performing a 4-way handshake to generate PTK-R1. The generation of PTK-R1 for the first serving AP 110A where initial (re) association happens may include Nonce values from the two sides (Authenticator and Supplicant) as follows:

Where PTK-R1-KH MAC Address is the MLD MAC Address of the AP for which the PTK-R1 is generated (holder of the PTK-R1). The STA 105 and the serving AP 110A can then use the PMK-R1 and the PTK-R1 to exchange encrypted content.

Arrow 525 illustrates the serving AP 110A distributing the PMK-R1's to the target APs 110B. For clarity, the key store is not shown in FIG. 5, but the PMK-R1's could instead be stored in the key store when using a pull model instead of a push model.

Arrow 530 illustrates the STA 105 instructing the serving AP 110A to initiate roaming preparation. In response, as shown by the arrow 535, the serving AP 110A can inform the target APs 110B that the STA 105 may roam to them. For example, the serving AP 110A can provide information to the target APs 110B about the STA 105 (e.g., the SPA of the STA 105) so the APs 110B can generate the PTK-R1 for communicating with the STA 105.

The target APs 110B use their respective PMK-R1 (and the information received from the serving AP 110A) to locally generate PTK-R1's to communicate with the STA 105. In one embodiment, the target APs 110B derive the PTK-R1s without explicit Nonce exchange with the STA 105. The PTK-R1's can be derived as follows:

Note that given the generation of the subsequent PTK-R1 keys for the target AP can be done without requiring Nonce exchange between the STA 105 and the target APs 110B. The subsequent PTK-R1s can be independently generated by the STA 105 and the target AP 110B. This ensures that different PTKs are used for each target AP 110B without requiring negotiation for generation of a new PTK for the target AP 110B.

Arrow 540 illustrates the serving AP 110A informing the STA 105 that roaming preparation is complete. This informs the STA 105 that the target APs 110B now have PTK-R1's that enable secure communication with the STA 105.

Arrow 545 illustrates the STA 105 informing the serving AP 110A which target AP 110B it wants to roam to. In response, the serving AP 110A can transfer roaming context to the selected target AP 110B as shown by arrow 550. Arrow 555 illustrates the serving AP 110A indicating to the STA 105 that the context transfer is complete. At this time (or before this time), the STA 105 locally generates the PTK-R1 key.

The PMK-R1 and PTK-R1 keys have now been generated and installed at both the STA 105 and the target AP 110B, so secure uplink (UL) and downlink (DL) exchange can occur as shown by arrow 560.

FIG. 5 also illustrates a key hierarchy 590 where different PMK and PTK keys are generated for each AP MLD of the SMD. That is, AP MLD A has different PMK and PTK keys for communicating with a STA than AP MLD B, and so forth. This means different PMK-R1 and PTK-R1 keys are generated for each AP MLD of the SMD. A PMK-SMD-R0 is generated at the SMD level.

FIG. 6 is a workflow 600 for pre-generating PTKs for each AP in the SMD 100, according to one embodiment. In this example, a single PMK is generated like in FIGS. 3 and 4, but a different PTK is generated for each AP.

Arrow 605 illustrates performing PSK/SAE authorization between the STA 105 and the serving (or first) AP 110A, while arrow 615 illustrates performing 802.1X/EAP authorization between the STA 105 and the serving AP 110A. If using PSK/SAE authorization, this is performed before the STA 105 transmits a (re) association request and the serving AP 110A transmits a response as shown by arrow 610. However, if performing 802.1X/EAP authorization, this authorization is performed after the (re) association request/response shown by the arrow 610.

In either case, after authentication, both the STA 105 and the serving AP 110A generate a root PMK-SMD. The PMK-SMD can be generated using the same techniques to generate the PMK-SMD described in FIGS. 3 and 4.

Arrow 620 illustrates the STA 105 and the serving AP 110A performing a 4-way handshake to generate a PTK at both the STA 105 and the serving AP 110A. This initial PTK generated when the STA 105 first associates with the SMD 100 is referred to as PTKcurrent and can be generated as follows:

Note that PTKcurrent is not tied to a SMD MAC address in this example.

Arrow 625 illustrates the STA 105 instructing the serving AP 110A to initiate roaming preparation. In response, the serving AP generates PTKs for one or more target APs from PTKcurrent. For example, the serving AP (or the WLC) uses PTKcurrent to generate a PTK for each target AP (referred to as PTKtarget) using the following equation:

Notably, this calculation of PTKtarget does not require another nonce exchange.

The PTK(s) for one or more target APs is generated by the current serving AP 110A and distributed/installed on the target APs 110B as part of the roaming procedure as shown by arrow 635. Like above, instead of pushing the PTKs to the target APs 110B, they can instead be stored in a key store (not shown) and then pulled from the key store when a target AP 110B is informed that the STA 105 is roaming to it.

Arrow 640 illustrates the STA 105 informing the serving AP 110A which target AP 110B it wants to roam to. In response, the serving AP 110A can transfer roaming context to the selected target AP 110B as shown by arrow 645. Arrow 650 illustrates the serving AP 110A indicating to the STA 105 that the context transfer is complete. At this time (or before this time), the STA 105 can locally generate the PTK (i.e., the PTKtarget for the selected target AP 110B).

The PTKtarget keys have now been generated and installed at both the STA 105 and the target AP 110B, so secure uplink (UL) and downlink (DL) exchange can occur as shown by arrow 655.

FIG. 6 also illustrates a key hierarchy 660. A PMK is used to generate the PTKcurrent for the AP the STA 105 initially associates with in the SMD 100. This first AP can then use PTKcurrent to pre-compute different PTKtarget keys for the target APs in the SMD. That is, AP MLD A has a different PTKtarget than AP MLD B, and so forth. In this manner, the PTKs for the target APs are derived from the PTK of the initial AP, rather than a PMK.

In any of the embodiments illustrated in FIGS. 3-6, after roaming is executed and any buffered DL data has been delivered/fetched (or timed out) from the serving AP 110A, an RSNA rekeying operation can be initiated to refresh the PTK (with SNonce and ANonce exchanged between STA and AP) at the new target AP 110B. The PTK rekeying can be initiated either by the new target AP 110B or by the STA 105 using any suitable PTK rekeying mechanism.

Moreover, in any of the key generation algorithms above, the Label string can be changed to any other appropriate string for the key generation.

Note that each of the embodiments above do not require additional negotiation between the STA 105 and the AP for regeneration of keys as part of the roaming execution phase, thus avoiding any key negotiation delay for seamless roaming and providing faster roaming execution.

FIG. 7 depicts an example computing device configured to perform various aspects of the present disclosure, according to one embodiment. Although depicted as a physical device, in embodiments, the computing device 700 may be implemented using virtual device(s), and/or across a number of devices (e.g., in a cloud environment). In one embodiment, the computing device 700 corresponds to a network device (e.g., a computing system), such as the APs 110 or the STA 105.

As illustrated, the computing device 700 includes a CPU 705 (one or more processors), memory 710 (or memories), storage 715, a network interface 725, and one or more input/output (I/O) interfaces 720. In the illustrated embodiment, the CPU 705 retrieves and executes programming instructions stored in memory 710, as well as stores and retrieves application data residing in storage 715. The CPU 705 is generally representative of a single CPU and/or GPU, multiple CPUs and/or GPUs, a single CPU and/or GPU having multiple processing cores, and the like. The memory 710 is generally included to be representative of a random access memory. Storage 715 may be any combination of disk drives, flash-based storage devices, and the like, and may include fixed and/or removable storage devices, such as fixed disk drives, removable memory cards, caches, optical storage, network attached storage (NAS), or storage area networks (SAN).

In some embodiments, I/O devices 735 (such as keyboards, monitors, etc.) are connected via the I/O interface(s) 720. Further, via the network interface 725, the computing device 700 can be communicatively coupled with one or more other devices and components (e.g., via a network, which may include the Internet, local network(s), and the like). As illustrated, the CPU 705, memory 710, storage 715, network interface(s) 725, and I/O interface(s) 720 are communicatively coupled by one or more buses 730.

The memory 710 can include software programs or application for generating PMKs and PTKs as discussed above in FIGS. 1-6. Although shown as residing in memory 710, in embodiments, the operations of discussed above (and others not illustrated) may be implemented using hardware, software, or a combination of hardware and software.