Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Argon2

general

Définition

Argon2 est la fonction de hachage de mots de passe recommandée par l'OWASP et gagnante du Password Hashing Competition (PHC) en 2015. Conçue pour être résistante aux attaques par force brute sur GPU et ASIC grâce à sa consommation intensive de mémoire, elle représente l'état de l'art pour le stockage sécurisé des mots de passe. Argon2 existe en trois variantes. Argon2d maximise la résistance aux attaques CPU et GPU grâce à un accès mémoire dépendant des données, mais peut être vulnérable aux side-channel attacks. Argon2i utilise un accès mémoire indépendant des données, résistant aux side-channel attacks mais légèrement moins résistant aux accélérations GPU. Argon2id (recommandé) combine les deux : premier passage Argon2i puis passages Argon2d, offrant une protection optimale contre toutes les classes d'attaques. Les paramètres configurables d'Argon2 permettent d'ajuster le niveau de sécurité : m (mémoire en kibibytes — 19456 kB soit 19 Mo minimum selon OWASP 2024), t (nombre d'itérations — 2 minimum), p (parallélisme — 1 par défaut). L'augmentation de ces paramètres rend le calcul plus lent et plus intensif en ressources, décourageant les attaques par force brute tout en restant acceptable pour un usage normal (quelques dizaines de millisecondes par authentification). La comparaison avec bcrypt et scrypt : bcrypt est plus ancien (1999), ne supporte que les mots de passe jusqu'à 72 caractères, mais est très bien implémenté dans tous les langages. scrypt est intensive en mémoire comme Argon2 mais ses paramètres sont moins intuitifs. Argon2id est le choix recommandé pour tout nouveau développement. L'implémentation pratique est simple grâce aux bibliothèques disponibles dans tous les langages majeurs : argon2-cffi (Python), node-argon2 (Node.js), spring-security-crypto (Java), password_hash avec PASSWORD_ARGON2ID (PHP 7.2+). Les frameworks web modernes l'intègrent nativement ou via des packages standards. La migration depuis bcrypt/scrypt vers Argon2 peut être réalisée progressivement : lors de la prochaine connexion de chaque utilisateur, recalculer le hash en Argon2id et remplacer l'ancien hash en base de données, sans nécessiter de réinitialisation des mots de passe.

Paramètres Argon2id recommandés (OWASP 2024)

L'OWASP Password Storage Cheat Sheet 2024 recommande pour Argon2id : m=19456 (19 Mo), t=2 itérations, p=1 (parallélisme). Pour des environnements avec plus de ressources : m=46080 (46 Mo), t=1, p=1. Ces paramètres doivent être calibrés pour prendre entre 500ms et 1 seconde sur les serveurs cibles — trop rapide favorise les attaques brute force, trop lent dégrade l'expérience utilisateur. Un benchmark sur le matériel cible est indispensable avant deployment en production. Les paramètres sont encodés dans la chaîne de hash ($argon2id$v=19$m=19456,t=2,p=1$...) ce qui permet de les faire évoluer sans invalider les anciens hashs.

Argon2 vs bcrypt — migration pratique

La migration progressive de bcrypt vers Argon2id est la stratégie recommandée. Principe : lors de chaque authentification réussie, vérifier si le hash est en bcrypt, si oui recalculer en Argon2id et mettre à jour la base de données. Cette approche transparente ne nécessite ni interruption de service ni réinitialisation des mots de passe. En quelques mois, la grande majorité des comptes actifs sera migrée. Les comptes inactifs peuvent être forcés à réinitialiser leur mot de passe lors de leur prochaine connexion. Un champ version ou prefix dans la colonne de hash permet de distinguer les algorithmes en place.

Attaques GPU/ASIC contre les KDFs

Les GPU modernes (RTX 4090) peuvent calculer 100+ milliards de SHA-256 par seconde, rendant les hashs simples triviaux à brute-forcer. Face aux KDFs : bcrypt avec coût 12 tombe à ~10 000 hashs/seconde par GPU, scrypt et Argon2 sont encore plus lents grâce à leur consommation mémoire qui sature la bande passante mémoire des GPU. Les ASIC (Application-Specific Integrated Circuits) spécialisés pour Bitcoin (SHA-256) illustrent la menace : des machines dédiées peuvent calculer petahash/sec. La résistance ASIC d'Argon2 repose sur l'intensive consommation mémoire qui augmente linéairement le coût du silicium et rend le gain d'un ASIC négligeable comparé au coût de fabrication.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis