Al momento stiamo migliorando il nostro sistema di gestione dei segreti personalizzato e sto esaminando diverse soluzioni come Hashicorp Vault o AWS KMS.
Finora Vault sembra soddisfare la maggior parte delle nostre attuali esigenze, è un progetto open-source e offre molte funzionalità molto interessanti. Tuttavia, non ho trovato un modo per adattarsi ai seguenti casi d'uso: abbiamo centinaia di utenti nella nostra applicazione. Cifriamo simeticricamente sia i record del database che i file di dati con una chiave diversa per ciascun utente. Forniamo ai nostri utenti la possibilità di controllare l'accesso ai propri dati crittografando la chiave utente con una password utente, quindi, questa password deve essere fornita ogni volta che si desidera accedere ai dati.
Posso memorizzare ciascuna di queste chiavi di crittografia utente nel Vault e quindi accedere dinamicamente ogni volta che viene eseguita una nuova richiesta, tuttavia, non riesco a trovare un modo per aggiungere la password dell'utente come argomento necessario della richiesta. Una soluzione consiste nell'aggiungere questo livello di crittografia aggiuntivo su Vault e archiviare la versione crittografata della chiave, ma non è possibile utilizzare "crittografia come servizio" poiché Vault non sta crittografando con la chiave utente reale ma con la versione crittografata della chiave . Inoltre, l'amministratore di Vault sarà sempre in grado di decifrare i file degli utenti, indipendentemente dal fatto che forniscano o meno le loro password.
Mi chiedo se questa funzionalità possa essere sviluppata su Vault usando un qualche tipo di plugin. Qualcuno ha mai visto uno scenario simile prima? Qualsiasi idea di suggerimento sarà accolta con favore.
Grazie