Pourquoi et comment utiliser une signature numérique PGP

Il y a quelque temps, nous avons discuté des hachages cryptographiques (tels que les sommes de contrôle MD5 et SH1), et de la façon dont ils aident à garantir qu'un fichier que vous téléchargez est le même que celui que son créateur voulait que vous téléchargiez en créant une `` empreinte digitale '' unique du fichier qui peut être vérifié par rapport à l'original.


La capacité de vérifier l'intégrité de n'importe quel fichier est importante, mais lorsque nous téléchargeons des logiciels de confidentialité et de sécurité sur Internet, ils sont absolument essentiels. Après tout, quel est l'intérêt de faire confiance à votre vie privée et à votre sécurité à un programme qui peut contenir un virus, surtout si vous considérez que ce logiciel et ses utilisateurs sont sans aucun doute des cibles hautement prioritaires pour la NSA et ses semblables?

Même lorsque vous téléchargez un logiciel directement à partir d'un site Web d'un fournisseur ou d'un développeur, vous pouvez être victime d'une attaque Man-in-the-Middle (MitM), ou le site Web lui-même peut être compromis de diverses manières..

L'utilisation de hachages cryptographiques est une tentative pour résoudre ce problème, mais malheureusement, la technique a une faiblesse majeure - par exemple, le site Web d'un développeur peut être piraté pour afficher le hachage d'un fichier compromis plutôt que l'original, ou des vulnérabilités mathématiques peuvent les rendre non sécurisées. Les hachages sont donc utiles pour vérifier qu'un fichier n'a pas été corrompu, mais ne sont que d'une utilité limitée pour garantir que le fichier que vous téléchargez est le même fichier que ses développeurs ont l'intention de vous télécharger..

Pour fournir une plus grande assurance à ce sujet, les développeurs peuvent signer leurs fichiers avec des signatures numériques, qui utilisent une forme de cryptographie asymétrique (clés publiques et clés privées) pour vérifier qu'un fichier est exactement ce qu'il prétend être..

Un diagramme montrant comment une signature numérique est appliquée puis vérifiée.

Signatures numériques PGP

Différents systèmes cryptographiques utilisent différents mécanismes pour créer et valider des signatures numériques. Windows, par exemple, utilise la technologie de l'infrastructure à clé publique (PKI) de Microsoft pour valider automatiquement les signatures lors de la première installation du logiciel.

Les logiciels libres ne peuvent pas utiliser l'ICP Microsoft propriétaire, et utilisent donc des signatures numériques PGP à la place. Qui doit ensuite être authentifié manuellement. Celles-ci fonctionnent très bien comme les paires de clés utilisées pour authentifier les e-mails PGP, et comme nous le verrons, la vérification des signatures numériques PGP nécessite l'utilisation d'un programme de messagerie compatible PGP.

Malheureusement, cela signifie également que, comme l'utilisation de PGP pour sécuriser les e-mails, l'utilisation des signatures numériques PGP est trop complexe..

Comment vérifier une signature numérique à l'aide de l'interface graphique de Kleopatra

Pour vérifier la signature numérique PGP d'un fichier, vous devez utiliser un client PGP (ou plus précisément GnuPG - son clone open source). Des versions de GnuPG sont disponibles pour Windows (Gpg4win), Mac OSX et Linux (généralement préinstallées).

Dans ce tutoriel, nous allons vérifier la signature numérique de Pidgin + OTR en utilisant Gpg4win, mais le processus est très similaire pour les autres versions de GnuPG.

Nous avons un article en deux parties sur l'utilisation de Gpg4win, et nous vous recommandons fortement d'en lire au moins la partie 1 pour vous familiariser avec les concepts clés qui seront utilisés ci-dessous..

Le téléchargement de Gpg4win est lui-même signé numériquement avec une clé qui a été vérifiée par une autorité de certification (CA) reconnue, et qui peut être vérifiée indépendamment pour vérification en utilisant une ancienne copie de confiance de GnuPG (un hachage SHA1 est également disponible). Vous ne devez jamais faire confiance à une copie de Gpg4win que vous n'avez pas vérifiée.

Une fois GnuPG installé, nous avons besoin de trois choses pour vérifier une signature numérique:

  • Le fichier que nous voulons vérifier (duh!) Par ex. le programme d'installation de pidgin-otr-4.0.1.exe
  • Le fichier de signature PGP / GPG (.asc), par ex. pidgin-otr-4.0.1.exe.asc
  • La clé publique / le certificat PGP utilisé pour créer cette signature, par ex. gpgkey.asc

Ces fichiers devraient tous (espérons-le) être fournis par le développeur dont vous souhaitez vérifier les fichiers signés numériquement. Les certificats de clé publique / PGP sont souvent stockés sur un serveur de clés, mais les développeurs doivent fournir des instructions pour y accéder..

Kleopatra

Kleopatra est un programme de gestion de clés fourni avec Gpg4win.

1. Vous aurez besoin d'une clé privée personnelle pour certifier le certificat PGP. Si vous en avez créé un auparavant (par exemple à l'aide de GPA), vous pouvez l'importer (Fichier -> Importer des certificats…), ou vous pouvez créer une nouvelle paire de clés (Fichier -> Nouveau certificat…).

Les assistants vous guideront tout au long de ce processus

2. Importez la clé publique / le certificat PGP dans Kleopatra - en utilisant soit «Importer les certificats», soit en cliquant avec le bouton droit sur le fichier et en sélectionnant «Importer les clés».

3. Certifiez le certificat PGP à l'aide de votre clé privée - cela indique à GnuPG que vous faites confiance à la personne qui a signé le certificat.

a) Dans Kleopatra, faites un clic droit sur la clé et sélectionnez «Certifier le certificat».

b) Sélectionnez le certificat et confirmez que vous avez vérifié son empreinte digitale (espérons qu'il sera publié sur le site Web du développeur).

c) À moins que vous ne soyez très sûr de l'authenticité du certificat, vous devez certifier uniquement pour vous-même (les certificats fonctionnent sur le principe d'un réseau de confiance - plus il y a de gens qui leur font confiance, plus vous pouvez être sûr qu'ils sont authentiques).

d) Entrez votre phrase secrète de clé privée pour terminer la vérification du certificat.

4. Maintenant que vous avez certifié le certificat utilisé pour faire la signature du fichier que vous avez téléchargé (ouf!), Vous pouvez l'utiliser pour vérifier la signature.

a) Dans Kleopatra, allez dans Fichier -> Déchiffrez / vérifiez les fichiers et accédez au fichier de signature, ou faites un clic droit dessus et accédez aux options MoreGpgEX -> Vérifier.

b) Assurez-vous que «Fichier d'entrée» est le fichier de signature et que le champ «Données signées» contient le programme ou le fichier que vous souhaitez vérifier, puis cliquez sur «Décrypter / Vérifier».

c) Tout va bien, Kleopatra déclarera la signature valide.

Comment puis-je faire confiance à un certificat?

Le moyen le plus simple de vérifier la validité d'un certificat PGP est de consulter le site Internet de la personne qui est censée avoir signé le certificat ... avec un peu de chance, il publiera l'empreinte digitale du certificat.

Cependant, bien que facile, cela ne garantit pas l'authenticité de la signature, car le site Web peut avoir été piraté ou contraint par un gouvernement à afficher une fausse empreinte digitale (le même problème qui afflige les hachages cryptographiques).

C'est là qu'intervient le réseau de confiance, où les utilisateurs se portent garants d'un certificat. Dans la pratique, il s'agit d'un processus mystérieux qui est à la fois trop complexe et trop obscur pour la plupart des utilisateurs, donc le mieux que la plupart d'entre nous puissent espérer est que le certificat a été certifié par une autorité de certification reconnue ou signé par des développeurs connus. qui publient leurs clés de signature (comme le font les développeurs Tor, par exemple).

Pidgin + OTR est à certains égards un mauvais exemple du fonctionnement de la signature numérique, car la page Web OTR ne contient presque aucune instruction sur la façon d'utiliser ses clés publiées, et son certificat PGP était non seulement très difficile à localiser, mais autre que d'être disponible à partir de https://otr.cypherpunks.ca/gpgkey.asc, il n'y a pas de moyen facile de vérifier son authenticité (le fait d'utiliser une clé RSA 1024 bits est également médiocre à cette époque où la NSA peut probablement casser un cryptage aussi faible) ).

C'est, cependant, un bon exemple de la raison pour laquelle toute la notion de signatures numériques est un tel gâchis! Une discussion intéressante sur la façon dont vous pouvez essayer de vérifier le certificat OTR est disponible ici.)

Conclusion

Comme vous pouvez le voir, la vérification d'une signature numérique est vraiment une douleur, il n'est donc pas étonnant que même ceux qui comprennent le processus arcanique lourd en jargon dérangent rarement. Le problème est encore aggravé par de nombreux développeurs qui n'expliquent pas comment vérifier leurs fichiers et / ou émettent des certificats PGP bâclés qui sont très difficiles à vérifier sont authentiques (équipe OTR, nous vous regardons!)

Le fait que les signatures numériques restent le seul moyen significatif de garantir que les fichiers que vous téléchargez sont ceux que vous vouliez télécharger (ou que leurs développeurs vous voulaient télécharger), n'augure rien de bon pour la sécurité Internet..

Cependant, jusqu'à ce que quelqu'un invente un système meilleur et plus convivial, notre meilleur espoir est d'encourager les développeurs à fournir des instructions claires sur la façon d'utiliser leurs signatures numériques et à publier des garanties significatives quant à l'authenticité de leurs certificats PGP… (soupir)

"Diagramme de signature numérique" par Acdx - Travail personnel. Sous licence CC BY-SA 3.0 via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me