Two-Stage OS Loader Secure Boot

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Encrypted operating systems face a 'chicken-and-egg' problem where decryption keys are needed to access boot sectors, but providing them to the boot process compromises security, making it difficult to determine which sectors to load for decryption.

Innovation Solution

The implementation of a two-stage OS loader system where the first loader retrieves and stores encrypted sectors in a shared memory accessible to both loaders, and the second loader decrypts these sectors within a secure launch environment, ensuring secure booting by dynamically validating and measuring components to prevent malicious interference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If decryption keys are provided to the boot process to access encrypted sectors, then the OS can be booted, but security is compromised

Engineering Contradiction:
Improvebooting capabilityVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The boot process is divided into two distinct stages: a first stage that handles untrusted operations and a second stage that handles trusted decryption and OS loading. This segmentation allows the system to separate security-critical operations from potentially malicious operations, resolving the contradiction between booting capability and security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A secure launch environment is introduced as an intermediary between the untrusted boot process and the encrypted OS. This intermediary component receives encrypted sectors, validates them, and provides decrypted versions to the OS loader, thereby mediating between the need to boot and the need to maintain security.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all sectors are loaded to access decryption keys, then the OS can be decrypted, but the system complexity increases

Engineering Contradiction:
Improvedecryption capabilityVSAvoidboot process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by loading and validating only the necessary encrypted sectors before decryption occurs. The secure launch environment pre-validates sectors and caches them in a shared store, so that when decryption is needed, the sectors are already prepared and accessible, reducing overall complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Encrypted sectors are copied into a shared store that is accessible to both loader components. This copying mechanism allows the first loader to retrieve sectors without directly providing them to the second loader, simplifying the interaction between components while maintaining security.

Inventive Principle:
Principle #26Copying

3Device complexity

If a single loader component is used, then the system is simpler, but it cannot securely isolate untrusted boot components

Engineering Contradiction:
Improveloader structureVSAvoidsecurity isolation
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The loader functionality is segmented into two distinct components: a first loader that handles untrusted operations and a second loader that handles trusted decryption. This segmentation enables secure isolation of untrusted boot components while maintaining manageable system complexity through clear functional division.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared store acts as an intermediary between the two loader components, allowing them to communicate and cooperate without direct trust relationships. This intermediary mechanism enables security isolation while reducing the complexity of managing direct trust between components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7913074B2Securely launching encrypted operating systems
Publication Date: 2011.03.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7913074B2 patent drawing
  • US7913074B2 patent drawing
  • US7913074B2 patent drawing

AI summary

Tools and techniques for securely launching encrypted operating systems are described herein. The tools may provide computing systems that include operating systems (OSs) that define boot paths for the systems. This boot path may include first and second OS loader components. The first loader may include instructions for retrieving a list of disk sectors from a first store, and for retrieving these specified sectors from an encrypted second store. The first loader may also store the sectors in a third store that is accessible to both the first and the second loader components, and may invoke the second loader to try launching the OS using these sectors. In turn, the second loader may include instructions for retrieving these sectors from the third store, and for unsealing a key for decrypting these sectors. The second loader may then decrypt these sectors, and attempt to launch the OS from these sectors.