IP Library Granted Patent US 12,289,301
Granted Patent B2
US 12,289,301 · App. 18/416,569 · Granted Apr 29, 2025

Protecting data transfer between a secure application and networked devices

Inventors: Luis Kida (Beaverton, OR); Reshma Lal (Portland, OR)
Assignee: INTEL CORPORATION
H04L63/0485G06F9/5044G06F9/5083G06F13/28H04L9/0825H04L9/085H04L9/3242H04L63/0435H04L63/061H04L63/123
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 12,289,301
App. No.
18/416,569
Filed
Jan 18, 2024
Granted
Apr 29, 2025
Kind
B2
Art Unit
2435
USPC
713/171
Abstract

An apparatus to facilitate protecting data transfer between a secure application and networked devices is disclosed. The apparatus includes a processor to provide a trusted execution environment (TEE) to run an application, wherein the processor is to: generate, via the application in the TEE, encrypted data, wherein the encrypted data comprises a payload; copy, via the application in the TEE, the encrypted data to a local buffer; interface, using the application in the TEE, with a source network interface controller (NIC) to initiate a copy over a network of the encrypted data from the local buffer to a remote buffer of a remote platform; and communicate, after completing the copy of the network of the encrypted data, at least one message with the remote platform to indicate that the encrypted data is available and to enable the remote platform to verify integrity of the encrypted data.

Claims (31)

1. An apparatus comprising:

processor hardware circuitry to provide a trusted execution environment (TEE) to run an application, wherein the processor hardware circuitry is to:

generate, via the application in the TEE, encrypted data, wherein the encrypted data comprises a payload;

copy, via the application in the TEE, the encrypted data to a local buffer on a host platform hosting the processor hardware circuitry and the local buffer;

interface, using the application in the TEE, with a source network interface controller (NIC) communicably coupled to the processor hardware circuitry on the host platform to initiate a copy over a network of the encrypted data from the local buffer to a remote buffer of a remote platform; and

communicate, after completing the copy over the network of the encrypted data, at least one message with the remote platform to indicate that the encrypted data is available and to enable the remote platform to verify integrity of the encrypted data, wherein the at least one message comprises an authentication tag calculated over the payload using a shared secret key.

2. The apparatus of claim 1 , wherein the TEE further comprises a cryptographic engine communicably coupled to the application, the cryptographic engine to encrypt contents of unencrypted data generated by the application as the encrypted data.

3. The apparatus of claim 1 , wherein the source NIC is a remote direct memory access (RDMA) NIC (RNIC) to perform at least one of data or message transfers with the remote platform using an RDMA protocol.

4. The apparatus of claim 1 , wherein the processor hardware circuitry is further to establish an integrity-protected channel with the remote platform via an attestation and a key exchange protocol, wherein the key exchange protocol is to cause the shared secret key to be derived with the remote platform, and wherein the at least one message is communicated to the remote platform via the integrity-protected channel.

5. The apparatus of claim 1 , wherein the remote platform comprises a remote NIC that is trusted and can write directly to compute kernel memory of the remote platform.

6. The apparatus of claim 5 , wherein the remote NIC can perform decryption and integrity verification of the encrypted data in-line as the remote NIC writes to the compute kernel memory of the remote platform.

7. The apparatus of claim 1 , wherein the remote platform comprises a remote NIC that is untrusted and that writes the encrypted data into untrusted memory of the remote NIC.

8. The apparatus of claim 7 , wherein the remote platform comprises a remote cryptographic engine to perform decryption and integrity verification of the encrypted data in the untrusted memory and cause decrypted and integrity verified data is written into compute kernel memory from the untrusted memory.

9. The apparatus of claim 1 , wherein the authentication tag comprises a message authentication code (MAC) to provide integrity protection to the payload.

10. The apparatus of claim 1 , wherein the processor hardware circuitry to generate, via the application in the TEE, the encrypted data of the application further comprises the processor hardware circuitry to apply an encryption library to generate the encrypted data.

11. The apparatus of claim 1 , wherein the processor hardware circuitry comprises one or more of a graphics processing unit (GPU), a central processing unit (CPU), or a hardware accelerator, and wherein the remote platform comprises a hardware accelerator device receiving offload of workloads from the processor hardware circuitry.

12. A method comprising:

copying, by a processor executing an application running in a trusted execution environment (TEE) of the processor, encrypted data to a local buffer, wherein the encrypted data comprises a payload;

interfacing, by the processor using the application in the TEE, with a source network interface card (NIC) to initiate a copy over a network of the encrypted data from the local buffer to a remote buffer of a remote platform; and

communicating, by the processor after completing the copy over the network of the encrypted data, at least one message with the remote platform to indicate that the encrypted data is available and to enable the remote platform to verify integrity of the encrypted data, wherein the at least one message comprises an authentication tag calculated over the payload using a shared secret key.

13. The method of claim 12 , wherein the TEE further comprises a cryptographic engine communicably coupled to the application, the cryptographic engine to encrypt contents of unencrypted data generated by the application as the encrypted data.

14. The method of claim 12 , further comprising establishing, via the application, an integrity-protected channel with the remote platform via an attestation and a key exchange protocol, wherein the key exchange protocol is to cause the shared secret key to be derived with the remote platform, and wherein the at least one message is communicated to the remote platform via the integrity-protected channel.

15. The method of claim 12 , wherein the remote platform comprises a remote NIC that is trusted and can write to compute kernel memory directly, and wherein the remote NIC can perform decryption and integrity verification of the encrypted data in-line as the remote NIC writes to the compute kernel memory of the remote platform.

16. The method of claim 12 , wherein the remote platform comprises a remote NIC that is untrusted and that writes the encrypted data into untrusted memory of the remote NIC, and wherein the remote platform comprises a remote cryptographic engine to perform decryption and integrity verification of the encrypted data in the untrusted memory and cause decrypted and integrity verified data is written into compute kernel memory from the untrusted memory.

17. A non-transitory machine readable storage medium having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

interfacing, by a source network interface card (NIC), with a processor executing an application running in a trusted execution environment (TEE) of the processor, the interfacing to initiate a copy over a network of encrypted data from a local buffer to a remote buffer of a remote platform, wherein the encrypted data comprises a payload; and

causing the copy of the encrypted data to be performed from the local buffer to the remote buffer;

wherein at least one message is communicated with the remote platform, after completing the copy over the network of the encrypted data, to indicate that the encrypted data is available and to enable the remote platform to verify integrity of the encrypted data, wherein the at least one message comprises an authentication tag calculated over the payload using a shared secret key.

18. The non-transitory machine readable storage medium of claim 17 , wherein the TEE further comprises a cryptographic engine communicably coupled to the application, the cryptographic engine to encrypt contents of unencrypted data generated by the application as the encrypted data.

19. The non-transitory machine readable storage medium of claim 17 , wherein the one or more processors to perform further operations comprising establishing an integrity-protected channel with the remote platform via an attestation and a key exchange protocol, wherein the key exchange protocol is to cause the shared secret key to be derived with the remote platform, and wherein the at least one message is communicated to the remote platform via the integrity-protected channel.

20. The non-transitory machine readable storage medium of claim 17 , wherein the remote platform comprises a remote NIC that is trusted and can write to compute kernel memory directly, and wherein the remote NIC can perform decryption and integrity verification of the encrypted data in-line as the remote NIC writes to the compute kernel memory of the remote platform.

Continuity (3)
Continuation 18453970 · Aug 22, 2023
Continuation 17549014 · Dec 13, 2021
Related Publication 20240236058A1 · Jul 11, 2024
References Cited (17)
US 20140258438A1 · Ayoub · 2014 [cited by examiner]
US 20160248809A1 · Smith et al. · 2016 [cited by applicant]
US 20200220713A1 · Li · 2020 [cited by examiner]
US 20200242258A1 · Smith · 2020 [cited by examiner]
US 20210029170A1 · Gupta et al. · 2021 [cited by applicant]
US 20210117246A1 · Lal et al. · 2021 [cited by applicant]
US 20220103349A1 · Tsirkin · 2022 [cited by examiner]
US 20220103536A1 · Kida et al. · 2022 [cited by applicant]
WO 2019036073A1 · 2019 [cited by applicant]
WO WO2020000401A1 · 2020 [cited by examiner]
WO 2023114567A1 · 2023 [cited by applicant]
International Patent Application No. PCT/US2022/077546 “International Preliminary Report on Patentability” mailed Jun. 27, 2024, 8 pages. [cited by applicant]
International Patent Application No. PCT/US2022/077546 “International Search Report and Written Opinion” mailed Jan. 31, 2023, 10 pages. [cited by applicant]
International Patent Application No. PCT/US2022/077546 “Notification Concerning the Availability of the Publication of the International Application” mailed Jun. 22, 2023, 1 page. [cited by applicant]
U.S. Appl. No. 17/549,014 “Notice of Allowance” mailed Jun. 5, 2023, 9 pages. [cited by applicant]
U.S. Appl. No. 18/453,970 “Notice of Allowance” mailed Jul. 25, 2024, 5 pages. [cited by applicant]
U.S. Appl. No. 18/453,970 “Non-Final Office Action” mailed Apr. 11, 2024, 8 pages. [cited by applicant]