Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio:bloc3:passwords [2023/02/22 20:42] – [1. Sécurisation du système de stockage] jcheron | sio:bloc3:passwords [2023/02/22 23:19] (Version actuelle) – [Références :] jcheron | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Ce stockage doit être réalisé de manière sécurisée. En effet, en cas de compromission de cette base (si elle a été récupérée ou rendue publique par un attaquant), les mots de passe seront directement révélés s’ils sont stockés en clair, ou s'il sont insuffisamment protégés. | Ce stockage doit être réalisé de manière sécurisée. En effet, en cas de compromission de cette base (si elle a été récupérée ou rendue publique par un attaquant), les mots de passe seront directement révélés s’ils sont stockés en clair, ou s'il sont insuffisamment protégés. | ||
- | ===== Défense en profondeur ===== | + | ====== Défense en profondeur |
- | ==== 1. Sécurisation du système de stockage ==== | + | ===== 1. Sécurisation du système de stockage |
L' | L' | ||
Ligne 26: | Ligne 26: | ||
La sécurisation du système de stockage doit donc s' | La sécurisation du système de stockage doit donc s' | ||
</ | </ | ||
- | ==== 2. Méthodes de protection des mots de passe ==== | + | ===== 2. Méthodes de protection des mots de passe ===== |
- | === 2.1 Chiffrement ou cryptage === | + | ==== 2.1 Chiffrement ou cryptage |
Principe : | Principe : | ||
Ligne 39: | Ligne 39: | ||
Pour déchiffrer, | Pour déchiffrer, | ||
+ | <WRAP important> | ||
Le chiffrement de mots de passe n'est pas sécurisé, dans la mesure où : | Le chiffrement de mots de passe n'est pas sécurisé, dans la mesure où : | ||
- | toute la protection repose sur la non divulgation de la clé, | + | * toute la protection repose sur la non divulgation de la clé, |
- | la clé peut être découverte à partir d'un mot de passe en clair et sa version chiffrée. | + | |
+ | |||
+ | </ | ||
+ | <WRAP tip> | ||
Pour les autres données (autres que le mot de passe) qui nécessite une sécurisation, | Pour les autres données (autres que le mot de passe) qui nécessite une sécurisation, | ||
+ | </ | ||
- | Algorithmes | + | === Algorithmes |
- | DES : Data Encryption Standard (dep) | + | |
- | AES : Advanced Encryption Standard (128, 192, 256) | + | |
- | MARS | + | |
- | RSA (clés asymétriques) | + | |
- | === 2.2 Hachage === | + | |
+ | |||
+ | ==== 2.2 Hachage | ||
Le hachage est un procédé qui utilise un algorithme pour convertir du texte en clair en valeurs numériques : | Le hachage est un procédé qui utilise un algorithme pour convertir du texte en clair en valeurs numériques : | ||
Ligne 63: | Ligne 70: | ||
Comparaison avec l' | Comparaison avec l' | ||
Si les 2 mots de passe sont identiques sous leur forme hachée, le mot de passe est bon. | Si les 2 mots de passe sont identiques sous leur forme hachée, le mot de passe est bon. | ||
- | 2.2.1 Algorithmes | + | === 2.2.1 Algorithmes |
MD5 : Message-Digest Algorithm 5 | MD5 : Message-Digest Algorithm 5 | ||
SHA : Secure Hash Algorithm (sha1 (déprécié), | SHA : Secure Hash Algorithm (sha1 (déprécié), | ||
Argon2 (memory hard) | Argon2 (memory hard) | ||
bcrypt (avec sel, basé sur Blowfish) | bcrypt (avec sel, basé sur Blowfish) | ||
- | ==== 2.2.2 Failles | + | |
+ | === 2.2.2 Failles === | ||
Vétusté de certains algorithmes : | Vétusté de certains algorithmes : | ||
Ligne 77: | Ligne 86: | ||
Rainbow tables : Tables de correspondance entre mots et empreintes (consultables sur internet) | Rainbow tables : Tables de correspondance entre mots et empreintes (consultables sur internet) | ||
Comparaison possible des hashs et déduction si toute la base est accédée | Comparaison possible des hashs et déduction si toute la base est accédée | ||
- | 2.3 Salage | + | |
+ | ==== 2.3 Salage | ||
Pour contrer les deux failles précédentes, | Pour contrer les deux failles précédentes, | ||
Le même mot de passe ne produit plus jamais la même empreinte, mais comme la chaîne utilisée comme sel est accessible au programme, on peut toujours hacher un mot de passe fourni pour le comparer au mot de passe stocké. | Le même mot de passe ne produit plus jamais la même empreinte, mais comme la chaîne utilisée comme sel est accessible au programme, on peut toujours hacher un mot de passe fourni pour le comparer au mot de passe stocké. | ||
+ | <WRAP tip dark> | ||
Il est recommandé d’utiliser un sel choisi aléatoirement pour chaque compte et d’une longueur d’au moins 128 bits. | Il est recommandé d’utiliser un sel choisi aléatoirement pour chaque compte et d’une longueur d’au moins 128 bits. | ||
Utiliser une fonction de dérivation de mots de passe memory-hard pour pénaliser les attaques par force brute. | Utiliser une fonction de dérivation de mots de passe memory-hard pour pénaliser les attaques par force brute. | ||
- | Références : | + | </ |
- | [[Guide ANSSI authentification et mots de passe]] | + | ==== Références : ==== |
+ | |||
+ | {{: |