Le coin du cryptologue : 4 – La signature numérique

La cryptologie expliquée à mon voisin qui n'y connait rien mais qui voudrait savoir... Comme dans toutes mes rubriques "Le coin du cryptologue", un conseil pratique se trouve à la fin.

 
Vous trouverez les articles précédents sur le sujet :
  1. Le calcul d’empreinte dans la lettre mensuelle de Forum ATENA du mois d’avril 2016
  2. Chiffrer, déchiffrer, décrypter dans celle du mois de mai
  3. Le chiffrement à clé publique dans celle du mois de juin

Calcul d’empreinte et chiffrement à clé publique

Quand un document papier est signé, il est établi que celui qui l’a signé l’a au moins lu, et que le document n’a pas été modifié, après sa signature.
 
La signature numérique, dite encore signature électronique, d’un document a pour fonction de garantir l’intégrité de ce document (il n’a pas été altéré depuis sa signature) et d’authentifier son signataire. Un document signé peut être en clair, mais il peut être aussi chiffré, ce qui garantit en plus sa confidentialité. Signature numérique et chiffrement d’un document sont deux fonctions indépendantes.
 
Pour comprendre le mécanisme de la signature numérique, il est indispensable de comprendre ce qu’est le calcul d’empreinte et le chiffrement à clé publique, dit encore chiffrement asymétrique. Le chiffrement éventuel du fichier ne fait pas partie de cet article, il sera expliqué dans la prochaine lettre mensuelle de Forum ATENA.
 
En quelques mots, le calcul d’empreinte fait correspondre à un document, quelle que soit sa longueur, une chaine de caractères de longueur fixe. Cette chaine de caractères s’appelle l’empreinte ou, en bon français le condensat ou encore, en anglais, le hash. Elle caractérise ce document. 
 
Le chiffrement à clé publique utilise deux clés, une clé privée et une clé publique. Ces deux clés sont mathématiquement liées de telle sorte que quand on chiffre avec l’une, on déchiffre avec l’autre. L’utilisateur garde sa clé privée et diffuse sa clé publique dans un certificat signé par une autorité de confiance. Connaissant une clé publique, il est très difficile de retrouver la clé privée correspondante.

Le mécanisme de la signature numérique pour garantir authenticité et intégrité

L’utilisateur qui désire prouver qu’il est l’auteur d’un document et que ce document n’a pas été modifié le signe, par les actions suivantes :
  1. Il calcule l’empreinte de son document par une fonction de hachage, telle le SHA128 ou le SHA256.
  2. Il chiffre cette empreinte avec sa clé privée, que lui seul possède, par un algorithme de chiffrement à clé publique tel que le RSA ou les courbes elliptiques.
  3. Il joint cette empreinte chiffrée à son document. Le document est alors scellé.
Ceci établit l’authenticité du signataire, et en même temps l’intégrité du document. 
Celui qui lit le document vérifie qui l’a signé. Il peut vérifier aussi, dans le certificat contenant la clé publique du signataire, qui est l’autorité de confiance qui a signé le certificat. Toute la confiance en cette signature numérique repose sur la confiance qu’il a en cette autorité. S’il fait confiance en cette autorité, si le certificat se trouve bien dans les dates de validité qu’il contient, et si le certificat n’a pas été révoqué, il sait que la clé publique qu’il extrait du certificat correspond bien à la clé privée, mathématiquement liée à la clé publique du signataire dont l’identité se trouve aussi inscrite dans le certificat. 
 
Il déchiffre l’empreinte de ce document à l’aide de la clé publique du signataire, par le même algorithme de chiffrement asymétrique que le signataire (qui a utilisé sa clé privée pour chiffrer l’empreinte). Cet algorithme est indiqué dans le certificat. Il obtient une empreinte déchiffrée. Il calcule ensuite l’empreinte du document, avec la même fonction de hachage que le signataire, cette fonction étant aussi indiquée dans le certificat. Il obtient l’empreinte recalculée
 
Bien entendu ce n’est pas l’utilisateur qui effectue le déchiffrement de l’empreinte liée au document et qui recalcule l’empreinte du document mais l’application de signature numérique qu’il utilise. Cette application peut être la messagerie ou encore le navigateur web dans le cas d’une connexion sécurisée par SSL.
 
Si l’empreinte recalculée est la même que l’empreinte déchiffrée, seul le signataire dont les coordonnées sont inscrites dans le certificat d’où sa clé publique a été extraite, et attesté par l’autorité de confiance qui a signé le certificat, a pu avoir chiffré l’empreinte du document. Car seul le signataire possède sa clé privée. Ceci atteste de l’authenticité du signataire, garantie par l’autorité de confiance.
L’intégrité du document est aussi établie, car si le document avait été modifié depuis sa signature, l’empreinte recalculée n’aurait pas été la même que l’empreinte déchiffrée.
 
Ainsi sont établies l’authenticité de l’auteur et l’intégrité de son document, depuis sa signature. L’autorité de confiance a signé le certificat numérique par le même mécanisme que nous avons décrit plus haut, en utilisant donc aussi sa clé privée. L’empreinte du certificat, calculée et chiffrée par l’autorité de confiance, incluse dans le certificat, atteste de l’intégrité de ce certificat. 
 
 
 

L’autorité de signature du certificat, pour établir la confiance

Tous les certificats numériques n’ont pas la même valeur, suivant comment ils ont été obtenus, et par quelle autorité ils ont été signés. Il est parfois exigé que l’autorité de confiance qui a signé le certificat réside dans le même pays que celui qui vérifie la signature du document. 
 
La signature numérique d’un document est indépendante du calculateur utilisé pour produire ou envoyer le document. Un navigateur web possède une liste d’autorités de confiance. Si le certificat d’un site web sécurisé (en https://) a été signé par une autorité de confiance connue par le navigateur, celui-ci ouvrira le site sans vous poser de questions. Dans le cas contraire il vous avertit qu’il ne connait pas l’autorité qui a signé le certificat et vous demande de la valider. Si vous acceptez, cette autorité est ajoutée à celles déjà connues par votre navigateur. Si le certificat d’un site web sécurisé est au-delà de sa date limite de validité, votre navigateur vous le signale. 

Le conseil crypto du mois :

Comment sait-on qu’un message, par exemple, reçu par messagerie, est signé ?
 
Tout dépend bien sûr du client de messagerie utilisé.
 
Dans la copie d’écran ci-dessous, un sceaux indique que j’ai signé ce message, que je me suis envoyé. J’ai signé ici le message avec le client de messagerie Thunderbird et le module complémentaire Enigmail. 
 
Avant d’exploiter la signature du message, il a fallu que le signataire du message, vous ait fait parvenir son certificat, pour que votre messagerie puisse déclencher les mécanismes de signature numérique décrits plus haut. Dans ce message signé, figure en attachement, un fichier « .asc ». Double cliquer sur ce fichier permet à Thunderbird d’importer le certificat contenant la clé publique de celui qui a signé le message. 
 
Pour signer un message et l’envoyer, par Thunderbird avec le module complémentaire Enigmail, rien de plus simple. Dans votre client de messagerie, il y a une icône représentant un crayon. Cliquez dessus et vous avez signé votre message. 
 
Il y a à côté du crayon une autre icône représentant un cadenas. Cliquez dessus et vous avez chiffré votre message. Tous les mécanismes de signature et de chiffrement sont pour vous transparents.
 
Dans la lettre du mois d’octobre, j’aborderai le chiffrement des fichiers et des messages, avec le chiffrement symétrique (type AES) et l’échange des clés.
 
C’est tout pour ce mois-ci.
 

< Revenir à la newsletter

 

Auteur: 
Gérard Peliks Association des Réservistes du Chiffre et de la Sécurité de l’Information (ARCSI)

Ajouter un commentaire

Full HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Vous pouvez utiliser du code PHP. Vous devrez inclure les tags <?php ?>.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.