Multiple Assembly Caches with Dynamic Security Policies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems lack efficient and secure methods for sharing assemblies across multiple assembly caches, leading to inefficient memory usage and versioning issues, particularly for partially trusted applications, as they are restricted from accessing shared resources due to static immutable security policies.
Innovation Solution
Implementing a system with multiple assembly caches, each with its own security policy, allowing secure sharing of resources by assigning and determining security policies based on enterprise, machine, user, and application levels, and using advanced storage strategies like flat file structures for faster lookup and management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a single global assembly cache (GAC) is used for sharing assemblies, then memory efficiency is improved, but security is worsened because untrusted applications cannot safely access shared resources
Solution Approach 1:
The system divides the single global assembly cache into multiple isolated assembly caches, each with its own security policy. Trusted applications access the trusted GAC, while untrusted applications access separate untrusted assembly caches. This segmentation allows memory efficiency through selective sharing while maintaining security through isolation.
Solution Approach 2:
Different security policies are applied to different assembly caches based on their intended use. The trusted GAC has strict security requirements requiring strongnames and digital signatures, while untrusted assembly caches have relaxed security policies that allow assemblies without strongnames. This local quality approach enables each cache to have optimized security characteristics for its specific purpose.
2Quantity of substance
If multiple assembly caches are implemented without security policies, then memory efficiency is improved through sharing, but security control is worsened
Solution Approach 1:
The system implements dynamic security policy assignment where assembly caches can be created, modified, and assigned to different security policies at runtime. The assembly resolution process dynamically determines which cache to access based on the application's trust level and the assembly's security requirements, providing flexible security control without sacrificing memory efficiency.
Solution Approach 2:
The assembly cache system is designed to serve multiple functions through a unified architecture. The same assembly resolution mechanism handles both trusted and untrusted applications, while the security manager provides universal security control across all caches. This multi-functionality allows the system to maintain security control while enabling efficient resource sharing.
3Reliability
If untrusted applications store assemblies in private directories, then security is improved through isolation, but memory efficiency is worsened due to duplicate storage
Solution Approach 1:
The system segments assembly storage into isolated untrusted assembly caches for untrusted applications, preventing them from accessing the trusted GAC. This segmentation maintains security through isolation while improving memory efficiency by allowing multiple untrusted applications to share their respective caches, eliminating the need for complete private directory duplication.
4Reliability
If static immutable security policies are enforced on the GAC, then security is improved, but adaptability is worsened for partially trusted applications
Solution Approach 1:
The system introduces dynamic security policy assignment where assembly caches can be created and assigned to different security policies based on runtime requirements. The assembly resolution process dynamically determines which cache to access based on the application's trust level, providing adaptability for partially trusted applications while maintaining strict security for the trusted GAC.
Solution Approach 2:
The system changes the security policy parameter from static and immutable to dynamic and configurable. Different assembly caches can have different security policy settings (trusted, untrusted, or custom), allowing the system to adapt to various application trust levels while maintaining security through proper policy enforcement.
Data Source
AI summary
The invention relates to a system and method for providing multiple assembly caches for storing shared application resources. Each assembly cache may be associated with a different security policies, locations, internal structures and management. An application may be determined to have access to an assembly cache based on the permission and security policy of the application and security policy of the assembly cache. Additionally, one or more assembly caches may have other policies for cache retention, resolution, and creation.


