US12289417B2ActiveUtilityA1

Establishing provenance of applications in an offline environment

34
Assignee: FORTANIX INCPriority: Feb 4, 2021Filed: Feb 4, 2021Granted: Apr 29, 2025
Est. expiryFeb 4, 2041(~14.6 yrs left)· nominal 20-yr term from priority
H04L 9/3247H04L 9/14H04L 9/3265H04L 9/3263
34
PatentIndex Score
0
Cited by
7
References
20
Claims

Abstract

A platform identifier for a first node may be determined based on hardware characteristics of the first node. The platform identifier may be sent to a certification service via non-network communication. Certificate information associated with the platform identifier may be received from the certification service via non-network communication. A key pair may be generated at a first node application enclave of the first node. The key pair may include a public key of the first node and an associated private key of the first node. A request to generate a signed digital certificate may be sent to a digital certificate manager, the request including the public key of the first node and the certificate information. A signed digital certificate including the public key and the certificate information may be received from the digital certificate manager, and the signed digital certificate may be stored at the first node application enclave.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 determining, at a first node, a platform identifier based on one or more hardware characteristics of the first node, wherein the first node is communicatively isolated from an insecure network comprising a cache node and a hardware provider node associated with a manufacturer of the first node; 
 sending, via non-network communication with the cache node, the platform identifier to a certification service on the hardware provider node, wherein the cache node is to forward the platform identifier to the hardware provider node via the insecure network; 
 receiving certificate information associated with the platform identifier from the certification service via the cache node and the non-network communication; 
 generating, at a first node application enclave of the first node, a key pair comprising a public key of the first node and an associated private key of the first node; 
 sending, to a digital certificate manager, a request to generate a signed digital certificate, the request comprising the public key of the first node and the certificate information; 
 receiving, from the digital certificate manager, the signed digital certificate comprising the public key of the first node and the certificate information; 
 storing, at the first node application enclave, the signed digital certificate; 
 generating, at the first node application enclave, a local attestation based on a cryptographic hash of contents of the first node application enclave; 
 generating a remote attestation by signing the local attestation using a signing key; and 
 sending the remote attestation to a second node. 
 
     
     
       2. The method of  claim 1 , wherein the platform identifier is sent to the certification service across an air gap, and the certificate information is received from the certification service across the air gap. 
     
     
       3. The method of  claim 1 , wherein the certificate information comprises a certification key certificate, and the digital certificate manager stores the certificate information in a data store. 
     
     
       4. The method of  claim 1 , wherein the non-network communication comprises removable storage media. 
     
     
       5. The method of  claim 1 , further comprising:
 prior to generating the remote attestation, determining, at the first node, based on a shared secret accessible to the first node and accessible to the certification service, a certification key. 
 
     
     
       6. The method of  claim 5 ,
 wherein the shared secret is embedded in a processor of the first node and stored at the certification service. 
 
     
     
       7. The method of  claim 5 , wherein the signing key comprises the certification key. 
     
     
       8. The method of  claim 5 , further comprising:
 generating, at a first node remote attestation enclave of the first node, an attestation key pair comprising an attestation public key and an associated attestation private key, wherein the signing key comprises the attestation private key; 
 generating, at the first node remote attestation enclave of the first node, an attestation key certificate by signing the attestation public key using the certification key; and 
 sending the attestation key certificate to the digital certificate manager. 
 
     
     
       9. The method of  claim 1 , further comprising:
 generating, at the first node application enclave, a public key hash value based on a node public key of the first node, wherein the cryptographic hash of contents of the first application enclave includes the public key hash value. 
 
     
     
       10. The method of  claim 1 , further comprising:
 sending, to the second node, a request to join a cluster of nodes that includes the second node; 
 receiving, from the second node, a master key; and 
 encrypting or decrypting, using the master key, data stored at a storage resource. 
 
     
     
       11. The method of  claim 1 , further comprising:
 receiving, at the certification service, the platform identifier from the first node via non-network communication; 
 retrieving, from a certificate data store, the certificate information associated with the platform identifier; and 
 sending, at the certification service, the certificate information associated with the platform identifier to the first node via the non-network communication. 
 
     
     
       12. A method comprising:
 sending, at a second node, a request to generate a remote attestation to a first node, wherein the request to generate a remote attestation is sent in response to receiving, at the second node, a request from the first node to join a cluster of nodes that includes the second node, and wherein the first node and the second node are communicatively isolated from an insecure network comprising a cache node and a hardware provider node associated with a manufacturer of the first node; 
 receiving, at the second node, an offline attestation certificate associated with the first node, wherein the offline attestation certificate includes a node public key, a remote attestation, and a certification key (CK) certificate provided to the first node by the cache node; 
 verifying, at the second node, the offline attestation certificate by:
 verifying that the node public key was generated in a secure enclave of the first node; 
 verifying, using an attestation key certificate included in the offline attestation certificate, a first signature included in the remote attestation; 
 verifying, using a certification key (CK) certificate included in the offline attestation certificate, a second signature included in the attestation key certificate; and 
 verifying, using a hardware provider root certificate associated with the hardware provider node, a third signature included in the certification key (CK) certificate; and 
 
 responsive to successfully verifying the offline attestation certificate, sending, at the second node, a cluster master key to the first node, wherein the cluster master key is used to encrypt and decrypt data associated with the cluster of nodes that includes the second node. 
 
     
     
       13. The method of  claim 12 , wherein verifying, at the second node, that the node public key was generated in a secure enclave of the first node comprises verifying that a cryptographic hash of the node public key is included in the remote attestation. 
     
     
       14. The method of  claim 12 , wherein the offline attestation certificate comprises certificate information originating from the hardware provider node on the insecure network. 
     
     
       15. The method of  claim 12 , wherein verifying a digital signature included in the remote attestation comprises:
 verifying, using a certification key (CK) certificate included in the offline attestation certificate, a first signature included in the remote attestation; and 
 verifying, using a hardware provider root certificate, a second signature included in the certification key (CK) certificate. 
 
     
     
       16. A system comprising:
 a memory; and 
 a processing device communicably coupled to the memory, the processing device to perform operations comprising:
 determining, at a first node, a platform identifier based on one or more hardware characteristics of the first node, wherein the first node is communicatively isolated from an insecure network comprising a cache node and a hardware provider node associated with a manufacturer of the first node; 
 sending, via non-network communication with the cache node, the platform identifier to a certification service on the hardware provider node, wherein the cache node is to forward the platform identifier to the hardware provider node via the insecure network; 
 receiving certificate information associated with the platform identifier from the certification service via the cache node and the non-network communication; 
 generating, at a first node application enclave of the first node, a key pair comprising a public key of the first node and an associated private key of the first node; 
 sending, to a digital certificate manager, a request to generate a signed digital certificate, the request comprising the public key of the first node and the certificate information; 
 receiving, from the digital certificate manager, a signed digital certificate comprising the public key of the first node and the certificate information; 
 storing, at the first node application enclave, the signed digital certificate; 
 generating, at the first node application enclave, a local attestation based on a cryptographic hash of contents of the first node application enclave; 
 generating a remote attestation by signing the local attestation using a signing key; and 
 sending the remote attestation to a second node. 
 
 
     
     
       17. The system of  claim 16 , wherein the platform identifier is sent to the certification service across an air gap, and the certificate information is received from the certification service across the air gap. 
     
     
       18. The system of  claim 16 , wherein the certificate information comprises a certification key certificate, and the digital certificate manager stores the certificate information in a data store. 
     
     
       19. The system of  claim 16 , wherein the non-network communication comprises removable storage media. 
     
     
       20. A computer-readable medium comprising instructions which when executed by a processing device cause the processing device to perform operations comprising:
 determining, at a first node, a platform identifier based on one or more hardware characteristics of the first node, wherein the first node is communicatively isolated from an insecure network comprising a cache node and a hardware provider node associated with a manufacturer of the first node; 
 sending, via non-network communication with the cache node, the platform identifier to a certification service on the hardware provider node, wherein the cache node is to forward the platform identifier to the hardware provider node via the insecure network; 
 receiving certificate information associated with the platform identifier from the certification service via the cache node and the non-network communication; 
 generating, at a first node application enclave of the first node, a key pair comprising a public key of the first node and an associated private key of the first node; 
 sending, to a digital certificate manager, a request to generate a signed digital certificate, the request comprising the public key of the first node and the certificate information; 
 receiving, from the digital certificate manager, a signed digital certificate comprising the public key of the first node and the certificate information; 
 storing, at the first node application enclave, the signed digital certificate; 
 generating, at the first node application enclave, a local attestation based on a cryptographic hash of contents of the first node application enclave; 
 generating a remote attestation by signing the local attestation using a signing key; and 
 sending the remote attestation to a second node.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.