Hardware Security Module for IoT Code Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Low-specification devices, such as IoT devices, face challenges in verifying the integrity of executable code stored in flash memory, as existing methods are inefficient and vulnerable to attacks, especially when relying on remote servers for integrity verification, which introduces network delays and security burdens.
Innovation Solution
A hardware security module is used to securely store and verify the integrity of executable code by dividing it into blocks with different start and end points, generating hash values, and comparing them with prestored values, preventing physical hacking and ensuring unique integrity values for each device, even if they use the same executable code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If remote servers are used for integrity verification, then verification capability is provided, but network delays and security burdens are introduced
Solution Approach 1:
The patent extracts the integrity verification function from remote servers and implements it locally within the device using a hardware security module. The HSM stores reference hash values and performs verification locally, eliminating the need for network communication during the verification process.
Solution Approach 2:
The hardware security module acts as an intermediary between the microcontroller and the flash memory. It securely stores reference hash values and performs local verification, mediating the integrity check without requiring external server communication.
2Reliability
If existing verification methods are used, then code integrity can be checked, but efficiency is poor in low-specification devices
Solution Approach 1:
The patent segments the executable code into multiple blocks stored in flash memory, with each block having a unique identifier. The hardware security module stores reference hash values for these blocks, enabling efficient verification by only checking the specific block that needs to be executed, rather than verifying the entire codebase.
Solution Approach 2:
The patent creates a copy of the reference hash values within the hardware security module during device manufacturing. This local copy enables rapid verification without requiring repeated communication with external sources, significantly improving verification speed for low-specification devices.
3Ease of manufacture
If same executable code is used across devices, then development is simplified, but security is compromised due to identical integrity values
Solution Approach 1:
The patent applies local quality by generating unique integrity values for each device even when using the same executable code. The hardware security module incorporates device-specific identifiers or random numbers into the hash calculation, ensuring that each device has a unique reference hash value that prevents cloning and unauthorized use.
Data Source
AI summary
Disclosed herein are a hardware security module, a device having the hardware security module, and a method for operating the device. The method for verifying integrity of executable code in a device includes dividing, by a Micro-Control Unit (MCU), executable code into multiple blocks, generating, by the MCU, hash values corresponding to the blocks resulting from the division, storing, by a Hardware Security Module (HSM), the generated hash values, calculating, by the MCU, at least one hash value, among hash values of the multiple blocks when the executable code boots, and comparing, by the HSM, the calculated hash value with a hash value corresponding to the calculated hash value, among the hash values stored in the HSM.


