IP Library › Granted Patent US 11,936,784
Granted Patent B2
US 11,936,784 · App. 17/866,344 · Granted Mar 19, 2024

Attested end-to-end encryption for transporting sensitive data

Inventors: Brian Spencer Payne (Portland, OR); Saikat Chakrabarti (Pueblo, CO); Pratibha Anjali Dohare (Seattle, WA); Rehan Loring Iftikhar (Pleasanton, CA)
Assignee: Oracle International Corporation
H04L9/0877G06F9/4406H04L9/0825H04L9/0844H04L2209/127
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 11,936,784
App. No.
17/866,344
Granted
Mar 19, 2024
Kind
B2
Abstract

Techniques are disclosed for enabling attested end-to-end encryption for transporting data between devices. In one example, a destination device receives a policy profile that includes an origination key and a destination key, and the origination key corresponds to a public transfer key of a source device. The destination device verifies the policy profile based on the destination key corresponding to a public transfer key of the source device. The destination device receives a signed encrypted data encryption key from the source device. The destination device receives encrypted data from the source device. The destination device verifies the signed encrypted data encryption key originated from the source device based on the signed encrypted data key being signed with a private attestation identity key that corresponds to a public attestation identity key of the source device. The destination device decrypts encrypted data using a private transfer key of the destination device.

Claims (58)

1. A computer-implemented method, comprising:

receiving, in a secure environment of a storage server, a policy profile from a data transfer service, the policy profile including an origination key and a destination key, and the origination key corresponding to a public transfer key of a data transfer application that is associated with a transfer of particular sensitive data from the data transfer application to the storage server;

verifying, by the storage server in the secure environment, the policy profile based at least in part on determining that the destination key corresponds to a public transfer key of the data transfer application;

receiving, by the storage server, a signed encrypted data encryption key from the data transfer application;

receiving, by the storage server, encrypted data from the data transfer application for subsequent decryption of the encrypted data;

verifying, by the storage server, the signed encrypted data encryption key originated from the data transfer application based at least in part on determining that the signed encrypted data key is signed with a private attestation identity key that corresponds to a public attestation identity key of the data transfer application; and

decrypting, by the storage server, the encrypted data using a private transfer key of the storage server, the decrypted data corresponding to the particular sensitive data.

2. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving, by the storage server in the secure environment, a request for the public transfer key of the storage server that is associated with the transfer of the particular sensitive data from the data transfer application to the storage server;

generating, by the storage server in the secure environment, the public transfer key of the storage server, the public transfer key being signed with a private attestation identity key of the storage server; and

transmitting, by the storage server, the signed public transfer key to the data transfer service.

3. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving, in the secure environment of the storage server, a request from the data transfer service for a public attestation identity key that corresponds to the private attestation identity key of the storage server;

generating, by the storage server in the secure environment, the public attestation identity key and the corresponding private attestation identity key; and

transmitting, by the storage server, the public attestation identity key to the data transfer service.

4. The computer-implemented method of claim 3 , wherein the public attestation identity key is signed by the storage server with a private endorsement key of the storage server, and wherein a public endorsement key corresponding to the private endorsement key is used by the storage server to verify the signed public attestation identity key of the storage server.

5. The computer-implemented method of claim 1 , wherein the secure environment includes a trusted platform module (TPM).

6. The computer-implemented method of claim 5 , wherein the private attestation identity key is generated based at least in part on the trusted platform module of the storage server.

7. The computer-implemented method of claim 1 , wherein a public attestation identity key corresponding to the private attestation identity key of the storage server is included within a second policy profile that is received by the data transfer application from the data transfer service, the public attestation identity key being used by the storage server to verify that the signed encrypted data encryption key originated from the data transfer application.

8. The computer-implemented method of claim 1 , wherein the method further comprises receiving, by the data transfer application in the secure environment, a pair of transfer keys including the public transfer key and a corresponding private transfer key of the storage server, the pair of transfer keys being provisioned to the storage server from the data transfer service and associated with the transfer of the particular sensitive data from the data transfer application to the storage server.

9. A device, comprising:

a processor; and

a computer-readable medium including instructions that, when executed by the processor, cause the processor to:

receive a policy profile from a data transfer service, the policy profile including an origination key and a destination key, and the origination key corresponding to a public transfer key of a data transfer application that is associated with a transfer of particular sensitive data from the data transfer application to a storage server;

verify the policy profile based at least in part on determining that the destination key corresponds to a public transfer key of the storage server;

receive a signed encrypted data encryption key from the data transfer application;

receive encrypted data from the data transfer application for subsequent decryption of the encrypted data;

verify the signed encrypted data encryption key originated from the data transfer application based at least in part on determining that the signed encrypted data key is signed with a private attestation identity key that corresponds to a public attestation identity key of the data transfer application; and

decrypt the encrypted data using a private transfer key of the storage server, the decrypted data corresponding to the particular sensitive data.

10. The device of claim 9 , wherein the instructions, when executed, further cause the processor to:

receive a request for the public transfer key of the storage server that is associated with the transfer of the particular sensitive data from the data transfer application to the storage server;

generate the public transfer key of the storage server, the public transfer key being signed with a private attestation identity key of the storage server; and

transmit the signed public transfer key to the data transfer service.

11. The device of claim 9 , wherein the instructions, when executed, further cause the processor to:

receive a request from the data transfer service for a public attestation identity key that corresponds to the private attestation identity key of the storage server;

generate the public attestation identity key and the corresponding private attestation identity key; and

transmit the public attestation identity key to the data transfer service.

12. The device of claim 11 , wherein the public attestation identity key is signed by the storage server with a private endorsement key of the storage server, and wherein a public endorsement key corresponding to the private endorsement key is used by the storage server to verify the signed public attestation identity key of the storage server.

13. The device of claim 9 , wherein the secure environment includes a trusted platform module (TPM).

14. The device of claim 13 , wherein the private attestation identity key is generated based at least in part on the trusted platform module of the storage server.

15. The device of claim 9 , wherein a public attestation identity key corresponding to the private attestation identity key of the storage server is included within a second policy profile that is received by the data transfer application from the data transfer service, the public attestation identity key being used by the storage server to verify that the signed encrypted data encryption key originated from the data transfer application.

16. The device of claim 9 , wherein the instructions, when executed, further cause the processor to receive a pair of transfer keys including the public transfer key and a corresponding private transfer key of the storage server, the pair of transfer keys being provisioned to the storage server from the data transfer service and associated with the transfer of the particular sensitive data from the data transfer application to the storage server.

17. A non-transitory computer-readable medium including stored thereon a sequence of instructions that, when executed by a processor, causes the processor to perform operations comprising:

receiving a policy profile from a data transfer service, the policy profile including an origination key and a destination key, the origination key corresponding to a public transfer key of a data transfer application that is associated with a transfer of particular sensitive data from the data transfer application to a storage server;

verifying the policy profile based at least in part on determining that the destination key corresponds to a public transfer key of the storage server;

receiving a signed encrypted data encryption key from the data transfer application;

receiving encrypted data from the data transfer application for subsequent decryption of the encrypted data;

verifying the signed encrypted data encryption key originated from the data transfer application based at least in part on determining that the signed encrypted data key is signed with a private attestation identity key that corresponds to a public attestation identity key of the data transfer application; and

decrypting the encrypted data using a private transfer key of the storage server, the decrypted data corresponding to the particular sensitive data.

18. The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise:

receiving a request for the public transfer key of the storage server that is associated with the transfer of the particular sensitive data from the data transfer application to the storage server;

generating the public transfer key of the storage server, the public transfer key being signed with a private attestation identity key of the storage server; and

transmitting the signed public transfer key to the data transfer service.

19. The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise:

receiving a request from the data transfer service for a public attestation identity key that corresponds to the private attestation identity key of the storage server;

generating the public attestation identity key and the corresponding private attestation identity key; and

transmitting the public attestation identity key to the data transfer service.

20. The non-transitory computer-readable medium of claim 19 , wherein the public attestation identity key is signed by the storage server with a private endorsement key of the storage server, and wherein a public endorsement key corresponding to the private endorsement key is used by the storage server to verify the signed public attestation identity key of the storage server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2022
From: PAYNE, BRIAN SPENCER; CHAKRABARTI, SAIKAT; DOHARE, PRATIBHA ANJALI; IFTIKHAR, REHAN LORING
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 060526/0526 →
Continuity (2)
Continuation 16997387 · Aug 19, 2020
Related Publication 20220407694A1 · Dec 22, 2022
Cited By (1)
US 12,665,758