IP Library Granted Patent US 11,917,407
Granted Patent B2
US 11,917,407 · App. 17/410,933 · Granted Feb 27, 2024

Key matching for EAPOL handshake using distributed computing

Inventors: Muir Lee Harding (Lake Oswego, OR); Benjamin Corliss (Portland, OR); Sorawis Nilparuk (Portland, OR)
Assignee: ELEVEN SOFTWARE INC.
H04W12/069
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,917,407
App. No.
17/410,933
Granted
Feb 27, 2024
Kind
B2
Abstract

Embodiments herein relate to the field of communications, and more particularly to key matching for extensible authentication protocol over local area network (EAPOL) handshaking using distributed computing. Other embodiments may be described and claimed.

Claims (46)

1. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a computing device to:

receive a match request from an access point of a local area network (LAN) as part of an extensible authentication protocol over LAN (EAPOL) process associated with a client device, the match request including an offered key provided by the client device, a station nonce (SNonce) value generated by the client device, and an access point nonce (ANonce) value generated by the access point;

determine a number of keys that are potentially valid for authentication with the LAN;

determine indexing information based on the number of keys, the indexing information to allocate the keys into a plurality of partitions based on a portion of the respective keys;

send the offered key, the indexing information for the respective partitions, the SNonce value, and the ANonce value to a plurality of computation elements to perform matching with the respective partitions of keys, wherein the client device is not included in the plurality of computation elements; and

receive, from a first computation element from the plurality of computation elements, an indication of a match.

2. The one or more non-transitory computer-readable media of claim 1 , wherein the indexing information is determined based further on a computational capacity of the plurality of computation elements.

3. The one or more non-transitory computer-readable media of claim 1 , wherein the portion of the respective keys is a prefix of the respective keys.

4. The one or more non-transitory computer-readable media of claim 1 , wherein the media further stores instructions to cause the computing device to determine a size of the portion of the key based on the number of keys.

5. The one or more non-transitory computer-readable media of claim 4 , wherein the media further stores instructions to cause the computing device to:

determine a minimum number of computation elements needed to perform the matching based on the number of keys; and

determine a size of the portion of the key based on a base-N log function of the minimum number, wherein N is a number of possible values of individual elements of the portion of the key.

6. The one or more non-transitory computer-readable media of claim 5 , wherein the individual elements are bits and N is 2.

7. The one or more non-transitory computer-readable media of claim 1 , wherein the SNonce value and the ANonce value are included in key information used to generate the offered key, and wherein the key information further includes one or more of: a media access control (MAC) address of the access point, a MAC address of the client device, or a service set identifier (SSID) of the LAN.

8. The one or more non-transitory computer-readable media of claim 1 , wherein the keys are pairwise master keys (PMKs) or pre-shared keys (PSKs) and:

the PMKs are associated with a same SSID and different PSKs; or

the indication of the match includes a matching PSK or PMK.

9. The one or more non-transitory computer-readable media of claim 1 , wherein the media further stores instructions to cause the computing device to provide a match result to the access point based on the indication of the match.

10. The one or more non-transitory computer-readable media of claim 9 , wherein the media further stores instructions to cause the computing device to determine a value associated with a virtual local area network (VLAN), wherein the value associated with the VLAN is included in the match result.

11. The one or more non-transitory computer-readable media of claim 10 , wherein determining the value associated with the VLAN includes:

determining no VLAN is currently assigned to a key; and

assigning a VLAN to the key from a pool for subsequent key match requests.

12. The one or more non-transitory computer-readable media of claim 10 , wherein determining the value associated with the VLAN includes identifying a VLAN that is currently assigned to a key.

13. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a computing device to:

receive a batch of messages that include scope information and service set identifier (SSID) information;

determine, based on the scope information and SSID information, a maximum number of pre-shared keys (PSKs) to be searched;

determine a key partition prefix associated with the PSKs;

send the batch of messages and the key partition prefix to a set of matching workers to search the PSKs; and

receive, from the set of matching workers, a set of matching keys associated with the PSKs.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the PSKs have a common scope and SSID.

15. The one or more non-transitory computer-readable media of claim 13 , wherein the batch of messages originate from a plurality of access points.

16. The one or more non-transitory computer-readable media of claim 13 , wherein the batch of messages are received from a user datagram protocol (UDP) layer.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the instructions are further to cause the computing device to: send the set of matching keys associated with the PSKs to the UDP layer.

18. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause one or more computation elements to:

receive a request for concurrent processing of key partitions from a key matching manager;

determine, based on the request for concurrent processing, extra information associated with one or more pre-shared keys (PSKs) associated with the request for concurrent processing;

identify, based on the extra information, a subset of PSKs associated with the request for concurrent processing having a likelihood of matching that is above a predetermined threshold;

retrieve the subset of PSKs from a key storage server; and

determine a match result for the subset of PSKs.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the extra information includes information that is: associated with a communication protocol associated with the request for concurrent processing, included in a hypertext transport protocol (HTTP) header, included in an attribute value pair (AVP), or included in a vendor-specific attribute (VSA).

20. The one or more non-transitory computer-readable media of claim 18 , wherein the extra information includes a basic server set identifier (BSSID) associated with an access point.

21. The one or more non-transitory computer-readable media of claim 18 , wherein identifying the subset of PSKs includes comparing a respective attribute in each respective PSK to the extra information.

22. The one or more non-transitory computer-readable media of claim 18 , wherein determining the match result for the subset of PSKs includes finding at least one match within the subset of PSKs.

23. The one or more non-transitory computer-readable media of claim 18 , wherein determining the match result for the subset of PSKs includes finding no matches within the subset of PSKs, and wherein the memory further stores instructions to cause the one or more computation elements to:

retrieve a remainder of PSKs from the key storage server; and

determine a match result for the remainder of PSKs.

Assignments (2)
SECURITY INTEREST Recorded Apr 26, 2022
From: ELEVEN SOFTWARE INC.
To: BAIN CAPITAL CREDIT, LP
Reel/Frame 059729/0374 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2021
From: HARDING, MUIR LEE; CORLISS, BENJAMIN; NILPARUK, SORAWIS
To: ELEVEN SOFTWARE INC.
Reel/Frame 057277/0027 →
Continuity (2)
Provisional Application 63069553 · Aug 24, 2020
Related Publication 20220060899A1 · Feb 24, 2022
Cited By (1)
US 12,401,995