Multiple Assembly Caches with Dynamic Security Policies

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory efficiencyVSAvoidsecurity
Core Design Contradiction:
Quantity of substanceVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If multiple assembly caches are implemented without security policies, then memory efficiency is improved through sharing, but security control is worsened

Engineering Contradiction:
Improvememory efficiencyVSAvoidsecurity control
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

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

3Reliability

If untrusted applications store assemblies in private directories, then security is improved through isolation, but memory efficiency is worsened due to duplicate storage

Engineering Contradiction:
ImprovesecurityVSAvoidmemory efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

4Reliability

If static immutable security policies are enforced on the GAC, then security is improved, but adaptability is worsened for partially trusted applications

Engineering Contradiction:
ImprovesecurityVSAvoidadaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7823186B2System and method for applying security policies on multiple assembly caches
Publication Date: 2010.10.26 ORACLE INT CORP
  • US7823186B2 patent drawing
  • US7823186B2 patent drawing
  • US7823186B2 patent drawing

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.