Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
applications:gnupg [Le 21/12/2006, 17:20] Blackpegaz redirection vers nouvelle version de page |
— (Version actuelle) | ||
---|---|---|---|
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]] |