Verifica di un hash Argon2 | Confronta una password con l'hash codificato
Inserite una password e un hash Argon2 già codificato ($argon2id$…) per verificare se corrispondono. Il calcolo avviene interamente nel browser e il contenuto inserito non viene inviato a un server.
Verificare un hash Argon2
Argon2 ha vinto la Password Hashing Competition nel 2015 ed è oggi l'hash per password più raccomandato nei lavori nuovi. La sua differenza principale rispetto a bcrypt sta nel poter regolare l'uso della memoria oltre al tempo di calcolo. Le GPU e l'hardware dedicato eccellono nell'aritmetica parallela ma faticano ad assegnare a ogni nucleo una porzione ampia di memoria, perciò richiedere memoria alza sensibilmente il costo di un attacco a forza bruta.
Un hash Argon2 assume la forma $argon2id$v=19$m=19456,t=2,p=1$sale$digest, con i parametri e il sale incastonati nella stringa stessa. La verifica non ha dunque bisogno di alcun elenco separato di parametri: bastano l'hash e la password. Questo strumento esegue proprio quella verifica. Tutto viene calcolato nel suo browser, e né la password né l'hash che inserisce vengono mai inviati a un server.
Come verificare
-
Incolli l'hash Argon2
Inserisca così com'è la stringa codificata che comincia con
$argon2id$. - Inserisca la password Digiti la password in chiaro che vuole confrontare.
- Esegua la verifica Poiché l'algoritmo è concepito per consumare molta memoria, l'operazione può richiedere qualche secondo. È il comportamento atteso.
- Legga il risultato Le viene detto se le due corrispondano.
Consigli per sfruttarlo al meglio
- Per la verifica incollate così com'è l'hash codificato — la stringa che inizia con $argon2id$ — generato con lo strumento di calcolo dell'hash Argon2.
- L'hash codificato contiene già variante, costo in memoria, iterazioni e sale, quindi in fase di verifica non serve indicare separatamente questi parametri.
- Se il formato non è valido — per una copia incompleta o per un a capo di troppo — compare un messaggio di errore. Verificate di aver copiato l'intera stringa.
- Se il risultato è negativo, controllate che nella password non si siano introdotti maiuscole o minuscole diverse né spazi iniziali o finali indesiderati.
Quando torna utile
Controllare un'implementazione di autenticazione
Confermi con una coppia nota di hash e password che il suo codice di accesso verifichi correttamente.
Confermare una migrazione
Stabilisca in anticipo se gli hash portati da un altro sistema siano verificabili così come stanno.
Esaminare i parametri scelti
Legga i valori m, t e p incastonati nella stringa per vedere quale costo sia stato configurato.
Chiudere il cerchio con il generatore
Confermi che un valore prodotto dal generatore di hash Argon2 venga qui verificato correttamente.
I termini di Argon2 spiegati
- Argon2id
- La variante che unisce resistenza agli attacchi su canale laterale e resistenza agli attacchi via GPU. È la scelta standard nei lavori nuovi.
- m (costo di memoria)
- La quantità di memoria impiegata, espressa in kibibyte. È il parametro centrale che rende Argon2 resistente agli attacchi via GPU.
- t (costo di tempo)
- Il numero di iterazioni. Alzarlo allunga il calcolo e con esso il costo per chi attacca.
- p (parallelismo)
- Il numero di corsie elaborate in parallelo, impostato in base al numero di nuclei del server.
- Sale
- Dati casuali rinnovati per ogni hash. La stessa password dà ogni volta un hash diverso, il che vanifica gli attacchi con tabelle arcobaleno.
- Hash codificato
- Il formato che raccoglie nome dell'algoritmo, parametri, sale e digest in un'unica stringa. Porta con sé tutto ciò che serve alla verifica.
Domande frequenti
A proposito — perché per verificare una password basta confrontare gli hash
Verificare una password sembra a prima vista un'operazione di confronto diretto fra la password memorizzata e quella digitata, ma in realtà il meccanismo è tutt'altro. Il server — o, come in questo strumento, l'elaborazione lato client — ricalcola l'hash della password inserita con lo stesso algoritmo e lo stesso sale usati al momento del salvataggio e si limita a verificare se il risultato coincide con l'hash conservato. La password originale non entra mai nel confronto: è il grande vantaggio di questo approccio.
Tutto ciò funziona perché funzioni come Argon2 sono «deterministiche»: a parità di input, sale e parametri restituiscono sempre lo stesso output. Nella stringa dell'hash codificato — nella forma $argon2id$v=19$m=…$sale$hash — sono incorporati sia il sale sia i parametri usati nel calcolo, quindi non serve indicarli di nuovo: il solo hash basta a ricostruire integralmente il calcolo.
È grazie a queste due proprietà — l'unidirezionalità, per cui dall'hash non si risale alla password, e il determinismo, per cui lo stesso input dà lo stesso output — che chi gestisce un servizio può verificare gli accessi in sicurezza senza conservare alcuna password in chiaro. Anche in caso di violazione della banca dati, l'attaccante ottiene soltanto gli hash e, con un algoritmo costoso come Argon2, un attacco a forza bruta per ricostruire le password richiederebbe tempi lunghissimi.