L3 Cache Encryption for VM Isolation in Multi-Core Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In Infrastructure as a Service (IaaS) cloud environments, there is a lack of strong mechanisms to guarantee effective separation between virtual machines (VMs) executed on the same central processing unit (CPU), leading to security concerns such as side attacks and data leakage, even with hypervisor-enforced separation.
Innovation Solution
Implementing memory compartmentalization by encrypting Layer 3 (L3) cache lines using a key under the control of a given VM within the trust boundaries of the processing core, with a trust anchor managing keys for encryption and decryption, and using Advanced Encryption Standard (AES) Counter Mode (AES-CTR) for secure data transfer between caches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple VMs are executed on the same CPU server to enable cloud computing scalability, then computing power and resource sharing are improved, but security separation and data leakage prevention deteriorate
Solution Approach 1:
The patent applies segmentation by dividing the shared L3 cache into separate encrypted regions for each VM. Each VM has its own encryption key, and the L3 cache is partitioned so that each VM can only access its designated region. This physical segmentation of the shared memory space prevents VMs from accessing each other's data while maintaining the benefits of shared hardware resources.
Solution Approach 2:
The patent introduces encryption as an intermediary mechanism between VMs and the shared L3 cache. The encryption layer acts as a mediator that allows multiple VMs to share the same physical memory resource while maintaining logical isolation. The encryption keys serve as the intermediary that controls access permissions, ensuring that each VM can access the cache but only for its own data.
2Reliability
If hypervisor enforces separation between VMs, then security is improved, but data leakage through hypervisor bugs or attacks cannot be prevented
Solution Approach 1:
The patent applies preliminary action by encrypting data in the L3 cache before any VM can access it. The encryption is performed in advance during cache line transfers, so that even if a hypervisor bug exists or a VM launches an attack, the data remains encrypted and inaccessible. This preemptive encryption prevents data leakage before it can occur.
Solution Approach 2:
The patent converts the potential harm of shared memory access into a benefit by using encryption to control access. Instead of trying to prevent all access attempts (which would require complete isolation), the system allows access but encrypts the data, transforming the shared memory architecture from a security risk into a secure feature that enables both sharing and protection.
3Productivity
If L3 cache is shared by multiple cores for performance, then computing efficiency is improved, but unauthorized access between VMs increases security risks
Solution Approach 1:
The patent applies local quality by making the encryption key local to each VM while the L3 cache remains shared. Each VM has its own unique encryption key that is stored in its local L2 cache, and this local key is used to encrypt and decrypt data in the shared L3 cache. This allows the system to maintain shared memory performance while providing per-VM security isolation.
Solution Approach 2:
The patent changes the state of data in the L3 cache from unencrypted to encrypted form. By changing the parameter of data encryption/decryption, the system maintains the same physical shared memory structure and access patterns but transforms the semantic meaning of the data to be VM-specific. The cache lines are encrypted using AES-CTR mode with VM-specific keys, changing the data's accessibility parameter without affecting the hardware architecture.
Data Source
Figure 1A~1B
Figure 2
Figure 3
AI summary
Techniques for memory compartmentalization for trusted execution of a virtual machine (VM) on a multi-core processing architecture are described. Memory compartmentalization may be achieved by encrypting layer 3 (L3) cache lines using a key under the control of a given VM within the trust boundaries of the processing core on which that VMs is executed. Further, embodiments described herein provide an efficient method for storing and processing encryption related metadata associated with each encrypt/decrypt operation performed for the L3 cache lines.