IP Library Granted Patent US 10,666,446
Granted Patent B2
US 10,666,446 · App. 15/813,493 · Granted May 26, 2020

Decentralized enrollment and revocation of devices

Inventors: Susanto Junaidi Irwan (San Francisco, CA); Ganesh B. Jampani (Gilroy, CA); Andy Sugiarto (Moraga, CA); Jeffrey Charles Venable, Sr. (Union City, CA); Roman Arutyunov (San Jose, CA)
Assignee: Xage Security, Inc.
H04L9/3268H04L9/0618H04L9/0894H04L9/3239H04L29/08H04L63/0281H04L63/0823H04L63/166H04L2209/38H04L2209/805
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 10,666,446
App. No.
15/813,493
Granted
May 26, 2020
Kind
B2
Abstract

In an embodiment, a computer-implemented method comprises, receiving, at a first server, a plurality of certificates and an inventory list and storing the plurality of certificates and the inventory list in a blockchain; receiving, at a second server associated with the blockchain, a validation request from a device and validating the device; in response to validating the device, receiving, at the second server, a certificate request from the device and verifying the certificate request against the inventory list stored in the blockchain; and in response to verifying the certificate request, enrolling the device by sending a certificate from the plurality of certificates stored in the blockchain to the device.

Claims (61)

1. A computer-implemented method comprising:

receiving, at a first server, a plurality of certificates and a device inventory list and storing the plurality of certificates and the device inventory list in a blockchain;

receiving, at a second server associated with the blockchain, a validation request from a device and validating the device to determine that the device is not compromised;

in response to validating the device, receiving, at the second server, a certificate request from the device and verifying the certificate request against the device inventory list stored in the blockchain; and

in response to verifying the certificate request, enrolling the device by sending a certificate from the plurality of certificates stored in the blockchain to the device.

2. The method of claim 1 , further comprising:

in response to receiving, at the first server, the plurality of certificates and the device inventory list, storing the plurality of certificates and the device inventory list in a first database associated with the first server; and

replicating the plurality of certificates and the device inventory list stored in the first database into a second database associated with the second server using the blockchain.

3. The method of claim 1 , further comprising:

in response to receiving, at the first server, the plurality of certificates, converting the plurality of certificates from a first format to a second format; and

wherein storing the plurality of certificates in the blockchain comprises storing the plurality of certificates in the second format.

4. The method of claim 1 , further comprising:

receiving, at the first server, a revocation list based on the device inventory list and storing the revocation list in the blockchain.

5. The method of claim 1 , further comprising:

in response to receiving the certificate request from the device, proxying the certificate request from a first transport to a second transport.

6. The method of claim 1 , further comprising:

in response to verifying the certificate request, generating an audit log associated with the device.

7. The method of claim 1 , wherein validating the device comprises validating against the device inventory list stored in the blockchain.

8. The method of claim 1 , wherein receiving, at the first server, the plurality of certificates comprises receiving the plurality of certificates from a certificate authority.

9. One or more non-transitory computer-readable storage media storing one or more sequences of program instructions which, when executed by one or more computing devices, cause performing:

receiving, at a first server, a plurality of certificates and a device inventory list and storing the plurality of certificates and the device inventory list in a blockchain;

receiving, at a second server associated with the blockchain, a validation request from a device and validating the device to determine that the device is not compromised;

in response to validating the device, receiving, at the second server, a certificate request from the device and verifying the certificate request against the device inventory list stored in the blockchain; and

in response to verifying the certificate request, enrolling the device by sending a certificate from the plurality of certificates stored in the blockchain to the device.

10. The one or more non-transitory computer-readable media of claim 9 , further comprising instructions that, when executed by the one or more computing devices, cause:

in response to receiving, at the first server, the plurality of certificates and the device inventory list, storing the plurality of certificates and the device inventory list in a first database associated with the first server; and

replicating the plurality of certificates and the device inventory list stored in the first database into a second database associated with the second server using the blockchain.

11. The one or more non-transitory computer-readable media of claim 10 , further comprising instructions that, when executed by the one or more computing devices, cause:

in response to receiving, at the first server, the plurality of certificates, converting the plurality of certificates from a first format to a second format; and

wherein storing the plurality of certificates in the blockchain comprises storing the plurality of certificates in the second format.

12. The one or more non-transitory computer-readable media of claim 11 , further comprising instructions that, when executed by the one or more computing devices, cause:

receiving, at the first server, a revocation list based on the device inventory list and storing the revocation list in the first database; and

replicating the revocation list stored in the first database into the second database associated with the second server using the blockchain.

13. The one or more non-transitory computer-readable media of claim 12 , further comprising instructions that, when executed by the one or more computing devices, cause:

in response to receiving the certificate request from the device, proxying the certificate request from a first transport to a second transport.

14. The one or more non-transitory computer-readable media of claim 13 , further comprising instructions that, when executed by the one or more computing devices, cause:

in response to verifying the certificate request, generating an audit log associated with the device.

15. The one or more non-transitory computer-readable media of claim 14 , wherein validating the device comprises validating against the device inventory list stored in the blockchain.

16. The one or more non-transitory computer-readable media of claim 15 , wherein receiving, at the first server, the plurality of certificates comprises receiving the plurality of certificates from a certificate authority.

17. A computer system comprising:

one or more processors;

a computer-readable storage media coupled to the one or more processors;

a memory coupled to the computer-readable storage media and storing instructions which, when executed, cause the one or more processors to:

receive, at a first server, a plurality of certificates and a device inventory list and storing the plurality of certificates and the device inventory list in a blockchain;

receive, at a second server associated with the blockchain, a validation request from a device and validating the device to determine that the device is not compromised;

in response to validating the device, receive, at the second server, a certificate request from the device and verify the certificate request against the device inventory list stored in the blockchain; and

in response to verifying the certificate request, enroll the device by sending a certificate from the plurality of certificates stored in the blockchain to the device.

18. The computer system of claim 17 , wherein the memory stores further instructions which, when executed, cause the one or more processors to:

in response to receiving, at the first server, the plurality of certificates and the device inventory list, store the plurality of certificates and the device inventory list in a first database associated with the first server; and

replicate the plurality of certificates and the device inventory list stored in the first database into a second database associated with the second server using the blockchain.

19. The computer system of claim 18 , wherein the memory stores further instructions which, when executed, cause the one or more processors to:

in response to receiving, at the first server, the plurality of certificates, convert the plurality of certificates from an X.509 format to a PKCS7 format; and

wherein to store the plurality of certificates in the first database comprises storing the plurality of certificates in the PKCS7 format.

20. The computer system of claim 18 , wherein the memory stores further instructions which, when executed, cause the one or more processors to:

receive, at the first server, a revocation list based on the device inventory list and store the revocation list in the first database; and

replicate the revocation list stored in the first database into the second database associated with the second server using the blockchain.

21. The computer system of claim 18 , wherein the memory stores further instructions which, when executed, cause the one or more processors to:

in response to verifying the certificate request, generate an audit log associated with the device.

22. The computer system of claim 18 , wherein the memory stores further instructions which, when executed, cause the one or more processors to:

in response to receiving the certificate request from the device, proxy the certificate request from a first transport to a second transport.

23. The computer system of claim 22 , wherein the first transport of the certificate request is a Constrained Application Protocol (CoAP), and wherein the second transport of the certificate request is a Hypertext Transfer Protocol (HTTP).

Assignments (2)
CHANGE OF NAME Recorded Jan 22, 2018
From: SENSIFY SECURITY, INC.
To: XAGE SECURITY, INC.
Reel/Frame 045112/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: IRWAN, SUSANTO JUNAIDI; JAMPANI, GANESH B.; SUGIARTO, ANDY; VENABLE, JEFFREY CHARLES, SR.; ARUTYUNOV, ROMAN
To: SENSIFY SECURITY, INC.
Reel/Frame 044134/0646 →
Continuity (1)
Related Publication 20190245699A1 · Aug 8, 2019