Systems and methods for “machine-to-machine” (M2M) communications between modules, servers, and an application using public key infrastructure (PKI)
First Claim
1. A method for supporting machine-to-machine communications, the method performed by a server, the method comprising:
- authenticating a first message, wherein the first message includes (i) a first module public key with a first module public key identity, (ii) a module identity that comprises a first string, and (iii) a first source Internet protocol address and port (IP;
port) number;
receiving a module instruction and the module identity from an application server;
receiving a second message, wherein the second message includes a module encrypted data, the module identity, and a second source IP;
port number, wherein the first source IP;
port number and the second source IP;
port number differ from one another, wherein the module identity in the second message includes a second string, and wherein the first string and the second string are associated with a serial number of a module;
sending a first response to the second source IP;
port number after receiving the second message, wherein the server receives the second message after receiving the module instruction, wherein the first response includes a server encrypted data, wherein the server encrypted data is ciphered using the first module public key, and wherein the server encrypted data includes the module instruction and a security token;
sending a second response, wherein the second response includes (i) a key generation command for generating a public key infrastructure (PKI) key pair and (ii) a set of cryptographic parameters, and wherein the generated PKI key pair is used for authentication;
using the first module public key to authenticate a third message after sending the second response, wherein the third message includes a second module public key with a second module public key identity and the module identity; and
,authenticating a fourth message, wherein the fourth message includes the module identity, the second module public key identity, a third source IP;
port number, and a module digital signature, wherein the server authenticates the module digital signature using the authenticated second module public key, and wherein the third source IP;
port number and the second source IP;
port number differ from one another.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are provided for supporting efficient and secure “Machine-to-Machine” (M2M) communications using a module, a server, and an application. A module can communicate with the server by accessing the Internet, and the module can include a sensor and/or an actuator. The module, server, and application can utilize public key infrastructure (PKI) such as public keys and private keys. The module can internally derive pairs of private/public keys using cryptographic algorithms and a first set of parameters. A server can authenticate the submission of derived public keys and an associated module identity. The server can use a first server private key and a second set of parameters to (i) send module data to the application and (ii) receive module instructions from the application. The server can use a second server private key and the first set of parameters to communicate with the module.
-
Citations
22 Claims
-
1. A method for supporting machine-to-machine communications, the method performed by a server, the method comprising:
-
authenticating a first message, wherein the first message includes (i) a first module public key with a first module public key identity, (ii) a module identity that comprises a first string, and (iii) a first source Internet protocol address and port (IP;
port) number;receiving a module instruction and the module identity from an application server; receiving a second message, wherein the second message includes a module encrypted data, the module identity, and a second source IP;
port number, wherein the first source IP;
port number and the second source IP;
port number differ from one another, wherein the module identity in the second message includes a second string, and wherein the first string and the second string are associated with a serial number of a module;sending a first response to the second source IP;
port number after receiving the second message, wherein the server receives the second message after receiving the module instruction, wherein the first response includes a server encrypted data, wherein the server encrypted data is ciphered using the first module public key, and wherein the server encrypted data includes the module instruction and a security token;sending a second response, wherein the second response includes (i) a key generation command for generating a public key infrastructure (PKI) key pair and (ii) a set of cryptographic parameters, and wherein the generated PKI key pair is used for authentication; using the first module public key to authenticate a third message after sending the second response, wherein the third message includes a second module public key with a second module public key identity and the module identity; and
,authenticating a fourth message, wherein the fourth message includes the module identity, the second module public key identity, a third source IP;
port number, and a module digital signature, wherein the server authenticates the module digital signature using the authenticated second module public key, and wherein the third source IP;
port number and the second source IP;
port number differ from one another. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for supporting machine-to-machine communications, the method performed by a server, the method comprising:
-
authenticating a first message, wherein the first message includes a first module public key and a module identity that comprises a first string, wherein the server sends a first security token before receiving the first message, and wherein the server uses the first module public key to authenticate a second message; receiving the second message, wherein the second message includes (i) the module identity, (ii) a module encrypted data, and (iii) a first source Internet Protocol address and port (IP;
port) number, wherein the module encrypted data includes a sensor measurement and the first security token, wherein the module identity in the second message comprises a second string, and wherein the first string and the second string are associated with a serial number of a module;reading the sensor measurement by decrypting the module encrypted data using a first server private key; using a secure connection and a second server private key to send the sensor measurement and the module identity to an application server; sending a response, wherein the response includes a key generation command and a set of parameters for a public key infrastructure (PKI) key pair generation algorithm; authenticating a third message using the authenticated first module public key, wherein the third message includes (i) a second module public key, (ii) the module identity, (iii) a module public key identity, and (iv) a second source IP;
port number, wherein the first source IP;
port number and the second source IP;
port number differ from one another, wherein the first module public key and the second module public key differ from one another, and wherein the second module public key is formatted with the set of parameters; and
,authenticating a fourth message using the authenticated second module public key, wherein the fourth message includes the module public key identity, the module identity, and a second security token. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for supporting machine-to-machine communications, the system comprising:
-
a memory for recording a set of cryptographic algorithms, wherein the cryptographic algorithms (i) use a first server private key associated with a first set of parameters, (ii) use a second server private key associated with a second set of parameters, and (iii) authenticate a first message, wherein the first message includes a module public key and a module identity that comprises a first string; a hardware processor for; receiving at a destination Internet Protocol address and port (IP;
port) number a first security token in a second message, wherein the second message further includes the module identity, wherein the module identity in the second message comprises a second string, and wherein the first string and the second string are associated with a serial number of a module,sending (i) a server digital signature for the first security token using the first server private key and (ii) a second security token, receiving a module encrypted data and the module identity, wherein the module encrypted data includes a sensor measurement and the second security token, deriving a symmetric ciphering key using the first server private key and the authenticated module public key, using the derived symmetric ciphering key to decrypt the module encrypted data, ciphering a module instruction within a server encrypted data, wherein the module instruction is ciphered using the derived symmetric ciphering key, and, after (a) receiving a third message which includes (i) the module identity, (ii) a source IP;
port number, and (iii) the destination IP;
port number, then (b) sending the ciphered module instruction to the source IP;
port number from the destination IP;
port number; and
,a physical interface for establishing a secure connection with an application using the second server private key and the second set of parameters, for sending the sensor measurement and the module identity to the application via the secure connection, and for receiving the module instruction from the application. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification