Univérsité Cadi Ayyad. Faculté des Sciences Semlalia. Département d’Informatiqu

Univérsité Cadi Ayyad. Faculté des Sciences Semlalia. Département d’Informatique. Sécurité Informatique. Cryptage de données avec GnuPG Présentation Les échanges d'information ne sont pas sûrs. En particulier, le courrier électronique (émail) peut être lu par des tierces personnes, et on n'est jamais sûr de la provenance réelle d'un émail. Il est possible d'utiliser des procédés cryptographiques. En particulier, il existe des méthodes à clés asymétriques, permettant soit de signer (authentifier) un texte, soit de le chiffrer (le rendre illisible au monde entier). GnuPG est une des implémentations utilisant un tel système. Il a l'énorme avantage en comparaison avec son équivalent propriétaire PGP d'être un logiciel libre et de reposer sur la norme OpenPGP. De plus, le créateur de PGP, Philip Zimmermann, a rejoint récemment le groupe OpenPGP. Cet atelier va présenter l'utilisation de GnuPG, ainsi que toute la philosophie qui tourne autour du système de chiffrement à clé publique. Partie 0 : préliminaires - Pour commencer le TP, redémarrez votre machine sous Linux et identifiez vous. Dans un terminal, vérifiez que le logiciel est bien installé avec la commande \ $ gpg --version - Installez l'extension Firefox \FireGPG" depuis http://getfiregpg.org/ pour pouvoir utiliser facilement GPG _a partir de Firefox. (_A partir du webmail par exemple...) Je vous conseille cependant d'utiliser l'interface en ligne de commandes dans un premier temps. Partie 1 : GPG et la cryptographie symétrique Vous pouvez utiliser GPG pour faire une cryptographie symétrique (si vous partagez une clé avec votre destinataire) avec la commande : $ gpg --symmetric fichier ceci créera un fichier binaire fichier.gpg contenant le fichier chiffré. gpg --symmetric --armour fichier ceci créera un _chier ASCII fichier.asc contenant le fichier chiffré, Essayez cette commande pour envoyer un message crypté a votre voisin. Décryptez le fichier chiffré avec la commande : $ gpg --decrypt fichier.asc (ou \fichier.gpg). Pr. M. A. EL KIRAM. 2005/2006 kiram@ucam.ac.ma Partie 2 : GPG et la cryptographie asymétrique Question 1 : Création de votre clé publique /clé privé. - Dans un terminal, vérifiez s'il existe un répertoire $HOME/.gnupg S'il existe, regardez les fichiers qu'il contient ainsi que leurs dates de modification. Création d'une clé Pour créer votre propre clé publique/clé privée, il faut utiliser la commande $ gpg --gen-key Création d'une clé [kiram@localhost kiram]$ gpg --gen-key ...... Sélectionnez le type de clé désiré: (1) DSA et ElGamal (par défaut) (2) DSA (signature seule) (4) RSA (signature seule) Votre choix ? 1 ….. Quelle taille de clé désirez-vous ? (1024) 1024 La clé est valide pour ? 15 Est-ce correct (o/n) ? o Vous avez besoin d'un nom d'utilisateur pour identifier votre clé; le …. Nom réel: kiram Adresse e-mail: kiram@ucam.ac.ma Commentaire: Vous avez sélectionné ce nom d'utilisateur: "kiram <kiram@ucam.ac.ma>" Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ?o Vous avez besoin d'un mot de passe pour protéger votre clé secrète. Entrez le mot de passe: Répétez le mot de passe: pub 1024D/7EBE92C8 2008-05-12 [expire le ……] Empreinte de la clé = 5755 176F 8197 2166 66A0 1CAE 1B08 A3EE 7EBE 92C8 Uid kiram (kiram ahmed) <kiram@ucam.ac.ma> sub 1024g/A07E5A3F 2008-05-12 [expire ….] Allez vérifier l'existence du fichier « $HOME/.gnupg/ » et des fichiers qu'il contient (ou comparez les dates de modification des fichiers). Pour vérifiez que les clés ont bien été créées, utilisez la commande Pr. M. A. EL KIRAM. 2005/2006 kiram@ucam.ac.ma $ gpg --list-keys. Vous devriez obtenir quelque chose du genre pub 1024D/7EBE92C8 2008-05-12 [expires: 2008-05-27] uid kiram (kiram ahmed ) <kiram@ucam.ac.ma> sub 2048g/ A07E5A3F 2008-05-12 [expires: 2008-05-27] qui vous indique que vous avez une clé principale (ligne \pub) qui expire le 12 mai ; et une sous- clé (ligne \sub) qui expire aussi le 12 mai. La ligne « uid » vous donne l'identité de l'utilisateur correspondant. La clé principale est utilisée pour les signatures, et la sous-clé pour le chiffrement. Echange de clés Pour envoyer votre clé publique à quelqu'un, vous pouvez commencer par l'exporter affin qu’il puisse l’importer avec la commande : $ gpg --output fichier.asc --export --armour uid (le fichier fichier.asc contiendra la clé en ASCII) $ gpg --output fichier.gpg --export uid (le fichier fichier.gpg contiendra la clé en binaire) On peut aussi signer la clé publique avant de l’exporter come suit. [kiram@localhost kiram]$ [kiram@localhost kiram]$ gpg --edit-key kiram .... (1). kiram ahmed (kiram) <kiram@ucam.ac.ma> Commande>trust pub 1024D/11594336 créée: 2005-11-17 expire: jamais confiance: u/u sub 1024g/A807D2A4 créée: 2005-11-17 expire: jamais (1). kiram ahmed (kiram) <kiram@ucam.ac.ma> À quel point avez-vous confiance en cet utilisateur pour la vérification des clés des autres utilisateurs (vous pouvez vérifier son passeport, vérifier les empreintes de diverses sources...) ? 1 = ne sait pas 2 = je ne fais PAS confiance 3 = je crois marginalement 4 = je fais entièrement confiance 5 = je donne une confiance ultime m = retour au menu principal Votre décision ? 5 Voulez-vous vraiment donner une confiance ultime à cette clé ?o Commande> quit Ensuite exporter la clé, maintenant rien de plus simple: [kiram@localhost kiram]$ gpg --export --armor > public-key-kiram.asc Voir votre clé publique avec kiram@localhost kiram]$ cat public-key-kiram.asc Serveur de clés Pr. M. A. EL KIRAM. 2005/2006 kiram@ucam.ac.ma On va maintenant envoyer notre clé à un serveur de clés pour que tout le monde puisse y avoir accès. Utilisez la commande : $ gpg --keyserver pgp.mit.edu --send-key 0xnnnnnnnn où nnnnnnnn est le numéro de votre clé (les chiffres apparaissant après le \1024D sur la première ligne du résultat de « gpg --list-keys ». Remarque : cette commande peut prendre un peu de temps. En allant sur la page web « http://pgp.mit.edu » vérifiez que votre clé a bien été rajoutée. Vous pouvez maintenant récupérer des clés sur le serveur http://pgp.mit.edu, il suffit de récupérer le numéro de la clé, et d'utiliser la commande $ gpg --keyserver pgp.mit.edu --recv-key 0xnnnnnnnn Vous pouvez aussi allez sur le site du serveur de clés et ajouter votre clé. Utiliser pour ça comme exemple le serveur de clé « keyserver.pgp.com » Importer une clé Maintenant Ahmed doit importer la clé publique de kiram [ahmed@localhost ahmed]$ Pour importer une clé publique d'une personne, il suffit que ce dernier vous l'expédie par un moyen ou un autre. Une fois obtenue, vous devez la rentrer dans votre base de données des clés publiques de vos destinataires potentiels de messages chiffrés. [ahmed@localhost ahmed]$ ls -l -rw-r--r-- 1 kiram kiram 2543 déc 10 10:56 public-key-kiram.asc [ahmed@localhost ahmed]$ gpg --import public-key-kiram.asc Cette base de données de destinataires potentiels est dans votre répertoire .gnupg et se nomme trustdb.gpg (fichier binaire) Vérification de l'empreinte N'importe qui peut dire qu'une clé lui appartient alors que ce n'est pas le cas. Pour remédier à ça, on vérifie l'empreinte (fingerprint). fingerprint est une séquence de chiffres hexadécimaux qui identifie de manière unique la clé publique. Il ne peut y avoir deux empreintes identiques. Il est ainsi plus facile de vérifier l'empreinte d'une clé par tel. Pour afficher l'empleinte: ahmed@localhost ahmed]$ gpg --fingerprint kiram pub 1024D/11594336 2005-11-17 kiram ahmed (kiram) <kiram@ucam.ac.ma> Empreinte de la clé = 796F 054F D9E1 81BF E21C 50A4 F2D8 D6F4 1159 4336 sub 1024g/A807D2A4 2005-11-17 Certification de la clé Pr. M. A. EL KIRAM. 2005/2006 kiram@ucam.ac.ma Si vous êtes absolument sûr que la clé publique que vous venez de recevoir appartient bien au destinataire (par vérification de l'empreinte par exemple), vous pouvez certifier sa clé: [ahmed@localhost ahmed]$ gpg --sign-key kiram pub 1024D/11594336 créée: 2005-11-17 expire: jamais confiance: -/- sub 1024g/A807D2A4 créée: 2005-11-17 expire: jamais (1). kiram ahmed (kiram) <kiram@ucam.ac.ma> gpg: no default secret key: la clé secrète n'est pas disponible Pour signer ahmed lui faut sa clé secrète. On refait donc la même chose pour créer les clés pour ahmed [ahmed@localhost ahmed]$ gpg --gen-key Maintenant ahmed dispose lui aussi de sa clé par laquelle il pourra signer. ahmed@localhost ahmed]$ gpg --sign-key kiram Maintenant ahmed peut envoyer un message chiffré test.txt à l'utilisateur kiram. Pour cela: [ahmed@localhost ahmed]$ gpg -sear kiram test.txt Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "ahmed <ahmed@ucam.ac.ma>" clé de 1024 bits DSA, ID 2C0900D9, créée le 2005-12-10 Entrez le mot de passe: Cela va créer le fichier crypté test.txt.asc -s pour certifier. -e pour chiffrer -a poir créer un fichier .asc prêt à être envoyer en fichier attaché par email -r suivi du destinataire du message. Voir le fichier crypté [ahmed@localhost ahmed]$ cat test.txt.asc [ahmed@localhost ahmed]$ Ce message chiffré est le message à envoyer à kiram. Maintenant du coté de kiram. Il pourra déchiffrer le message qui lui à été transmis comme suit: [kiram@localhost kiram]$ gpg -d test.txt.asc Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "kiram ahmed (kiram) <kiram@ucam.ac.ma>" clé de 1024 bits ELG-E, ID A807D2A4, créée le 2005-11-17 (ID clé principale 11594336) Entrez le mot de passe: Vous constatez qu'on a le message: gpg: Impossible de vérifier la signature: clé publique non trouvée Pr. M. A. EL KIRAM. 2005/2006 kiram@ucam.ac.ma car kiram n'a pas la clé publique de ahmed et donc n'a pas pu la certifier. Vous pouvez alors arranger cela et redécrypter le message. Lister et supprimer et éditer des clés. uploads/Industriel/ at-gnupg-3.pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager