Versione breve
Il mio capo vuole che memorizzi le password di utente per un'app Web di ASP.NET Web Form che stiamo sviluppando in testo non crittografato, in modo che un utente con diritti di amministratore possa fare clic su un pulsante e tornare indietro password correnti per gli account che controlla.
Non voglio farlo , perché mi interessa profondamente la sicurezza e la privacy degli utenti di un'app Web con cui sono coinvolto in qualsiasi modo.
Quale sarebbe un buon modo per archiviare le password in un formato crittografato, che può comunque essere decodificato?
Non posso contare su utenti con un indirizzo email, quindi inviare all'utente un link per reimpostare la password non è un'opzione.
Leggi quanto segue per più contesto.
Alcuni contesti
Questa app è stata scritta da persone che hanno poca idea di come scrivere il software. Un sacco di codice duplicato, rischi per l'iniezione SQL ovunque, nessun test unitario di qualsiasi tipo, una nuova connessione viene istanziata e aperta per ogni singola query ... indica una cattiva pratica, la troverai in questo codebase.
Le password sono attualmente memorizzate come un semplice MD5 della stringa originale, che è debole, orribile e tutto, ma ancora un po 'meglio del testo in chiaro.
Ho appena finito di implementare una richiesta di funzionalità in cui l'amministratore di cui stavo parlando può fare clic su un pulsante e avere un account creato automaticamente per ogni dipendente che gestisce, con una password casuale. Mi imbarazzo durante la scrittura di questo, ma uno dei requisiti era quello di esportare le credenziali in un foglio di calcolo di Excel . Cosa ho fatto.
Questo è un problema di per sé, ma poi il mio capo ha detto "Cosa succede se l'utente perde il foglio di calcolo? Gli utenti sono stupidi, sai. Ci deve essere un modo per riavere le password."
Bang.
Fargli ascoltare le persone che sanno di cosa stanno parlando non è un'opzione, purtroppo.
L'ovvio suggerimento sarebbe "GTFO", lo so, ma ti assicuro che è qualcosa che farò il prima possibile.
Nel frattempo, ho bisogno di imbrogliare e fingere di archiviare le password in chiaro, mentre faccio le cose nel modo migliore possibile per proteggere le password dei miei utenti.
Modifica
Per qualche motivo le persone che rispondono stanno presumendo che io sia una ragazza, quindi, per la cronaca, vorrei chiarire che sono un ragazzo. Non che dovrebbe fare alcuna differenza, ma hey;)