Sono sorpreso che le persone non abbiano notato che puoi e devi crittografare il verificatore nel db. Tipicamente con le grandi aziende i database sono infrastrutture segregate. Anche il regime di backup dei server di database è deliberatamente diverso dai backup a livello di host dei server delle applicazioni e dell'infrastruttura web. I backup Db sono solitamente fuori sede e su nastro con un lungo periodo di conservazione. Ci sono anche tipicamente diversi specialisti e team che si occupano dell'infrastruttura e dei backup db. In questo caso, la crittografia del verificatore è ovviamente un'ulteriore protezione dai nastri che viene persa dal corriere che li sposta fuori sede.
Se crittografate il verificatore, c'è la domanda su dove tenere e fare il backup delle chiavi di crittografia. Grandi aziende come le banche hanno dovuto risolvere questo problema per le loro chiavi SSL e password insieme ad altre configurazioni di sicurezza sensibili. Non li metteranno sugli stessi nastri dei backup db. Normalmente avrebbero una rete di sicurezza segregata che può gestire gli host della linea frontale e avere due host (o due teste NFS dedicate) in due data center su quella rete copiata da unison / rsync per eseguire il backup di una copia delle chiavi di crittografia e della configurazione di sicurezza .
Mettendo tutto insieme dovresti avere una posizione di configurazione sicura o condividere sui server delle applicazioni che sono esclusi dai backup a livello di host. In quella posizione si inserisce una chiave simmetrica che legge solo l'id utente del server delle applicazioni. L'applicazione quindi usa quello per crittografare / decodificare il verificatore SRP dell'utente in quanto viene salvato / caricato nel db principale. Le chiavi di backup su host segregati in ciascun data center. Se perdi assolutamente tutto, ricostruisci il tuo db dai nastri fuori sede e crei una nuova chiave simmetrica. Tutti i tuoi usi non saranno più in grado di accedere ma useranno semplicemente la logica di reimpostazione della password per impostare un nuovo verificatore.