IP Library Granted Patent US 11,687,629
Granted Patent B2
US 11,687,629 · App. 16/899,880 · Granted Jun 27, 2023

Method for data protection in a data processing cluster with authentication

Inventors: Yueqiang Cheng (Sunnyvale, CA); Hefei Zhu (Sunnyvale, CA)
Assignees: BAIDU USA LLC; KUNLUNXIN TECHNOLOGY (BEIJING) COMPANY LIMITED
G06F21/30G06F9/468G06F9/5061H04L9/0816
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,687,629
App. No.
16/899,880
Granted
Jun 27, 2023
Kind
B2
Abstract

Systems and methods are disclosed for data protection in a cluster of data processing accelerators (DPAs). The cluster of accelerators may include DPAs of a third party accelerator that may not be trusted. To ensure data protection in the cluster, a first DPA that receives a request from a second DPA to access a resource of the first DPA authenticates the second DPA. If the second DPA passes authentication, the second DPA is permitted to access non-sensitive resources of the first DPA, otherwise the second DPA is not permitted access to any resources of the first DPA and the first DPA breaks a communication link with the second DPA. Authentication is premised on a shared secret function between DPAs and a random number generated by the first DPA. The shared secret function is updateable by, e.g., a patch from a manufacturer of the DPA.

Claims (47)

1. A computer-implemented method of configuring a cluster of data processing accelerators (DPAs) communicatively coupled to a host device, the method comprising:

receiving, by a first DPA in the cluster, from a second DPA in the cluster, a request for the second DPA to access a resource of the first DPA;

in response to determining that the resource requested by the second DPA is a sensitive resource of the first DPA, denying access to the resource requested by the second DPA; and

otherwise authenticating the second DPA, by the first DPA, and

in response to determining that the second DPA is authenticated, permitting access to the resource requested by the second DPA, and

in response to determining that the second DPA is not authenticated, breaking a communication link between the first DPA and the second DPA.

2. The method of claim 1 , wherein authenticating the second DPA comprises:

generating and transmitting a random number to the second DPA;

receiving a first output from the second DPA that is based upon the random number and a shared secret between the first DPA and the second DPA; and

generating a second output from the shared secret and random number, wherein if the second output matches the first output, the second DPA is deemed authenticated, otherwise the second DPA is not deemed authenticated.

3. The method of claim 2 , wherein the shared secret is a one-way function wherein the one-way function is not determinable from an output of the one-way function.

4. The method of claim 2 , wherein the shared secret is embedded in the first and second DPA and is updateable.

5. The method of claim 2 , further comprising installing by the first DPA an update to the shared secret.

6. The method of claim 1 , further comprising:

in response to determining that the second DPA is not authenticated, transmitting a notification of non-authentication of the second DPA to each DPA to which the first DPA has a communicatively link; and

instructing the DPA to break a communication link between the DPA and the second DPA.

7. The method of claim 1 , further comprising in response to determining that the second DPA is not authenticated, the first DPA transmits a notification of non-authentication of the second DPA to the host device, wherein the host device transmits the notification of non-authentication of the second DPA to each DPA in the cluster, except the second DPA, instructing the DPA to break a communication link between the DPA and the second DPA.

8. A data processing accelerator (DPA) operating as a first DPA of a cluster of DPAs coupled to a host device, the DPA comprising:

a resource manager to

receive from a second DPA in the cluster, a request for the second DPA to access a resource of the first DPA;

in response to determining that the resource requested by the second DPA is a sensitive resource of the first DPA, deny access to the resource requested by the second DPA; and

otherwise authenticate the second DPA, by the first DPA, and

in response to determining that the second DPA is authenticated, permit access to the resource requested by the second DPA, and

in response to determining that the second DPA is not authenticated, break a communication link between the first DPA and the second DPA.

9. The DPA of claim 8 , wherein authenticating the second DPA comprises:

generating and transmitting a random number to the second DPA;

receiving a first output from the second DPA that is based upon the random number and a shared secret between the first DPA and the second DPA; and

generating a second output from the shared secret and random number, wherein if the second output matches the first output, the second DPA is deemed authenticated, otherwise the second DPA is not deemed authenticated.

10. The DPA of claim 9 , wherein the shared secret is a one-way function wherein the one-way function is not determinable from an output of the one-way function.

11. The DPA of claim 9 , wherein the shared secret is embedded in the first and second DPA and is updateable.

12. The DPA of claim 9 , wherein the first DPA installs an update to the shared secret.

13. The DPA of claim 8 , wherein the resource manager is to:

in response to determining that the second DPA is not authenticated, transmit a notification of non-authentication of the second DPA to each DPA to which the first DPA has a communicatively link; and

instruct the DPA to break a communication link between the DPA and the second DPA.

14. The DPA of claim 8 , wherein in response to determining that the second DPA is not authenticated, the first DPA transmits a notification of non-authentication of the second DPA to the host device, wherein the host device transmits the notification of non-authentication of the second DPA to each DPA in the cluster, except the second DPA, instructing the DPA to break a communication link between the DPA and the second DPA.

15. A processing system having at least one hardware processor, coupled to a memory programmed with executable instructions that, when executed by the at least one hardware processor, causes the at least one hardware processor to perform operations of configuring a cluster of data processing accelerators (DPAs) communicatively coupled to a host device, the operations comprising:

receiving, by a first DPA in the cluster, from a second DPA in the cluster, a request for the second DPA to access a resource of the first DPA;

in response to determining that the resource requested by the second DPA is a sensitive resource of the first DPA, denying access to the resource requested by the second DPA; otherwise:

authenticating the second DPA, by the first DPA; and

in response to determining that the second DPA is authenticated, permitting access to the resource requested by the second DPA, and

in response to determining that the second DPA is not authenticated, breaking a communication link between the first DPA and the second DPA.

16. The system of claim 15 , wherein authenticating the second DPA comprises:

generating and transmitting a random number to the second DPA;

receiving an output from the second DPA that is based upon the random number and a shared secret between the first DPA and the second DPA;

generating an output from the shared secret and random number;

in response to determining that the generated output matches the output received from the second DPA, the second DPA is deemed authenticated, otherwise the second DPA is not deemed authenticated.

17. The system of claim 16 , wherein the shared secret is a one-way function wherein the one-way function is not determinable from an output of the one-way function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: BAIDU USA LLC
To: BAIDU USA LLC; KUNLUNXIN TECHNOLOGY (BEIJING) COMPANY LIMITED
Reel/Frame 057829/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: CHENG, YUEQIANG; ZHU, HEFEI
To: BAIDU USA LLC
Reel/Frame 052924/0207 →
Continuity (1)
Related Publication 20210390163A1 · Dec 16, 2021