IP Library Granted Patent US 9,621,545
Granted Patent B2
US 9,621,545 · App. 14/799,392 · Granted Apr 11, 2017

System and method for connecting client devices to a network

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 9,621,545
App. No.
14/799,392
Filed
Jul 14, 2015
Granted
Apr 11, 2017
Kind
B2
Art Unit
2497
USPC
726/4
Abstract

A system and method are provided for enabling a client device to connect to a network. The method comprises: obtaining an authorization code via a communication channel different from the network, the authorization code corresponding to the client device; and after detecting initiation of a security negotiation protocol by the client device, using the authorization code in at least one security negotiation operation.

Claims (37)

1. A method of enabling a client device to connect to a network, the method comprising:

obtaining, at a server device and from the client device, an authorization code via an out-of-band communication channel different from the network, the authorization code corresponding to the client device, the authorization code being used in at least one of a PRF ( ) function, a key exchange during establishment of a transport layer security (TLS) session, or a key derivation step during establishment of the TLS session; and

after detecting initiation of a security negotiation protocol by the client device, using the authorization code in at least one cryptographic operation during establishment of the TLS session by modifying the security negotiation protocol to utilize the authorization code, wherein modifying the security negotiation protocol to utilize the authorization code comprises:

obtaining a negotiated secret elliptic curve point based on the authorization code;

generating a modified elliptic curve point by multiplying the negotiated secret elliptic curve point by the authorization code; and

using a coordinate of the modified elliptic curve point for verifying the authorization code during the establishment of the TLS session.

2. The method of claim 1 , further comprising allowing the client device to access at least one network resource when the security negotiation is successful.

3. The method of claim 1 , further comprising obtaining a public key of the client device and using the public key and the authorization code in authenticating the client device to a server device.

4. The method of claim 3 , the public key of the client device being provided in a digital certificate.

5. The method of claim 1 , the authorization code being used in generating at least one of a master_secret, a key_block, and a pre_master_secret generated during establishment of the TLS session.

6. The method of claim 5 , the authorization code being used in establishing the TLS session by:

forming the pre_master_secret from an x-coordinate of the modified elliptic curve point.

7. The method of claim 1 , further comprising using the authorization code in establishing a key subsequent to completing a secure session using the security negotiation protocol.

8. A non-transitory computer readable storage medium comprising computer executable instructions for enabling a client device to connect to a network, the computer executable instructions comprising instructions for:

obtaining, at a server device and from the client device, an authorization code via an out-of-band communication channel different from the network, the authorization code corresponding to the client device, the authorization code being used in at least one of a PRF ( ) function, a key exchange during establishment of a transport layer security (TLS) session, or a key derivation step during establishment of the TLS session; and

after detecting initiation of a security negotiation protocol by the client device, using the authorization code in at least one cryptographic operation during establishment of the TLS session by modifying the security negotiation protocol to utilize the authorization code, wherein modifying the security negotiation protocol to utilize the authorization code comprises:

obtaining a negotiated secret elliptic curve point based on the authorization code;

generating a modified elliptic curve point by multiplying the negotiated secret elliptic curve point by the authorization code; and

using a coordinate of the modified elliptic curve point for verifying the authorization code during the establishment of the TLS session.

9. The non-transitory computer readable storage medium of claim 8 , wherein the computer executable instructions further comprise instructions for allowing the client device to access at least one network resource when the security negotiation is successful.

10. The non-transitory computer readable storage medium of claim 8 , wherein the computer executable instructions further comprise instructions for obtaining a public key of the client device and using the public key and the authorization code in authenticating the client device to a server device.

11. The non-transitory computer readable storage medium of claim 10 , wherein the public key of the client device is provided in a digital certificate.

12. The non-transitory computer readable storage medium of claim 8 , the authorization code being used in generating at least one of a master_secret, a key_block, and a pre_master_secret generated during establishment of the TLS session.

13. The non-transitory computer readable storage medium of claim 12 , the authorization code being used in establishing the TLS session by:

forming the pre_master_secret from an x-coordinate of the modified elliptic curve point.

14. A server device comprising a processor, and a memory, the memory comprising computer executable instructions for enabling a client device to connect to a network by operating the processor to:

obtain, from the client device, an authorization code via an out-of-band communication channel different from the network, the authorization code corresponding to the client device, the authorization code being used in at least one of a PRF ( ) function, a key exchange during establishment of a transport layer security (TLS) session, or a key derivation step during establishment of the TLS session; and

after detecting initiation of a security negotiation protocol by the client device, use the authorization code in at least one cryptographic operation during establishment of the TLS session by modifying the security negotiation protocol to utilize the authorization code, wherein modifying the security negotiation protocol to utilize the authorization code comprises:

obtaining a negotiated secret elliptic curve point based on the authorization code;

generating a modified elliptic curve point by multiplying the negotiated secret elliptic curve point by the authorization code; and

using a coordinate of the modified elliptic curve point for verifying the authorization code during the establishment of the TLS session.

15. The server device of claim 14 , wherein the computer executable instructions operate the processor to allow the client device to access at least one network resource when the security negotiation is successful.

16. The server device of claim 14 , wherein the computer executable instructions operate the processor to obtain a public key of the client device and use the public key and the authorization code in authenticating the client device to a server device.

17. The server device of claim 16 , wherein the public key of the client device is provided in a digital certificate.

18. The method of claim 1 , wherein obtaining a negotiated secret elliptic curve point based on the authorization code comprises:

obtaining an output of a HASH function based on the authorization code; and

mapping the output to an elliptic curve point on the negotiated secret elliptic curve.