I.
CONTEXTE DU PROJET
La sécurité des mots de passe est un enjeu crucial en cybersécurité. Chaque
année, des millions de comptes sont compromis à cause d'attaques variées
comme la force brute, le phishing et l'utilisation de tables arc-en-ciel. Pour limiter
ces risques, il est essentiel d'adopter des pratiques et des algorithmes robustes
pour la gestion des mots de passe.
Force brute : Cette technique consiste à tester systématiquement toutes les
combinaisons possibles d'un mot de passe jusqu'à trouver la bonne.
Phishing : Les attaquants trompent les utilisateurs en leur faisant entrer leurs
identifiants sur de fausses pages.
Tables arc-en-ciel : Il s'agit de bases de données contenant des hachages de mots
de passe précalculés pour accélérer le cassage des mots de passe faibles.
Bonnes pratiques pour un stockage sûr
Hachage des mots de passe : Utiliser des algorithmes robustes comme Argon2,
bcrypt ou PBKDF2 pour stocker les mots de passe de manière sécurisée.
Ajout de sel et de poivre : Ajouter un sel unique à chaque mot de passe avant
hachage pour empêcher l'utilisation des tables arc-en-ciel. Le poivre est une clé
secrète qui renforce encore plus la sécurité.
Politiques de mots de passe fortes : Imposer des mots de passe longs, complexes
et uniques pour chaque compte.
II. CONCEPTS DE BASE
II - 1 : Le hachage
Le hachage est un processus cryptographique qui transforme une donnée, comme
un mot de passe, en une empreinte unique et irréversible. Cette empreinte est
appelée haché et est utilisée pour stocker les mots de passe en toute sécurité sans
révéler leur valeur d'origine.
Salage et Poivrage : Ajout de valeurs aléatoires pour renforcer la sécurité des
hash.
Caractéristiques du hachage :
-Irréversibilité : Une fonction de hachage est conçue pour être
unidirectionnelle. Il est pratiquement impossible de retrouver la valeur d'origine à
partir du haché.
-Déterminisme : Une même entrée produira toujours le même haché.
-Diffusion (Effet avalanche) : Un petit changement dans l'entrée entraîne un
haché totalement différent.
-Résistance aux collisions : Deux entrées différentes ne doivent pas produire
le même haché.
-Efficacité : Un bon algorithme de hachage doit être rapide tout en étant
sécurisé.
Algorithmes de hachage populaires
-Anciennement utilisés (à éviter) : MD5, SHA-1 (trop rapides et vulnérables
aux attaques).
Recommandés :
-bcrypt : Introduit un facteur de coût qui ralentit le hachage, rendant les
attaques par force brute inefficaces.
-PBKDF2 : Utilisé notamment pour sécuriser les mots de passe avec un
nombre élevé d’itérations.
-Argon2 : Considéré comme l’un des algorithmes les plus sécurisés, conçu
pour être résistant aux attaques matérielles (ASIC, GPU).
II - 2 : Sel et Poivre
Le sel : Une valeur aléatoire unique ajoutée au mot de passe avant hachage pour
empêcher les attaques par table arc-en-ciel.
Le poivre : Une clé secrète stockée séparément et ajoutée avant ou après le
hachage pour rendre les attaques plus complexes.
En résumé, le hachage est une méthode essentielle pour sécuriser les mots de
passe, et son efficacité repose sur l’utilisation d’algorithmes robustes combinés à
des techniques comme le salage et le poivrage.
II - 2 :Technique de Dérivation de clé avec KDF (Key Derivation Function)
Les fonctions de dérivation de clé sont des algorithmes conçus pour rendre le
hachage des mots de passe plus sécurisé en appliquant plusieurs itérations de
calcul.
Exemples de KDF sécurisées :
1-PBKDF2 (Password-Based Key Derivation Function 2)
-Utilise un hachage répétitif (SHA-256 ou SHA-512) avec un nombre
configurable d’itérations (ex : 100 000 ou plus).
-Ralentit les attaques par force brute en augmentant le temps de calcul.
-Utilisé dans les normes de sécurité comme celles du NIST.
2-Argon2 (Argon2i, Argon2d, Argon2id)
-Conçu pour être résistant aux attaques par GPU et ASIC.
-Prend en compte trois facteurs pour ajuster la sécurité :
-Temps : Nombre d’itérations pour ralentir le calcul.
-Mémoire : Quantité de RAM utilisée, ce qui empêche les attaques
massives.
-Parallélisme : Nombre de threads utilisés, ce qui optimise la résistance aux
attaques.
3- Scrypt
Conçu pour être gourmand en mémoire afin d’empêcher les attaques par
accélération matérielle.
Utilisé notamment pour sécuriser certaines cryptomonnaies.
III. ÉTUDE DE CAS : ALGORITHMES ÉTUDIÉS
1. Algorithmes de hachage courants
MD5, SHA-1 : Obsolètes, vulnérables aux collisions.
SHA-256 : Plus sécurisé mais sensible aux attaques par dictionnaire.
bcrypt et Argon2 : Recommandés pour sécuriser les mots de passe grâce à un
facteur de travail ajustable.
2. Contexte d’application
Les sites web, bases de données et applications utilisent ces algorithmes pour
stocker et vérifier les mots de passe des utilisateurs.
IV. SIMULATION DE L’ALGORITHME
1. Génération d’un mot de passe hashé avec bcrypt
Algorithme : HachageMotDePasse
2. Vérification de l’authenticité d’un mot de passe
Algorithme : VérifierMotDePasse
Vérification de l’authenticité d’un mot de passe
Comparaison de performance entre bcrypt et SHA-256
(Code fourni dans la section pratique.)
V. CONCLUSION
Nous avons étudié l’importance de la gestion sécurisée des mots de passe et démontré pourquoi des
algorithmes comme bcrypt et Argon2 sont les plus adaptés. Il reste crucial d’utiliser des stratégies de
défense multicouches pour protéger les comptes des utilisateurs.
VI. RÉFÉRENCES BIBLIOGRAPHIQUES
Documentation officielle de bcrypt et Argon2
Articles académiques sur la cryptographie et la gestion des mots de passe
Études de cas sur les fuites de données et les cyberattaques