Guide d'autodéfense numérique

Mises à jour : les logiciels évoluent, c'est pourquoi il est vivement conseillé d'utiliser la version la plus à jour de cet outil, qui est disponible sur le site web https://guide.boum.org/.

Durée : de quelques minutes à une demi-heure.

Lors de l'utilisation de la cryptographie asymétrique, il est crucial de s'assurer que l'on dispose de la véritable clé publique de notre correspondant. Sinon, on s'expose à une attaque de l'homme du milieu : on authentifie ou on chiffre bien notre correspondance… pour notre adversaire.

On devra tout d'abord choisir une méthode pour s'assurer que l'on dispose de la bonne clé publique. On indiquera ensuite à OpenPGP notre confiance en cette clé.

Établir une confiance

En fonction des exigences de notre modèle de risque et de nos possibilités, on pourra choisir différentes façons pour vérifier l'authenticité d'une clé publique. Admettons qu'on doive vérifier l'authenticité de la clé publique d'Alice.

Se transmettre la clé par un canal sûr

Lorsque c'est possible, le plus simple est de se passer en main propre, à l'aide d'une clé USB par exemple, le fichier contenant la clé publique. Alice exporte alors sa clé publique vers un fichier, qu'elle stocke sur une clé USB éventuellement chiffrée qu'elle nous donne ensuite. On importera ensuite directement la clé publique d'Alice à partir de ce fichier.

Se transmettre l'empreinte par un canal sûr

L'un des inconvénients de la méthode précédente est qu'elle nécessite de se passer un fichier informatique par un moyen sûr. Cela n'est pas toujours possible. Heureusement, ce n'est en fait pas nécessaire : il suffit d'obtenir, par un moyen sûr, une somme de contrôle de la clé publique, qu'on appelle « empreinte » (ou « fingerprint » en anglais).

Alice peut ainsi publier sa clé publique sur Internet, par exemple sur son blog ou sur un serveur de clés. De notre côté, nous téléchargeons cette clé de façon non authentifiée, puis on vérifie que l'empreinte de la clé correspond à celle qu'Alice nous a fait parvenir de façon authentifiée. Pour voir l'empreinte de la clé d'Alice obtenue depuis Internet, il faudra l'importer dans notre trousseaux de clés, puis aller dans l'onglet Détails disponible en double-cliquant sur sa clé.

Que gagnons-nous à utiliser cette méthode ? Au lieu de devoir se faire passer un fichier, il est suffisant de se transmettre une ligne de caractères comme celle-ci :

    A490 D0F4 D311 A415 3E2B B7CA DBB8 02B2 58AC D84F

Par exemple, Alice, qui est une personne bien organisée, peut avoir en permanence sur elle un exemplaire de l'empreinte de sa clé publique écrite sur un bout de papier. Il nous suffit alors de la croiser pour qu'elle nous la passe : pas besoin d'ordinateur ni de clé USB.

Si l'on ne peut pas rencontrer Alice, elle pourra aussi nous envoyer cette empreinte par courrier postal, et on pourra l'appeler pour qu'elle nous la lise par téléphone. La vérification sera moins bonne qu'en se voyant directement, mais il reste plus difficile pour un adversaire de nous envoyer un courrier postal avec sa clé et de répondre au numéro de téléphone d'Alice en nous lisant son empreinte, tout en imitant sa voix.

Ça se complique encore si on ne connaît pas Alice. Dans ce cas, il nous faudra faire confiance à des personnes qui prétendent la connaître. Encore une fois, il n'y a pas de recette magique, mais combiner différents moyens de vérification permet de compliquer la tâche d'un éventuel adversaire souhaitant monter une « attaque de l'homme du milieu » : il nous est possible de demander à plusieurs personnes qui prétendent connaître Alice plutôt qu'à une seule ; utiliser plusieurs moyens de communication différents, etc.

Utiliser les toiles de confiance

OpenPGP intègre la notion de confiance transitive avec les toiles de confiance. Une fois la clé d'Alice téléchargée, on peut lister les identités qui ont signé sa clé : ces personnes déclarent publiquement avoir vérifié que cette clé appartient bien à Alice. Si l'on connaît une de ces personnes, ou un tiers qui a confiance en une de ces personnes, OpenPGP peut établir des chemins de confiance entre les identités auxquelles on fait confiance et d'autres avec lesquelles on souhaite communiquer.