CRTM Code Update via L2 Cache Copying

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for updating Core Root of Trust for Measurement (CRTM) software are insecure and cannot be updated while the system is executing, as the flash memory sectors where CRTM is stored are locked, requiring reprogramming and ensuring only trusted, digitally signed code can perform updates.

Innovation Solution

A system and method that utilize a cache memory to execute and update CRTM code, allowing the processor to copy updated CRTM code from a staging area in ROM to the cache and then to the primary storage location, while verifying the signature of the new code to ensure security and integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flash memory sectors are locked to protect CRTM code, then security and integrity are improved, but the ability to update CRTM code is lost

Engineering Contradiction:
ImprovesecurityVSAvoidupdatability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The flash memory is divided into multiple sectors, with at least one sector dedicated to storing updated CRTM code. This segmentation allows the system to maintain locked protection for the primary CRTM code while providing a separate, accessible area for storing updates, thereby resolving the contradiction between security and updatability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by storing updated CRTM code in a dedicated sector before the actual update process. This preliminary storage allows the updated code to be prepared and verified while the original locked sectors remain protected, enabling secure in-place updates without compromising integrity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If CRTM code is stored in locked flash sectors, then protection against unauthorized writes is improved, but the ability to execute updated code is lost

Engineering Contradiction:
ImproveprotectionVSAvoidcode execution
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary mechanism where updated CRTM code is first stored in a dedicated sector that is accessible for reading. This intermediary storage area allows the system to read and execute updated code without needing to modify the locked primary sectors, thus maintaining both protection and ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If flash memory is reprogrammed to update CRTM, then updated functionality is achieved, but system downtime and complexity increase

Engineering Contradiction:
ImprovefunctionalityVSAvoidreprogramming process
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system uses copying by storing the updated CRTM code in a dedicated flash sector rather than performing complex in-place reprogramming operations. This copying approach simplifies the update process by allowing the system to read and execute the copied code directly, avoiding the complexity of modifying locked memory sectors while achieving functional updates.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8943491B2Systems and methods for maintaining CRTM code
Publication Date: 2015.01.27 LENOVO INT LTD
  • US8943491B2 patent drawing
  • US8943491B2 patent drawing
  • US8943491B2 patent drawing

AI summary

Embodiments comprise systems, methods and media for updating CRTM code in a computing machine. In one embodiment, the CRTM code initially resides in ROM and updated CRTM is stored in a staging area of the ROM. A logical partition of L2 cache may be created to store a heap and a stack and a data store. The data store holds updated CRTM code copied to the L2 cache. When a computing system is started, it first executes CRTM code. The CRTM code checks the staging area of the ROM to determine if there is updated CRTM code. If so, then CRTM code is copied into the L2 cache to be executed from there. The CRTM code loads the updated code into the cache and verifies its signature. The CRTM code then copies the updated code into the cache where the current CRTM code is located.