TP GnuPG Vous souhaitez communiquer en envoyant des fichiers confidentiels avec l'utilisateur fpadm de la machine virtuelle devil-linux. On se propose d'utiliser l'outil GnuPG : gpg Pour vous aider: man gpg ou gpg help Redirection dans un fichier : gpg output file... ou gpg... > file I Préparation Poste de travail Linux: - Compte utilisateur normal 1) - Lancer la machine virtuelle Devil-Crypto. Echanges sécurisées Vérifier la date et l'heure de la machine virtuelle (la mettre à l'heure si nécessaire). Repérer l'adresse IP de la machine virtuelle. Ces informations ou modifications s'obtiennent par l'intermédiaire du compte root (password : tototo) Vérifier la date et l'heure de la machine virtuelle (la mettre à l'heure si nécessaire). Repérer l'adresse IP de la machine virtuelle. # date 121814002007 (mois,jour,heure,minute,année) # ifconfig eth0 2) - Sur le serveur devil-linux avec le compte fpadm a) - Générer les clés pour fpadm et afficher son trousseau de clés fpadm@vm-devil:~ $ gpg --gen-key (choisir Elgamal pour chiffrer et signer) fpadm@vm devil:~ $ gpg list key /home/fpadm/.gnupg/pubring.gpg ------------------------------ pub 1024D/3750650A 2008-12-08 sub 2048g/70DCA217 2008-12-08 Machine virtuelle devil: - Compte utilisateur: fpadm - mot de passe: azerty et aussi - Compte administrateur : root - mot de passe: tototo
fpadm@vm-devil:~ $ gpg --list-secret-keys /home/fpadm/.gnupg/secring.gpg ------------------------------ sec 1024D/3750650A 2008-12-08 ssb 2048g/70DCA217 2008-12-08 b) - Exporter les clés publique et privée dans un fichier différent (PubKey.gpg et PrivKey.gpg) # gpg output fpadmpubkey.gpg armor export "fpadm" # gpg output fpadmprivkey.gpg armor export secret keys "fpadm" c) Transférer la clé publique de fpadm dans votre compte utilisateur # scp fpadm_pubkey.gpg fbongat@172.16.233.1: fbongat@vivaldi ~ $ gpg fingerprint fpadm pub 1024D/3750650A 2008 12 08 Empreinte de la clé = ED7C 7C69 420D F94F A3BE 7465 7C02 72DE 3750 650A sub 2048g/70DCA217 2008 12 08 2) - Sur le poste de travail avec votre compte utilisateur a) - Générer une paire de clés sous votre compte et afficher son trousseau de clés # gpg gen key Sélectionnez le type de clé désiré: (1) DSA et Elgamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule) Votre choix? 1... fbongat@vivaldi ~ $ gpg list key /home/fbongat/.gnupg/pubring.gpg pub 1024D/AA2C271F 2008 12 08 Frederic Bongat <fbongat@lmd.ens.fr> sub 2048g/B750CBD0 2008 12 08 fbongat@vivaldi ~ $ gpg list secret key /home/fbongat/.gnupg/secring.gpg sec 1024D/AA2C271F 2008 12 08 Frederic Bongat <fbongat@lmd.ens.fr> ssb 2048g/B750CBD0 2008 12 08
b) - Importer la clé publique de fpadm dans votre trousseau de clés fbongat@vivaldi ~ $ gpg import PubKey.gpg gpg: clé 3750650A: clé publique importée gpg: Quantité totale traitée: 1 gpg: importée: 1 fbongat@vivaldi ~ $ gpg list key /home/fbongat/.gnupg/pubring.gpg pub 1024D/AA2C271F 2008 12 08 Frederic Bongat <fbongat@lmd.ens.fr> sub 2048g/B750CBD0 2008 12 08 pub 1024D/3750650A 2008 12 08 sub 2048g/70DCA217 2008 12 08 II - Chiffrement d'un texte Vous allez créer un fichier texte que vous souhaitez chiffrer puis l'envoyez à fpadm qui sera chargé de le lire en clair. 1) - Créer un fichier texte et écrire un message dedans. fbongat@vivaldi ~ $ vi message.txt Bonjour, Ceci est un message à faire parvenir!! Fred 2) - Chiffrer le message pour fpadm fbongat@vivaldi ~ $ gpg recipient "fpadm" encrypt message.txt gpg: 70DCA217: Rien ne dit que la clé appartient vraiment à l'utilisateur nommé. pub 2048g/70DCA217 2008 12 08 Empreinte de la clé principale: ED7C 7C69 420D F94F A3BE 7465 7C02 72DE 3750 650A Empreinte de la sous clé: 57EC E9E4 BFF7 DCC3 5CAF 8BCC 352B C864 70DC A217 Il n'est PAS certain que la clé appartient à la personne nomée dans le nom d'utilisateur. Si vous savez *vraiment* ce que vous faites, vous pouvez répondre oui à la prochaine question. Utiliser cette clé quand même? (o/n) o fbongat@vivaldi ~ $ ll message.txt* rw r r 1 fbongat lmd ipsl 57 2008 12 08 21:17 message.txt rw r r 1 fbongat lmd ipsl 653 2008 12 08 21:18 message.txt.gpg
Le fichier chiffé se nomme : message.txt.gpg 3) - supprimer le fichier original et ne conserver que le fichier chiffré # rm message.txt 4) - Transférer le fichier texte chiffré à fpadm # scp message.txt.gpg fpadm@devil: 5) - Sur le serveur devil, avec le compte fpadm déchiffrer le fichier transféré fpadm@vm devil:~ $ gpg output message.txt decrypt message.txt.gpg You need a passphrase to unlock the secret key for user: "" 2048 bit ELG E key, ID 70DCA217, created 2008 12 08 (main key ID 3750650A) gpg: encrypted with 2048 bit ELG E key, ID 70DCA217, created 2008 12 08 "" Le fichier est maintenant déchiffré. fpadm@vm devil:~ $ ll total 6.0K rw r r 1 fpadm user 1.9K Dec 8 15:07 PrivKey.gpg rw r r 1 fpadm user 1.7K Dec 8 15:07 PubKey.gpg rw r r 1 fpadm user 57 Dec 8 20:24 message.txt rw r r 1 fpadm user 653 Dec 8 20:23 message.txt.gpg fpadm@vm devil:~ $ cat message.txt Bonjour, Ceci est un message à faire parvenir!! Fred III Signature d'un message 1) - De votre compte, On se propose de créer un message et de l'envoyer à fpadm. Ce message doit être signé, puis vérifier par fpadm pour valider a) - Créer votre message # vi message_a_signer.txt b) - Signez-le fbongat@vivaldi ~ $ gpg default key "Frederic Bongat <fbongat@lmd.ens.fr>" armor detach sign message_a_signer.txt Vous avez besoin d'une phrase de passe pour déverrouiller la clé secrète pour l'utilisateur: «Frederic Bongat <fbongat@lmd.ens.fr>» clé de 1024 bits DSA, ID AA2C271F, créée le 2008 12 08
fbongat@vivaldi ~ $ ll message_a_signer* rw r r 1 fbongat lmd ipsl 57 2008 12 08 21:17 message_a_signer.txt rw r r 1 fbongat lmd ipsl 19 2008 12 08 21:47 message_a_signer.txt.asc Export de la clé publique pour fpadm: fbongat@vivaldi ~ $ gpg output fbongat_pubkey.gpg armor export "Frederic Bongat <fbongat@lmd.ens.fr>" c) - Transférer les informations à fpadm # scp fbongat_pubkey.gpg fpadm@devil: # scp message_a_signer.txt* fpadm@devil: 2) - Sur le serveur devil, avec le compte fpadm: a) - vérifier la validité de la signature du fichier transféré fpadm@vm devil:~ $ gpg import fbongat_pubkey.gpg gpg: key AA2C271F: public key "Frederic Bongat <fbongat@lmd.ens.fr>" imported gpg: Total number processed: 1 gpg: imported: 1 # fpadm@vm devil:~ $ gpg verify message_a_signer.txt.asc message_a_signer.txt gpg: Signature made Mon Dec 8 21:47:19 2008 CET using DSA key ID AA2C271F gpg: Good signature from "Frederic Bongat <fbongat@lmd.ens.fr>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E17B 704D 0B49 4DA9 8465 FC68 A975 CDE4 AA2C 271F IV Signature et chiffrement Vous vous proposez d'envoyer à fpadm un message (fichier) chiffré et signé. 1) - Etablir la procédure de chiffrement et de signature sur le document. # vi doc_chiff_sign.txt On chiffre: fbongat@vivaldi ~ $ gpg recipient "fpadm" encrypt doc_chiff_sign.txt gpg: vérifier la base de confiance gpg: aucune clé de confiance ultime n'a été trouvée gpg: 70DCA217: Rien ne dit que la clé appartient vraiment à l'utilisateur nommé. pub 2048g/70DCA217 2008 12 08 Empreinte de la clé principale: ED7C 7C69 420D F94F A3BE 7465 7C02 72DE 3750 650A Empreinte de la sous clé: 57EC E9E4 BFF7 DCC3 5CAF 8BCC 352B C864
70DC A217 Il n'est PAS certain que la clé appartient à la personne nomée dans le nom d'utilisateur. Si vous savez *vraiment* ce que vous faites, vous pouvez répondre oui à la prochaine question. Utiliser cette clé quand même? (o/n) o fbongat@vivaldi ~ $ ll doc* rw r r 1 fbongat lmd ipsl 653 2008 12 08 22:03 doc_chiff_sign.txt rw r r 1 fbongat lmd ipsl 267 2008 12 08 22:03 doc_chiff_sign.txt.gpg On signe: fbongat@vivaldi ~ $ gpg default key "Frederic Bongat <fbongat@lmd.ens.fr>" armor detach sign doc_chiff_sign.txt.gpg Vous avez besoin d'une phrase de passe pour déverrouiller la clé secrète pour l'utilisateur: «Frederic Bongat <fbongat@lmd.ens.fr>» clé de 1024 bits DSA, ID AA2C271F, créée le 2008 12 08 fbongat@vivaldi ~ $ ll doc* rw r r fbongat lmd ipsl 653 2008 12 08 22:03 doc_chiff_sign.txt rw r r fbongat lmd ipsl 267 2008 12 08 22:19 doc_chiff_sign.txt.gpg rw r r fbongat lmd ipsl 197 2008 12 08 22:20 doc_chiff_sign.txt.gpg.asc 2) - Transférez ce document à fpadm, puis vérififiez la signature et déchiffrez le. fbongat@vivaldi ~ $ scp doc*gpg* fpadm@192.168.190.129: fpadm@192.168.190.129's password: doc_chiff_sign.txt.gpg 100% 1267 1.2KB/s 00:00 doc_chiff_sign.txt.gpg.asc 100% 197 0.2KB/s 00:00 Vérification du message signé: fpadm@vm devil:~ $ gpg verify doc_chiff_sign.txt.gpg.asc doc_chiff_sign.txt.gpg gpg: Signature made Mon Dec 8 22:20:17 2008 CET using DSA key ID AA2C271F gpg: Good signature from "Frederic Bongat <fbongat@lmd.ens.fr>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E17B 704D 0B49 4DA9 8465 FC68 A975 CDE4 AA2C 271F Déchiffrement: fpadm@vm devil:~ $ gpg output doc_dechiff_verifsign.txt decrypt doc_chiff_sign.txt.gpg You need a passphrase to unlock the secret key for user: "" 2048 bit ELG E key, ID 70DCA217, created 2008 12 08 (main key ID 3750650A) gpg: encrypted with 2048 bit ELG E key, ID 70DCA217, created 2008 12 08 "" On vérifie si l'on a bien le document original: fpadm@vm devil:~ $ cat doc_dechiff_verifsign.txt