Calcolo dell'hash Argon2 | Argon2id, Argon2i e Argon2d
Calcola l'hash Argon2 di una password o di un testo qualsiasi. Supporta le tre varianti Argon2id, Argon2i e Argon2d e propone i preset di costo in memoria e iterazioni raccomandati da OWASP. Il calcolo avviene interamente nel browser e il contenuto inserito non viene inviato a un server.
Consigli per il calcolo dell'hash Argon2
- Argon2 ha vinto la Password Hashing Competition del 2015 e la variante Argon2id è quella oggi raccomandata da OWASP. Salvo motivi particolari, scegliete Argon2id.
- I pulsanti dei preset corrispondono alle cinque combinazioni di costo in memoria e iterazioni suggerite dal Password Storage Cheat Sheet di OWASP. Più memoria si richiede, maggiore è la resistenza agli attacchi paralleli su GPU.
- Aumentare il «parallelismo (p)» non produce un vero calcolo parallelo nell'implementazione WebAssembly del browser e il tempo resta quasi invariato. L'accelerazione si ottiene solo su server multiprocessore.
- Il sale viene generato automaticamente a ogni calcolo, quindi lo stesso testo con gli stessi parametri produce ogni volta un hash codificato diverso.
- Con un costo in memoria molto elevato la scheda del browser può smettere temporaneamente di rispondere. Conviene partire da qualche decina di megabyte.
Domande frequenti
password_verify() di PHP o con le librerie Argon2 degli altri linguaggi. Prestate però attenzione a ciò che inserite.
A proposito — la Password Hashing Competition e la nascita di Argon2
Argon2 fu proclamato algoritmo vincitore, fra 24 candidature, della «Password Hashing Competition» (PHC) svoltasi fra il 2013 e il 2015. Per superare il punto debole dei metodi precedenti come bcrypt (1999) e PBKDF2 (2000) — la vulnerabilità agli attacchi a forza bruta condotti con hardware dedicato come GPU e ASIC — il progetto adotta un impianto che richiede al calcolo una grande quantità di memoria.
Argon2 ha tre varianti. Argon2d massimizza la resistenza agli attacchi su GPU ma è vulnerabile agli attacchi a canale laterale; Argon2i resiste bene a questi ultimi ma è meno robusta contro le GPU. Argon2id è la variante ibrida che unisce le due proprietà ed è raccomandata come prima scelta da OWASP e da molti altri organismi di sicurezza.
Da PHP 7.2 in poi basta indicare la costante PASSWORD_ARGON2ID nella funzione password_hash() per generare un hash Argon2id. Anche Node.js, Python, Ruby e gli altri linguaggi principali dispongono di librerie ufficiali o semiufficiali, e per i nuovi sistemi Argon2id viene sempre più spesso preferito a bcrypt.