GPU Trust-Domain Memory Protection with Encrypted Translation Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies face challenges in ensuring confidentiality and integrity of GPU workloads while maintaining performance, particularly in virtualized environments where trust domains are involved, as VMM and PF KMD entities are not trusted.
Innovation Solution
Implementing secure translation tables with encryption keys and memory encryption blocks to protect GPU local memory, ensuring confidentiality and integrity, and using separate keys for trust domains to prevent unauthorized access and attacks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory encryption blocks and secure translation tables are implemented to protect GPU local memory, then confidentiality and integrity are improved, but device complexity increases
Solution Approach 1:
A memory encryption block is introduced as an intermediary component between the GPU and device memory. This block transparently encrypts and decrypts memory accesses without requiring changes to the GPU architecture or application code, thereby improving confidentiality while adding minimal complexity through a dedicated security component.
Solution Approach 2:
The translation table system is segmented into secure and non-secure versions. Secure translation tables are used for trust domain accesses and are protected by encryption keys, while non-secure tables handle regular accesses. This segmentation allows selective application of security measures, improving integrity for critical data while managing overall system complexity.
2Reliability
If separate encryption keys are allocated for each trust domain, then security against unauthorized access is improved, but device complexity and key management overhead increase
Solution Approach 1:
Each trust domain is allocated a unique encryption key specifically for its secure translation tables, creating localized security zones. This ensures that compromise of one trust domain does not affect others, improving security isolation while the memory encryption block automates key management to reduce operational overhead.
Solution Approach 2:
The memory encryption block automatically manages encryption and decryption operations using the allocated keys without requiring manual intervention. The system self-manages the cryptographic operations, reducing the burden on system administrators while maintaining strong security through domain-specific keys.
3Reliability
If secure translation tables are used for all memory accesses, then confidentiality is improved, but processing performance deteriorates due to encryption overhead
Solution Approach 1:
The system dynamically selects between secure and non-secure translation tables based on the trust domain status of the accessing entity. Trust domain processes automatically use secure tables with encryption, while non-trust processes use standard tables, optimizing performance by applying encryption only when necessary rather than universally.
Solution Approach 2:
The system changes the security parameter (encryption enabled/disabled) based on the access context. When a trust domain process accesses memory, encryption is activated; for regular processes, encryption is bypassed. This parameter switching maintains confidentiality for sensitive operations while preserving performance for non-sensitive workloads.
Data Source
Figure 1A
Figure 1B
Figure 2A
AI summary
Device memory protection for supporting trust domains is described. An example of a computer-readable storage medium includes instructions for allocating device memory for one or more trust domains (TDs) in a system including one or more processors and a graphics processing unit (GPU); allocating a trusted key ID for a TD of the one or more TDs; creating LMTT (Local Memory Translation Table) mapping for address translation tables, the address translation tables being stored in a device memory of the GPU; transitioning the TD to a secure state; and receiving and processing a memory access request associated with the TD, processing the memory access request including accessing a secure version of the address translation tables.