Secure Program Analysis via Signature Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Information processing devices face challenges in securely analyzing programs due to the risk of tampering or damage to analysis programs, especially when verification mechanisms are compromised, leading to faulty states and potential unauthorized program execution.
Innovation Solution
The implementation of a secure verification process using a digital signature and public key, where the analysis program and digital signature are stored in non-volatile memory, and the signature check program and public key are stored in immutable memory, ensuring the authenticity of the analysis program before proceeding with analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the analysis program is stored in volatile memory for easy access and execution, then the ease of operation is improved, but the reliability deteriorates because the program may be tampered with or damaged
Solution Approach 1:
The system divides the storage into two segments: volatile memory for the analysis program (easy access) and non-volatile memory for the signature verification data (security). This segmentation allows each part to serve its optimal function while mitigating the weaknesses of individual storage types.
Solution Approach 2:
A signature verification mechanism acts as an intermediary between the analysis program and the main program. The verification process checks the integrity of the analysis program before execution, preventing tampered programs from compromising system security while allowing legitimate programs to execute efficiently.
2Reliability
If the analysis program is stored in non-volatile memory for security and integrity, then the reliability is improved, but the speed of execution deteriorates due to memory access time
Solution Approach 1:
The system segments storage functions by placing the analysis program in volatile memory for fast execution and the signature verification data in non-volatile memory for security. This allows the program to execute quickly while maintaining integrity verification capabilities.
Solution Approach 2:
The signature verification is performed in advance before the analysis program executes. This preliminary check ensures the program's integrity is confirmed before it is loaded or executed, preventing security issues while allowing fast execution of verified programs.
3Productivity
If the analysis program is made executable without verification for productivity, then the productivity is improved, but the security deteriorates due to potential unauthorized execution
Solution Approach 1:
The signature verification is performed as a preliminary action before the analysis program is executed. This ensures that only authenticated and intact programs are loaded into volatile memory and executed, preventing unauthorized or tampered programs from compromising system security while maintaining productivity for legitimate programs.
Solution Approach 2:
The signature verification mechanism serves as an intermediary gatekeeper between program storage and execution. It authenticates the analysis program before allowing it to be loaded and executed, blocking potentially harmful programs while permitting legitimate ones to proceed without delay.
4Ease of operation
If the verification mechanism is simplified for ease of operation, then the ease of operation is improved, but the reliability deteriorates due to insufficient verification
Solution Approach 1:
The system implements self-service verification where the analysis program carries its own signature data, and the verification process automatically checks this signature against stored verification data. This eliminates the need for manual verification intervention while ensuring reliable authentication and integrity checking.
Data Source
AI summary
An information processing device of one embodiment includes a first memory being volatile, a second memory being non-rewritable and nonvolatile, and a processor. A first program, a second program, and a digital signature for the second program are loaded into the first memory. A third program and a public key are stored in the second memory. Upon satisfaction of a certain condition during execution of the first program, the processor verifies the second program on the basis of the digital signature and the public key, in accordance with the third program. After finding a result of the verification as a pass, the processor analyzes the first program in accordance with the second program. The processor refrains from analyzing the first program after finding the result of the verification as a fail.


