massimo musumeci Créer paire clés cryptographiques signer document

Créer une paire de clés cryptographiques pour signer un document

La cryptographie moderne nous permet d’avoir des avantages considérables et peut être appliquée à plusieurs domaines très intéressants. Il devient de plus en plus important, en fait, de numériser de nombreuses opérations, y compris les opérations bureaucratiques.

Pour beaucoup de ces objectifs, la cryptographie asymétrique (ou à clé publique) est utilisée. Ce type de cryptographie, comme nous l’avons déjà vu dans d’autres articles, nous permet de générer deux clés qui sont liées l’une à l’autre par une relation mathématique. L’une s’appelle clé privée, l’autre clé publique. Grâce à ce système, nous pouvons envoyer un document crypté à quelqu’un en échangeant la clé publique et cela résout le problème de l’échange du secret cryptographique que l’on rencontre avec la cryptographie à clé symétrique (par exemple AES). Voir par exemple DH (Diffie-Hellmann key exchange).

Notre clé privée nous permet également de signer un document de manière à ce que chacun puisse vérifier que ce document a bien été signé par nous, grâce à la clé publique correspondante. Pour ce faire, nous devons donc :

  • créer une paire de clés (par exemple RSA), par exemple RSA 3072 bits;
  • télécharger notre clé publique sur un serveur à clé publique, par exemple : https://keys.openpgp.org ;
  • publier l’empreinte digitale de notre clé sur notre profil officiel, sur un document d’identification ou toute autre source officielle afin que chacun puisse vérifier que cette clé publique nous appartient bien;

Vérifier la présence d’une clé publique

Si je cherche ma clé publique sur le serveur de clés openpgp, depuis le web, je vois immédiatement que ma clé publique officielle est présente, comme vous pouvez le voir dans l’image ci-dessous. La recherche peut être effectuée à partir de la dernière partie de l’empreinte digitale. Dans mon cas : 917B BC89 F010 13EC . Il doit être publié sur tous les profils publics les plus importants afin que votre interlocuteur puisse être sûr qu’il vous appartient réellement.

 

massimo_musumeci_openpgp

Ma fingerprint (de ma clé) est publié sur mon linkedin par example, comme on peut voir ici:

 

massimo_musumeci_openpgp_linkedin

Créer une paire de clés

Le processus de création de la paire de clés semble compliqué, mais il est en fait assez simple et peut être effectué par n’importe qui avec un ordinateur normal. Voyons comment faire cette procédure. Sous Linux, nous utilisons la suite de cryptage GPG (gnuPG). Nous générons d’abord la paire de clés. Et donc nous avons

 

key_generation

puis nous vérifions l’insertion et détectons l’empreinte digitale de la clé. Nous le publierons plus tard. Pour ce faire, nous allons dans la liste des clés de notre porte-clés local. Et nous obtenons alors ce qui suit (cela c’est juste une clé de test)

fingerprint

nous téléchargeons maintenant la clé sur le serveur de clés

keyserver_upload

la clé publique est maintenant disponible sur le serveur de clés et peut être téléchargée par n’importe qui directement à partir du serveur, simplement en connaissant l’empreinte digitale.

La signature et la vérification de la signature

La signature d’un document peut maintenant se faire de manière très simple en utilisant la clé privée qui se trouve dans notre porte-clés (keyring) local. Utilisons la commande suivante pour signer un document d’exemple “examplefile.txt” avec la clé privée qui vient d’être créée

gpg --detach-sig --armor -u AD5270C4D204FABEF1E8ACDE57F1E808020B9B5A --sign examplefile.txt

Si aucun résultat n’est fourni, cela signifie que la signature a été réussie. Et en fait nous trouverons un fichier examplefile.txt.asc contenant la signature effectuée. Maintenant je peux verifier ainsi la signature:

massmux@augustus:~$ gpg --verify examplefile.txt.asc  
gpg: assuming signed data in 'examplefile.txt'
gpg: Signature made Fri 01 Jan 2021 11:30:53 AM CET
gpg:                using RSA key AD5270C4D204FABEF1E8ACDE57F1E808020B9B5A
gpg: Good signature from "Massimo Musumeci <[email protected]>" [ultimate]

 

et donc on voit que ça marche. Nous avons donc vu que nous pouvons très facilement créer notre clé d’identité numérique avec des outils “open source”, publier la partie publique et apposer des signatures sur tout document que tout le monde peut vérifier de manière indépendante. La publication de l’empreinte de notre clé sur un document officiel nous permet de relier cette empreinte à la clé publique qui nous appartient réellement.

Partager

Massimo Musumeci

Massimo Musumeci est physicien depuis 1997. Chercheur Bitcoin dans le domaine de la sécurité et confidentialité chez Denali Sàrl La Chaux-de-Fonds, Suisse.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *