Verifier Processor for Autonomous Code Integrity
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If the verification processor continuously monitors flash memory, then code integrity is improved, but processing resources and power consumption increase
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.
Data Source
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.


