Bandeau
AccueilListesHumeursLiens
 
Accueil > Courriel > Courriels chiffrés > GnuPG (Mac OS X)
Dernière modification : le 14/04/2003

Avant-propos.

Avant de vous lancer dans l'installation de « GNU Privacy Guard » (GPG), il faut que vous soyez familiarisé avec certains concepts. Si vous êtes arrivé sur cette page directement, lisez d'abord l'article sur la préservation de la confidentialité des courriels.

L'installation de GPG sur Mac OS X exige de passer par certaines commandes du « Terminal ». Pas de panique, nous allons vous prendre par la main. Vous pouvez faire des copier/coller à partir de cette page vers le « Terminal ». Une fois l'installation terminée, vous n'en aurez besoin qu'en de très rares occasions.

Depuis Mac OS 10.2 (Jaguar) certains dossiers s'affichent en français. Nous donnerons par la suite les noms anglais de ces derniers. Retenez simplement que les noms anglais fonctionnent systématiquement et que les principales traductions sont :

Bibliothèque : Library
Utilisateurs : Users
Utilitaires : Utilities

Même s'il y a moyen de faire autrement, il est fortement recommandé d'utiliser Mail, le client de messagerie fourni avec Mac OS X, pour exploiter confortablement GPG. En effet, il existe un module d'extension pour cette application qui tourne comme une horloge avec un confort remarquable. Que les aficionados d'Entourage ne désespèrent pas, il ne leur manquera pas grand-chose comme fonctionnalités et Mail importe les données d'Entourage grâce au script /Library/Scripts/Mail Scripts/Import Addresses.scpt. Nous considérerons dans la suite que vous avez opté pour cette solution. Pour ceux qui veulent garder leur application de messagerie favorite, il existe des solutions que vous trouverez en bas de la page de « MacGPG ».

Sommaire.

Installation.

Téléchargements.

Installation de « GNU Privacy Guard » et de « GPGPreferences ».

Installation de « GPG Keychain Access » et de « Gpg Tools ».

Génération des clefs.

Configuration.

Installation de « GPGMail ».

Envoyer votre premier courriel signé et crypté.

Utiliser « GNU Privacy Guard ».

Où sont mes clefs ?

Maniement des clefs.

La clef privée.

Votre clef publique.

L'empreinte.

Ajouter une adresse à une clef.

Retirer une adresse à une clef.

La clef publique de vos correspondants.

La révocation.

Le mot de la fin.

Installation. 

Téléchargements.

Vous trouverez tout ce qu'il vous faut sur cette page. Il faut que vous téléchargiez a minima « GNU Privacy Guard », « GPG Keychain Access » et « GPGMail ». Si malgré tout vous avez décidé de ne pas utiliser Mail, il vous faut aussi « Gpg Tools ». Vous pouvez aussi télécharger « GPGPreferences ». Créez un nouveau dossier et mettez-y tous les fichiers que vous avez cherchés. Ensuite, lancez un « Terminal » (il se trouve dans le dossier /Applications/Utilities/) et tapez les commandes :

cd (faites ici un glisser/déposer de votre dossier)
openssl md5 *

Vérifiez que les signatures correspondent bien aux fichiers téléchargés. Dans le cas contraire, prenez contact avec les développeurs en suivant les instructions données ici. La vérification de « GPGMail » viendra plus tard.

Installation de « GNU Privacy Guard » et de « GPGPreferences ».

Ouvrez le fichier « GnuPGOSX[version].dmg », ouvrez l'image du disque et lancez le programme d'installation « GnuPGOSX.pkg ». Suivez les instructions. Faites de même avec le fichier « GPGPreferences[version].dmg ». C'est tout.
Note pour les « fêlés » de la compilation dans mon genre.

Installation de « GPG Keychain Access » et de « Gpg Tools ».

Décompressez les archives et mettez « GPG Keychain Access » et « Gpg Tools » où bon vous semble. Si vous ne savez pas comment faire, utilisez « Stuffit Expander » (pour plus de détails, jetez un œil ici). Il est recommandé de créer un dossier « GPG » dans le dossier /Applications/Utilities.

Génération des clefs.

Pour que la génération des clefs soit la plus efficace possible, il faut que le macintosh travaille un maximum. Quittez toutes les applications (sauf, évidemment, le butineur qui vous permet de lire cette page). Quand vous lancerez la génération des clefs, vous ouvrirez toutes les applications qui vous tombent sous la main dans le dock. Ne relancez pas vos logiciels tout de suite, mais c'est pour bientôt.

Dans le « Terminal », tapez les commandes suivantes :

tcsh
setenv LANG en_US
gpg --gen-key


Le « Terminal » répond :

gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection?

DSA est le standard pour signer les textes, ElGamal est un puissant algorithme pour crypter. Il vaut mieux avoir les deux. Répondez « 1 ».


[...]
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
minimum keysize is 768 bits
default keysize is 1024 bits
highest suggested keysize is 2048 bits
What keysize do you want? (1024)

Dans l'absolu, plus une clef est longue, mieux c'est. Cependant, le temps de chiffrement augmente avec la longueur de votre clef. Si vous n'avez pas d'idée précise quant à la longueur nécessaire, le mieux est de choisir la taille proposée par défaut. Si, à l'usage, cette taille s'avère inadaptée, vous pourrez toujours générer une nouvelle paire de clef plus adaptée à vos besoins.


[...]
Requested keysize is 1024 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)

Entrez ici la date d'expiration de la clef. A priori, elle ne devrait jamais expirer, entrez « 0 ».


[...]
Key does not expire at all
Is this correct (y/n)?

Confirmez en tapant « y ».


 [...]
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name:

À présent, il faut entrer vos données personnelles. Tapez ici votre prénom et votre nom.


 [...]
Real name: MonPrenom MonNom
Email address:

Tapez ici votre adresse de courriel.


[...]
Email address: monAdresse@fournisseur.qqchose
Comment:

Ici, on vous demande un commentaire. Il sera lisible par tous ceux qui auront votre clef publique. La date sous la forme « AAAAMMJJ » me paraît être une bonne idée. Mais bien sûr vous mettez ce que vous voulez. Vous pouvez aussi laisser ce champ vide.


 [...]
You selected this USER-ID:
"MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

GPG vous montre l'identifiant de la clef tel qu'il apparaîtra. Tapez « N » pour modifier le nom, « C » pour modifier le commentaire, « E » pour modifier l'adresse de courriel, « O » pour valider ou « Q » pour quitter.


 [...]
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
 
Enter passphrase:

Il vous faut un mot de passe pour protéger la clef secrète. Si un tiers entre en possession de cette clef, il ne pourra pas l'utiliser sans connaître ce mot de passe. Prenez-en un pas trop facile à trouver.


 [...]
Repeat passphrase:

Retapez votre mot de passe pour vérification. Une fois cela fait, GPG lance la génération des clefs. Faites travailler votre machine en lançant un maximum d'applications en même temps.


[...]
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++.+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
..+++++++++++++++.+++++++++++++++++++++++..>+++++..+++++^^^^^
gpg: /Users/utilisateur/.gnupg/trustdb.gpg: trustdb created
public and secret key created and signed.
key marked as ultimately trusted.

pub 1024D/557306F0 2003-02-18 MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>
Key fingerprint = DC42 6461 7805 8161 8568 775B EB40 D8CA 5573 06F0
sub 1024g/C279B9BD 2003-02-18

Félicitations, vous avez à présent une paire de clefs tout à fait opérationnelle.

Configuration.

Le moyen le plus simple pour configurer GPG, reste encore d'utiliser « GPGPreferences » mais vous pouvez aussi vous passer de « GPGPreferences » et modifier le fichier ~/.gnupg/gpg.conf à la main. Une bonne méthode pour manipuler les fichiers de configuration est présentée ici. Vous pouvez voir un exemple de fichier de configuration en cliquant ici.

À présent, conformez vous aux copies d'écrans ci-dessous :


Menu "Préférences Système..."  


Préférences Système


 Serveur de clefs


Signature   


 Expert

Il y a d'autres options dans la liste réelle. Ne sont présentées ici que celles qui sont indispensables. Vous pouvez garder les autres puisqu'elles n'interviennent pas lorsqu'elles sont décochées.

Installation de « GPGMail ».

Il faut vérifier que le fichier que vous avez cherché n'a pas été corrompu. Vous ne pouviez pas le faire avant parce qu'il fallait disposer de GPG. Retournez sur la page de « GPGMail » et suivez les instructions.

Une fois que « GPGMail » est installé, il vous faut mettre Mail à votre main. Tout se fait via les préférences de GPG dans Mail. Les libellés sont clairs, faites selon vos besoins.

GPGMail Préférences

Envoyer votre premier courriel signé et crypté.

Créez un nouveau message. Mettez votre propre adresse comme destinataire. Faites en sorte que les cases « Signer » et « Chiffrer » soient dans le bon état, c'est-à-dire cochées.

Envoyez le message et laissez vous guider. Une fois le courriel parti, relevez vos mèls. Le reste coule de source.

Utiliser « GNU Privacy Guard ».

Où sont mes clefs ? 

Tous les fichiers GPG sont dans le dossier ~/.gnupg/. Vous pouvez en voir le contenu en faisant dans le « Finder » les manipulations suivantes :

"Aller au dossier..."


Aller à ~/.gnupg


Liste fichiers GPG 

Maniement des clefs.

Lancez « GPG Keychain Access », il vous présente deux onglets. L'un avec votre clef privée, l'autre avec votre clef publique.

GPGKeys : clefs publiques

La colonne « ID » est le numéro identifiant de votre clef. Si vous voulez donner votre numéro de clef à quelqu'un pour qu'il puisse la chercher sur un serveur de clefs (nous y reviendrons), il faudra lui la donner sous la forme 0x7A2D73B4. Pour votre gouverne, c'est de l'hexadécimal.

Si vous faites un double-clic sur une clef, la fenêtre suivante apparaît :

Propriétés d'une clef

Vous remarquerez que le texte de l'empreinte est sélectionné. Vous pouvez faire cette manipulation avec tous les champs. Nous verrons l'utilité de l'empreinte un peu plus loin.

Jetez un œil sur tous les onglets pour vous familiariser avec le vocabulaire.

La clef privée.

Il n'y a rien à dire de particulier sur la clef privée si ce n'est qu'il faut qu'elle reste ... secrète. Dès que vous pensez que quelqu'un a pu y avoir accès, révoquez la paire et créez-en une nouvelle.

Votre clef publique.

La clef publique est destinée à être diffusée à vos correspondants pour qu'ils puissent vérifier votre signature et crypter les messages ou les documents qui vous sont destinés. Il y a plusieurs méthodes pour communiquer votre clef.

Par courriel :

C'est la méthode la plus simple. Allez dans « GPG Keychain Access », puis conformez vous à ces copies d'écran :

Menu "exportation de la clef"
 
Exporter la clef

Vous devez cocher « Armure ASCII ». Il ne s'agit pas d'une protection particulière, cela consiste à convertir les caractères accentués en une combinaison de caractères sans accents. Ça alourdit un peu les fichiers, mais vous êtes sûr que vos données seront transmises sans pertes via le courriel.

Il ne vous reste plus qu'à envoyer ce fichier à vos correspondants équipés d'une solution PGP. N'oubliez pas d'envoyer l'empreinte via un autre courriel dûment signé. Votre interlocuteur importera votre clef dans son logiciel de cryptage et saura vérifier vos documents et vous envoyer des courriels confidentiels.

Via un serveur de clefs :

Vous pouvez mettre à disposition votre clef publique à tous ceux qui sont connectés à Internet. Si vous décidez de le faire, lancez « PGPKeys », sélectionnez votre clef publique et faites la commande :

Envoyer la clef

En aucun cas vous ne devez envoyer votre clef secrète. Vérifiez bien que vous êtes dans le bon onglet.

À présent, n'importe qui peut récupérer votre clef publique en lançant une recherche sur votre adresse. Si vous procédez ainsi, prenez l'habitude de mettre les informations nécessaires dans vos courriels.

En cherchant sur Internet, vous trouverez probablement une page web qui permet de chercher les clefs publiques, à savoir : http://www.keyserver.net/. Ce serveur est une émanation de la société « PGP corporation » et ne tient pas compte des révocations et des nouvelles clefs qui lui sont envoyées. Pour qu'il prenne en compte ma dernière clef, il a fallu que je passe par cette page. On fait plus souple. À éviter.

Une signature (ben oui, ça s'appelle comme ça aussi) adéquate reste la meilleure méthode. À titre d'exemple, voici mes réglages dans Mail.

Apple "Signatures" (écran 1)
 
Apple "Signatures" (écran 2)

L'empreinte.

Toutes les clefs ont une empreinte qui leur est associée. Cette chaîne de caractères permet de vérifier l'authenticité d'une clef. Si vous allez chercher la clef publique associée à une adresse sur un serveur de clefs, assurez-vous que son empreinte soit bien celle que votre correspondant vous a donnée. Communiquez régulièrement l'empreinte de votre clef à vos correspondants, ainsi ils seront sûrs son authenticité.

Ajouter une adresse à une clef.

Vous pouvez rattacher plusieurs adresses de courriel à votre clef. Imaginons que vos adresses de courriel soient monadresse@fournisseur.qqchose et autreadresse@autrefournisseur.qqchose. À l'heure actuelle, seule l'adresse monadresse@fournisseur.qqchose est reconnue par GPG. Pour remédier à cela, il faut, hélas, repasser par le Terminal.


gpg --edit-key monAdresse@fournisseur.qqchose

Gpg vous répond :

gpg (GnuPG) 1.2.2; Copyright (C) 2003 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Secret key is available.

gpg: checking the trustdb
gpg: checking at depth 0 signed=4 ot(-/q/n/m/f/u)=0/0/0/0/0/2
gpg: checking at depth 1 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/4/0
pub 1024D/3FEB1BEC created: 2003-02-18 expires: never trust: u/u
sub 1024g/ADE715E7 created: 2003-02-18 expires: never
(1). MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>

Command>


Demandez ensuite d'ajouter une adresse :

Command> adduid

La suite vous est à présent connue :

Real name: MonPrenom MonNom
Email address: autreadresse@autrefournisseur.qqchose
Comment: 20030218
You selected this USER-ID:
"MonPrenom MonNom (20030218) <autreadresse@autrefournisseur.qqchose>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

You need a passphrase to unlock the secret key for
user: "MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>"
1024-bit DSA key, ID 3FEB1BEC, created 2003-07-19

pub 1024D/3FEB1BEC created: 2003-07-19 expires: never trust: u/u
sub 1024g/ADE715E7 created: 2003-07-19 expires: never
(1) MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>
(2). MonPrenom MonNom (20030218) <autreadresse@autrefournisseur.qqchose>

Command>


Il ne vous reste plus qu'à quitter :

Command> quit
Save changes? y

N'oubliez pas de communiquer la clef modifiée à vos correspondants. Ne pas le faire ne prête pas trop à conséquences, mais c'est indispensable si vous voulez qu'on puisse vous envoyer des courriels chiffrés avec la deuxième adresse.

Retirer une adresse à une clef.

De même, vous pouvez retirer une adresse rattachée à une clef qui en a plusieurs. Comme à l'accoutumée, il faut passer par le Terminal :

gpg --edit-key monAdresse@fournisseur.qqchose

Gpg vous répond :

gpg (GnuPG) 1.2.2; Copyright (C) 2003 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Secret key is available.

gpg: checking the trustdb
gpg: checking at depth 0 signed=4 ot(-/q/n/m/f/u)=0/0/0/0/0/2
gpg: checking at depth 1 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/4/0
pub 1024D/3FEB1BEC created: 2003-02-18 expires: never trust: u/u
sub 1024g/ADE715E7 created: 2003-02-18 expires: never
(1). MonPrenom MonNom (20030218) <autreadresse@autrefournisseur.qqchose>
(2) MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>
Command>


Les clefs sont numérotées avec des nombres entre parenthèses. Nous voulons retirer la clef (1) qui a comme adresse autreadresse@autrefournisseur.qqchose. Il faut d'abord la sélectionner :

Command> uid 1

Gpg vous répond en marquant la clef sélectionnée d'une étoile :

pub 1024D/3FEB1BEC created: 2003-02-18 expires: never trust: u/u
sub 1024g/ADE715E7 created: 2003-02-18 expires: never
(1)* MonPrenom MonNom (20030218) <autreadresse@autrefournisseur.qqchose>
(2) MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>

Command>


À présent demandez la suppression de la clef :

Command> deluid


Et, bien sûr la confirmation de rigueur :

Really remove this user ID? y


Gpg vous répond :

pub 1024D/3FEB1BEC created: 2003-02-18 expires: never trust: u/u
sub 1024g/ADE715E7 created: 2003-02-18 expires: never
(1) MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>

Command>

L'adresse a bien été supprimée.


Il ne vous reste plus qu'à quitter :

Command> quit
Save changes? y


N'oubliez pas de communiquer la clef modifiée à vos correspondants.

La clef publique de vos correspondants.

La meilleure méthode consiste à demander à votre correspondant de vous envoyer la clef par courriel. Vous vérifierez ensuite son empreinte par un autre biais que le mèl (le téléphone par exemple). Il ne vous restera plus qu'à l'importer avec « GPG Keychain Access » et à la signer. Signer une clef consiste à dire à GPG que la clef a été vérifiée et qu'elle correspond bien à celle de votre correspondant.

Importer une clef

Il peut arriver que l'importation ne marche pas (même si « GPG Keychain Access » vous dit le contraire). Cela est dû au fait que les coupures de lignes sous MacOS Classic ne sont pas le mêmes que sous Unix. Pour régler le problème, ouvrez un « Terminal » et faites la commande suivante :

tr "\r" "\n" <(faites ici un glisser/déposer du fichier récalcitrant) >~/Desktop/LaClef

Il ne vous reste ensuite qu'à importer le fichier « LaClef » qui se trouve sur votre bureau.


 Une fois que vous avez vérifié que la clef était bien la bonne avec votre correspondant, il est recommandé de la signer.

Signer une clef


Vous pouvez aussi chercher la clef avec un serveur de clefs.

Menu "Rechercher clef"


Identifiant clef

La révocation. 

Révoquer une paire de clefs consiste à communiquer aux serveurs de clefs le fait que la paire n'est plus valable. C'est utile car vous pouvez oublier le mot de passe, perdre la clef privée, etc. Pour révoquer une paire de clefs, il vous faut un certificat de révocation.

La génération d'un certificat de révocation d'une paire de clefs nécessite de connaître la clef privée de la paire à révoquer. Si vous oubliez le mot de passe d'une paire de clefs, vous ne pourrez plus révoquer cette paire. Vous avez donc intérêt à générer ce certificat dès que vous créez une paire. D'un autre côté, si quelqu'un réussi à obtenir ce certificat, il peut faire croire que vous avez révoqué la paire de clefs décrite par ce certificat. Vous devrez donc mettre ce certificat en sécurité.

Pour générer un certificat de révocation, il faut passer par le « Terminal ».

gpg --gen-revoke 0x57306F0

Bien sûr, il faut remplacer 0x57306F0 par l'identifiant de votre clef.


gpg --gen-revoke --utf8-strings 0x12345678
gpg: NOTE: old default options file `/Users/utilisateur/.gnupg/options' ignored

sec 1024D/557306F0 2003-02-18 MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>

Create a revocation certificate for this key?

Répondez par « y »


Please select the reason for the revocation:
0 = No reason specified
1 = Key has been compromised
2 = Key is superseded
3 = Key is no longer used
Q = Cancel
(Probably you want to select 1 here)
Your decision?

Répondez par « 3 ».


Enter an optional description; end it with an empty line:
>


Reason for revocation: Key is no longer used
(No description given)
Is this okay?

Répondez par « y »


You need a passphrase to unlock the secret key for
user: "MonPrenom MonNom (20030218) <monAdresse@fournisseur.qqchose>"
1024-bit DSA key, ID 557306F0, created 2002-02-18

Enter passphrase:

Tapez ici le mot de passe de la clef.


ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable. But have some caution: The print system of
your machine might store the data and make it available to others!
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.1 (Darwin)
Comment: A revocation certificate should follow

foSSWRNM04FGU1zDBGWn/qfnj9nt0xqGIg3Q47tZqlWNZgJk1Z/gj/T+Hy2SVKUE
p92vzvpCgZMPLw5HFP8CSFEU6OOPEkU8igo1
=2Z24
-----END PGP PUBLIC KEY BLOCK-----

Faites un « Copier » du certificat de révocation. Lancez « TextEdit » (il se trouve dans votre dossier « Applications ») et faites un « Coller ». Conformez-vous ensuite à ces copies d'écran :

Texte du certificat


Convertir au format texte


Enregistrer sous


Enregistrer en UTF-8


Mettez votre certificat de révocation en lieu sûr.

Lorsque vous voudrez révoquer votre clef (ça ne devrait pas arriver tous les jours), tapez dans le « Terminal » les commandes suivantes :

gpg --import --utf8-strings Revocation0x57306F0.txt
 
gpg --keyserver ldap://pgp.surfnet.nl:11370 --send-keys 0x57306F0
gpg --keyserver belgium.keyserver.net --send-keys 0x57306F0

Le mot de la fin.

Ce fut un peu laborieux, c'est entendu. Mais vous avez maintenant un bel outil très confortable pour authentifier, voire décrypter, vos courriels. Ne serait-ce que pour la possibilité de signer vos missives, il était temps.