Secure Boot via Storage Device Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing host devices lack a cost-effective and flexible method to securely verify the integrity of operating system code before execution, as provisioning controllers with verification code increases costs and limits retrofittability.

Innovation Solution

The boot loader code stored in a storage device performs a security check to verify the integrity of the operating system code, ensuring it has not been altered by a hacker, and only executes the code if the check is successful, using a private memory area managed by the storage device controller.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the host device controller is provisioned with verification code to perform security checks, then the security of the boot process is improved, but the controller cost increases and retrofittability is limited

Engineering Contradiction:
Improvesecurity of boot processVSAvoidcontroller cost and retrofittability
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The verification code is extracted from the host device controller and relocated to the storage device. The boot loader code stored in the storage device's private memory area contains the verification logic, allowing security checks to be performed without requiring the controller to be provisioned with verification code during manufacturing.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The boot loader code acts as an intermediary between the operating system code and the host device controller. It performs the security verification function that would otherwise require special provisioning in the controller, enabling secure boot without increasing controller complexity or cost.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the operating system code is stored on the storage device, then the flexibility and cost-effectiveness of the system is improved, but the risk of code alteration and malware introduction increases

Engineering Contradiction:
Improvesystem flexibilityVSAvoidcode integrity risk
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The boot loader code performs a security check before executing the operating system code to verify that the code has not been altered. This preliminary verification action ensures code integrity before the system becomes operational, preventing malware execution while maintaining the flexibility of storing OS code on the storage device.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If the controller is manufactured without verification code, then the manufacturing cost is reduced, but the ability to perform secure boot is lost

Engineering Contradiction:
Improvemanufacturing costVSAvoidsecure boot capability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The verification functionality is extracted from the controller and placed in the storage device's boot loader code. This allows controllers to be manufactured without expensive verification code provisioning, while secure boot capability is maintained through the boot loader's verification routines.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The verification logic is copied into the boot loader code stored in the storage device's private memory area. This eliminates the need to provision verification code in the controller during manufacturing, reducing costs while maintaining security functionality.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8996851B2Host device and method for securely booting the host device with operating system code loaded from a storage device
Publication Date: 2015.03.31 SANDISK TECHNOLOGIES LLC
  • US8996851B2 patent drawing
  • US8996851B2 patent drawing
  • US8996851B2 patent drawing

AI summary

A host device and method for securely booting the host device with operating system code loaded from a storage device are provided. In one embodiment, a host device is in communication with a storage device having a private memory area storing boot loader code and a public memory area storing operating system code. The host device instructs the storage device to initiate a boot mode and receives the boot loader code from the storage device. The host device executes the boot loader code which performs a security check and executes the operating system code loaded from the storage device only if the security check is successful.