Secure key exchange with mutual authentication
First Claim
1. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to:
- perform, in a single roundtrip over a network, a key exchange with a device on the network achieving both mutual authentication with the device and perfect forward secrecy.
2 Assignments
0 Petitions
Accused Products
Abstract
A secure key exchange with mutual authentication allows devices on a network to perform, in a single roundtrip over the network, the exchange. A key exchange initiator packet that does not include a key to be established is sent from an initiating device to another device via a network. The key exchange initiator packet is validated and the other device generates the key without requiring any additional packets to be received from the initiating device in order to generate the key. A key exchange response packet that does not include the key is returned to the initiating device, which validates the key exchange response packet and generates the key without requiring any additional packets to be sent to the other device or received from the other device.
-
Citations
69 Claims
-
1. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to:
perform, in a single roundtrip over a network, a key exchange with a device on the network achieving both mutual authentication with the device and perfect forward secrecy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A method, implemented in a device, comprising:
communicating, with another device via a single roundtrip over a network, to securely exchange a security key and to mutually authenticate the devices as well as achieve perfect forward secrecy. - View Dependent Claims (15, 16)
-
17. A method, implemented in a game console, of establishing a mutual key for use in communications with a device, the method comprising:
-
sending, to the device via a network, a key exchange initiator packet that does not include the mutual key;
receiving, from the device via the network, a key exchange response packet that does not include the mutual key;
validating the key exchange response packet; and
generating, based at least in part on data in the key exchange response packet, the mutual key without requiring any additional packets to be sent to the device or received from the device in order to generate the mutual key. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A method of establishing a key for use in communications with a game console, the method comprising:
-
receiving, from the game console via a network, a key exchange initiator packet that does not include the key;
validating the key exchange initiator packet;
generating, based at least in part on data in the key exchange initiator packet, the key without requiring any additional packets to be received from the game console in order to generate the key; and
sending, to the game console via the network, a key exchange response packet that does not include the key. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. A method, implemented in a game console to initiate establishing a key to be used in subsequent secure communications between the game console and a server device, the method comprising:
-
generating a key exchange initiator message;
computing a digest of the key exchange initiator message;
generating, based at least in part on the digest, an authenticator;
encrypting the authenticator;
generating a key exchange initiator packet that includes the key exchange initiator message, the encrypted authenticator, and a security ticket; and
sending the key exchange initiator packet to the server device. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A method, implemented in a server device establishing a key to be used in subsequent secure communications between the server device and a game console, the method comprising:
-
receiving, from the game console, a key exchange initiator packet;
decrypting a security ticket in the key exchange initiator packet;
decrypting an authenticator in the key exchange initiator packet;
computing a digest of a key exchange message in the key exchange initiator packet; and
determining that the key exchange initiator packet is valid only if all of the following conditions are satisfied;
the security ticket is not stale, a timestamp in the authenticator is acceptable, the computed digest of the key exchange message is equal to a digest value included as part of the authenticator, and the authenticator has not been replayed. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
-
44. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a server device in establishing a key to be used in subsequent secure communications between the server device and a game console, causes the one or more processors to:
-
receive a key exchange initiator packet;
decrypt a security ticket in the key exchange initiator packet;
check whether a current time is within a range of times identified in the security ticket, and indicate the key cannot be established if the current time is not within the range of times identified in the security ticket;
decrypt an authenticator in the key exchange initiator packet;
check whether a timestamp in the authenticator is within a threshold amount of time of the current time, and indicate the key cannot be established if the timestamp is not within the threshold amount of time of the current time;
compute a digest value of a key exchange message in the key exchange initiator packet; and
check whether the computed digest value is equal to a digest value included as part of the authenticator, and indicate that the key cannot be established if the computed digest value is not equal to the digest value included as part of the authenticator. - View Dependent Claims (45, 46, 47)
-
-
48. A method, implemented in a server device establishing a key to be used in subsequent secure communications between the server device and a game console, the method comprising:
-
generating a key exchange response message;
computing a digest of the key exchange response message;
generating a reply message;
encrypting the reply message;
generating a key exchange response packet including both the key exchange response message and the encrypted reply message; and
sending the key exchange response packet to the game console. - View Dependent Claims (49, 50, 51, 52, 53, 54)
-
-
55. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors in establishing a key to be used in subsequent secure communications between the server device and a game console, causes the one or more processors to:
-
generate a key exchange response message;
compute a digest of the key exchange response message;
generate a reply message that includes the digest and a timestamp previously received from the game console;
encrypt the reply message;
generate a key exchange response packet including both the key exchange response message and the encrypted reply message; and
send the key exchange response packet to the game console. - View Dependent Claims (56, 57, 58, 59, 60)
-
-
61. A method, implemented in a game console establishing a key to be used in subsequent secure communications between the game console and a server device, the method comprising:
-
receiving, from the server device, a key exchange response packet;
decrypting a reply message included in the key exchange response packet;
checking whether a timestamp in the reply message is the same as a timestamp previously sent by the game console to the server device;
computing a digest value of a key exchange response message included in the key exchange response packet; and
determining that the key exchange response packet is valid only if the timestamp in the reply message is the same as the timestamp previously sent by the game console to the server device, and if the computed digest value of the key exchange response packet is the same as a digest value included in the key exchange response packet. - View Dependent Claims (62, 63, 64)
-
-
65. A system comprising:
-
a client device configured to obtain a session key from a key distribution center; and
a server device, coupled to the client device via a network, configured to communicate with the client device and, in a single roundtrip over the network, securely exchange a key and mutually authenticate one another as well as achieve perfect forward secrecy. - View Dependent Claims (66, 67, 68, 69)
-
Specification