Physical Address Randomization for Secure Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems fail to adequately randomize physical memory addresses, leading to predictability that can compromise security, as the same physical pages are often reused across application executions, allowing adversaries to derive sensitive information.

Innovation Solution

Implementing physical address randomization by an operating system that randomly selects physical memory pages from a free list, rather than just generating random virtual address offsets, to increase the randomness of memory allocations across the entire memory space, including pages previously allocated to other applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If the operating system generates random virtual address offsets, then virtual address randomness is improved, but physical address predictability remains high because the same physical pages are reused across application executions

Engineering Contradiction:
Improvevirtual address randomnessVSAvoidphysical address predictability
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

Instead of randomizing virtual addresses and expecting physical address randomness, the patent inverts the approach by directly randomizing physical address selection from the free list. This bypasses the limitation where virtual address randomization alone cannot prevent physical page reuse across executions.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent maintains a free list of physical pages and performs preliminary random selection from this list before allocation. By pre-randomizing the physical page selection and removing selected pages from the free list, the system ensures that even previously allocated pages cannot be predicted for subsequent allocations.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the operating system allocates virtual addresses per application, then application-specific memory management is simplified, but system-wide physical address randomness is reduced

Engineering Contradiction:
Improveapplication-specific memory managementVSAvoidsystem-wide physical address randomness
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent makes the free list and physical address randomization mechanism universal across all applications. Instead of maintaining separate allocation schemes per application, a single free list serves all applications, enabling system-wide randomness while maintaining per-application virtual address management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If physical pages are reused across application executions, then memory efficiency is improved, but security is compromised due to predictable physical address patterns

Engineering Contradiction:
Improvememory efficiencyVSAvoidsecurity vulnerability
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent changes the parameter of physical page selection from deterministic (based on allocation order) to random. By introducing randomness as a new parameter in the physical page selection process, the system maintains memory reuse efficiency while eliminating predictable patterns that create security vulnerabilities.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10810137B2Physical address randomization for secure encrypted memory
Publication Date: 2020.10.20 RED HAT INC
  • US10810137B2 patent drawing
  • US10810137B2 patent drawing
  • US10810137B2 patent drawing

AI summary

An operating system (OS) receives a request to allocate a physical memory page to an address space of an application. The OS maintains a data structure that stores references to a plurality of physical memory pages that are available to be allocated, and generates a random index into the data structure, wherein the random index comprises a random number, and wherein the random index corresponds to a first reference for a first physical memory page of the plurality of physical memory pages. The OS selects the first physical memory page of the plurality of memory pages from the data structure using the random index, and maps the first physical memory page to the address space of the application.