System and methods for internet of things (IoT) device authentication and security
View Patent ↗One or more IoT devices are coupled to a gateway server. The gateway server preferably includes enhanced administrative features for restricting access to IoT devices, and for monitoring IoT device communications. In embodiments of the invention, communications between the gateway server and IoT devices are secured, in part, via IP address restriction, the use of transitory identifiers, and/or encryption.
1. A communication system comprising: a gateway server; and
an internet of things (loT) device coupled to the gateway server, the gateway server having a first gateway session identifier (GSID) cache and a first device session identifier (DSID) cache, the loT device having a second GSID cache and a second DSID cache, the system being configured to perform a method, the method including:
generating a first GSID in the gateway server:
writing the first GSID to the first GSID cache;
reading a first DSID from the first DSID cache;
sending a first command, the first GSID, and the first DSID from the gateway server to the loT device;
receiving the first command, the first GSID, and the first DSID in the loT device;
writing the first GSID to the second GSID cache; generating a second DSID in the loT device;
writing the second DSID to the second DSID cache; and sending the first command, the first GSID, and the second
DSID from the loT device to the gateway server.
2. The communication system of claim 1 , the method further including:
receiving the first command, the first GSID, and the second DSID in the gateway server;
writing the second DSID to the first DSID cache; and
sending the first command, the first GSID, and the second DSID from the gateway server to the loT device.
3. The communication system of claim 2 , the step of sending the first command, the first GSID, and the second DSID from the gateway server to the loT device being conditioned upon the first command received by the gateway server being identical to the first command previously sent by the gateway server.
4. The communication system of claim 2 , the step of sending the first command, the first GSID, and the second DSID from the gateway server to the loT device being conditioned upon the first GSID received by the gateway server being identical to the first GSID previously sent by the gateway server.
5. The communication system of claim 2 , the method further including:
receiving the first command, the first GSID, and the second DSID in the loT device; and
executing the first command in the loT device.
6. The communication system of claim 5 , the step of executing the command being conditioned upon the first command received by the loT device with the second DSID being identical to the first command received by the loT device with the first DSID.
7. The communication system of claim 5 , the step of executing the command being conditioned upon the first GSID received by the loT device being identical to the first GSID previously received by the loT device.
8. The communication system of claim 5 , the method further including:
generating a second GSID in the gateway server;
writing the second GSID to the first GSID cache;
reading the second DSID from the first DSID cache; and
sending a second command, the second GSID, and the second DSID from the gateway server to the loT device.
9. The communication system of claim 8 , the method further including:
receiving the second command, the second GSID, and the second DSID in the loT device;
writing the second GSID to the second GSID cache;
generating a third DSID in the loT device;
writing the third DSID to the second DSID cache; and
sending the second command, the second GSID, and the third DSID from the loT device to the gateway server.
10. A communication system comprising: a gateway server; and
an internet of things (loT) device coupled to the gateway server, the gateway server having a first gateway session identifier (GSID) cache and a first device session identifier (DSID) cache, the loT device having a second GSID cache and a second DSID cache, the system being configured to perform a method, the method including:
generating a first GSID in the gateway server;
writing the first GSID to the first GSID cache;
reading a first DSID from the first DSID cache;
sending a first command, the first GSID, and the first DSID from the gateway server to the loT device;
receiving the first command, the first GSID, and the first DSID in the loT device;
determining whether the first command was received from a predetermined gateway IP address; and
if the first command was received from the predetermined gateway IP address,
writing the first GSID to the second GSID cache, generating a second DSID in the loT device,
writing the second DSID to the second DSID cache, and sending the first command, the first GSID, and the second
DSID from the loT device to the gateway server.