sio:bloc3:passwords

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sio:bloc3:passwords [2023/02/22 20:36] – créée jcheronsio: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'accès à la base de données doit bien évidemment être sécurisé : L'accès à la base de données doit bien évidemment être sécurisé :
Ligne 13: Ligne 13:
   * Chiffrement des données échangées ;   * Chiffrement des données échangées ;
   * Mise en place d'une authentification avec droits (pour réduire la surface d'attaque).   * Mise en place d'une authentification avec droits (pour réduire la surface d'attaque).
 +<WRAP important>
 Cette sécurisation est insuffisante et peut ne pas empêcher l'accès aux données (mots de passe). Cette sécurisation est insuffisante et peut ne pas empêcher l'accès aux données (mots de passe).
  
Ligne 20: Ligne 21:
   * Injections noSQL   * Injections noSQL
   * Injections LDAP   * Injections LDAP
-La sécurisation du système de stockage doit donc s'accompagner d'une méthode de sécurisation des données sensibles, au cas ou le premier rempart de protection aurait sombré ou aurait été contourné (principe de défense en profondeur). 
  
-==== 2. Méthodes de protection des mots de passe ==== +</WRAP> 
-=== 2.1 Chiffrement ou cryptage ===+<WRAP tip> 
 +La sécurisation du système de stockage doit donc s'accompagner d'une méthode de sécurisation des données sensibles, au cas ou le premier rempart de protection aurait sombré ou aurait été contourné (principe de défense en profondeur). 
 +</WRAP> 
 +===== 2. Méthodes de protection des mots de passe ===== 
 +==== 2.1 Chiffrement ou cryptage ====
  
 Principe : Principe :
Ligne 35: Ligne 39:
 Pour déchiffrer, il faut connaître l'algorithme et la clé (en case de chiffrement symétrique : 1 seule clé). Pour déchiffrer, il faut connaître l'algorithme et la clé (en case de chiffrement symétrique : 1 seule clé).
  
 +<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.+  la clé peut être découverte à partir d'un mot de passe en clair et sa version chiffrée. 
 + 
 +</WRAP> 
 +<WRAP tip>
 Pour les autres données (autres que le mot de passe) qui nécessite une sécurisation, le chiffrement est une bonne solution. Pour les autres données (autres que le mot de passe) qui nécessite une sécurisation, le chiffrement est une bonne solution.
 +</WRAP>
  
-Algorithmes +=== Algorithmes === 
-DES : Data Encryption Standard (dep) + 
-AES : Advanced Encryption Standard (128, 192, 256) +  DES : Data Encryption Standard (dep) 
-MARS +  AES : Advanced Encryption Standard (128, 192, 256) 
-RSA (clés asymétriques) +  MARS 
-=== 2.2 Hachage ===+  RSA (clés asymétriques) 
 + 
 +==== 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 59: Ligne 70:
 Comparaison avec l'empreinte stockée en base Comparaison avec l'empreinte stockée en base
 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-256, sha-384, sha-512) SHA : Secure Hash Algorithm (sha1 (déprécié), sha-256, sha-384, sha-512)
 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 73: 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, la solution est d'ajouter une chaîne (grain de sel), de préférence aléatoire, au mot de passe avant de le hacher. Pour contrer les deux failles précédentes, la solution est d'ajouter une chaîne (grain de sel), de préférence aléatoire, au mot de passe avant de le hacher.
  
 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 : +</WRAP> 
-[[Guide ANSSI authentification et mots de passe]]+==== Références : ==== 
 + 
 +{{:sio:bloc3:anssi-guide-authentification_multifacteur_et_mots_de_passe.pdf |Guide ANSSI authentification et mots de passe}}
  • sio/bloc3/passwords.1677094579.txt.gz
  • Dernière modification : il y a 2 ans
  • de jcheron