Run-time Code Injection for Hardware Authorization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
Data Source
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.


