La cryptographie au cœur de la sécurité moderne

Chaque fois que vous consultez un site sécurisé, installez une mise à jour logicielle ou validez une transaction, des mécanismes cryptographiques travaillent en arrière-plan pour garantir que les données n’ont pas été altérées et qu’elles proviennent bien de la source attendue. Parmi ces mécanismes, les fonctions de hachage occupent une place centrale. Elles transforment une donnée de taille arbitraire en une empreinte de longueur fixe, et cette empreinte sert de référence unique pour vérifier l’intégrité de l’information.

Cette section explique ce qu’est un hachage cryptographique, comment fonctionne la famille SHA, pourquoi le hachage soutient la confiance en ligne et ce qui se passe lorsqu’une fonction de hachage cède sous la pression d’une attaque. Le cas le plus marquant reste la première collision pratique de SHA-1, démontrée en 2017, qui a accéléré l’abandon de cet algorithme dans le monde entier.

Qu’est-ce qu’un hachage cryptographique ?

Une fonction de hachage cryptographique prend en entrée un message, qu’il s’agisse d’un mot de passe, d’un fichier de plusieurs gigaoctets ou d’un simple texte, et produit une chaîne de caractères de longueur fixe appelée empreinte ou condensé (digest en anglais). Quelle que soit la taille de l’entrée, la sortie conserve toujours la même longueur : 256 bits pour SHA-256, par exemple.

Plusieurs propriétés rendent ces fonctions utiles pour la sécurité. Le calcul est déterministe : une même entrée donne toujours la même empreinte. Le calcul est rapide dans un sens, mais pratiquement impossible à inverser : à partir de l’empreinte seule, on ne peut pas retrouver le message d’origine. On parle de résistance à la préimage. Enfin, il doit être extrêmement difficile de trouver deux messages différents partageant la même empreinte, une propriété connue sous le nom de résistance aux collisions.

Un autre comportement caractéristique est l’effet d’avalanche. Si vous modifiez ne serait-ce qu’un seul bit de l’entrée, l’empreinte résultante change radicalement, sans aucune ressemblance avec la précédente. Cette sensibilité extrême permet de détecter la moindre altération d’un fichier ou d’un message.

La famille SHA en bref

SHA signifie Secure Hash Algorithm. Il s’agit d’une série de standards publiés par le NIST, l’institut américain de normalisation, et largement adoptés dans le monde entier. La famille a évolué au fil du temps pour répondre aux progrès de la cryptanalyse.

SHA-1 produit une empreinte de 160 bits. Conçu dans les années 1990, il a longtemps été le standard de fait pour les certificats, les signatures et le contrôle d’intégrité. Des faiblesses théoriques ont été identifiées dès le milieu des années 2000, mais c’est seulement en 2017 qu’une collision concrète a été produite, scellant son retrait des usages sérieux.

SHA-2 regroupe plusieurs variantes, dont SHA-256 et SHA-512, qui produisent respectivement des empreintes de 256 et 512 bits. SHA-256 est aujourd’hui le choix de référence pour une grande partie des protocoles de sécurité. Aucune attaque pratique ne le menace à ce jour.

SHA-3, finalisé en 2015, repose sur une construction interne différente de SHA-2 (une éponge cryptographique plutôt qu’une construction de type Merkle-Damgård). Il offre une alternative de secours si une faiblesse devait un jour affecter SHA-2, sans pour autant le remplacer dans la pratique courante.

Pourquoi le hachage soutient la confiance en ligne

La confiance numérique repose sur la capacité à répondre à deux questions simples : ce contenu est-il intact, et provient-il bien de la personne ou du serveur attendu ? Les fonctions de hachage apportent une réponse à la première question, et elles servent de fondation à la seconde.

Lorsqu’un éditeur publie un logiciel, il peut fournir l’empreinte du fichier. Après téléchargement, vous recalculez l’empreinte de votre copie et la comparez à celle annoncée. Si elles coïncident, le fichier n’a pas été modifié en chemin. Les certificats TLS qui sécurisent les sites web, les signatures de code qui authentifient les applications et les systèmes de gestion de versions comme Git s’appuient tous sur le hachage pour identifier et valider le contenu.

Les signatures numériques poussent cette logique plus loin. Plutôt que de signer un message entier, on signe son empreinte, ce qui est à la fois plus rapide et tout aussi sûr, tant que la fonction de hachage reste fiable. C’est précisément là que réside le danger d’une collision : si un attaquant parvient à fabriquer deux documents partageant la même empreinte, une signature valide pour l’un devient valide pour l’autre. La confiance s’effondre.

Ce que couvre cette section

Cette section approfondit les quatre piliers du sujet à travers des articles dédiés.

L’article sur la collision SHA-1 de 2017 raconte en détail l’attaque SHAttered, comment deux fichiers PDF distincts ont été forgés pour partager la même empreinte SHA-1, et pourquoi cet exploit a marqué la fin de l’algorithme.

L’article consacré à SHA-256 décrit la place de cet algorithme dans la famille SHA-2, son comportement et ses usages concrets, des certificats TLS à la preuve de travail de Bitcoin.

L’article sur les fonctions de hachage présente de manière générale les propriétés attendues, la différence avec les fonctions de hachage non cryptographiques et les principaux cas d’usage, dont le stockage des mots de passe avec sel.

Enfin, l’article sur les signatures numériques explique comment le hachage se combine aux clés asymétriques pour authentifier un message, et pourquoi une collision menace directement la validité d’une signature.

Un domaine en évolution constante

La cryptographie n’est jamais figée. Un algorithme considéré comme sûr pendant deux décennies peut devenir vulnérable à mesure que la puissance de calcul augmente et que les techniques de cryptanalyse progressent. L’histoire de SHA-1 en est l’illustration la plus nette : les premiers signaux d’alerte théoriques ont précédé de plus de dix ans la démonstration pratique, et pourtant cette démonstration a fini par arriver.

La leçon est claire pour quiconque conçoit ou exploite des systèmes sécurisés. Il faut choisir des fonctions de hachage modernes, suivre les recommandations des organismes de normalisation et prévoir la migration vers de nouveaux algorithmes avant qu’une faiblesse ne soit exploitée. Comprendre le fonctionnement du hachage, ses garanties et ses limites est le premier pas vers des décisions de sécurité solides.