Outils pour utilisateurs

Outils du site


bloc3:hachage

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc3:hachage [2024/05/12 17:12] adminbloc3:hachage [2026/01/19 10:54] (Version actuelle) – [Risques liés au hachage] admin
Ligne 11: Ligne 11:
   * C'est un procédé « boite noire » : pour s'en servir, nul besoin de savoir comment le résultat est fabriqué ;   * C'est un procédé « boite noire » : pour s'en servir, nul besoin de savoir comment le résultat est fabriqué ;
   * L’usage est évolutif : choix de l’algorithme, choix de la taille du hash-code ;   * L’usage est évolutif : choix de l’algorithme, choix de la taille du hash-code ;
-  * Il s'agit d'un procédé qui assimile le résultat à une **Signature** : +  * Il s'agit d'un procédé qui assimile le résultat à une **Signature** ou **Empreinte** : 
     * __une__ information => __un__ hash-code (toujours le même) ;     * __une__ information => __un__ hash-code (toujours le même) ;
     * __deux__ informations => __deux__ hash-codes (en théorie);     * __deux__ informations => __deux__ hash-codes (en théorie);
Ligne 19: Ligne 19:
   * Les « **collisions** » : l'ensemble des hash-codes étant fini, il en résulte la possibilité que deux données distinctes produisent le même hash-code. Ce qui n'est pas nécessairement un problème mais, du point de vue d'un pirate, plutôt une qualité car une clé peut ouvrir plusieurs portes ;   * Les « **collisions** » : l'ensemble des hash-codes étant fini, il en résulte la possibilité que deux données distinctes produisent le même hash-code. Ce qui n'est pas nécessairement un problème mais, du point de vue d'un pirate, plutôt une qualité car une clé peut ouvrir plusieurs portes ;
   * Une **exposition de l’information non-hachée** : toute donnée hachée connait un moment d'existence non-hachée. Ce moment est une fragilité et il doit être raccourci le plus possible en effaçant au plus vite l'information non-hachée de manière définitive ;    * Une **exposition de l’information non-hachée** : toute donnée hachée connait un moment d'existence non-hachée. Ce moment est une fragilité et il doit être raccourci le plus possible en effaçant au plus vite l'information non-hachée de manière définitive ; 
-  * **Vol de base de données** : lorsqu'une base de données contenant des informations hachées est volée, le hachage bien que non-reversible est fragilisé si +  * **Vol de base de données** : lorsqu'une base de données contenant des informations hachées est volée, le hachage bien que non-reversible est fragilisé : 
-    *  il est appliqué de manière homogène sur toutes les données ; +    *  si il est appliqué de manière homogène sur toutes les données ; 
-    *  il est appliqué au moyen d'un algorithme rapide.+    *  si il est appliqué au moyen d'un algorithme rapide.
  
 ===== Applications du hachage ===== ===== Applications du hachage =====
 +  * **Stockage des mots de passe** : les mots de passe sont des données à protéger à tout prix. Stocker leur version hachée plutôt que leur version "en clair" permet de garantir cette protection sans perturber le processus d'authentification ;
   * **Comparaison de fichiers** : quand on télécharge un fichier sur Internet, on n'est jamais certain qu'il n'a pas été modifié par rapport à l'original. Ce qui pourrait mettre en cause la sécurité du réseau. La publication des signatures de fichiers permet de s'assurer d'un fichier non modifié ;   * **Comparaison de fichiers** : quand on télécharge un fichier sur Internet, on n'est jamais certain qu'il n'a pas été modifié par rapport à l'original. Ce qui pourrait mettre en cause la sécurité du réseau. La publication des signatures de fichiers permet de s'assurer d'un fichier non modifié ;
   * **Indexation de données** : le hash-code étant très compact, il peut être utilisé pour classer et indexer efficacement des données à partir de leur signature. C'est le principe qu'utilisent les dictionnaires et hashtables en programmation ;   * **Indexation de données** : le hash-code étant très compact, il peut être utilisé pour classer et indexer efficacement des données à partir de leur signature. C'est le principe qu'utilisent les dictionnaires et hashtables en programmation ;
Ligne 30: Ligne 31:
   * etc.   * etc.
  
-===== Salage des mots de passe ===== 
-Le hachage des mots de passe a beau être un procédé à haut niveau de sécurité lorsqu'il est convenablement mis en place (non-réversibilité, taille du hash-code élevée, algorithme lent, etc.), il n'en reste pas moins que l'ensemble comporte une fragilité particulière dans l'hypothèse du vol d'une base de données complète. Dans ce cas, un individu malveillant disposant de beaucoup de temps et d'un outillage spécialisé (**tables arc-en-ciel**) pourrait compromettre de nombreux mots de passe en s'appuyant sur l'homogénéité du hachage appliqué. 
- 
-Pour contrer cette capacité, on appliquera un **salage** des mots de passe. Le [[https://fr.wikipedia.org/wiki/Salage_%28cryptographie%29|salage]] consiste à ajouter une information aléatoire (le sel) au mot de passe avant son hachage. __Le sel étant variable d'un hachage à l'autre, on aura un hash-code différent pour le hachage du même mot de passe à deux moments différents__. Dans, ce cas, les tables arc-en-ciel deviennent inopérantes.  
- 
-A titre d'exemple, PHP propose une fonction **password_hash** qui intègre un hachage BCrypt et le salage automatique.  
  
bloc3/hachage.1715526741.txt.gz · Dernière modification : de admin