Verifier Processor for Autonomous Code Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conditional access devices using flash memory are vulnerable to hacking as the existing security measures, such as CPU booting from ROM to check the flash memory, can be bypassed by predicting the CPU's clock cycles, allowing unauthorized code to be executed without further verification.

Innovation Solution

An additional verifier processor is integrated within the same device as the CPU, sharing the same external interfaces and bus, to continually check the flash memory for authentic application code by producing a hash and verifying it against a stored signature, and issuing a reset if the code is not authentic, thus preventing unauthorized code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single CPU performs both execution and verification of flash memory code, then device complexity is reduced, but security reliability deteriorates because the verification can be bypassed by predicting CPU clock cycles

Engineering Contradiction:
Improveprocessor structureVSAvoidcode verification security
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent divides the processing functions into two separate processors: a CPU for executing application code and a separate verification processor for continuously monitoring flash memory code integrity. This segmentation prevents the verification mechanism from being bypassed through CPU clock cycle prediction, as the verification processor operates independently with its own timing mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verification processor acts as an intermediary between the flash memory and the CPU. It continuously reads code from flash memory, verifies integrity using cryptographic hashes, and only allows the CPU to execute code if verification passes. This intermediary layer ensures that even if the CPU is compromised or its timing can be predicted, the code integrity remains protected.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If code verification is performed only on boot-up from ROM, then verification time and processing resources are reduced, but security reliability deteriorates because unauthorized code can be executed after boot

Engineering Contradiction:
Improveverification timeVSAvoidcode integrity protection
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The verification processor operates continuously throughout the system's operation, constantly monitoring flash memory code integrity rather than performing verification only at boot-up. This continuous verification ensures that any unauthorized code attempts, whether during boot or during normal operation, are detected and blocked immediately.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The verification processor performs preliminary verification of code integrity before the CPU executes it. By continuously checking flash memory and verifying codes beforehand, the system prevents unauthorized code execution without requiring the CPU to pause or slow down for verification, thus maintaining operational efficiency while ensuring security.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the verification processor continuously monitors flash memory, then code integrity is improved, but processing resources and power consumption increase

Engineering Contradiction:
Improvecode authenticationVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The verification processor operates in periodic intervals rather than continuously without interruption. It checks flash memory at predetermined time intervals, which maintains code integrity monitoring while significantly reducing power consumption compared to continuous operation. The verification processor can be configured to check at optimal intervals that balance security requirements with energy efficiency.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS7707638B2Autonomous software integrity checker
Publication Date: 2010.04.27 STMICROELECTRONICS LTD(GB)
  • US7707638B2 patent drawing
  • US7707638B2 patent drawing
  • US7707638B2 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.