Secure Boot Updates in Memory Devices via Signature Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory devices, such as eMMC, lack validation mechanisms for boot code images, making them susceptible to tampering, which compromises the integrity of future updates since the boot code managing updates is compromised.
Innovation Solution
A memory device is configured with a write-protected region storing a golden boot image and a public key, allowing secure updates by validating new boot images using the public key and version numbering constraints, with the ability to roll back updates if validation fails.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If boot code images can be updated via boot prompt without validation, then ease of operation is improved, but security and reliability deteriorate due to tampering vulnerability
Solution Approach 1:
The system performs preliminary validation of the boot code image signature against stored public keys before allowing the update to proceed. This preliminary security check ensures that only authenticated and untampered boot images are installed, resolving the contradiction by maintaining ease of operation while preventing tampering through advance verification.
Solution Approach 2:
A signature validation mechanism acts as an intermediary between the boot code update process and the actual installation. This intermediary layer verifies the authenticity of incoming boot images using cryptographic signatures and public keys, allowing updates to remain convenient while ensuring their integrity and preventing tampering.
2Reliability
If validation mechanism is added to boot code updates, then reliability is improved, but device complexity increases
Solution Approach 1:
The system stores copies of public keys in a non-volatile memory region alongside the boot code images. These key copies enable repeated validation of boot image signatures without requiring complex validation infrastructure, improving reliability through simple cryptographic verification while minimizing added complexity.
Solution Approach 2:
The validation functionality is extracted as a separate, dedicated validation mechanism that operates independently from the main boot process. By isolating the signature verification logic and storing public keys in a separate memory region, the system achieves reliable validation without unnecessarily complicating the overall device architecture.
3Reliability
If write-protected region with golden boot image is implemented, then reliability is improved, but ease of operation deteriorates due to restricted write access
Solution Approach 1:
The system performs preliminary validation of the boot code image signature against stored public keys before allowing the update to proceed. This preliminary security check ensures that only authenticated and untampered boot images are installed, resolving the contradiction by maintaining ease of operation while preventing tampering through advance verification.
Solution Approach 2:
A signature validation mechanism acts as an intermediary between the boot code update process and the actual installation. This intermediary layer verifies the authenticity of incoming boot images using cryptographic signatures and public keys, allowing updates to remain convenient while ensuring their integrity and preventing tampering.
Data Source
AI summary
The example embodiments relate to improvements in managing boot code images. In an embodiment, a device is disclosed comprising a memory device, the memory device including a storage array, the storage array comprising a first partition and a second partition, wherein the first partition comprises a writeable partition and the second partition comprises a write-protected partition; and a processor configured to: load a golden boot image from the second partition, display a boot prompt after loading the golden boot image, receive an update boot image, the update boot image including a signature, read a public key from the second partition, validate the signature using the public key, and replace a current boot image stored in the first partition with the update boot image.


