IP Library › Granted Patent US 11,831,755
Granted Patent B2
US 11,831,755 · App. 17/452,105 · Granted Nov 28, 2023

Generating hypervisor protected key for cryptography

Inventors: Reinhard Theodor Buendgen (Tuebingen, DE); Christian Borntraeger (Stuttgart, DE)
Assignee: International Business Machines Corporation
H04L9/0825G06F9/45545H04L9/0869H04L9/3226
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,831,755
App. No.
17/452,105
Granted
Nov 28, 2023
Kind
B2
Abstract

A method, a computer system, and a computer program product for cryptography are provided. A guest virtual server registers with a trusted hypervisor by using guest credentials. A guest wrapping key associated with the guest credentials is generated. A satellite virtual server instance that shares a master key with the virtual guest server is generated in the trusted hypervisor. A copy of the guest wrapping key is passed to the satellite virtual server instance. A random guest key is wrapped with the guest wrapping key, thereby producing a wrapped guest key. The wrapped guest key is rewrapped with the master key to form a protected guest key.

Claims (59)

1. A computer-implemented method for cryptography, the computer-implemented method comprising:

registering a guest virtual server with a trusted hypervisor by using guest credentials;

computing via the trusted hypervisor a hash value of the guest credentials;

generating a guest wrapping key and associating the hash value of the guest credentials with the guest wrapping key;

storing the hash value of the guest credentials and the guest wrapping key in a memory;

generating a satellite virtual server instance configured with virtual server specific data from the guest virtual server;

passing a copy of the guest wrapping key to the satellite virtual server instance;

wrapping, via the satellite virtual server instance, a random guest key with the guest wrapping key, thereby producing a wrapped random guest key;

passing the wrapped random guest key to the guest virtual server;

in response to a request from the guest virtual server, unwrapping, via the satellite virtual server instance and the guest wrapping key, the wrapped random guest key to form an unwrapped key;

rewrapping the unwrapped key with a master key to form a protected guest key; and

passing a copy of the protected guest key to the guest virtual server.

2. The computer-implemented method according to claim 1 , further comprising sending a conversion request from the guest virtual server, the conversion request comprising the guest credentials as a conversion argument, the rewrapping being performed in response to reception of the conversion request.

3. The computer-implemented method according to claim 1 , wherein the trusted hypervisor maintains the memory.

4. The computer-implemented method according to claim 3 , further comprising protecting the memory with a passphrase.

5. The computer-implemented method according to claim 1 , wherein the computing the hash value comprises using a cryptographic one-way function.

6. The computer-implemented method according to claim 1 , further comprising protecting the guest wrapping key via a hardware security module.

7. The computer-implemented method according to claim 1 , further comprising:

storing the virtual server specific data in a crypto control block of a virtual machine.

8. The computer-implemented method according to claim 1 , wherein the satellite virtual server instance has a sole interface, and

wherein the sole interface connects to the trusted hypervisor.

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

generating the random guest key via the trusted hypervisor using a service from the satellite virtual server instance,

wherein the wrapping of the random guest key occurs via the trusted hypervisor using the service from the satellite virtual server instance.

10. The computer-implemented method according to claim 1 , further comprising authorizing, by the trusted hypervisor, each request following the registering,

wherein the authorizing comprises using additional guest credentials provided with a respective request following the registering.

11. The computer-implemented method according to claim 1 , further comprising authorizing, by the trusted hypervisor, a further request of the guest virtual server following the registering, wherein the authorizing comprises using guest specific data.

12. The computer-implemented method of claim 1 , wherein the satellite virtual server instance shares the master key with the guest virtual server.

13. The computer-implemented method of claim 1 , wherein the satellite virtual server instance and the guest virtual server are disposed within a same computer.

14. A computer system for cryptography, the computer system comprising:

one or more processors, one or more computer-readable memories, and program instructions stored on at least one of the one or more computer-readable memories for execution by at least one of the one or more processors to cause the computer system to:

register a guest virtual server with a trusted hypervisor by using guest credentials;

compute via the trusted hypervisor a hash value of the guest credentials;

generate a guest wrapping key and associate the hash value of the guest credentials with the guest wrapping key;

store the hash value of the guest credentials and the guest wrapping key in a memory;

generate a satellite virtual server instance configured with virtual server specific data from the guest virtual server;

pass a copy of the guest wrapping key to the satellite virtual server instance;

wrap, via the satellite virtual server instance, a random guest key with the guest wrapping key, thereby producing a wrapped random guest key;

pass the wrapped random guest key to the guest virtual server;

in response to a request from the guest virtual server, unwrap, via the satellite virtual server instance and the guest wrapping key, the wrapped random guest key to form an unwrapped key;

rewrap the unwrapped key with a master key to form a protected guest key; and

pass a copy of the protected guest key to the guest virtual server.

15. The computer system according to claim 14 , wherein the program instructions are further for execution by the at least one of the one or more processors to cause the computer system to send a conversion request from the guest virtual server, the conversion request comprising the guest credentials as a conversion argument, the rewrapping being performed in response to reception of the conversion request.

16. The computer system according to claim 14 , wherein the trusted hypervisor maintains the memory.

17. The computer system according to claim 16 , wherein the program instructions are further for execution by the at least one of the one or more processors to cause the computer system to protect the memory with a passphrase.

18. The computer system according to claim 14 , wherein the computing the hash value comprises using a cryptographic one-way function.

19. The computer system according to claim 14 , wherein the program instructions are further for execution by the at least one of the one or more processors to cause the computer system to protect the guest wrapping key via a hardware security module.

20. A computer program product for cryptography, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a processor to cause the processor to:

register a guest virtual server with a trusted hypervisor by using guest credentials;

compute via the trusted hypervisor a hash value of the guest credentials;

generate a guest wrapping key and associate the hash value of the guest credentials with the guest wrapping key;

store the hash value of the guest credentials and the guest wrapping key in a memory;

generate a satellite virtual server instance configured with virtual server specific data from the guest virtual server;

pass a copy of the guest wrapping key to the satellite virtual server instance;

wrap, via the satellite virtual server instance, a random guest key with the guest wrapping key, thereby producing a wrapped random guest key;

pass the wrapped random guest key to the guest virtual server;

in response to a request from the guest virtual server, unwrap, via the satellite virtual server instance and the guest wrapping key, the wrapped random guest key to form an unwrapped key;

rewrap the wrapped guest key with the master key to form a protected guest key; and

pass a copy of the protected guest key to the guest virtual server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2021
From: BUENDGEN, REINHARD THEODOR; BORNTRAEGER, CHRISTIAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057898/0369 →
Continuity (2)
Continuation 16919159 · Jul 2, 2020
Related Publication 20220045853A1 · Feb 10, 2022