Encryption Key Fragmentation for Multi-Tenant Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-tenant cloud environments, existing encryption key management systems face challenges in ensuring the secure storage and availability of encryption keys, particularly in preventing internal collusion attacks and maintaining key integrity across distributed systems.
Innovation Solution
The method involves associating unique identifiers with key fragment stores, partitioning encryption keys using Shamir's secret sharing algorithm, and distributing indexes and key fragments across multiple key fragment stores, employing hashing algorithms and replication protocols to ensure secure storage and availability, while eliminating the need for a master key and reducing maintenance complexity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If encryption keys are stored in a centralized location, then key management is simplified, but the system becomes vulnerable to internal collusion attacks and single points of failure
Solution Approach 1:
The encryption key is divided into multiple fragments using secret sharing schemes. Each fragment is stored in a separate key fragment store, so that no single location contains the complete key. This segmentation prevents internal collusion attacks while maintaining manageable key storage across distributed systems.
2Reliability
If encryption keys are fragmented and distributed across multiple stores, then resistance to internal collusion attacks is improved, but key management complexity increases
Solution Approach 1:
An intermediary key management system is introduced that automatically handles fragment distribution, retrieval, and reassembly. This intermediary layer abstracts the complexity of distributed key management from users and applications, maintaining security through fragmentation while simplifying operational complexity.
Solution Approach 2:
The key management system performs multiple functions: it fragments keys for security, distributes them across multiple stores, retrieves them when needed, and reassembles them. This multi-functional approach consolidates complexity into a single universal system rather than requiring separate mechanisms for each function.
3Reliability
If key fragments are stored in multiple locations, then key availability is improved, but the system requires specialized access permissions and secret handles
Solution Approach 1:
The system extracts and eliminates the need for secret handles and specialized access permissions by using standard, well-defined interfaces for key fragment retrieval. The security is maintained through the mathematical properties of secret sharing rather than through complex access control mechanisms, simplifying the permission structure.
4Ease of manufacture
If traditional key storage methods are used, then maintenance is simpler, but scalability is limited in multi-tenant environments
Solution Approach 1:
The key storage system is segmented into independent, standardized key fragment stores that can be independently managed and scaled. Each store follows the same interface and protocol, allowing linear scaling across multiple tenants without increasing maintenance complexity, as the same procedures apply uniformly to each segment.
Data Source
AI summary
Systems, methods, and machine-readable and executable instructions are provided for encryption key storage. Encryption key storage may include associating each of a plurality of identifiers with a different one of a plurality of key fragment stores, determining a plurality of indexes, where each of the plurality of indexes is based upon a handle provided by a customer, an authorization token provided by the customer, and a different one of the plurality of identifiers, partitioning an encryption key provided by the customer into a number of encryption key fragments, and distributing the plurality of indexes and the number of encryption key fragments to the plurality of key fragment stores. The handle can be a uniform resource identifier, for instance.


