IP Library › Granted Patent US 12,609,811
Granted Patent B2
US 12,609,811 · App. 17/876,370 · Granted Apr 21, 2026

Secured peripheral device communication in virtualized computer system

Inventors: Michael Tsirkin (Yokne'am Illit, IL); Amnon Ilan (Raanana, IL)
Assignee: Red Hat, Inc.
H04L9/0819G06F9/45558H04L9/0861G06F2009/45579G06F2009/45587
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 12,609,811
App. No.
17/876,370
Granted
Apr 21, 2026
Kind
B2
Abstract

Systems and methods for securing assigned peripheral device in virtualized computer system. An example method may comprise receiving, by a virtualized execution environment, a state measurement associated with a peripheral device of the computing system. Generating a guest cryptographic key. Responsive to validating the state measurement, transmitting, to the peripheral device, the guest cryptographic key encrypted using the device cryptographic key. Transmitting, to the peripheral device, an access request that is cryptographically signed using a first value derived from the device cryptographic key or a second value derived from the guest cryptographic key and encrypted using a third value derived from the guest cryptographic key.

Claims (41)

1 . A method comprising:

receiving, by a virtualized execution environment running on a computing system, a state measurement comprising a hash function associated with a peripheral device of the computing system;

retrieving, by the virtualized execution environment, a device cryptographic key generated by the peripheral device and stored on the peripheral device;

generating a guest cryptographic key based on applying a hash transformation to an ephemeral value;

responsive to validating the state measurement, transmitting, to the peripheral device, the guest cryptographic key encrypted using the device cryptographic key; and

transmitting, to the peripheral device, an access request that is cryptographically signed using at least one of: a first value derived from the device cryptographic key or a second value derived from the guest cryptographic key and encrypted using a third value derived from the guest cryptographic key.

2 . The method of claim 1 , wherein validating the state measurement comprises:

comparing the state measurement with an expected state measurement.

3 . The method of claim 1 , wherein the ephemeral value is a random value.

4 . The method of claim 1 , wherein the virtualized execution environment is represented by one of: a virtual machine or a container.

5 . A peripheral device of a computing system, the peripheral device comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

generate a device cryptographic key associated with the peripheral device;

transmit, to a virtualized execution environment running on the computing system, a state measurement comprising a hash function associated with the peripheral device;

provide the device cryptographic key to the virtualized execution environment;

receive, from the virtualized execution environment, a guest cryptographic key generated based on applying a hash transformation to an ephemeral value and encrypted using the device cryptographic key; and

receive, from the virtualized execution environment, an access request that is cryptographically signed using at least one of: a first value derived from the device cryptographic key or a second value derived from the guest cryptographic key and encrypted using a third value derived from the guest cryptographic key.

6 . The peripheral device of claim 5 , wherein, to receive the guest cryptographic key cryptographically signed using the device cryptographic key, the processing device is to:

verify that the guest cryptographic key has not been compromised using the device cryptographic key; and

store the guest cryptographic key in a configuration space of the peripheral device.

7 . The peripheral device of claim 5 , responsive to receiving the access request, the processing device is to:

decrypt the access request using the guest cryptographic key; and

validate the access request using the device cryptographic key.

8 . The peripheral device of claim 7 , wherein the processing device is further to:

responsive to validating the access request, execute the access request.

9 . The peripheral device of claim 7 , wherein the processing device is further to:

responsive to failing validation of the access request, transmit, to the virtualized execution environment, a validation failure, wherein the validation failure indicates that the peripheral device has been compromised.

10 . The peripheral device of claim 5 , wherein the device cryptographic key associated with the peripheral device is stored in a configuration space of the peripheral device.

11 . The peripheral device of claim 5 , wherein the virtualized execution environment is represented by one of: a virtual machine or a container.

12 . A non-transitory computer readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

receive, by a virtualized execution environment running on the processing device, a state measurement comprising a hash function associated with a peripheral device of the computing system;

retrieve, by the virtualized execution environment, a device cryptographic key generated by the peripheral device and stored on the peripheral device;

generate a guest cryptographic key based on applying a hash transformation to an ephemeral value;

responsive to validating the state measurement, transmit, to the peripheral device, the guest cryptographic key encrypted using the device cryptographic key; and

transmit, to the peripheral device, an access request that is cryptographically signed using at least one of: a first value derived from the device cryptographic key or a second value derived from the guest cryptographic key and encrypted using a third value derived from the guest cryptographic key.

13 . The non-transitory computer readable storage medium of claim 12 , wherein, to validate the state measurement, the instructions cause the processing device to:

verify that the state measurement has not been compromised using the device cryptographic key; and

compare the state measurement with an expected state measurement.

14 . The non-transitory computer readable storage medium of claim 12 , wherein the ephemeral value is a short-term value that is generated in response to validating the state measurement.

15 . The non-transitory computer readable storage medium of claim 12 , wherein the virtualized execution environment is represented by one of: a virtual machine or a container.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2022
From: TSIRKIN, MICHAEL; ILAN, AMNON
To: RED HAT, INC.
Reel/Frame 060671/0292 →
Continuity (1)
Related Publication 20240039700A1 · Feb 1, 2024
References Cited (42)
US 5610715A · Yoshii et al. · 1997 [cited by applicant]
US 6377060B1 · Burkhart et al. · 2002 [cited by applicant]
US 6385728B1 · DeBry · 2002 [cited by examiner]
US 7142674B2 · Brickell · 2006 [cited by examiner]
US 8023528B2 · Hendel et al. · 2011 [cited by applicant]
US 8954897B2 · Neystadt et al. · 2015 [cited by applicant]
US 9477486B2 · Raj et al. · 2016 [cited by applicant]
US 9672052B1 · Berreth et al. · 2017 [cited by applicant]
US 9678895B2 · Scott-Nash · 2017 [cited by applicant]
US 9906493B1 · Rodgers et al. · 2018 [cited by applicant]
US 10048982B2 · Chen et al. · 2018 [cited by applicant]
US 10089124B2 · Barlev et al. · 2018 [cited by applicant]
US 10127389B1 · Roth · 2018 [cited by examiner]
US 10303899B2 · Durham et al. · 2019 [cited by applicant]
US 10511591B2 · Campagna · 2019 [cited by examiner]
US 20020004905A1 · Davis · 2002 [cited by examiner]
US 20020080974A1 · Grawrock · 2002 [cited by examiner]
US 20030048905A1 · Gehring · 2003 [cited by examiner]
US 20050149737A1 · Driscoll · 2005 [cited by examiner]
US 20060093138A1 · Durand · 2006 [cited by examiner]
US 20080066074A1 · Nutter et al. · 2008 [cited by applicant]
US 20120079288A1 · Hars · 2012 [cited by examiner]
US 20150106624A1 · Gero · 2015 [cited by examiner]
US 20150199519A1 · Marr · 2015 [cited by examiner]
US 20150295713A1 · Oxford · 2015 [cited by examiner]
US 20160036587A1 · Hans · 2016 [cited by examiner]
US 20160239339A1 · Chen et al. · 2016 [cited by applicant]
US 20170034165A1 · Bagal · 2017 [cited by examiner]
US 20180088804A1 · Mummidi · 2018 [cited by examiner]
US 20180107608A1 · Kaplan et al. · 2018 [cited by applicant]
US 20180239715A1 · Tsirkin et al. · 2018 [cited by applicant]
US 20180247082A1 · Durham et al. · 2018 [cited by applicant]
US 20200151362A1 · Harriman et al. · 2020 [cited by applicant]
US 20200310972A1 · Shanbhogue et al. · 2020 [cited by applicant]
US 20210294628A1 · Tsirkin · 2021 [cited by applicant]
US 20210389965A1 · Dabak et al. · 2021 [cited by applicant]
CN 109858265A · 2019 [cited by applicant]
CN 112363800A · 2021 [cited by examiner]
KR 20100008678A1 · 2010 [cited by examiner]
David Kaplan et al., AMD Memory Encryption, https://developer.amd.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf, Apr. 21, 2016,12 pages, Advanced Micro Devices. [cited by applicant]
Mengyuan Li et al., Exploiting Unprotected I/O Operations in AMD's Secure Encrypted Virtualization, https://www.usenix.org/system/files/sec19-li-mengyuan_0.pdf, Aug. 14-16, 2019,17 pages,The Ohio State University; Unive… [cited by applicant]
ZeCoRx—Zero Copy Receive, 1. https://www.mikelangelo-project.eu/technology/zecorx-zero-copy-receive/, 4 pages, downloaded Nov. 27, 2019. [cited by applicant]