PCIe Trust Domains for Virtual Machine Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In modern computer systems using virtualization, the security vulnerability arises when PCIe devices connected to the same switch are allowed to perform peer-to-peer transactions without IOMMU evaluation, potentially enabling malicious access to memory allocated to other virtual machines, leading to side-channel attacks.

Innovation Solution

Implementing trust domains through unique trust identifiers for PCIe devices and virtual machines, allowing the hypervisor to enable or disable direct routing of Translated Memory Requests between PCIe devices connected to the same switch, thereby preventing unauthorized access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If Address Control Services (ACS) are enabled for peer-to-peer transactions, then routing efficiency is improved, but security is worsened because PCIe TLPs are not sent to the IOMMU to evaluate permission

Engineering Contradiction:
Improverouting efficiencyVSAvoidsecurity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces a trust identifier verification mechanism as an intermediary between PCIe devices and the IOMMU. The hypervisor assigns trust identifiers to PCIe devices and virtual machines, and the PCIe switch verifies these identifiers before allowing peer-to-peer transactions. This intermediary layer maintains routing efficiency while adding security evaluation, resolving the contradiction between speed and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If direct routing of peer-to-peer Translated Memory Requests is enabled, then transaction speed is improved, but security against side-channel attacks is worsened

Engineering Contradiction:
Improvetransaction speedVSAvoidside-channel attacks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary action by having the hypervisor assign trust identifiers to PCIe devices and virtual machines before transactions occur. The PCIe switch is pre-configured with these trust identifiers and uses them to verify device permissions before allowing direct memory access. This preliminary verification enables fast direct routing while preventing side-channel attacks, as the security check is performed in advance rather than during the transaction.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple virtual machines share a PCIe switch with PCIe devices, then resource utilization is improved, but security isolation between virtual machines is worsened

Engineering Contradiction:
Improveresource utilizationVSAvoidsecurity isolation
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies local quality by assigning unique trust identifiers to each virtual machine and its associated PCIe devices. The PCIe switch verifies the trust identifier of each device initiating a peer-to-peer transaction, ensuring that only devices within the same trust domain can communicate directly. This local verification mechanism enables multiple virtual machines to share the PCIe switch for improved resource utilization while maintaining strict security isolation between them.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11741021B2Trust domains for peripheral devices
Publication Date: 2023.08.29 VMWARE INC
  • US11741021B2 patent drawing
  • US11741021B2 patent drawing
  • US11741021B2 patent drawing

AI summary

Disclosed are various embodiments for various approaches for implementing trust domains to provide boundaries between PCIe devices connected to the same PCIe switch. A first trust identifier can be assigned to a first virtual machine hosted by the computing device. The first trust identifier can also be assigned to a first PCIe device assigned to the first virtual machine. Later, it can be determined that a second PCIe device connected to the PCIe switch is assigned a second trust identifier assigned to a second virtual machine. An Address Control Services (ACS) direct translated bit for peer-to-peer memory requests in the PCIe switch can be disabled in response to a determination that the second PCIe device is associated with the second trust identifier assigned to the second virtual machine.