Data Transfer Buffer Mitigates Cache Timing Side-Channel Attacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Side-channel attacks, such as Meltdown and Spectre, exploit speculative execution and cache timing to infer information from protected memory spaces, posing a significant threat to computer security by allowing unauthorized access to kernel memory.

Innovation Solution

Implementing a system with a data transfer buffer that temporarily holds data from main memory until an instruction is successfully executed and retired, preventing direct transfer to the processor cache, thus mitigating the ability of attackers to use cache timing to infer data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is transferred directly from main memory to processor cache during speculative execution, then processing speed is improved, but security is worsened due to side-channel timing attacks

Engineering Contradiction:
Improveprocessing speedVSAvoidside-channel timing attacks
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a data transfer buffer as an intermediary component between main memory and processor cache. This buffer temporarily holds data during speculative execution, preventing direct cache population from uncommitted instructions. The buffer acts as a mediator that decouples the memory access from cache updates, allowing speculative execution to proceed at full speed while blocking the attack vector that relies on timing cache access patterns to infer protected memory contents.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If processor executes instructions speculatively before validation, then productivity is improved, but reliability is worsened due to potential unauthorized memory access

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidmemory access security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary action by having the data transfer buffer pre-accept and temporarily store data from main memory during speculative execution before the instruction is validated and committed. This preliminary data staging allows the processor to execute instructions speculatively without immediate cache updates. Only after successful instruction validation does the data flow from the buffer to the cache, ensuring that unauthorized speculative accesses do not persist in the cache where they could be exploited through timing attacks.

Inventive Principle:
Principle #10Preliminary action

3Speed

If cache is used for fast data access, then speed is improved, but security is worsened because cache timing reveals information about protected memory

Engineering Contradiction:
Improvedata access speedVSAvoidinformation leakage through timing
Core Design Contradiction:
SpeedVSLoss of information

Solution Approach 1:

The patent segments the data transfer path into distinct stages: main memory, data transfer buffer, and processor cache. By inserting the buffer as a separate stage, the patent creates a security boundary that prevents direct correlation between cache access timing and protected memory contents. The buffer decouples the timing characteristics of memory access from cache access, maintaining the speed benefits of caching while eliminating the information leakage channel that attackers exploit through precise timing measurements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10606756B2Impeding malicious observation of CPU cache operations
Publication Date: 2020.03.31 INTEL CORP
  • US10606756B2 patent drawing
  • US10606756B2 patent drawing
  • US10606756B2 patent drawing

AI summary

The present disclosure is directed to systems and methods for preventing or mitigating the effects of a cache-timing based side channel attack, such as a Meltdown type attack. In response to a speculatively executed data access by an unretired or incomplete instruction, rather than transferring data to the CPU cache, the data is instead transferred to data transfer buffer circuitry where the data is held in the form of a record until the instruction requesting the data is successfully completed or retired. Upon retirement of the instruction requesting the data access, the data included in the record may be transferred to the CPU cache. Each record held in the data transfer buffer circuitry may include: a data source identifier; a physical/virtual address of the data; a cache line that includes the data; and an instruction identifier associated with the instruction initiating the data access.