Sono in ritardo per la festa e devo essere catturato. Sto facendo i miei compiti a guardare le cose. So che non voglio un CRAM di risposta alle sfide non salato, voglio SCRAM di risposta alle sfide salate.
Penso che ASP.NET MVC mandi le password in chiaro sul filo da quello che posso dire, e fa affidamento su https per sicurezza. WebSecurity.Login ha campi nome utente e password esposti nel controller.
So che non dovrei rotolare la mia sicurezza. Preferibilmente voglio implementare uno standard facile da usare e difficile da rovinare. Voglio che le persone che lavorano con il codice tra 10 anni siano in grado di supportarlo / aggiornarlo senza tirar fuori i capelli.
Nel caso in cui avessi bisogno di fare un po 'di lavoro pesante, ho esaminato l'implementazione CryptSharp sCrypt. Su blog di Tony Arcieri I ha questa immagine confrontando diversi costi hardware per craccare una password .
Non so quanto sia legittimo o esattamente ciò che significano i numeri (10 caratteri KDF vs un testo KDF a 80 caratteri), ma quello che ho capito dalla griglia è che SCrypt è veloce (64 ms) se si conosce il password, ma costa un sacco di risorse hardware / denaro per generare una tabella arcobaleno per esso, e che può costare sostanzialmente più risorse hardware rispetto a PBKDF2 e Bcrypt. Per favore, non confondere questo per me facendo finta di sapere qualcosa su questi 3 KDF, mi sto fidando ciecamente di internet qui.
Inoltre, se alla fine dovessi implementare SCRAM da solo, ho ragione a capire che il client e il server devono generare lo stesso valore? E se sì, ci sono le migliori implementazioni KDF di javascript + server che vanno d'accordo meglio di altre?
Qualche intuizione che voi ragazzi abbiate sarà molto apprezzata, sono davvero profondamente qui. Grazie!