IP Library › Granted Patent US 10,621,365
Granted Patent B1
US 10,621,365 · App. 15/601,169 · Granted Apr 14, 2020

Obfuscation for high-performance computing systems

Inventors: Judson Powers (Ithaca, NY); Robert A. Joyce (Ithaca, NY); Scott Aloisio (Ithaca, NY); Matthew A. Stillerman (Ithaca, NY)
Assignee: ARCHITECTURE TECHNOLOGY CORPORATION
G06F21/602G06F21/60G06F21/52G06F21/6254G06F2221/2107H04L9/12
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 10,621,365
App. No.
15/601,169
Granted
Apr 14, 2020
Kind
B1
Abstract

An example method includes initializing, by an obfuscation computing system, communications with nodes in a distributed computing platform, the nodes including one or more compute nodes and a controller node, and performing at least one of: (a) code-level obfuscation for the distributed computing platform to obfuscate interactions between an external user computing system and the nodes, wherein performing the code-level obfuscation comprises obfuscating data associated with one or more commands provided by the user computing system and sending one or more obfuscated commands to at least one of the nodes in the distributed computing platform; or (b) system-level obfuscation for the distributed computing platform, wherein performing the system-level obfuscation comprises at least one of obfuscating system management tasks that are performed to manage the nodes or obfuscating network traffic data that is exchanged between the nodes.

Claims (84)

1. A method comprising:

initializing, by an obfuscation computing system, communications with a plurality of nodes in a distributed computing platform, wherein the plurality of nodes includes one or more compute nodes that provide one or more resources in the distributed computing platform, wherein the plurality of nodes further includes a controller node that performs resource management of the one or more resources in the distributed computing platform, and wherein the obfuscation computing system serves as an intermediary between the controller node and the one or more compute nodes; and

performing, by the obfuscation computing system, at least one of:

(a) code-level obfuscation for the distributed computing platform to obfuscate interactions between a user computing system and the plurality of nodes, wherein performing the code-level obfuscation comprises:

obfuscating, based on a first group of customizable obfuscation policies stored by the obfuscation computing system, data associated with one or more commands provided by the user computing system to generate one or more obfuscated commands; and

sending the one or more obfuscated commands to at least one of the plurality of nodes in the distributed computing platform; or

(b) system-level obfuscation for the distributed computing platform, wherein performing the system-level obfuscation comprises performing, based on a second group of customizable obfuscation policies stored by the obfuscation computing system, at least one of obfuscating system management tasks that are performed to manage the plurality of nodes or obfuscating network traffic data that is exchanged between the plurality of nodes, wherein the second group of customizable obfuscation policies is different from the first group of customizable obfuscation policies.

2. The method of claim 1 , wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, the code-level obfuscation and the system-level obfuscation for the distributed computing platform.

3. The method of claim 1 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the system-level obfuscation for the distributed computing platform, and

wherein obfuscating the system management tasks that are performed to manage the plurality of nodes comprises obfuscating one or more configuration tasks that are performed to configure at least one of the one or more compute nodes.

4. The method of claim 1 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the system-level obfuscation for the distributed computing platform,

wherein performing the system-level obfuscation comprises at least obfuscating the system management tasks that are performed to manage the plurality of nodes, and

wherein obfuscating the system management tasks that are performed to manage the plurality of nodes comprises obfuscating at least one of: selection of the one or more compute nodes to perform tasks in the distributed computing platform, scheduling of the tasks performed by the one or more compute nodes, configuration of the one or more compute nodes, logging of information associated with the tasks performed by the one or more compute nodes, or authentication of users in the distributed computing platform.

5. The method of claim 4 , wherein obfuscating the selection of the one or more compute nodes to perform the tasks in the distributed computing platform comprises performing a randomized selection of at least one of the one or more compute nodes to perform at least one of the tasks.

6. The method of claim 1 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the code-level obfuscation for the distributed computing platform, and

wherein obfuscating the data associated with the one or more commands provided by the user computing system comprises obfuscating command input data associated with the one or more commands provided by the user computing system to generate the one or more obfuscated commands, the one or more obfuscated commands including the obfuscated command input data.

7. The method of claim 6 , wherein obfuscating the command input data to generate the one or more obfuscated commands comprises performing a homomorphic encryption operation to transform the command input data into the obfuscated command input data that is included in the one or more obfuscated commands.

8. The method of claim 6 , wherein performing the code-level obfuscation further comprises:

receiving, by the obfuscation computing system and from the at least one of the plurality of nodes, obfuscated response data that is responsive to the one or more obfuscated commands.

9. The method of claim 8 , wherein performing the code-level obfuscation further comprises:

deobfuscating, by the obfuscation computing system, the obfuscated response data to generate deobfuscated response data; and

sending, by the obfuscating computing system and to the user computing system, the deobfuscated response data.

10. The method of claim 9 ,

wherein the obfuscated response data includes output data associated with execution of the one or more obfuscated commands, and

wherein deobfuscating the obfuscated response data comprises deobfuscating, by the obfuscation computing system, the output data included in the obfuscated response data to generate the deobfuscated response data.

11. The method of claim 1 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the system-level obfuscation for the distributed computing platform,

wherein performing the system-level obfuscation comprises at least obfuscating the network traffic data that is exchanged between the plurality of nodes, and

wherein obfuscating the network traffic data that is exchanged between the plurality of nodes comprises at least one of obfuscating an originating source of the network traffic data or encrypting content of the network traffic data.

12. The method of claim 1 , wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the code-level obfuscation for the distributed computing platform, and wherein performing the code-level obfuscation further comprises:

obfuscating, by the obfuscation computing system, and based on an obfuscation policy included in the first group of customizable obfuscation policies, first data associated with a first command provided by the user computing system to generate a first obfuscated command;

sending, by the obfuscation computing system, the first obfuscated command to the at least one of the plurality of nodes;

receiving, by the obfuscation computing system, a modification to the obfuscation policy to generate a modified obfuscation policy;

obfuscating, by the obfuscation computing system, and based on the modified obfuscation policy, second data associated with a second command provided by the user computing system to generate a second obfuscated command; and

sending, by the obfuscation computing system, the second obfuscated command to the at least one of the plurality of nodes.

13. The method of claim 1 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing, by the obfuscation computing system, at least the system-level obfuscation for the distributed computing platform, and

wherein the second group of customizable obfuscation policies includes policies associated with at least one of: selection of the one or more compute nodes to perform tasks in the distributed computing platform, scheduling of the tasks performed by the one or more compute nodes, configuration of the one or more compute nodes, logging of information associated with the tasks performed by the one or more compute nodes, authentication of users in the distributed computing platform, or transmission of network data in the distributed computing platform.

14. The method of claim 1 , wherein the distributed computing platform comprises a distributed high-performance computing cluster.

15. The method of claim 1 , wherein the user computing system is external to the distributed computing platform.

16. A computing system, comprising:

one or more processors; and

one or more non-transitory computer-readable storage media storing instructions that, when executed, cause the one or more processors to:

initialize communications with a plurality of nodes in a distributed computing platform, wherein the plurality of nodes includes one or more compute nodes that provide one or more resources in the distributed computing platform, wherein the plurality of nodes further includes a controller node that performs resource management of the one or more resources in the distributed computing platform, and wherein the computing system serves as an intermediary between the controller node and the one or more compute nodes; and

perform at least one of:

(a) code-level obfuscation for the distributed computing platform to obfuscate interactions between a user computing system and the plurality of nodes, wherein the user computing system is external to the distributed computing platform, wherein performing the code-level obfuscation comprises obfuscating based on a first group of customizable obfuscation policies stored by the obfuscation computing system, data associated with one or more commands provided by the user computing system to generate one or more obfuscated commands, and sending the one or more obfuscated commands to at least one of the plurality of nodes in the distributed computing platform; or

(b) system-level obfuscation for the distributed computing platform, wherein performing the system-level obfuscation comprises performing, based on a second group of customizable obfuscation policies stored by the obfuscation computing system, at least one of obfuscating system management tasks that are performed to manage the plurality of nodes or obfuscating network traffic data that is exchanged between the plurality of nodes, wherein the second group of customizable obfuscation policies is different from the first group of customizable obfuscation policies.

17. The computing system of claim 16 , wherein the instructions stored on the one or more non-transitory computer-readable storage media cause the one or more processors to perform the code-level obfuscation and the system-level obfuscation for the distributed computing platform.

18. The computing system of claim 16 ,

wherein the instructions stored on the one or more non-transitory computer-readable storage media cause the one or more processors to perform at least the system-level obfuscation for the distributed computing platform, and

wherein the instructions stored on the one or more non-transitory computer-readable storage media that cause the one or more processors to perform the system-level obfuscation further cause the one or more processors to at least obfuscate the system management tasks that are performed to manage the plurality of nodes by obfuscating at least one of: selection of the one or more compute nodes to perform tasks in the distributed computing platform, scheduling of the tasks performed by the one or more compute nodes, configuration of the one or more compute nodes, logging of information associated with the tasks performed by the one or more compute nodes, or authentication of users in the distributed computing platform.

19. The computing system of claim 16 ,

wherein the instructions stored on the one or more non-transitory computer-readable storage media cause the one or more processors to perform at least the code-level obfuscation for the distributed computing platform, and

wherein the instructions stored on the one or more non-transitory computer-readable storage media that cause the one or more processors to obfuscate the data associated with the one or more commands provided by the user computing system further cause the one or more processors to obfuscate command input data associated with the one or more commands provided by the user computing system to generate the one or more obfuscated commands, the one or more obfuscated commands including the obfuscated command input data.

20. The computing system of claim 19 , wherein the instructions stored on the one or more non-transitory computer-readable storage media that cause the one or more processors to perform the code-level obfuscation further cause the one or more processors to receive, from the at least one of the plurality of nodes, obfuscated response data that is responsive to the one or more obfuscated commands.

21. The computing system of claim 20 , wherein the instructions stored on the one or more non-transitory computer-readable storage media that cause the one or more processors to perform the code-level obfuscation further cause the one or more processors to:

deobfuscate the obfuscated response data to generate deobfuscated response data; and

send, to the user computing system, the deobfuscated response data.

22. The computing system of claim 16 ,

wherein the instructions stored on the one or more non-transitory computer-readable storage media cause the one or more processors to perform at least the system-level obfuscation for the distributed computing platform, and

wherein the instructions stored on the one or more non-transitory computer-readable storage media that cause the one or more processors to perform the system-level obfuscation further cause the one or more processors to at least obfuscate the network traffic data that is exchanged between the plurality of nodes by at least one of obfuscating an originating source of the network traffic data or encrypting content of the network traffic data.

23. A non-transitory computer-readable storage medium storing instructions that, when executed, cause a computing system to perform operations comprising:

initializing communications with a plurality of nodes in a distributed computing platform, wherein the plurality of nodes includes one or more compute nodes that provide one or more resources in the distributed computing platform, wherein the plurality of nodes further includes a controller node that performs resource management of the one or more resources in the distributed computing platform, and wherein the computing system serves as an intermediary between the controller node and the one or more compute nodes; and

performing at least one of:

(a) code-level obfuscation for the distributed computing platform to obfuscate interactions between a user computing system and the plurality of nodes, wherein the user computing system is external to the distributed computing platform, wherein performing the code-level obfuscation comprises:

obfuscating, based on a first group of customizable obfuscation policies stored by the obfuscation computing system, data associated with one or more commands provided by the user computing system to generate one or more obfuscated commands; and

sending the one or more obfuscated commands to at least one of the plurality of nodes in the distributed computing platform; or

(b) system-level obfuscation for the distributed computing platform, wherein performing the system-level obfuscation comprises performing, based on a second group of customizable obfuscation policies stored by the obfuscation computing system, at least one of obfuscating system management tasks that are performed to manage the plurality of nodes or obfuscating network traffic data that is exchanged between the plurality of nodes, wherein the second group of customizable obfuscation policies is different from the first group of customizable obfuscation policies.

24. The non-transitory computer-readable storage medium of claim 23 , wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing the code-level obfuscation and the system-level obfuscation for the distributed computing platform.

25. The non-transitory computer-readable storage medium of claim 23 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing at least the system-level obfuscation for the distributed computing platform,

wherein performing the system-level obfuscation comprises at least obfuscating the system management tasks that are performed to manage the plurality of nodes, and

wherein obfuscating the system management tasks that are performed to manage the plurality of nodes comprises obfuscating at least one of: selection of the one or more compute nodes to perform tasks in the distributed computing platform, scheduling of the tasks performed by the one or more compute nodes, configuration of the one or more compute nodes, logging of information associated with the tasks performed by the one or more compute nodes, or authentication of users in the distributed computing platform.

26. The non-transitory computer-readable storage medium of claim 23 ,

wherein performing at least one of the code-level obfuscation or the system-level obfuscation comprises performing at least the code-level obfuscation for the distributed computing platform, and

wherein obfuscating the data associated with the one or more commands provided by the user computing system comprises obfuscating command input data associated with the one or more commands provided by the user computing system to generate the one or more obfuscated commands, the one or more obfuscated commands including the obfuscated command input data.

27. The non-transitory computer-readable storage medium of claim 26 , wherein performing the code-level obfuscation further comprises:

receiving, by the obfuscation computing system and from the at least one of the plurality of nodes, obfuscated response data that is responsive to the one or more obfuscated commands.

28. The non-transitory computer-readable storage medium of claim 27 , wherein performing the code-level obfuscation further comprises:

deobfuscating, by the obfuscation computing system, the obfuscated response data to generate deobfuscated response data; and

sending, by the obfuscating computing system and to the user computing system, the deobfuscated response data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2017
From: POWERS, JUDSON; JOYCE, ROBERT A.; ALOISIO, SCOTT; STILLERMAN, MATTHEW A.
To: ARCHITECTURE TECHNOLOGY CORPORATION
Reel/Frame 042453/0858 →
Cited By (1)
US 12,353,525