Algorithmes de hachage : types, méthodologies et utilisation
Algorithmes de hachage : types, méthodologies et utilisation
Algorithmes de hachage : types, méthodologies et utilisation
Un algorithme de hachage est une fonction mathématique qui brouille les données pour les rendre illisibles.
Comme ces algorithmes sont des programmes à sens unique, personne d’autre ne peut décoder le texte. Et c’est précisément le but recherché. Le hachage protège les données au repos. Dès lors, si une personne accède à votre serveur, les ressources qu’il héberge restent illisibles.
Il peut également servir à prouver que les données ne sont en rien modifiées ou altérées après que l’auteur les a finalisées. Certains l’utilisent aussi pour interpréter des volumes de données considérables.
Qu’est-ce qu’un algorithme de hachage ?
Il existe une grande variété d’algorithmes qui fonctionnent tous de manière légèrement différente. Dans tous les cas, le principe reste le même : l’utilisateur saisit les données et le programme leur donne une forme différente.
Tous les algorithmes de hachage sont :
- Mathématiques. La suite d’opérations effectuées par un algorithme est régie par des règles strictes qui ne peuvent être ni modifiées ni transgressées.
- Uniformes. Quel que soit l’algorithme de hachage choisi et le nombre de caractères saisis, les données produites en sortie ont une longueur prédéterminée par le programme.
- Constants. L’algorithme ne fait qu’une seule et unique chose : comprimer les données.
- À sens unique. Une fois les données transformées par l’algorithme, il est quasi impossible de rétablir les données dans leur état d’origine.
Il est important de comprendre que hachage et chiffrement constituent des fonctions différentes. Vous pouvez les utiliser conjointement, mais les termes ne sont pas interchangeables.
Comment fonctionne un algorithme de hachage ?
Un simple tableau, une calculatrice et des connaissances de base en mathématiques suffisent pour créer un algorithme, mais la plupart des personnes recourent à des outils informatiques.
La plupart des algorithmes de hachage fonctionnent de la manière suivante :
- Création du message : l’utilisateur détermine ce qu’il souhaite hacher.
- Choix du type d’algorithme : l’utilisateur choisit l’algorithme de hachage le plus adapté au message (il en existe des dizaines).
- Saisie du message : l’utilisateur saisit le message dans l’ordinateur exécutant l’algorithme.
- Démarrage du hachage : le système transforme le message — de n’importe quelle longueur — en un nombre de bits prédéterminé. En général, le programme découpe le message en une série de blocs de taille égale, chacun étant successivement compressé.
- Stockage ou partage : l’utilisateur peut envoyer le hachage (ou « message digest ») au destinataire prévu ou les données hachées sont enregistrées sous cette forme.
Bien que compliqué, le processus est très rapide ; l’opération ne dure que quelques secondes.
À quoi servent les algorithmes de hachage ?
Le premier algorithme de hachage, mis au point en 1958, a été utilisé pour classer et organiser les données. Depuis lors, les développeurs lui ont trouvé quantité d’utilisations possibles.
Voici quelques cas d’usage des algorithmes de hachage :
- Stockage de mots de passe - Vous devez tenir un registre de toutes les combinaisons de noms d’utilisateur et mots de passe utilisés par les utilisateurs pour accéder à vos ressources. Si un cybercriminel parvient à y accéder, voler des données non protégées est un jeu d’enfant. Le hachage garantit que les données sont stockées sous une forme brouillée, ce qui complique leur vol.
- Signatures numériques - Un petit bit de données permet de démontrer qu’un message n’a pas été modifié entre le moment où il quitte la boîte d’envoi d’un utilisateur et arrive dans la boîte de réception du destinataire.
- Gestion des documents - Les algorithmes de hachage permettent d’authentifier des données. L’auteur utilise un hachage pour sécuriser un document une fois ce dernier terminé. Le hachage fait, en quelque sorte, office de sceau de contrôle.
Un destinataire peut générer un hachage et le comparer à l’original. Si les deux sont identiques, les données sont considérées comme authentiques. Dans le cas contraire, le document a été modifié.
- Gestion des fichiers - Certaines sociétés utilisent également des hachages pour indexer les données, identifier les fichiers et supprimer les doublons. Si un système héberge des milliers de fichiers, l’utilisation de hachages permet de gagner un temps précieux.
Exemples d’algorithme de hachage
Il est plus facile d’imaginer ce que peuvent faire ces programmes spécialisés en les voyant en action.
Supposons que nous souhaitions hacher la réponse à la question de sécurité suivante : « Où avez-vous habité pour la première fois ? » La réponse donnée est « Au dernier étage d’un immeuble à New York ». Selon l’algorithme utilisé, les hachages se présentent comme suit (selon le texte original en anglais) :
- MD5 : 72b003ba1a806c3f94026568ad5c5933
- SHA-256 : f6bf870a2a5bb6d26ddbeda8e903f3867f729785a36f89bfae896776777d50af
Si, à présent, nous posons la question à une autre personne et que la réponse est « Chicago », voici à quoi ressemblent les hachages :
- MD-5 : 9cfa1e69f507d007a516eb3e9f5074e2
- SHA-256 : 0f5d983d203189bbffc5f686d01f6680bc6a83718a515fe42639347efc92478e
Notez que les messages d’origine n’ont pas du tout le même nombre de caractères. Mais les algorithmes produisent des hachages d’une longueur égale chaque fois.
Notez également que les hachages sont complètement brouillés. Il est quasi impossible de comprendre ce qu’ils signifient et comment ils fonctionnent.
Présentation des algorithmes de hachage les plus répandus
De nombreux types de programmes différents peuvent transformer le texte en hachage, et ils fonctionnent tous de manière quelque peu différente.
Parmi les algorithmes de hachage les plus répandus, citons les suivants :
- MD-5 : il s’agit d’un des premiers algorithmes à s’être imposé. Conçu en 1991, il fut longtemps considéré comme extrêmement sûr.
Depuis lors, les cybercriminels ont découvert comment le décoder et peuvent désormais le faire en quelques secondes. La plupart des experts estiment qu’il faudrait l’abandonner compte tenu de la facilité avec laquelle il est possible de le résoudre.
- RIPEMD-160 : RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) a été développé en Belgique au milieu des années 1990. Il est jugé extrêmement sûr, étant donné que les cybercriminels ne sont pas encore parvenus à le craquer.
- SHA : les algorithmes de la famille SHA sont considérés comme légèrement plus sûrs. Les premières versions ont été développées par les autorités américaines, mais d’autres programmeurs se sont inspirés des frameworks d’origine et ont créé d’autres variantes, plus strictes et compliquées à décoder. En général, plus le nombre suivant les lettres « SHA » est élevé, plus la version est récente et complexe.
Par exemple, SHA-3 inclut des sources aléatoires dans le code, ce qui le rend plus difficile à craquer que les versions antérieures. C’est la raison pour laquelle il est devenu un algorithme de hachage standard depuis 2015.
- Whirlpool : cet algorithme a été créé en 2000, sur la base de la norme AES (Advanced Encryption Standard). Il est également jugé très sûr.
À l’heure actuelle, le gouvernement américain n’est plus impliqué dans le développement d’algorithmes de hachage, mais les autorités continuent de jouer un rôle dans la protection des données. Le programme CMVP (Cryptographic Module Validation Program), géré en partie par le NIST (National Institute of Standards and Technology), valide des modules cryptographiques. Les entreprises peuvent s’appuyer sur cette ressource pour être certaines d’utiliser des technologies à la fois sûres et efficaces.
Que faut-il savoir à propos du hachage ?
Si vous travaillez dans le domaine de la sécurité, il est essentiel de connaître tous les tenants et aboutissants de la protection. Le hachage est une méthode primordiale pour empêcher le vol de données importantes, dont les mots de passe, par une personne mal intentionnée.
Mais les concepts liés au hachage peuvent aussi intéresser certains particuliers. Si le Bitcoin vous intéresse, par exemple, il est probable que vous maîtrisiez certains principes du hachage. Vos partenaires de courtage utilisent énormément cette technologie, notamment au sein des processus de blockchain.
Même si l’aspect mathématique des algorithmes peut vous paraître quelque peu obscur, ne vous inquiétez pas : la plupart des programmes informatiques effectuent les calculs difficiles à votre place.
Okta vous simplifie également la tâche en matière de protection des données. Nous possédons des programmes sophistiqués qui barrent la route aux hackers et permettent le bon déroulement de vos activités.
En plus, nous répondons toujours présent, quelle que soit la question posée ou l’assistance demandée. Contactez-nous pour en savoir plus.
Références
Hans Peter Luhn and the Birth of the Hashing Algorithm. Janvier 2018. IEEE Spectrum.
Hashing Algorithms. IBM Knowledge Center.
MD5 Hash Generator. Dan’s Tools.
SHA-256 Hash Generator. Dan’s Tools.
Cryptographic Hash Function. Wikipedia.
Cryptographic Module Validation Program. National Institute of Standards and Technology.