Application Factoring for Secure Data Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face a challenge in balancing high security with extensive functionality, as large, complex programs are difficult to verify for secure behavior, leading to a tension between providing numerous features and ensuring security, especially when handling sensitive data.
Innovation Solution
The system partitions applications into secure and non-secure components, with the secure components running in a high-assurance environment and non-secure components in a low-assurance environment, using a base component to manage data routing and verification across environments, ensuring data integrity and trustworthiness.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a large, complex program is used to provide extensive functionality, then the number of functional features increases, but the ability to verify secure behavior decreases
Solution Approach 1:
The application is divided into multiple partitions, with each partition handling specific functionality. Critical security functions are isolated into separate partitions that can be individually verified, while non-critical functions remain in other partitions. This segmentation allows the system to maintain extensive functionality while ensuring secure behavior in critical areas through targeted verification.
2Reliability
If a small, high-assurance program is used, then the degree of security increases, but the number of functional features decreases
Solution Approach 1:
A security manager component acts as an intermediary between high-assurance partitions and low-assurance partitions. The security manager handles security-critical operations in the high-assurance environment while delegating non-critical functionality to the low-assurance environment. This allows the system to provide extensive functionality through the low-assurance portion while maintaining security through the high-assurance portion and the security manager's coordination.
3Reliability
If two separate operating systems are run side by side, then security and functionality are provided in separate environments, but the integration and user experience deteriorate
Solution Approach 1:
Multiple partitions with different security assurances are merged into a single unified application interface. The system presents a cohesive user experience by integrating high-assurance and low-assurance partitions under a common application framework, allowing users to interact with the system as a single application rather than separate operating systems. The security manager transparently coordinates between partitions to maintain this unified experience.
Data Source
AI summary
Application factoring or partitioning is used to integrate secure features into a conventional application. An application's functionality is partitioned into two sets according to whether a given action does, or does not, involve the handling of sensitive data. Separate software objects (processors) are created to perform these two sets of actions. A trusted processor handles secure data and runs in a high-assurance environment. When another processor encounters secure data, that data is sent to the trusted processor. The data is wrapped in such a way that allows it to be routed to the trusted processor, and prevents the data from being deciphered by any entity other than the trusted processor. An infrastructure is provided that wraps objects, routes them to the correct processor, and allows their integrity to be attested through a chain of trust leading back to base component that is known to be trustworthy.


