Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
applications:gnupg [Le 21/12/2006, 17:20] – redirection vers nouvelle version de page Blackpegazapplications:gnupg [Le 21/12/2006, 17:26] (Version actuelle) – page déplacée vers nouveau modèle (http://doc.ubuntu-fr.org/gnupg) Blackpegaz
Ligne 1: Ligne 1:
-====== GNU Privacy Guard ====== 
  
-<code> 
-Testé sous Breezy. 
-</code> 
- 
-Rédigée et maintenue par [[utilisateurs:Id2ndR]]. 
- 
-GPG est l'acronyme de GNU Privacy Guard. il permet le chiffrement et la signature de données. 
- 
-===== Introduction ===== 
- 
-Vous trouverez dans le présent document la méthode en passant par les interfaces graphiques, suivie de leur équivalent en lignes de commande. 
- 
-L'application GnuPG sert à chiffrer des données : vous pouvez vous en servir pour communiquer en toute sécurité (courriel, messagerie instantanée...) et pour chiffrer vos fichiers (qui pourront d'ailleurs être également déchiffrés sous d'autres OS comme Windows). 
- 
-===== Concept ===== 
- 
-Comment fonctionne le chiffrement ? 
- 
-Il serait dommage d'utiliser GPG sans connaître la différence //clef publique/clef privée// (//public key/secret key//). Par conséquent, je vous invite a visiter la page [[http://fr.wikipedia.org/wiki/Cryptographie_asymétrique|Cryptographie asymétrique]] sur Wikipedia. 
-A noter qu'on peut également chiffrer en symétrique avec GPG (option -c) 
- 
-> **Remarque** : Dans cette documentation le terme de //clef// utilisé seul peut désigner la clef publique et/ou la clef privée. Cet abus de langage couramment utilisé ne pose pas de problème quand le concept de //clef publique/clef privée// est bien compris. 
- 
-Ci-dessous une autre formulation des principaux concepts : 
- 
-==== Clef publique/clef privée ==== 
- 
-  * La //clef publique// (du destinataire) est nécessaire pour **chiffrer** des données. Elle sera utilisée par vos correspondants lorsqu'ils vous enverront des messages que seul vous pourrez déchiffrer. C'est une clef que vous devez/pouvez fournir à vos correspondants afin qu'ils puissent vous envoyer des messages chiffrés. Elle peut également servir à vos correspondants pour **vérifier** vos signatures. 
-  * La //clef privée// ne doit jamais être divulguée : elle vous servira à **déchiffrer** des données. Pour plus de sécurité , cette clé est chiffrée en symétrique et un mot de passe y est donc associé : ainsi même lorsque que quelqu'un a accès à votre clef privée (en accédant à votre ordinateur par exemple), il ne peut utiliser votre clé privée pour déchiffrer vos données. Elle sert également à **signer** des documents ou des e-mails. Ainsi, vos destinataires peuvent être sûrs que vous êtes bien l'auteur ou l'expéditeur des données signées. 
- 
-Un //mot de passe// est associé à la //clef privée// : il vous sera demandé pour signer ou déchiffrer les fichiers, courriels ou messages. 
- 
-Evidemment, ne perdez pas ce mot de passe et ne le divulguez à personne. 
- 
-==== Validité de la clef ==== 
- 
-Lors de la création de la clef, une date d'expiration vous sera demandée : c'est la date à partir de laquelle vous ou vos correspondants ne pourront plus utiliser cette clef pour chiffrer des données. 
- 
-> Ceci ne vous empêchera pas de relire des données chiffrées avec cette clef publique. Il est aussi possible de modifier cette date d'expiration par après. 
- 
-==== Certificat de révocation ==== 
- 
-Le Certificat de révocation sert à invalider une clef. Vos correspondants ne pourront alors plus utiliser cette clef. Il doit être utilisé lorsque quelqu'un est susceptible d'avoir obtenu votre clef privée et/ou votre mot de passe. 
- 
-==== Identifiant ==== 
- 
-L'identifiant d'une clef est appelé //uid// (User IDentifiant) dans gpg. Il est de la forme "Prénom NOM (commentaire) <adresse de courriel>" (ou "Prénom NOM <adresse de courriel>" si aucun commentaire n'a été spécifié). 
- 
-Une clef est composée de différents champs (cf comment lister les clefs de son trousseau dans le section [[applications:gnupg#gerer_son_trousseau_de_clefs|Gérer son trousseau de clefs]]) :  
-  - le champ "pub" correspond à la partie publique. 
-  - Le champ "sub" correspond à la partie privée de la clé. 
-  - le champ "uid" correspond à une adresse email et un nom. 
- 
-//<id>// utilisé dans cette documentation est une chaîne de caractères propre à une clé du trousseau. Typiquement, cela peut être le //nom//, ou //un identifiant de la clé// (//pub// ou //uid//), ou encore //l'adresse de courriel//. 
- 
-==== Empreinte ==== 
- 
-Une empreinte (fingerprint en anglais), sert à identifier de manière unique une clef. 
-L'idée étant que, plusieurs personnes pouvant générer une clef avec un même //uid//, il faut pouvoir déterminer si on a la bonne clef publique en comparant son empreinte. 
- 
-Si l'empreinte ne correpond pas vous devez supprimez la clef publique invalide de votre trousseau. 
- 
-> Les 8 derniers caractères du fingerprint correspondent à l'identifiant //pub// de la clé. 
- 
-==== Signer une clef publique ==== 
- 
-Signer une clef publique c'est certifier que cette clef est bien celle de la personne indiquée par l'identifiant. C'est pour cela qu'il faut faire la vérification d'empreinte **avant** de signer une clef. 
- 
-Après avoir signé une clef publique vous pouvez la renvoyer sur un serveur. Ceci apporte à tous votre garantie sur l'authenticité de cette clef. 
- 
- 
-===== Prérequis ===== 
- 
-  - Fonction “sudo” activée (sinon voir [[installation:ajout_sudo_utilisateur]]). 
-  - Connexion Internet configurée et activée (sinon voir [[materiel:modem]] et/ou [[tutoriel:comment_configurer_son_reseau_local]]).  
-  - Dépôt universe activé (sinon voir [[installation:depots]]) 
- 
-===== Installation ===== 
- 
-Il existe divers FE (Front End, interface graphique) pour GnuPG : 
- 
-  - KGpg, développé pour l'environnement KDE, mais fonctionne également sous Gnome 
-  - GnomeGPG, développé pour l'environnement Gnome mais pas complet 
-  - Seahorse (cf [[applications:gnupg#Avertissement sur Seahorse]]). 
-  - GPA, tente de devenir l'interface graphique standard de GnuPG. 
- 
-N'ayant peu ou pas testé ces interfaces graphiques (car elles ne sont pas généralement pas encore très abouties), je détaille dans cette documentation l'usage de gpg en ligne commande. 
- 
-Si vous ne savez pas encore comment utiliser la ligne commande, allez voir [[console:ligne_de_commande]]. 
- 
-> Lorsque vous utilisez gpg pour chiffrer vos messages, cela sera transparent pour vous car pris en charge par vos logiciels habituels. 
- 
-==== Installation de GnuPG ==== 
- 
-Il faut installer le paquet ''gnupg2'' et ses dépendances, par Synaptic, Adept ou en ligne de commande, comme suit: 
- 
-  $ sudo apt-get install gnupg2 
- 
-==== Installation des interfaces graphiques ==== 
- 
-=== Sous Ubuntu - Gnome === 
- 
-Dans le menu Applications -> Ajouter des applications 
- 
-  * KGpg : Catégorie //Accessoires// -> //Plus d'application...// -> KGpg 
-  * GnomePGP : Catégorie //Outils système// -> //Plus d'application...// -> GnomePGP 
-  * Seahorse : Catégorie //Autre// -> Encryption Key Manager 
- 
-Vous pouvez aussi faire une recherche dans la barre prévu à cet effet. 
- 
-=== Via Synaptic ou Adept === 
- 
-Il faut installer respectivement les paquets suivants: 
-  * ''kgpg'' 
-  * ''gpgp'' 
-  * ''seahorse'' 
-  * ''gpa'' 
- 
-=== Avertissement sur Seahorse === 
- 
-Seahorse est plus complet que GnomePGP et vous permettra de créer de nouvelle pair de clefs (clef publique et privée), à l'inverse de GnomePGP. Par contre, certains utilisateurs ont [[http://forum.ubuntu-fr.org/viewtopic.php?id=21497|mentionné des bugs]]. 
- 
--> La ligne de commande vous permettra d'éviter les bugs. 
- 
-===== Utilisation/Configuration ===== 
- 
-Cette section illustre les usages les plus communs de GnuPG. Vous pouvez évidement obtenir d'autres détails en utilisant la commande : 
-<code>$ gpg --help</code> 
- 
-==== Gérer les clefs avec GPG ==== 
- 
-=== Créer une paire de clefs === 
- 
-** 1. Création de la clef ** 
- 
-  * Ouvrez une console, et exécutez la commande suivante : 
- 
-  $ gpg --gen-key 
- 
-  * Choisissez //DSA and ElGamal (default)// en tapant //1//. 
-Une clef de 1024 bits vous assurera une bonne protection. 
- 
-  * Choisissez alors dans combien de temps votre clef expirera. Vous pouvez rentrer //30// comme nombre de jours pour faire vos premiers essais. 
- 
-Confirmez par //y//. 
- 
-  * Vous allez alors créer un //identifiant// pour votre clef : 
-  - Il faut d'abord donner vos //Prénom// et //NOM//. 
-  - Remplissez ensuite votre //adresse de courriel// (même si vous utiliser cette clef uniquement pour chiffrer vos fichiers). Cette adresse doit correspondre avec celle que vous utilisez, sans artifice anti-spam. 
-  - Le //commentaire// est optionnel. 
- 
-Validez par //O//. 
- 
-  * Il faut maintenant fournir le //mot de passe//. 
- 
-> Rien ne s'affiche lorsque vous tapez votre mot de passe dans la console. C'est une question de sécurité. 
- 
-** 2. Création du Certificat de révocation ** 
- 
-  * Ouvrez une console, et exécutez la commande suivante : 
- 
-  $ gpg --gen-revoke <mon_id> 
- 
-=== Gérer son trousseau de clefs === 
- 
-  * Lister toutes les clefs : 
- 
-  $ gpg --list-keys 
- 
-  * Exporter une clef publique sur un serveur de clef : 
- 
-  $ gpg --send-key <id> --keyserver <serveur> 
- 
-> Vous pouvez spécifier un serveur de clef spécifique avec l'option //--keyserver <serveur>//, ce aussi bien pour la recherche, l'importation ou exportation de clef. 
- 
-  * Rechercher une clef publique sur un serveur de clef : 
- 
-  $ gpg --search-keys <identifiant> 
- 
-  * Ajouter une clef publique depuis un serveur de clef : 
- 
-  $ gpg --recv-keys <identifiant> 
- 
-  * Ajouter une clef publique contenue dans le presse papier (vous avez reçu la clef publique par courriel par exemple) : 
- 
-  $ gpg --import 
- 
-Collez ensuite la clef dans la console (clic du milieu) 
- 
-  * Supprimer une clef publique 
- 
-  $ gpg --delete-keys <identifiant> 
- 
-=== Avancé === 
- 
-  * Ajouter ou retirer un //<uid>// d'une clef : 
- 
-Ceci est généralement utiliser par les personnes disposant de plusieurs adresse de couriels. 
- 
-  $ gpg --edit-key <identifiant> 
- 
-Gpg vous rend la main en affichant ''Command>'' après avoir afficher des détails sur la clef à éditer. 
- 
-Pour ajouter un //<uid>// : 
-  - Tappez la commande ''adduid'' 
-  - Renseignez les infos demandées. 
- 
-Pour Retirer un //<uid>// : 
-  - Sélectionnez un //uid// par la commande ''uid <numéro_entre_paranthèses>''. Gpg affiche alors une étoile à côté de l'//uid// sélectionné. 
-  - Retirez alors l'//uid// par la commande ''deluid''. 
- 
-Quittez avec ''quit'' en validant les modifications par ''y''. 
- 
-  * Vérifier le fingerprint 
- 
-  $ gpg --fingerprint <identifiant> 
- 
-  * Signer une clef publique 
- 
-  $ gpg --sign-key <identifiant> 
- 
-Validez si vous êtes sûr de l'authenticité de la clef. 
- 
-Vous pouvez renvoyez la clef sur un serveur de clef (cf la section [[applications:gnupg#Gérer son trousseau de clefs|Gérer son trousseau de clefs]]). 
- 
-  * Changer la date d'expiration d'une clef 
- 
-  $ gpg --edit-key <identifiant> expire 
- 
-Vous devez disposer de la clef secrète pour changer cette date. 
- 
-Vous aurez d'abord à l'écran les informations concernant la clef puis vous pourrez rentrer une durée pour laquelle la clef sera valide en suivant le format indiqué. Validez ensuite par //o//, puis entrez éventuellement votre passphrase. Lorsque la ligne ''Commande>'' apparaît, entrez //quit// et validez les changements. 
- 
- 
- 
-==== Configurer les logiciels pour utiliser GnuPG ==== 
- 
-  * Courriel : 
-    * Thunderbird, via Enigmail : [[applications:mozilla-thunderbird_enigmail]] 
-    * Evolution : [[:evolution_gpg|Evolution Gpg]] 
-    * Kmail : [[applications:kmail_openpgp]] 
-  * Jabber : 
-    * Gajim : [[:Gajim]] 
- 
-==== Signer et Chiffrer des fichiers avec GnuPG ==== 
- 
-Ces manipulations sont possibles avec les [[applications:gnupg#installation_des_interfaces_graphiques|FE]]. 
- 
-Voici comment les réaliser en ligne de commande avec gnupg : 
- 
-  * Signer un fichier : 
- 
-  $ gpg --clearsign <mon_fichier> 
- 
-Votre mot de passe vous est demandé pour vérifier que c'est bien vous qui signez le fichier. 
- 
-Un fichier //mon_fichier.asc// est créé : c'est la signature du fichier //mon_fichier//. 
- 
-  * Chiffrer un fichier : 
- 
-  $ gpg --encrypt <mon_fichier> 
- 
-L'identifiant du destinataire est demandé : c'est la personne qui pourra déchiffrer le fichier (qui peut très bien être vous). 
-> Il faut bien comprendre ici que c'est la ou intervient le mécanisme de clef publique/ clef privés. Vous cryptez un fichier avec la clef publique de son destinataire et seule sa clef privée pourra le déchiffrer. De l'intéret de ne pas hésiter à diffuser sa clef publique. Ce principe est bien sur identique pour le mail. 
- 
-Un fichier //mon_fichier.gpg// est créé : c'est la copie chiffré de //mon_fichier//. 
- 
-  * Déchiffrer un fichier : 
- 
-  $ gpg --decrypt <mon_fichier.pgp> 
- 
-Votre mot de passe vous est demandé pour déchiffrer //mon_fichier.pgp//. 
-Le fichier //mon_fichier// est créé et lisible. 
- 
-> Vous pouvez bien sur chiffrer et signer un fichier : il suffit de mettre les options //--sign// et //--encrypt//. 
- 
-===== Liens externes ===== 
- 
-  * [[http://matrix.samizdat.net/crypto/gpg_intro/index.html]] 
-  * [[http://www.gnupg.org/]] 
-  * [[http://fr.wikipedia.org/wiki/GPG]] 
-  * [[http://www.gnupg.org/howtos/fr/|"Mini-Howto" plutôt complet !]] 
-  * [[http://gpglinux.free.fr/|Télécharger GnuPG HOWTO par cho7]]