External Security Controller for Low-End IoT Code Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Low-end IoT devices with limited computing resources face significant challenges in protecting against runtime software tampering attacks due to their scarce processing power and storage, making conventional security measures inefficient and costly.
Innovation Solution
A security controller is deployed to verify the integrity of executable software code by applying random manipulation to a copy of the code, generating a verification code segment that computes a security code, and comparing it with a stored original to detect potential malware infections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional software integrity protection measures are deployed on IoT devices, then code integrity can be verified, but the computational resources and cost increase significantly
Solution Approach 1:
The patent extracts the computationally intensive code verification process from the resource-constrained IoT device and relocates it to an external security controller. The security controller performs the heavy computational work of generating verification codes and comparing them against original codes, while the IoT device only needs to execute the verification code segment and provide minimal data, thus resolving the contradiction between verification capability and device complexity
Solution Approach 2:
The patent introduces a security controller as an intermediary component between the code storage location and the executing device. This intermediary handles the complex verification operations, acting as a mediator that protects the resource-constrained IoT device from direct computational burden while ensuring code integrity verification is performed
2Reliability
If runtime code verification is implemented on resource-constrained devices, then protection against malware injection is improved, but processing power and energy consumption increase
Solution Approach 1:
The patent extracts the power-intensive runtime verification operations from the IoT device processor and transfers them to an external security controller. The device only performs lightweight operations such as loading code segments into memory and providing memory addresses, while the security controller handles the computationally demanding tasks of generating verification codes and performing comparisons, thus reducing power consumption on the device
Solution Approach 2:
The patent implements preliminary verification by having the security controller generate verification code segments before they are executed on the device. The verification logic is prepared in advance, and during runtime, only minimal data exchange is needed, reducing the real-time processing power requirements on the resource-constrained device
3Reliability
If comprehensive security checks are performed during code execution, then detection of malware is improved, but execution speed decreases
Solution Approach 1:
The patent extracts the malware detection verification process from the main code execution path on the IoT device and relocates it to an external security controller. The device can load and execute code segments while the security controller independently performs verification by generating and comparing verification codes, allowing parallel execution without blocking the main processing flow
Solution Approach 2:
The patent implements partial verification by focusing only on critical code segments rather than verifying entire codebases. The verification process targets specific memory locations and code portions that are most susceptible to malware injection, providing adequate security protection while minimizing the impact on overall code execution speed
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
Methods and devices for protecting a processing device by deploying a security controller to verify an integrity of an executable code segment executed by the protected device are disclosed. The security controller computes a first security code for a randomly manipulated first copy of the executable code segment loaded in memory of the security controller and generates a verification code segment adapted to cause a second security code to be computed for a randomly manipulated second copy of the executable code segment loaded in memory of the protected device. The security controller transmits the verification code segment to the protected device, receives the second security code from the protected device, compares the first and second security codes, and determines a compromise of the protected device in reaction to the second security code not matching the first security code.