Verifier Processor for Flash Memory Code Authentication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conditional access devices using flash memory are vulnerable to hacking, as existing security measures can be bypassed by manipulating CPU boot processes, allowing unauthorized code to execute without further verification.

Innovation Solution

An additional verifier processor and instruction monitor are integrated within the same device as the CPU, continuously checking flash memory against stored signatures using hashing and digital signature techniques, ensuring only authenticated code is executed and preventing unauthorized code execution by issuing a reset if discrepancies are found.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a CPU boots from ROM and checks flash memory boot sector once on startup, then security verification is provided, but the system remains vulnerable to hacking by forcing CPU to read from unchecked memory areas after a predetermined number of clock cycles

Engineering Contradiction:
Improvesecurity verificationVSAvoidmemory checking mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system divides the single CPU function into two separate processors: a CPU for executing application code and a verifier processor for continuously verifying code integrity. This segmentation allows the verifier processor to independently check flash memory contents while the CPU runs applications, resolving the vulnerability where a single CPU could be forced to read unchecked memory areas.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verifier processor performs preliminary verification of flash memory contents before the CPU executes any code. It continuously checks the integrity of code stored in flash memory by comparing it against stored signatures, ensuring that only authenticated code can be executed by the CPU, thus preventing hacking before it can occur.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If code is stored in flash memory for application execution, then flexibility and updatability are provided, but the memory becomes insecure and prone to hacking by storing unauthorised code

Engineering Contradiction:
Improvecode updatabilityVSAvoidmemory security
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The verifier processor establishes a continuous feedback loop that monitors code integrity in flash memory. It repeatedly verifies the authenticity of stored code by comparing it against cryptographic signatures, providing real-time security feedback that prevents unauthorized code execution while allowing legitimate code updates to be performed and verified.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The verifier processor acts as an intermediary between the flash memory and the CPU. It intercepts and verifies code fetches, standing between the memory and the executing processor to ensure that only authenticated code reaches the CPU, thus securing the flash memory interface while maintaining code updatability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If checking devices redundantly verify code, then security is enhanced, but device complexity and resource usage increase

Engineering Contradiction:
Improvecode verification securityVSAvoidverification system structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The verifier processor is integrated into the same device as the CPU, sharing common resources such as the system bus, memory interface, and power supply. This merging approach provides redundant verification capability while minimizing the increase in device complexity by utilizing existing infrastructure rather than adding completely separate verification hardware.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7624442B2Memory security device for flexible software environment
Publication Date: 2009.11.24 STMICROELECTRONICS (RES & DEV) LTD
  • US7624442B2 patent drawing
  • US7624442B2 patent drawing
  • US7624442B2 patent drawing

AI summary

A semiconductor integrated circuit includes a processor for executing application code from a memory and a verifier processor arranged to receive the application code via the same internal bus as the processor. The verifier processor performs a verification function to check that the application code is authentic. The verifier processor runs autonomously and cannot be spoofed as it receives the application code via the same internal bus as the main processor. An additional instruction monitor checks the code instructions from the CPU and also impairs the operation of the circuit unless the address of code requested is in a given range. The code is in the form of a linked list and the range is derived as a linked list table during a first check.