IP Library Granted Patent US 11,392,687
Granted Patent B2
US 11,392,687 · App. 16/316,015 · Granted Jul 19, 2022

Method and system for validating kernel objects to be executed by a data processing accelerator of a host system

Inventors: Yueqiang Cheng (Sunnyvale, CA); Yong Liu (Sunnyvale, CA); Tao Wei (Sunnyvale, CA); Jian Ouyang (Beijing, CN)
Assignees: BAIDU USA LLC; BAIDU.COM TIMES TECHNOLOGY (BEIJING) CO., LTD.; KUNLUNXIN TECHNOLOGY (BEIJING) COMPANY LIMITED
G06F21/53H04L9/083H04L9/30H04L9/3242H04L9/3247G06F2221/034
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,392,687
App. No.
16/316,015
Granted
Jul 19, 2022
Kind
B2
Abstract

According to one embodiment, a system receives, at a runtime library executed within a trusted execution environment (TEE) of a host system, a request from an application to invoke a predetermined function to perform a predefined operation. In response to the request, the system identifies a kernel object associated with the predetermined function. The system verifies an executable image of the kernel object using a public key corresponding to a private key that was used to sign the executable image of the kernel object. In response to successfully the system verifies the executable image of the kernel object, transmitting the verified executable image of the kernel object to a data processing (DP) accelerator over a bus to be executed by the DP accelerator to perform the predefined operation.

Claims (35)

1. A computer-implemented method for verifying a kernel object to be executed by a data processing accelerator coupled to a host system, the method comprising:

receiving, at a runtime library executed within a trusted execution environment (TEE) of a host system, a request from an application to invoke a predetermined function to perform a predefined operation, the TEE executing on a processor of the host system and excluding an operating system hosted by the host system;

in response to the request, identifying, with the TEE, a kernel object associated with the predetermined function;

verifying, with the TEE and prior to introduction into the TEE, an executable image of the kernel object using a public key corresponding to a private key that was used to sign the executable image of the kernel object; and

in response to successfully verifying the executable image of the kernel object, transmitting, with the TEE, the verified executable image of the kernel object to a data processing (DP) accelerator over a bus to be executed by the DP accelerator to perform the predefined operation.

2. The method of claim 1 , wherein the runtime library is configured to verify the kernel object by decrypting a signature of the kernel object using the public key corresponding to the private key, wherein the kernel object is to be transmitted to the DP accelerator in an unencrypted form.

3. The method of claim 2 , further comprising verifying an integrity of the kernel object by hashing the executable image of the kernel object using a predetermined hash function.

4. The method of claim 1 , wherein the kernel object is stored in an unsecure location of a persistent storage device.

5. The method of claim 4 , wherein the kernel object is one of a plurality of kernel objects stored in the persistent storage device, wherein the runtime library maintains a list of public keys associated with the kernel objects respectively that are used to verify the kernel objects.

6. The method of claim 1 , wherein the DP accelerator comprises one or more execution units configured to execute the executable image of the kernel object to on behalf of the application in a distributed manner.

7. The method of claim 1 , wherein the public key was obtained from a trusted server and the public key was provided by a provider of the kernel object, and wherein the kernel object includes a signature signed by the provider using the private key.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations, the operations comprising:

receiving, at a runtime library executed within a trusted execution environment (TEE) of a host system, a request from an application to invoke a predetermined function to perform a predefined operation, the TEE executing on a processor of the host system and excluding an operating system hosted by the host system;

in response to the request, identifying, with the TEE, a kernel object associated with the predetermined function;

verifying, with the TEE and prior to introduction into the TEE, an executable image of the kernel object using a public key corresponding to a private key that was used to sign the executable image of the kernel object; and

in response to successfully verifying the executable image of the kernel object, transmitting, with the TEE, the verified executable image of the kernel object to a data processing (DP) accelerator over a bus to be executed by the DP accelerator to perform the predefined operation.

9. The machine-readable medium of claim 8 , wherein the runtime library is configured to verify the kernel object by decrypting a signature of the kernel object using the public key corresponding to the private key, wherein the kernel object is to be transmitted to the DP accelerator in an unencrypted form.

10. The machine-readable medium of claim 9 , wherein the operations further comprise verifying an integrity of the kernel object by hashing the executable image of the kernel object using a predetermined hash function.

11. The machine-readable medium of claim 8 , wherein the kernel object is stored in an unsecure location of a persistent storage device.

12. The machine-readable medium of claim 11 , wherein the kernel object is one of a plurality of kernel objects stored in the persistent storage device, wherein the runtime library maintains a list of public keys associated with the kernel objects respectively that are used to verify the kernel objects.

13. The machine-readable medium of claim 8 , wherein the DP accelerator comprises one or more execution units configured to execute the executable image of the kernel object to on behalf of the application in a distributed manner.

14. The machine-readable medium of claim 8 , wherein the public key was obtained from a trusted server and the public key was provided by a provider of the kernel object, and wherein the kernel object includes a signature signed by the provider using the private key.

15. A host system, comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including

receiving, at a runtime library executed within a trusted execution environment (TEE) of the host system, a request from an application to invoke a predetermined function to perform a predefined operation, the TEE executing on a processor of the host system and excluding an operating system hosted by the host system,

in response to the request, identifying, with the TEE, a kernel object associated with the predetermined function,

verifying, with the TEE and prior to introduction into the TEE, an executable image of the kernel object using a public key corresponding to a private key that was used to sign the executable image of the kernel object, and

in response to successfully verifying the executable image of the kernel object, transmitting, with the TEE, the verified executable image of the kernel object to a data processing (DP) accelerator over a bus to be executed by the DP accelerator to perform the predefined operation.

16. The system of claim 15 , wherein the runtime library is configured to verify the kernel object by decrypting a signature of the kernel object using the public key corresponding to the private key, wherein the kernel object is to be transmitted to the DP accelerator in an unencrypted form.

17. The system of claim 16 , wherein the operations further comprise verifying an integrity of the kernel object by hashing the executable image of the kernel object using a predetermined hash function.

18. The system of claim 15 , wherein the kernel object is stored in an unsecure location of a persistent storage device.

19. The system of claim 18 , wherein the kernel object is one of a plurality of kernel objects stored in the persistent storage device, wherein the runtime library maintains a list of public keys associated with the kernel objects respectively that are used to verify the kernel objects.

20. The system of claim 15 , wherein the DP accelerator comprises one or more execution units configured to execute the executable image of the kernel object to on behalf of the application in a distributed manner.

21. The system of claim 15 , wherein the public key was obtained from a trusted server and the public key was provided by a provider of the kernel object, and wherein the kernel object includes a signature signed by the provider using the private key.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: BAIDU USA LLC; BAIDU.COM TIMES TECHNOLOGY (BEIJING) CO., LTD.
To: BAIDU USA LLC; BAIDU.COM TIMES TECHNOLOGY (BEIJING) CO., LTD.; KUNLUNXIN TECHNOLOGY (BEIJING) COMPANY LIMITED
Reel/Frame 057829/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2019
From: CHENG, YUEQIANG; LIU, YONG; WEI, TAO; OUYANG, JIAN
To: BAIDU USA LLC; BAIDU.COM TIMES TECHNOLOGY (BEIJING) CO., LTD.
Reel/Frame 047959/0719 →
Continuity (1)
Related Publication 20210173917A1 · Jun 10, 2021
Cited By (1)
US 12,712,725