Un modo per prevenire il disastro se l'utente perde la chiave è utilizzare una chiave di backup che può essere utilizzata per decrittografare i dati senza la password dell'utente. Quando l'utente esegue la crittografia con la chiave di crittografia primaria, è necessario crittografare anche la chiave di backup.
La seconda chiave potrebbe essere una coppia di chiavi asimmetriche, in modo che l'utente (o l'attaccante) abbia solo accesso alla chiave pubblica per crittografare i propri dati in modo che possa essere decifrato dalla chiave privata di backup, ma non può fornire la chiave privata stessa a chiunque altro (accidentalmente o in altro modo).
Se i tuoi dati sono grandi, puoi anche introdurre una chiave di crittografia dei dati (DEK). Invece di crittografare i dati utilizzando la chiave derivata dalla password dell'utente, si crea un DEK per crittografare i dati e crittografare il DEK con i dati con la chiave derivata dalla password dell'utente. Dovresti crittografare anche una seconda copia del DEK con la chiave di backup.
Ora il problema è come proteggere questa chiave di backup. Vari modelli di minacce forniscono varie soluzioni a questo. Alcune opzioni possibili:
- Utilizza un modulo di sicurezza hardware, con una registrazione di controllo avanzata. Dovresti assicurarti che l'HSM fisico si trovi in un centro dati sicuro. L'HSM garantisce che i segreti non abbandonino mai l'HSM senza che lo sappiano. Avresti bisogno di un processo organizzativo per controllare regolarmente i log.
- Utilizzare la divisione segreta / condivisione segreta per suddividere la seconda chiave in più persone. Una condivisione segreta come la Condivisione Segreta di Shamir ti permette di dividere un N modo segreto e richiede almeno M parti per ricostruire il segreto. È possibile assegnare una parte all'utente, una parte conservata dall'amministratore di sistema, una parte è conservata da una terza parte di cui entrambi si fidano; per decifrare senza password, hai bisogno di almeno due parti per rivelare la loro parte del segreto.
- O semplicemente dire all'utente di scrivere / stampare la chiave di backup e tenerla da qualche parte davvero al sicuro.