IP Library Granted Patent US 11,409,534
Granted Patent B2
US 11,409,534 · App. 16/315,987 · Granted Aug 9, 2022

Attestation protocol between a host system and a data processing accelerator

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
G06F9/3877G06F9/545G06F13/42G06K9/6256G06N20/00H04L63/045
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,409,534
App. No.
16/315,987
Granted
Aug 9, 2022
Kind
B2
Abstract

According to one embodiment, a system receives, at a host system a public attestation key (PK_ATT) or a signed PK_ATT from a data processing (DP) accelerator over a bus. The system verifies the PK_ATT using a public root key (PK_RK) associated with the DP accelerator. In response to successfully verifying the PK_ATT, the system transmits a kernel identifier (ID) to the DP accelerator to request attesting a kernel object stored in the DP accelerator. In response to the system receives a kernel digest or a signed kernel digest corresponding to the kernel object from the DP accelerator, verifying the kernel digest using the PK_ATT. The system sends the verification results to the DP accelerator for the DP accelerator to access the kernel object based on the verification results.

Claims (53)

1. A computer-implemented method for attestation between a host system and a data processing (DP) accelerator, the method comprising:

receiving at the host system a public attestation key (PK_ATT) from the DP accelerator over a bus;

verifying the PK_ATT using a public root key (PK_RK) associated with the DP accelerator;

in response to successfully verifying the PK_ATT, transmitting a kernel identifier (ID) to the DP accelerator to request attestation of a kernel object stored in the DP accelerator;

in response to receiving a kernel digest corresponding to the kernel object from the DP accelerator, verifying the kernel digest using the PK_ATT; and

sending verification results to the DP accelerator for the DP accelerator to access the kernel object based on the verification results.

2. The method of claim 1 , further comprising:

transmitting a request for attestation to the DP accelerator, wherein the DP accelerator generates an attestation key pair having the PK_ATT and a private attestation key (SK_ATT), in response to the request for attestation; and

receiving from the DP accelerator an encrypted PK_ATT signed using a private root key (SK_RK) of the DP accelerator.

3. The method of claim 2 , further comprising:

decrypting at the host system the encrypted PK_ATT using a public root key (PK_RK) associated with the DP accelerator; and

verifying that the PK_ATT received from the DP accelerator is identical to the decrypted PK_ATT.

4. The method of claim 1 , wherein the kernel digest is generated by hashing an executable image of the kernel object by the DP accelerator.

5. The method of claim 4 , wherein the kernel digest is signed using a private attestation key (SK_ATT) corresponding to the PK_ATT.

6. The method of claim 5 , wherein the kernel digest is signed together with a timestamp generated at a point in time, wherein the timestamp is utilized by the host system to verify that the kernel digest was generated within a predetermined period of time.

7. The method of claim 1 , wherein the host system receives the PK_RK associated with the DP accelerator from a predetermined trusted server over a network.

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 host system a public attestation key (PK_ATT) from a data processing (DP) accelerator over a bus;

verifying the PK_ATT using a public root key (PK_RK) associated with the DP accelerator;

in response to successfully verifying the PK_ATT, transmitting a kernel identifier (ID) to the DP accelerator to request attestation of a kernel object stored in the DP accelerator;

in response to receiving a kernel digest corresponding to the kernel object from the DP accelerator, verifying the kernel digest using the PK_ATT; and

sending verification results to the DP accelerator for the DP accelerator to access the kernel object based on the verification results.

9. The machine-readable medium of claim 8 , wherein the operations further comprise:

transmitting a request for attestation to the DP accelerator, wherein the DP accelerator generates an attestation key pair having the PK_ATT and a private attestation key (SK_ATT), in response to the request for attestation; and

receiving from the DP accelerator an encrypted PK_ATT signed using a private root key (SK_RK) of the DP accelerator.

10. The machine-readable medium of claim 9 , wherein the operations further comprise:

decrypting at the host system the encrypted PK_ATT using a public root key (PK_RK) associated with the DP accelerator; and

verifying that the PK_ATT received from the DP accelerator is identical to the decrypted PK_ATT.

11. The machine-readable medium of claim 8 , wherein the kernel digest is generated by hashing an executable image of the kernel object by the DP accelerator.

12. The machine-readable medium of claim 11 , wherein the kernel digest is signed using a private attestation key (SK_ATT) corresponding to the PK_ATT.

13. The machine-readable medium of claim 12 , wherein the kernel digest is signed together with a timestamp generated at a point in time, wherein the timestamp is utilized by the host system to verify that the kernel digest was generated within a predetermined period of time.

14. The machine-readable medium of claim 8 , wherein the host system receives the PK_RK associated with the DP accelerator from a predetermined trusted server over a network.

15. A method for attestation between a host system and a data processing (DP) accelerator, the method comprising:

in response to an attestation request received from the host system, generating at the DP accelerator an attestation key pair having a public attestation key (PK_ATT) and a private attestation key (SK_ATT);

transmitting the PK_ATT from the DP accelerator to the host system, wherein the DP accelerator is coupled to the host system over a bus;

receiving a kernel identifier (ID) identifying a kernel object from the host system, wherein the kernel ID is received in response to successful verification of the PK_ATT;

generating a kernel digest by hashing an executable image of the kernel object in response to the kernel ID; and

transmitting a signed kernel digest or the kernel digest to the host system to allow the host system to verify and attest the kernel object before accessing the kernel object to be executed within the DP accelerator.

16. The method of claim 15 , further comprising:

signing the PK_ATT using a private root key (SK_RK) associated with the DP accelerator; and

sending the signed PK_ATT to the host system to allow the host system to verify that the PK_ATT come from the DP accelerator.

17. The method of claim 16 , wherein the host system is configured to

decrypt the signed PK_ATT using a public root key (PK_RK) corresponding to the SK RK; and

verify the PK_ATT by comparing the PK_ATT received from the DP accelerator and the decrypted PK_ATT.

18. The method of claim 15 , further comprising:

signing the kernel digest using the SK_ATT; and

sending the signed kernel digest to the host system to allow the host system to verify that the kernel digest is sent by the DP accelerator.

19. The method of claim 18 , wherein the host system is configured to

decrypt the signed kernel digest using the PK_ATT; and

verify the kernel digest by comparing the kernel digest received from the DP accelerator and the decrypted kernel digest.

20. The method of claim 18 , further comprising:

generating a timestamp; and

signing the kernel digest together with the timestamp, wherein the timestamp is utilized by the host system to verify freshness of the kernel digest.

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 047957/0340 →
Continuity (1)
Related Publication 20210173661A1 · Jun 10, 2021