Runtime Application Integrity Protection via OS-Level Signature Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application stores lack effective protection mechanisms to prevent users from tampering with installed applications, leading to potential revenue loss for developers, as configuration values can be modified, and generated content is not adequately secured.

Innovation Solution

Implementing runtime integrity protection by associating access control entries (ACEs) with application components and generated content, ensuring that only protected processes can modify these entries, and validating the integrity of applications before launch to prevent unauthorized modifications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional obfuscation or encryption is applied to application content, then application content is protected during storage, but once encryption is defeated there are no further checks to prevent users from modifying their applications at will

Engineering Contradiction:
Improveapplication content protectionVSAvoidintegrity checking mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing integrity checking of application components before the application is launched. The operating system checks digital signatures or other integrity mechanisms on application files, configuration files, and generated content prior to execution, preventing tampered applications from running. This proactive approach ensures that even if encryption is defeated, the application cannot be modified and executed without detection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The operating system acts as an intermediary between the application and the user by inserting an integrity verification layer. Before allowing application execution, the OS checks digital signatures, hashes, or other integrity markers on application components and generated content, mediating between the application's desire to run and the user's potential tampering attempts.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If configuration values are stored in packaged files with the application, then the application can function as intended, but users can discover and edit these files to change application behavior

Engineering Contradiction:
Improveapplication configurationVSAvoidconfiguration file tampering
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by verifying the integrity of configuration files before the application launches. The operating system checks digital signatures or integrity markers on configuration files (such as settings.xml) prior to allowing the application to read or execute them, preventing users from editing these files to change application behavior.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The operating system acts as an intermediary between the configuration file and the application by inserting an integrity verification layer. Before allowing the application to access configuration files, the OS verifies digital signatures or integrity markers, mediating between the application's need for configuration data and the user's potential tampering attempts.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If applications generate content that is stored on the user's computing device, then the application can provide functionality, but the generated content can be discovered and edited by users

Engineering Contradiction:
Improveapplication functionalityVSAvoidgenerated content integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by verifying the integrity of generated content before the application uses it. The operating system checks digital signatures or integrity markers on content generated by the application (such as receipts or data files) prior to allowing the application to read or process them, ensuring that the content has not been tampered with.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The operating system acts as an intermediary between the generated content and the application by inserting an integrity verification layer. Before allowing the application to access generated content, the OS verifies digital signatures or integrity markers, mediating between the application's need for generated data and the user's potential tampering attempts.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If access control entries are associated with application components, then only protected processes can modify these entries, but the system complexity increases

Engineering Contradiction:
Improveaccess control enforcementVSAvoidaccess control mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies universality by using a unified access control mechanism (such as ACEs or digital signatures) that serves multiple functions: protecting application components, validating configuration files, and securing generated content. This multi-functional approach strengthens reliability without proportionally increasing complexity, as the same mechanism handles multiple integrity verification tasks.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9483636B2Runtime application integrity protection
Publication Date: 2016.11.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9483636B2 patent drawing
  • US9483636B2 patent drawing
  • US9483636B2 patent drawing

AI summary

Systems, methods, apparatuses, and computer program products are described for checking the integrity of applications installed on a computing device and preventing the launch of applications that appear to have been tampered with or modified. In accordance with embodiments, the content of an application is validated at the time the application is to be launched, but before the launch has actually occurred. In accordance with additional embodiments, integrity protection can also be extended to content that is generated by an application (e.g., documents or other files generated by the application), thereby enabling applications to write their own files and data with the same degree of integrity protection.