Qu'est-ce qu'une signature numérique et comment prouve-t-elle l'origine et l'intégrité ?
Réponse courte
Une signature numérique est le hachage d'un message transformé avec la clé privée du signataire. Le vérificateur recalcule le hachage, applique la clé publique du signataire, et vérifie qu'ils correspondent. Comme seul le signataire détient la clé privée, une signature valide prouve que le message vient de lui (authenticité), n'a pas été altéré (intégrité), et qu'il ne peut le nier de façon crédible (non-répudiation).
Les recruteurs posent cette question pour confirmer que vous comprenez les clés asymétriques « à l'envers » — le chiffrement utilise la clé publique du destinataire, mais la signature utilise la clé privée de l'expéditeur. Confondre les deux est un signe révélateur courant.
Comment fonctionne la signature
Signer directement un fichier de plusieurs mégaoctets serait lent et peu pratique, donc le signataire calcule d'abord un hachage cryptographique du message — une empreinte courte et de longueur fixe. Il transforme ensuite ce hachage avec sa clé privée pour produire la signature, qui voyage aux côtés du message.
Comment fonctionne la vérification
Le vérificateur prend le message reçu, calcule son hachage de manière indépendante, et applique la clé publique du signataire à la signature pour récupérer le hachage que le signataire a calculé. Si les deux hachages correspondent, la signature est valide. Cette unique vérification prouve trois choses à la fois :
- Intégrité — si ne serait-ce qu'un bit du message changeait, le hachage recalculé différerait et la vérification échouerait.
- Authenticité — seul le détenteur de la clé privée pouvait produire une signature qui se vérifie avec la clé publique correspondante.
- Non-répudiation — comme la clé privée n'appartient qu'au signataire, il ne peut nier plus tard l'avoir signé.
Pourquoi ne pas simplement utiliser un HMAC ?
Un HMAC prouve aussi l'intégrité et l'authenticité, mais il utilise une clé secrète partagée — les deux parties détiennent la même clé, donc l'une ou l'autre pourrait avoir produit l'étiquette. Cela signifie qu'un HMAC ne peut pas assurer la non-répudiation : en cas de litige, vous ne pouvez pas prouver quelle partie l'a créée. Une signature numérique le peut, car la clé privée appartient à exactement une partie.
Le fossé de confiance
Une signature prouve qu'un message vient de quiconque détient une clé privée donnée — mais pas qui est cette personne. Lier une clé publique à une identité réelle est le rôle des certificats et d'une PKI.
Ce que recherchent les recruteurs
Le sens clé-privée-pour-signer / clé-publique-pour-vérifier, signer un hachage plutôt que le message complet, les trois garanties, et la distinction de la non-répudiation par rapport à HMAC.
Questions de suivi probables
- Pourquoi signe-t-on un hachage du message plutôt que le message entier ?
- En quoi une signature numérique diffère-t-elle d'un HMAC ?
- Qu'est-ce que la non-répudiation et pourquoi les MAC symétriques ne peuvent-ils pas l'assurer ?