IP Library Granted Patent US 11,113,400
Granted Patent B1
US 11,113,400 · App. 15/854,402 · Granted Sep 7, 2021

System and method for providing distributed compute platform on untrusted hardware

Inventors: Pavel Emelyanov (Moscow, RU); Alexander G. Tormasov (Moscow, RU); Alexey Kobets (Seattle, WA)
Assignee: Virtuozzo International GmbH
G06F21/575G06F9/45558G06F21/44H04L9/008H04L9/3247G06F2009/45587H04L2209/56
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,113,400
App. No.
15/854,402
Granted
Sep 7, 2021
Kind
B1
Abstract

A system and method is provided for providing distributed computing platform on untrusted hardware. An exemplary method includes launching a hypervisor on an untrusted computing node and receiving a request generated to provide a computing function using hardware of the untrusted computing node. Upon receiving the request, an enclave in memory of the untrusted computing node is created and a virtual machine is launched in the memory enclave. Moreover, a guest operating system of the virtual machine verifies the security of the untrusted computing node. Finally, the guest operating system performs the computing function using the hardware of the untrusted computing node upon the guest operating system verifying the security of the untrusted computing node and the hypervisor.

Claims (77)

1. A method for providing a secure computing platform on an untrusted computing node, the method comprising:

providing a hypervisor on the untrusted computing node;

receiving, by the untrusted computing node, a request generated by a client device to perform a computing function for the client device using hardware of the untrusted computing node;

in response to the received request, creating, an enclave in memory of the untrusted computing node and launching a virtual machine in the memory enclave;

performing a chain of trust to verify that the virtual machine is running on a secure computing node and a trusted hypervisor, wherein the chain of trust includes:

verifying, by a BIOS of the untrusted computing node, the hardware of the untrusted computing node and then starting a boot loader;

verifying, by the boot loader, the BIOS and then starting a kernel of an operating system;

verifying, by the kernel, the boot loader, and then starting the hypervisor;

verifying the kernel by the hypervisor running on the kernel, and then creating a virtual machine; and

verifying, security of the untrusted computing node by a guest operating system in the virtual machine; and

performing, by the guest operating system, the computing function using the hardware of the untrusted computing node upon the guest operating system verifying the security of the untrusted computing node.

2. The method according to claim 1 , further comprising:

receiving, by a broker, the request generated by the client device; and

transmitting, by the broker, the request to the untrusted computing node to perform the computing function using the hardware of the untrusted computing node.

3. The method according to claim 2 , further comprising:

registering, by the untrusted computing node, with the broker to offer use of the hardware of the untrusted computing node; and

receiving, by the untrusted computing node from the broker, an operating system image that includes the hypervisor.

4. The method according to claim 2 , further comprising transmitting an indication that the untrusted computing node cannot perform the requested computing function if the guest operating system in the virtual machine cannot verify the security of the untrusted computing node.

5. The method according to claim 1 , further comprising relocating the hypervisor in the memory enclave after the memory enclave is created by the hypervisor.

6. The method according to claim 1 , wherein the guest operating system verifies the security of the untrusted computing node by:

obtaining a digital signature of a trusted boot module; and

transmitting, by the guest operating system, the digital signature of the trusted boot module to a third party authority that validates the digital signature and provides a response to the guest operating system.

7. The method according to claim 1 , wherein verification of each of the hardware, the BIOS, the boot loader and the kernel comprises calculating a respective checksum and comparing the respective checksum to a predetermined built-in value of the checksum.

8. The method according to claim 2 , further comprising transmitting, by the untrusted computing node, a result of the computing function to the broker to be provided to the client device.

9. The method according to claim 1 , further comprising:

determining, whether data associated with the computing function is homomorphically encrypted;

when the data associated with the computing function is homomorphically encrypted, putting at least a portion of the data associated with the computing function outside of the enclave; and

performing the computing function on the encrypted data which is outside of the memory enclave.

10. A system for providing a secure computing platform, the system comprising:

an untrusted computing node having memory;

a hypervisor running on the untrusted computing node and configured to create an enclave in the memory of the untrusted computing node upon receiving a request generated by a client device to perform a computing function on the untrusted computing node; launch a virtual machine in the memory enclave; and

a guest operating system in the virtual machine configured to: perform a chain of trust to verify that the virtual machine is running on a secure computing node and a trusted hypervisor, wherein the chain of trust includes:

verifying, by a BIOS of the untrusted computing node, hardware of the untrusted computing node and then starting a boot loader;

verifying, by the boot loader, the BIOS and then starting a kernel of the operating system;

verifying, by the kernel, the boot loader, and then starting the hypervisor;

verifying the kernel by the hypervisor running on the kernel, and then creating a virtual machine; and

verifying, security of the untrusted computing node by a guest operating system in the virtual machine; and

perform the computing function on the untrusted computing node upon the verifying of the security of the untrusted computing node.

11. The system according to claim 10 , wherein the untrusted computing node is configured to:

register with a broker to offer use of the untrusted computing node, and

receive, from the broker, an operating system image that includes the hypervisor.

12. The system according to claim 11 , wherein an indication that the untrusted computing node cannot perform the requested computing function is transmitted to the broker if the guest operating system in the virtual machine cannot verify the security of the untrusted computing node and the hypervisor.

13. The system according to claim 10 , wherein the hypervisor is further configured to relocate itself in the memory enclave after the hypervisor creates the memory enclave.

14. The system according to claim 10 , wherein the guest operating system is further configured to verify the security of the untrusted computing node by:

obtaining a digital signature of a trusted boot module; and

transmitting the digital signature of the trusted boot module to a third party authority that validates the digital signature and provides a response to the guest operating system.

15. The system to claim 10 , wherein each of the hardware, the BIOS, the boot loader and the kernel is validated by calculating a respective checksum and comparing the respective checksum to a predetermined built-in value of the checksum.

16. The system according to claim 11 , wherein the untrusted computing node is further configured to transmit a result of the computing function to the broker to be provided to the client device.

17. The system according to claim 10 , wherein the hypervisor is further configured to:

determine whether data associated with the computing function is homomorphically encrypted;

when the data associated with the computing function is homomorphically encrypted, put at least a portion of the data associated with the computing function outside of the enclave; and

perform the computing function on the encrypted data which is outside of the memory enclave.

18. A system for providing a secure computing platform on an untrusted computing node, the system comprising:

a broker configured to:

receive a request generated by a client device to perform a computing function on a remote hardware node,

select the untrusted computing node from a plurality of remote hardware nodes to performing the computing function, and

transmit the request to the selected untrusted computing node to perform the computing function on the untrusted computing node,

wherein in response to the received request, the untrusted computing node is configured to create an enclave in memory of the untrusted computing node; launch a virtual machine in the memory enclave; and

wherein a guest operating system in the virtual machine is configured to: perform a chain of trust to verify that the virtual machine is running on a secure computing node and a trusted hypervisor, wherein the chain of trust includes:

verifying, by a BIOS of the untrusted computing node, the hardware of the untrusted computing node and then starting a boot loader;

verifying, by the boot loader, the BIOS and then starting a kernel of the operating system;

verifying, by the kernel, the boot loader, and then starting the hypervisor;

verifying the kernel by the hypervisor running on the kernel, and then creating a virtual machine; and

verifying, security of the untrusted computing node by a guest operating system in the virtual machine; and

perform the computing function on the untrusted computing node upon the guest operating system verifying the security of the untrusted computing node.

19. The system according to claim 18 ,

wherein the untrusted computing node is configured to register with the broker to offer use of the untrusted computing node, and

wherein, upon the registration by the untrusted computing node, the broker is configured to transmit to the untrusted computing node an operating system image that includes a hypervisor.

20. The system according to claim 19 , wherein the hypervisor is further configured to relocate itself in the memory enclave after the hypervisor creates the memory enclave.

21. The system according to claim 18 , wherein the guest operating system in the virtual machine is further configured to verify the security of the untrusted computing node by:

obtaining a digital signature of a trusted boot module; and

transmitting the digital signature of the trusted boot module to a third party authority that validates the digital signature and provides a response to the guest operating system.

22. The system according to claim 18 , wherein the broker is further configured to receive a result of the computing function, from the untrusted computing node, and to provide the result of the computing function to the client device.

23. The system according to claim 18 , wherein the hypervisor is further configured to:

determine whether data associated with the computing function is homomorphically encrypted;

when the data associated with the computing function is homomorphically encrypted, put at least a portion of the data associated with the computing function outside of the enclave; and

perform the computing function on the encrypted data which is outside of the memory enclave.

Assignments (2)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2021
From: EMELYANOV, PAVEL; TORMASOV, ALEXANDER G; KOBETS, ALEXEY
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 056667/0863 →