Cosa ci impedisce di iniziare a usare lo scrypt in produzione?

6

Dopo aver letto parecchio l'opinione degli esperti sull'hash delle password, capisco che scrypt (che è allo stesso tempo duro per la memoria e per la CPU) è un buon candidato per l'hashing delle password. Ma ho visto gli esperti consigliare un'attesa di almeno 5 anni fino a quando non è completamente revisionato e cotto al forno (problema di pollo e uova? :))

  • Nel 2015, possiamo fare il grande passo e iniziare a usare lo scrypt in tutta sicurezza?
  • Esiste un piano per rendere questo uno standard / una raccomandazione del NIST e di altri organismi standard?

ref 1

ref 2

    
posta acthota 19.11.2014 - 03:16
fonte

1 risposta

13

Se vogliamo cercare ragioni razionali non per usare lo scrypt in questo momento, possiamo trovare principalmente questi tre:

  • Non è chiaro se una funzione "memory-hard" è ciò che è necessario, con le configurazioni dei parametri supportate da scrypt. Scrypt è stato inizialmente progettato per supportare la crittografia locale, in particolare la crittografia dell'intero sistema. Ciò significa che la password deve essere sottoposta a hash durante la procedura di avvio del sistema; a quel tempo, il computer non ha nient'altro da fare, quindi l'intera CPU e la RAM sono disponibili per un singolo scrypt; e poiché l'avvio richiede già una quantità di tempo non trascurabile, l'hashing della password che si estende per 5 o 10 secondi non è un problema.

    Un server tipico avrà bisogno di una configurazione distinta, che utilizza meno RAM (un server non può permettersi un gigabyte per hashing della password, se deve servire diversi client e non crollare sotto il carico di punta) e meno CPU (un'autenticazione del sito Web dovrebbe essere fatto in meno di 1 secondo, perché gli utenti non sono pazienti e, ancora una volta, dobbiamo tenere conto del carico di punta). Resta da vedere se lo scrypt è migliore di bcrypt se configurato per "l'uso del server"; infatti, se hai bisogno di ridurre l'utilizzo della CPU a circa 1 ms per hash, lo scrypt usa less RAM di bcrypt, rendendo quest'ultima un'opzione superiore.

  • Per quanto riguarda la durezza della memoria, lo scrypt risulta non essere il più ottimale possibile. Alcune ottimizzazioni basate su GPU sono ancora realizzabili con i compromessi della memoria temporale. Il guadagno dell'attaccante non è devastante, ma se vogliamo cambiare la nostra funzione di hashing della password, allora potremmo provare a trovarne una che rispetti le sue promesse.

Tali problemi e altre informazioni sono disponibili in questa presentazione . Per riassumere: mentre le idee espresse nella progettazione di scrypt sono piuttosto interessanti, la sensazione generale dei crittografi è che ci dovrebbe essere più ricerca; e, in effetti, ha spinto il PHC : una competizione aperta, nello spirito di sforzi passati come AES, SHA-3 o eSTREAM, dove vengono proposti e rivisti nuovi candidati.

Se in fase di produzione si utilizza lo scrypt, allora dovrebbe essere ragionevolmente strong, sebbene dipenda dai parametri scelti. Quella è la conclusione principale di 5 anni di ricerca: la crittografia è valida, c'è un compromesso tra memoria e tempo che non è dannoso, ma non abbiamo un sacco di indicazioni su come configurarlo in modi che funzioneranno bene nei server tipici.

    
risposta data 19.11.2014 - 20:03
fonte

Leggi altre domande sui tag