Secure Branch Target Computation Using Integrity and Adjustment Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing start-up processes for computing devices lack sufficient security, as malicious users can modify data segments to execute unauthorized code by computing and storing modified integrity data, allowing compromised code to execute undetected.

Innovation Solution

A secure start-up process is implemented by recognizing a branch instruction, calculating an integrity datum of a data segment, obtaining an adjustment datum, and computing a branch target address based on the integrity and adjustment data, ensuring that only unmodified data segments allow the start-up process to proceed, thereby preventing unauthorized code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional verification steps are used to check data segment integrity, then the start-up process can detect modified code, but malicious users can still compute and store modified integrity data to bypass detection

Engineering Contradiction:
Improveintegrity verification reliabilityVSAvoidbypass capability of malicious code
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a cryptographic intermediary (secure enclave or trusted execution environment) that acts as a mediator between the integrity verification process and the data segments. This intermediary securely stores the expected integrity values and performs the verification in a protected environment that cannot be compromised by external modifications, thus preventing malicious users from bypassing the verification by modifying integrity data.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent moves the integrity verification process to a different security dimension by implementing it within a hardware-based trusted execution environment or secure enclave. This creates a hierarchical security structure where the verification process operates in a protected domain that is isolated from the potentially compromised external environment, making it impossible for malicious code to interfere with the verification.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If integrity verification is performed at each branch instruction, then unauthorized code execution is prevented, but the start-up process time increases

Engineering Contradiction:
Improvesecurity against unauthorized executionVSAvoidstart-up process time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs integrity verification in advance during the start-up process before executing the main operational code. By verifying the integrity of critical data segments and branch targets before they are needed, the system ensures security while allowing the main execution to proceed without repeated verification overhead, thus minimizing the impact on overall start-up time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies integrity verification selectively to critical data segments and branch instructions rather than uniformly to all code. This partial verification approach focuses security resources on the most vulnerable or critical paths during start-up, providing adequate security protection while reducing the total verification time compared to comprehensive verification of all code segments.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10331891B2Branch target computation in secure start-up using an integrity datum and an adjustment datum
Publication Date: 2019.06.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10331891B2 patent drawing
  • US10331891B2 patent drawing
  • US10331891B2 patent drawing

AI summary

Embodiments related to conducting and constructing a secure start-up process are disclosed. One embodiment provides, on a computing device, a method of conducting a secure start-up process. The method comprises recognizing the branch instruction, and, in response, calculating an integrity datum of a data segment. The method further comprises obtaining an adjustment datum, and computing a branch target address based on the integrity datum and the adjustment datum.