Programmable Memory Access Control for Secure Code Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems face challenges in ensuring the security and integrity of code loaded from untrusted sources, as storing code in external programmable memory can lead to untrusted code being loaded into chips, compromising security.

Innovation Solution

A method and system that allow code to be written to programmable memory in a first access mode, prevent execution, verify integrity, and switch to a second access mode where the code acts as read-only memory, ensuring only trusted code is executed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code is stored in ROM, then security and integrity of code is ensured, but code cannot be updated or modified after manufacture

Engineering Contradiction:
Improvecode integrityVSAvoidcode upgradability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory access mode is made dynamic, switching between first access mode (writable, non-executable) during loading and verification, and second access mode (non-writable, executable) after verification. This dynamic state change allows the same memory to serve both updateability and security requirements at different times.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The access rights to the programmable memory are segmented into two distinct modes: first access mode allowing writes but preventing execution, and second access mode preventing writes but allowing execution. This segmentation enables the system to achieve both upgradability during loading and security during execution.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If code is loaded from external programmable memory, then code can be updated after manufacture, but security is reduced as untrusted code may be loaded

Engineering Contradiction:
Improvecode upgradabilityVSAvoidcode trustworthiness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs integrity verification of the code before transitioning to the second access mode. This preliminary verification action ensures that only trusted code is allowed to be executed, while still permitting updates from untrusted sources during the first access mode.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The programmable memory acts as an intermediary between external untrusted sources and the execution environment. During the first access mode, it accepts code from untrusted sources but prevents execution. After verification, it transitions to the second access mode where only verified code can be executed, thus mediating between updateability and security.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If code can be written to memory, then code can be updated, but execution of untrusted code becomes possible

Engineering Contradiction:
Improvecode modifiabilityVSAvoiduntrusted code execution
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The execution permission is dynamically disabled during the first access mode while write permission is enabled, allowing code updates without execution. After verification, the system transitions to the second access mode where execution is enabled but writes are prevented, thus dynamically separating modifiability and execution rights to prevent untrusted code execution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The memory access permissions are segmented into two distinct sets: first access mode with write permission but without execution permission, and second access mode with execution permission but without write permission. This segmentation ensures that code can be updated without risking execution of untrusted code.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8219772B2Loading secure code into a memory
Publication Date: 2012.07.10 STMICROELECTRONICS (RES & DEV) LTD
  • US8219772B2 patent drawing
  • US8219772B2 patent drawing
  • US8219772B2 patent drawing

AI summary

A method and system of controlling access to a programmable memory including: allowing code to be written to the programmable memory in a first access mode; preventing execution of the code stored in the programmable memory in the first access mode; verifying the integrity of the code stored in the programmable memory; if the integrity of the code stored in the programmable memory is verified, setting a second access mode, wherein in the second access mode, further code is prevented from being written to the programmable memory, and execution of the code stored in the programmable memory is allowed.