Application Archive Integrity Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software security measures are inadequate in protecting software applications from manipulation of resources other than machine code, such as auxiliary code, UI information, configuration files, and metadata, which can be modified to manipulate the software's execution.
Innovation Solution
The implementation of techniques for securely generating, distributing, executing, updating, and uninstalling software applications involves the use of application archive files that include a file system data structure and cryptographic information. This allows the operating system to validate the integrity of the application's files and data structures during execution, ensuring that only valid and unmodified resources are accessed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If code signing techniques are implemented to verify machine code, then security against machine code manipulation is improved, but security against manipulation of other software resources (auxiliary code, UI information, configuration files, metadata) remains insufficient
Solution Approach 1:
The patent divides the software application into distinct resource types (machine code, auxiliary code, UI information, configuration files, metadata) and applies separate verification mechanisms to each segment. The file system data structure organizes these resources into separate entries, allowing individual verification of each resource type against its corresponding cryptographic hash value stored in the application archive file.
Solution Approach 2:
The patent performs preliminary verification of all software resources during application installation and before execution. The operating system reads the file system data structure and cryptographic information from the application archive file, computes hash values of all resources, and verifies them against stored expected values before allowing the application to run, preventing manipulation at the source rather than during execution.
2Productivity
If verification is performed only at installation and initialization, then verification speed is maintained, but the frequency of verification is insufficient to detect manipulations that occur during execution
Solution Approach 1:
The patent implements continuous verification of software resources throughout the entire execution lifecycle of the application. The operating system maintains the file system data structure in memory and performs verification not only at installation and initialization but also during runtime when resources are accessed, ensuring uninterrupted security monitoring without significantly impacting performance.
Solution Approach 2:
The patent implements periodic verification of software resources at multiple stages: during installation, at initialization, and at regular intervals during execution. This periodic approach ensures that manipulations are detected promptly while maintaining efficient system performance by not requiring constant verification of every resource access.
3Reliability
If all software resources are verified continuously, then security is improved, but system complexity and processing overhead increase
Solution Approach 1:
The patent reduces complexity by segmenting resources into distinct types and verifying only relevant resources at each stage of execution. The file system data structure enables the operating system to identify and verify specific resource types based on their categories, avoiding unnecessary verification of all resources at all times, thus reducing processing overhead while maintaining comprehensive security.
Solution Approach 2:
The patent applies verification selectively rather than uniformly to all resources at all times. Critical resources such as machine code and configuration files are verified more frequently and rigorously, while less critical resources are verified at standard intervals. This partial verification approach maintains high security for essential components while reducing overall system complexity and processing overhead.
Data Source
AI summary
Enclosed herein are techniques for securely executing an application. A method can be implemented by an operating system of a computing device, where the computing device includes a file system volume that includes a first data structure, and the method includes the steps of (1) receiving a request to launch the application, where the request references an application archive file that includes a second data structure that: (i) defines an organization of a plurality of files associated with the application, and (ii) includes cryptographic information for verifying the plurality of files and the second data structure; (2) in response to receiving the request: determining whether the second data structure, the plurality of files, or both, are valid using the cryptographic information; and (3) in response to determining that the second data structure, the plurality of files, or both, are valid: associating the second data structure with the first data structure.


