Calcul de Hash Argon2 | Compatible Argon2id, Argon2i, Argon2d

Calculez le hash Argon2 d'une chaîne de caractères telle qu'un mot de passe. Compatible avec les trois variantes Argon2id, Argon2i et Argon2d, avec des préréglages de coût mémoire et de nombre d'itérations recommandés par l'OWASP. Le calcul s'effectue entièrement dans votre navigateur : le contenu saisi n'est jamais envoyé au serveur.

Ce que fait ce calculateur d’empreinte Argon2

Saisissez un mot de passe ou toute autre chaîne et cet outil en produit l’empreinte à l’aide de l’une des trois variantes d’Argon2 : Argon2id, Argon2i ou Argon2d. Argon2 a remporté la Password Hashing Competition et résiste non seulement à la force brute ordinaire, mais aussi aux attaques rapides menées avec du matériel dédié comme les GPU et les ASIC, ce qui explique qu’il soit largement considéré comme le premier choix pour stocker des mots de passe dans les systèmes nouvellement développés.

La solidité de l’empreinte repose sur trois paramètres : coût mémoire, itérations et parallélisme. Les augmenter renchérit le travail de l’attaquant, mais accroît tout autant le temps et la mémoire consommés par une connexion légitime. Cet outil propose en préréglages les cinq combinaisons recommandées par l’OWASP Password Storage Cheat Sheet ; commencez par l’une d’elles, puis ajustez à la capacité du serveur sur lequel vous exploiterez réellement le service.

Comment calculer une empreinte

  1. Saisissez le mot de passe ou la chaîne Entrez dans le champ prévu le texte dont vous voulez l’empreinte. Ce que vous saisissez n’est transmis nulle part.
  2. Choisissez la variante Sauf raison particulière, retenez Argon2id, qui conjugue résistance aux attaques par GPU et résistance aux attaques par canal auxiliaire.
  3. Appliquez un préréglage OWASP Un clic sur un bouton de préréglage fixe le coût mémoire, les itérations et le parallélisme selon l’une des combinaisons recommandées par l’OWASP.
  4. Ajustez les paramètres au besoin Le coût mémoire en Kio, les itérations et le parallélisme se modifient séparément. Plus les valeurs sont élevées, plus le calcul est long.
  5. Lancez le calcul et lisez le résultat S’affichent l’empreinte encodée au format PHC ainsi que la durée réellement mise par le calcul. Le bouton de copie enregistre le résultat.

Astuces pour en tirer le meilleur parti

  • Argon2 est l'algorithme vainqueur de la Password Hashing Competition de 2015, et Argon2id est actuellement la variante recommandée par l'OWASP. Sauf raison particulière, choisissez Argon2id.
  • Les boutons de préréglages correspondent aux cinq combinaisons de coût mémoire et de nombre d'itérations recommandées par l'OWASP Password Storage Cheat Sheet. Plus la mémoire allouée est élevée, plus la résistance aux attaques parallèles par GPU est forte.
  • Augmenter le « degré de parallélisme (p) » ne change presque rien au temps de calcul dans cette implémentation WebAssembly du navigateur, qui ne parallélise pas réellement le traitement. L'accélération apportée par le parallélisme n'est effective que sur un serveur multicœur.
  • Un sel est généré automatiquement à chaque calcul, si bien que la même chaîne avec les mêmes paramètres produit à chaque fois un hash encodé différent.
  • Un coût mémoire trop élevé peut rendre l'onglet du navigateur temporairement inactif. Il est conseillé de commencer avec quelques dizaines de mégaoctets.

Quand ce calculateur est utile

Décider du stockage des mots de passe d’un nouveau service

Lors de la conception du stockage des mots de passe d’un système neuf, vous constatez sur-le-champ la longueur réelle de l’empreinte et la durée de calcul pour chaque jeu de paramètres.

Conserver clés d’API et jetons en sécurité

Au-delà des mots de passe de connexion, l’outil sert lorsque vous ne voulez pas laisser en clair dans la base des chaînes confidentielles telles que des clés d’API ou des secrets partagés.

Préparer des empreintes factices pour le développement et les tests

Produisez ici les empreintes des comptes de test que vous insérerez directement en base, sans démarrer l’application.

Se représenter le lien entre paramètres et durée

Calculez plusieurs fois avec des valeurs différentes et comparez les durées affichées ; c’est cette comparaison qui indique les réglages adaptés à votre serveur de production.

Envisager une migration depuis bcrypt

Calculer l’empreinte de la même chaîne avec le calculateur d’empreinte bcrypt et comparer format de sortie et durée fournit une base pour trancher la migration.

Termes liés à Argon2

Argon2id
Variante hybride réunissant les propriétés d’Argon2d et d’Argon2i. Elle offre à la fois une résistance aux attaques par GPU et aux attaques par canal auxiliaire ; l’OWASP la cite en première recommandation.
Argon2i
Variante dont l’ordre des accès mémoire ne dépend pas de l’entrée, ce qui la rend robuste face aux attaques par canal auxiliaire – celles qui déduisent de l’information du temps d’exécution ou de la consommation électrique –, quoique un peu plus faible qu’Argon2d face aux GPU.
Argon2d
Variante dont l’ordre des accès mémoire dépend bel et bien de l’entrée. Elle offre la meilleure résistance aux attaques parallèles par GPU ou ASIC, mais reste vulnérable aux attaques par canal auxiliaire.
Coût mémoire
Paramètre fixant la quantité de mémoire employée par le calcul de l’empreinte, exprimée en Kio. Des valeurs élevées renchérissent les attaques parallèles menées avec du matériel dédié.
Itérations
Également appelé coût en temps, ce paramètre fixe le nombre de répétitions du traitement interne. Des valeurs élevées allongent le calcul et renforcent la résistance à la force brute.
Parallélisme
Paramètre fixant le nombre de voies exécutées en parallèle. Il aide sur un serveur multicœur, mais reste sans effet dans l’implémentation WebAssembly qui s’exécute dans le navigateur.
Sel
Valeur aléatoire ajoutée avant le hachage. Cet outil en engendre une à chaque calcul, si bien que la même chaîne avec les mêmes paramètres donne à chaque fois une empreinte différente.
Format PHC
Encodage défini par la Password Hashing Competition, qui réunit en une seule chaîne le nom de l’algorithme, la version, les paramètres, le sel et l’empreinte elle-même, sous une forme telle que $argon2id$v=19$m=…

Foire aux questions

Pour un nouveau système, Argon2id est le premier choix : l'OWASP le recommande désormais en priorité. Si un système existant utilise déjà BCrypt, notez que la migration nécessite un recalcul des hashes (par exemple un re-hachage lors de la prochaine connexion).

Argon2d offre la meilleure résistance aux attaques par GPU mais reste vulnérable aux attaques par canal auxiliaire, tandis qu'Argon2i présente les propriétés inverses. Argon2id combine les deux approches et il est recommandé de le choisir sauf raison particulière.

Les boutons de préréglages de cet outil correspondent aux cinq combinaisons recommandées par l'OWASP Password Storage Cheat Sheet. Pour un usage sur un serveur réel, visez un temps de calcul d'environ 100 à 500 ms par hash et ajustez en fonction de la mémoire disponible.

Oui. Cet outil utilise l'algorithme Argon2 standard, donc le hash peut être vérifié directement avec password_verify() en PHP ou toute bibliothèque de vérification Argon2 dans d'autres langages. Faites toutefois attention à la façon dont vous manipulez les données saisies.

Non. Le calcul du hash s'effectue entièrement dans le navigateur via WebAssembly, et aucune donnée saisie n'est jamais transmise à l'extérieur.
Tool-kun

Anecdote — la Password Hashing Competition et les origines d'Argon2

Argon2 a été désigné algorithme vainqueur parmi 24 candidats lors de la « Password Hashing Competition » (PHC), organisée entre 2013 et 2015. Cette compétition visait à corriger les faiblesses des méthodes existantes comme BCrypt (1999) ou PBKDF2 (2000), vulnérables aux attaques par force brute accélérées par du matériel spécialisé tel que les GPU ou les ASIC ; Argon2 a donc été conçu pour exiger une grande quantité de mémoire lors du calcul.

Argon2 se décline en trois variantes. Argon2d maximise la résistance aux attaques par GPU mais reste vulnérable aux attaques par canal auxiliaire, tandis qu'Argon2i résiste bien à ces attaques par canal auxiliaire au prix d'une résistance GPU légèrement inférieure. Argon2id combine ces deux approches en une variante hybride, et de nombreux organismes de sécurité, dont l'OWASP, la recommandent en priorité pour le stockage des mots de passe.

Depuis PHP 7.2, il suffit d'appeler password_hash() avec la constante PASSWORD_ARGON2ID pour générer un hash Argon2id. Des bibliothèques officielles ou quasi officielles existent également pour Node.js, Python, Ruby et d'autres langages majeurs, et Argon2id devient de plus en plus souvent le premier choix devant BCrypt pour le stockage des mots de passe dans les nouveaux systèmes.