Esistono metodi di hashing delle password più moderni di bcrypt e scrypt?

41

Questa domanda mi ha fatto ricominciare a pensare all'hash con password. Attualmente utilizzo bcrypt (in particolare py-bcrypt). Ho sentito molto su PBKDF2 e scrypt .

Quello che mi chiedo è se esistono metodi di hashing delle password più "moderni" che potrei non sapere (perché sono nuovi, quindi la gente non ne parla più) o forse altri metodi non so.

E poi da lì, quale dovrei usare? La maggior parte delle persone sembra raccomandare bcrypt, ma mi chiedo se è solo perché è vecchio (leggi: noto). scrypt sembra migliore (quantità variabile di utilizzo della memoria). Non so molto su PBKDF2.

Quindi, se stavo creando uno schema di gestione degli utenti, quale di questi dovrei usare? O dovrei usare qualcosa di completamente diverso?

    
posta Brendan Long 25.07.2011 - 03:13
fonte

2 risposte

48

Nella crittografia, "nuovo" è non anche "buono". Quel bcrypt ha dodici anni (12 anni ... è davvero "vecchio"? ) significa solo che ha sostenuto 12 anni di esposizione pubblica e ampio utilizzo senza essere rotto, quindi deve essere abbastanza robusto. Per definizione, un metodo "più recente" non può vantare tanto. Come crittografo, direi che 12 anni ha l'età giusta, e qualsiasi cosa più giovane di, diciamo, da 5 anni, è decisamente "troppo giovane" per lo spiegamento generale (ovviamente, queste stime dipendono da quanta esposizione l'algoritmo un dispiegamento tempestivo e ampio, sebbene rischioso per coloro che decidono di schierare, contribuirà notevolmente a rafforzare la fiducia nella sicurezza oa rivelare le debolezze in una fase precoce).

Scrypt è molto più recente di bcrypt ; risale al 2009. L'idea è abbastanza intelligente. Vale a dire, l'elaborazione lenta delle password ha lo scopo di rendere gli attacchi di dizionario N più costosi per l'aggressore, mentre implica che l'elaborazione normale è N ' volte più costosa per i sistemi onesti. Idealmente, N = N '; l'autore scrypt sostiene che con PBKDF2 o bcrypt, l'uso di ASIC consente a un utente malintenzionato di ottenere un N molto inferiore a N ' (in altre parole, l'utente malintenzionato può utilizzare hardware specializzato , perché è interessato solo a rompere una password, e quindi hash molte più password al secondo e per dollaro speso rispetto al sistema onesto). Per risolvere questo problema, scrypt si basa su un algoritmo che richiede un po 'di RAM, poiché la RAM ad accesso rapido è la specialità del PC e una nota dolente del design ASIC. Fino a che punto lo scrypt ha successo in quell'area rimane da misurare; Il 2009 è recente e le cifre fornite dall'autore scrypt si basano sulla tecnologia ASIC a 130 nm e su un'ipotesi di "5 secondi di elaborazione", che va ben oltre ciò che l'utente medio è pronto ad attendere.

Per l'utilizzo pratico ora , consiglio bcrypt.

Nonostante le Scritture, la ricerca attuale sul concetto di elaborazione della password riguarda più trasformazioni specializzate che consentono più di una semplice verifica della password. Ad esempio, il protocollo SRP consente un accordo di chiave crittografica con autenticazione reciproca basata su password e resiliente agli attacchi di dizionario (anche nel caso di un aggressore che impersona attivamente il client o il server); ciò richiede un po 'di struttura matematica e l'hashing delle password in SRP implica l'esponenziazione modulare.

    
risposta data 25.07.2011 - 16:46
fonte
9

È il 2016, quindi vale la pena rivisitare questa domanda di 5 anni. È stato condotto un Concorso di frode password condotto dal 2013 al 2016, che ha accettato 24 invii e selezionato Argon2 come algoritmo di hashing della password raccomandato.

Tutto ciò che Thomas ha detto di nuovo o buono vale ancora. Recentemente, a febbraio 2016 (dopo la fine del concorso), Argon2 ha apportato una piccola modifica (versione 1.3) per renderlo più debole. Quindi, non lo farei ancora automaticamente, ma è un lavoro che si manterrà in un angolo della vista, poiché è probabile che Argon2 diventerà più comune nei prossimi anni.

    
risposta data 25.06.2016 - 01:31
fonte

Leggi altre domande sui tag