Run-time Code Injection for Hardware Authorization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in restricting the execution of their applications to specific hardware platforms, as existing methods such as encryption and security hardware are easily circumvented by determined users, and there is a need for a transparent mechanism to control application execution.

Innovation Solution

A method involving the injection of code into an application's run-time instruction sequence to generate and verify cryptologic challenges, using a Trusted Platform Module (TPM) to ensure that the application can only execute on authorized hardware platforms, by periodically checking the platform's authorization and halting execution if unauthorized.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If encryption and security hardware devices are used to prevent re-distribution, then application security is improved, but the system complexity and cost increase

Engineering Contradiction:
Improveapplication securityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a Trusted Platform Module (TPM) as an intermediary security component that mediates between the application and the hardware platform. The TPM performs cryptographic operations and authorization checks without requiring complex security hardware or encryption mechanisms in the application itself, thus improving security while managing system complexity through a dedicated security module.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If run-time code injection is used to monitor and control execution, then application control is improved, but the overhead and performance impact increase

Engineering Contradiction:
Improveexecution controlVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements periodic authorization checks at scheduled intervals rather than continuous monitoring. The system performs challenge-response authentication at specific time intervals, allowing application execution to proceed without constant interruption or code injection overhead, thus maintaining execution performance while ensuring ongoing authorization.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary authorization checks before allowing application execution to begin, and then maintains authorization through periodic challenges during execution. This preliminary action approach ensures that the application is authorized to run before performance-critical operations start, reducing the impact of security checks on overall execution performance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7694341B2Run-time code injection to perform checks
Publication Date: 2010.04.06 APPLE INC
  • US7694341B2 patent drawing
  • US7694341B2 patent drawing
  • US7694341B2 patent drawing

AI summary

A digital rights management system permits an application owner to cause code to be injected into the application's run-time instruction stream so as to restrict execution of that application to specific hardware platforms. In a first phase, an authorizing entity (e.g., an application owner or platform manufacturer) authorizes one or more applications to execute on a given hardware platform. Later, during application run-time, code is injected that performs periodic checks are made to determine if the application continues to run on the previously authorized hardware platform. If a periodic check fails, at least part of the application's execution string is terminated—effectively rendering the application non-usable. The periodic check is transparent to the user and difficult to circumvent.