OpenPGP et GnuPG
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Découvrir le standard OpenPGP ;
Savoir utiliser GnuPG.
Mise en situation
Il existe de nombreux algorithmes de chiffrement avec pour chacun des utilisations ciblées : échange d'informations et signatures typiquement. Pour faciliter les communications, il est nécessaire d'utiliser des standards assurant un bon niveau de sécurité, c'est à dire qui garantissent que le décryptage est difficile.
Parmi les nombreux standards existants pour les protocoles cryptographiques, l'un est devenu très répandu : OpenPGP.
Le logiciel GnuPG ou GPG (pour GNU Privacy Guard) est une implémentation libre du standard OpenPGP. Ce logiciel réputé très robuste est largement utilisé sur tous les systèmes d'exploitation actuels.
Fondamental : OpenPGP
OpenPGP est un format de cryptographie permettant de standardiser messages, chiffrement et signatures. Ce système cryptographique est dit « hybride »
car il a recours à la fois à de la cryptographie symétrique et à de la cryptographie asymétrique.
À la manière des chiffrements uniquement asymétriques, l'OpenPGP demande l'utilisation d'une clé publique et d'une clé privée (qui sera protégée par une phrase de passe). Ainsi, le fonctionnement extérieur de l'OpenPGP ressemblera de très près aux protocoles asymétriques bien qu'il y ait des recours à de la cryptographie symétrique.
Complément : Origine du standard
Le nom de ce standard vient du logiciel PGP (Pretty Good Privacy) qui était l'outil historique d'échange sécurisé de données. Il a été développé au début des années 90 par P. Zimmermann. Aujourd'hui la société a été rachetée et de plus en plus de monde se tourne vers l'alternative libre Gnu Privacy Guard (aussi nommé GnuPG ou GPG).
Utilisations classiques d'OpenPGP
Il y a trois utilisations très répandues d'OpenPGP :
Envoi sécurisé de documents ou de messages : il permet de chiffrer des messages ou des fichiers quelconques.
Signature : il peut produire des signatures permettant de vérifier l'identité de l'expéditeur. La signature est vérifiée par le destinataire grâce à la clé publique.
Vérification de documents : il permet de vérifier que le document qui vient d'être téléchargé était bien celui prévu. Cette pratique est répandue pour le téléchargement de logiciels afin de s'assurer qu'un attaquant n'a pas altéré ou modifié le fichier prévu initialement.
Méthode : Générer ses propres clés GPG
Pour générer une paire de clés avec GnuPG, il suffit de lancer la commande ci-dessous. Après avoir entré cette commande, le nom et l'adresse e-mail de la personne sont demandés. Il est également conseillé de choisir un mot de passe très sécurisé.
gpg --generate-key
Vous allez être redirigé sur un utilitaire qui va vous permettre de créer la paire de clef. Il faut saisir prénom nom et une adresse e-mail. Une phrase de passe pour la clé privée sera aussi demandée. Vous obtiendrez une sortie similaire à cela :
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 44E6F43C654279CF marked as ultimately trusted
gpg: directory '/home/john/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as
'/home/john/.gnupg/openpgp-revocs.d/DA27A19AE74135DEB4BF30B144E6F43C654279CF.rev'
public and secret key created and signed.
pub rsa4096 2020-04-28 [SC] [expires: 2020-04-29]
DA27A19AE74135DEB4BF30B144E6F43C654279CF
uid John Smith <john@smith.xyz>
sub rsa4096 2020-04-28 [E] [expires: 2020-04-29]
La paire de clé publique et privée ainsi qu'un certificat de révocation ont ici été générés.
Exemple : Exemple de clé publique
Chaque clé publique a un identifiant (une version raccourcie de la clé) qui permettra de simplement rechercher des clés sur des serveurs de clés. Dans l'exemple précédent, il s'agit de :
DA27A19AE74135DEB4BF30B144E6F43C654279CF
![](../res/pgp.png)
Méthode : Chiffrer et déchiffrer
Pour chiffrer et déchiffrer un message, il est nécessaire d'utiliser les commandes ci-dessous. Il est possible tester ces commandes dans la console d'un repl Bash. Pour chiffrer, on spécifie l'adresse mail de la clef publique du destinataire (recipient
) du message message.txt
.
gpg --output msg.txt.gpg --encrypt --recipient paul@blabla.bla message.txt
Pour déchiffrer, on utilise :
gpg --output message.txt --decrypt msg.txt.gpg
Ici, la clé par défaut de l'utilisateur sera utilisée pour déchiffrer.
Complément : Révoquer sa clé
Il peut arriver qu'une clé privée fuite. Ainsi, la sécurité et l'identité du propriétaire peuvent être atteintes. Un attaquant pourra utiliser la clé pour déchiffrer les documents ou même pour usurper l'identité en signant des mails trompeurs grâce à cette clé privée.
Pour éviter cela, le propriétaire de la clé pourra générer, grâce à sa clé privée, un certificat de révocation qu'il transmettra à ses contacts. Ce certificat est une sorte de preuve cryptographique que la clé n'est plus d'actualité. Ainsi, un attaquant ne pourra plus se servir de la clé privée.
Dans l'exemple de génération donné plus haut, le certificat de révocation a été créé et enregistré dans le fichier :
'/home/john/.gnupg/openpgp-revocs.d/DA27A19AE74135DEB4BF30B144E6F43C654279CF.rev'
À retenir
OpenPGP permet de sécuriser et certifier ses communications.
GnuPG est un outil très simple permettant de générer, gérer et utiliser des clés OpenPGP.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.