Signature numérique
Signature numérique et certificats SSL/TLS : principes, utilisation et manipulation avec OpenSSL.
Notions théoriques
Qu'est-ce qu'une signature numérique ?
Une signature numérique est un mécanisme cryptographique permettant de garantir l’authenticité, l’intégrité et la non-répudiation d’un message ou d’un document.
Une signature numérique repose sur la cryptographie asymétrique, qui utilise une paire de clés :
- Une clé privée pour signer le document.
- Une clé publique pour vérifier la signature.
Lorsqu’un document est signé :
- Un hachage du document est calculé.
- Ce hachage est chiffré avec la clé privée du signataire.
- La signature obtenue est jointe au document.
Lorsqu’un destinataire reçoit le document :
- Il déchiffre la signature avec la clé publique du signataire.
- Il recalcule le hachage du document.
- Il compare les deux hachages :
- S’ils sont identiques, la signature est valide.
- Sinon, le document a été modifié ou la signature est invalide.
Comment fonctionne la signature numérique ?
Une signature numérique repose sur la cryptographie asymétrique, qui utilise une paire de clés :
- Une clé privée (secrète) utilisée pour signer.
- Une clé publique (diffusée à tous) utilisée pour vérifier la signature.
1. Création de la signature numérique (par l’expéditeur)
Lorsqu’une personne (par exemple, Alice) veut signer un document :
-
Calcul du hachage :
- Un hachage (empreinte unique) du document est généré à l’aide d’un algorithme de hachage (comme SHA-256).
- Ce hachage est une suite de caractères unique qui représente le contenu du document.
- Exemple :
Hachage du document → 3a5f2b1c9d...
-
Chiffrement du hachage avec la clé privée :
- Alice chiffre ce hachage avec sa clé privée.
- Ce chiffrement produit la signature numérique.
- Exemple :
Signature numérique = Chiffrement(3a5f2b1c9d..., Clé privée d'Alice)
-
Ajout de la signature au document :
- La signature numérique est jointe au document.
- Alice envoie le document + la signature au destinataire (exemple : Bob).
2. Vérification de la signature (par le destinataire)
Lorsqu’une personne (Bob) reçoit le document signé, elle veut s’assurer que :
- Le document vient bien d’Alice.
- Le document n’a pas été modifié.
Voici comment Bob vérifie la signature :
-
Déchiffrement de la signature avec la clé publique :
- Bob utilise la clé publique d’Alice pour déchiffrer la signature.
- Cela lui permet d’obtenir le hachage original que Alice avait signé.
- Exemple :
Hachage déchiffré = Déchiffrement(Signature numérique, Clé publique d'Alice)
-
Recalcul du hachage du document :
- Bob applique le même algorithme de hachage sur le document reçu.
- Il obtient ainsi un nouveau hachage.
- Exemple :
Hachage recalculé du document → 3a5f2b1c9d...
-
Comparaison des deux hachages :
- Si le hachage déchiffré (provenant de la signature) est identique au hachage recalculé, alors :
✔️ La signature est valide → Le document est authentique et n’a pas été modifié. - Si les deux hachages sont différents, alors :
- Si le hachage déchiffré (provenant de la signature) est identique au hachage recalculé, alors :