TP 3
TP 3
TP 3
WEB et SÉCURITÉ
TP 3 Utilisation de GnuPG
Le logiciel GnuPG (GNU Privacy Guard) est une implantation Open Source de OpenPGP 1
(RFC 4880). C’est un logiciel libre de cryptographie qui permet de signer ou de chiffrer un
document. Une documentation en français est disponible sur http://www.gnupg.org/gph/
fr/manual.html.
Travail demandé À la fin de la séance, envoyez individuellement par email votre brouillon
de TP à votre chargé de TP, signé et chiffré par gpg, à [email protected]
avec comme sujet du mail
M2GIL TP GPG Nom
Le rapport rédigé est à déposer sur Universitice.
Exercice 1 (Création d’une clef ) On souhaite générer une clef gpg. On utilise pour cela
la commande
$ gpg2 --expert --full-gen-key
Choisissez “ECC and ECC” pour avoir une clef de signature et une clef de chiffrement
basées sur des courbes elliptiques. Le logiciel vous propose plusieurs courbes elliptiques : par
1. Une autre implantation très connue utilisant le même format OpenPGP est PGP (Pretty Good Privacy)
développé par Philip Zimmermann depuis 1991.
exemple, la courbe nistp384 comporte environ 2384 points et une sécurité en 2192 (pour-
quoi ?), la courbe cv25519 comporte 2255 − 19 points (et quelle sécurité ?). Quelle courbe
choisissez vous et pourquoi ?
A quoi servent les données qui vous sont demandées ? Pourquoi est-ce que le processus de
génération des clefs est lent ? Lisez les informations affichées par gpg2 lors de la génération
de votre clef et expliquez-les (en particulier, ”USER-ID”, ”random bytes”, ”revocation cer-
tificate”, ”passphrase”).
Vos bi-clefs ont été créées puis stockées dans le fichier pubring.gpg du répertoire ~/.gnupg
(et sous windows ?). Pour visualiser vos clefs, il suffit d’appeler la commande gpg2 --list-keys
pour les clefs publiques, et gpg2 --list-secret-keys pour les clefs privées.
Exercice 2 (Édition d’une clef ) Éditez votre clef avec la commande
$ gpg2 --edit-key [info-cle]
où [info-cle] est un identificateur permettant de distinguer votre clef sans ambiguı̈té,
comme keyID, ou l’une des trois parties du userID (adresse email, nom, commentaire).
Exécutez la commande showpref. Que signifient les données affichées ? Exécutez ensuite
la commande check. Que pouvez-vous en déduire sur la forme de diffusion des clefs ? Pensez
à quitter le mode edit avec la commande save !
Exercice 6 (Distribution des clefs) Pour extraire votre clef publique dans un fichier
macle.asc, on utilise l’option
$ gpg2 --output macle.asc --armor --export [info-cle]
L’option armor permet d’obtenir un codage ASCII et non binaire (par défaut).
Déposez votre clef publique dans la base de données Universitice. Importez les clefs
de vos interlocuteurs. Regardez la liste des clefs que vous avez obtenues. La commande
gpg2 --check-sigs permet d’afficher toutes les signatures de toutes les clefs du trousseau.
Commentez le message signatures not checked due to missing keys.
Exercice 7 (Toile de confiance) Il est peu commode d’avoir à valider à la main toutes
les clefs, et il est raisonnable de déléguer à d’autres personnes de confiance cette vérification.
L’objectif est pour vous d’obtenir un maximum de clefs valides (sur toute la promotion),
sans toutefois les signer toutes. Signez certaines clefs après avoir vérifié leur authenticité,
puis réexportez ces clefs avec vos signatures et demandez aux propriétaires des clefs que vous
avez signées de mettre à jour leur clef avec votre signature sur universitice. Le plus simple
pour eux est sans doute de réimporter leur clef avec votre signature dans leur trousseau, la
nouvelle signature est alors ajoutée aux anciennes, puis de réexporter toute la clef publique
avec l’ensemble des signatures.
Rappel. Pour garantir la validité des clefs de votre trousseau, GnuPG utilise un modèle
non hiérarchique de Toile de confiance. GPG gère pour cela deux types de confiance/validité
d’une clef publique :
— la validité de la clef (c’est-à-dire le fait que la clef publique correspond bien à l’identité
annoncée dans la clef),
3 GPG et messagerie
Exercice 8 (Messagerie) Échangez des documents chiffrés, signés, chiffrés et signés avec
vos camarades par email (cf détails ci-dessous). Pouvez-vous déchiffrer les documents que
vous envoyez ? Ceux que vous recevez ? De qui proviennent-ils ?
Vous pouvez utiliser des outils automatisés comme l’extension enigmail dans la messa-
gerie Thunderbird.
Pour chiffrer un document “à la main”, on utilise l’option --encrypt et l’option --recipient
suivie de l’identificateur de la clef publique du ou des destinataire(s). Le dernier argument
est le nom du document à chiffrer :
$ gpg2 --encrypt --armor --recipient [info-cle] doc_clair
Vous devez avoir maintenant un document doc clair.asc qui est la version chiffrée de
votre document. Pour déchiffrer un document, utilisez l’option --decrypt, ou directement
gpg2 doc chiffre.
La commande --sign de gpg2 permet de signer un document :
Attention, cette commande effectue aussi une compression du document doc_signe. Pour
un document signé donné, vous pouvez en vérifier la signature avec la commande --verify
ou vérifier la signature et récupérer le document original :
$ gpg2 --output doc --decrypt doc_signe
Vous pouvez signer et chiffrer un document par la commande abrégée
$ gpg2 -esa --recipient [info-clef] doc-clair
Finalement, lorsque vous envoyez un message signé et chiffré à votre chargée de TP, avec
quel algorithme et quelle clef est chiffré le message ?