Replies: 1 comment 1 reply
-
|
This is something good to have in Thunder, so that we can provide support to external Key vaults as well. From a high level architecture perspective, what I see is Approach 1 and Approach 2 are the same. Only difference is what other services are going to store, whether it's the encrypted value or reference for that value. Because for the encryption or decryption those service have to talk to the crypto service. So I think we can start with Approach 2. And could you please explain how the encryption data storage decoupling will help us key rotation in future? I couldn't able to correlate encryption data storage decoupling requirement with key rotation requirement. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Related Feature Issue
#58
Problem Summary
Thunder currently encrypts sensitive data, but the responsibility for how encrypted data is stored is tightly coupled to individual services. This makes encryption key rotation difficult. To enable crypto agility, encryption data storage must be decoupled from the rest of the system.
Proposed Approach
Technical Questions for Discussion
Alternative Approaches
Approach 1: Crypto Service Owns Encrypted Data Storage
Flow
Description
The crypto service encrypts the plaintext and persists the encrypted data in a storage location it owns. The calling service only stores a unique identifier returned by the crypto service. All future decrypt operations are performed by passing this identifier back to the crypto service.
Pros
Cons
Approach 2: Service-Owned Storage with Centralized Encryption
Flow
Description
Each service calls the crypto service to encrypt plaintext, then stores the encrypted data itself in a dedicated encrypted-data table. For reads, the encrypted value is fetched by the service and passed back to the crypto service for decryption.
Pros
Cons
Architecture and Components
Components:
Crypto Service
Encrypted Data Store(s)
Consuming Services
The design assumes either:
All encrypted data is stored through a single entity, or
Encrypted data may live in multiple places, but one entity has complete knowledge of where it is stored.
Security Considerations
Implementation Complexity
Medium (3-6 weeks)
Areas of Thunder that will be impacted
Any area where encryption is used
Questions for Community Input
Beta Was this translation helpful? Give feedback.
All reactions