Vous êtes-vous jamais demandé si votre courrier
électronique était réellement à l'abri des
espions ? Il est assez logique de supposer que votre message sera
lu par son destinataire ; en revanche, on peut également
imaginer qu'il serait possible que d'autres personnes puissent
l'intercepter voire le falsifier.
Dans le courrier postal traditionnel, les lettres sont
expédiées sous pli fermé et distribuées
à leur destinataire après avoir transité par
divers services postaux. L'envoi de courrier par Internet est beaucoup
moins sûr ; le courrier électronique est le plus
souvent transmis de serveur à serveur sous forme de texte en
clair. Aucune mesure de précaution particulière n'est
prise pour mettre votre correspondance à l'abri des curieux ou
de personnes mal intentionnées.
Pour vous aider à protéger votre vie privée, Red Hat Linux
6.2 comprend GnuPG ou GNU
Privacy Guard, qui est installé par défaut
au cours d'une installation Red Hat Linux classique.
GnuPG est un outil permettant de
sécuriser les communications ; il s'agit d'un outil de
remplacement complet et gratuit de la technologie de cryptage de
PGP (Pretty Good Privacy,
une application très utilisée).
GnuPG vous permet de crypter vos
données et votre correspondance, de même que
d'authentifier votre correspondance en signant
numériquement votre travail.
GnuPG peut également décrypter
et vérifier les fichiers PGP
5.x.
Du fait que GnuPG est compatible avec
d'autres normes de cryptage, votre correspondance
sécurisée sera très probablement compatible avec
des applications de courrier électronique fonctionnant sur
d'autres plates-formes, par exemple Windows et MacOS.
GnuPG utilise la technique de
cryptographie à clé publique pour
sécuriser l'échange de données. Le système
de cryptographie à clé publique consiste à
générer deux clés :
une clé publique et une
clé privée. Vous échangez
votre clé publique avec des correspondants ou avec un
serveur de clés ; Ne
révélez jamais votre clé privée.
Le cryptage dépend de l'utilisation de clés (on peut se
les représenter comme des jeux de clés de
codage/décodage secrètes au format de données).
Dans le cas de la cryptographie conventionnelle ou symétrique,
les deux extrémités de la transaction ont la même
clé, qu'elles utilisent pour décoder leurs transmissions
mutuelles. Dans le système de cryptographie à clé
publique, deux clés coexistent : une clé publique et
une clé privée. Une personne ou une organisation garde sa
clé privée secrète et publie sa clé
publique. Les données codées à l'aide de la
clé publique ne peuvent être décodées
qu'avec la clé privée ; les données
codées avec la clé privée ne peuvent être
décodées qu'avec la clé publique.
 | Autres informations de l'invite du shell |
|---|
| | Comme c'est le cas de la plupart des outils pour Red Hat Linux, vous
trouverez de la documentation sur GPG dans
les pages de manuel et les pages d'information. A l'invite du shell,
tapez simplement man gpg ou info
gpg pour accéder rapidement à des
informations sur les commandes et options de
GPG.
|
Pour l'essentiel, la cryptographie dépasse la portée de
cette documentation ; des volumes entiers ont été
écrits sur le sujet. Nous espérons cependant que ce
chapitre vous apportera une compréhension suffisante du
fonctionnement de GnuPG pour vous permettre
de commencer à utiliser la cryptographie dans votre propre
correspondance. Pour plus d'informations sur
GnuPG, notamment pour pouvoir accéder
à un manuel utilisateur en ligne, visitez le site
http://www.gnupg.org/.
Pour en savoir plus sur GPG,
PGP et les techniques de cryptage,
reportez-vous aux références figurant dans la
la section intitulée Sources d'informations complémentaires.
Il existe plusieurs interfaces graphiques pour
GnuPG, par exemple
SeaHorse, fournie avec Red Hat Linux 7.0.
Toutefois, il est possible d'exécuter rapidement de nombreuses
tâches, dans GnuPG, depuis l'invite du
shell. C'est sur celles-ci que ce chapitre se concentre.
Pour utiliser GnuPG, vous devez commencer
par générer une nouvelle paire de
clés , à savoir une clé publique et
une clé privée.
Bien que les instructions relatives à la
génération d'une paire de clés aient
déjà été couvertes (voir la
la section intitulée Génération d'une nouvelle paire de clés dans Chapitre 12), voici un bref
récapitulatif de la procédure à suivre.
Pour générer une paire de clés, ouvrez une
fenêtre Xterm (ou de terminal), puis, à l'invite,
tapez :
Vous êtes invité à sélectionner un certain
nombre d'options, telles que le type et la taille de la clé
à créer. Des options par défaut sont
également disponibles ; vous pouvez les sélectionner en
appuyant simplement sur la touche Entrée. Si
vous n'avez pas une excellente raison d'agir autrement, vous pouvez
utiliser les choix par défaut.
Entrez un ID utilisateur, ainsi que votre nom, votre adresse
électronique et un commentaire éventuel. Entrez ensuite
une phrase de passe qui, tout comme un mot de
passe, doit être unique et suffisamment sûre pour
garantir que nul ne pourra la deviner. Une phrase de passe peut
consister en un simple mot ou en une phrase que vous tapez à
l'invite pour vous identifier en tant que propriétaire de
votre paire de clés. Naturellement, quel que soit votre choix,
arrangez-vous pour vous en souvenir !
 | Point faible |
|---|
| | La cryptographie à clé publique est un système
puissant mais pas inviolable. L'un des points faibles de cette
technologie réside dans la vulnérabilité des
mots de passe et phrases de passe. La sélection d'une phrase
de passe telle que votre date de naissance ou l'adresse de
l'élu(e) de votre coeur n'est pas une très bonne
idée. Essayez de trouver quelque chose qui sorte de
l'ordinaire, qui combine des lettres et des chiffres. Vous devez
être aussi prudent pour le choix de votre phrase de passe que
pour le choix de votre mot de passe de connexion.
|
Une fois votre clé publique et privée
créées, elles sont placées dans le
répertoire .gnupg. Pour consulter vos
clés, tapez gpg --list-keys. Le
système affichera votre nouvelle clé, similaire
à celle-ci :
[newuser@localhost newuser]$ gpg --list-keys
/home/newuser/.gnupg/pubring.gpg
-----------------------------------------
pub 1024D/B7085C8A 2025-04-18 Your Name <you@yourisp.net>
sub 1024g/E12AF9C4 2025-04-18
|
Après avoir créé votre paire de clés,
créez un certificat de
révocation pour votre clé publique. Si vous
oubliez votre phrase de passe ou si quelqu'un la découvre,
vous pourrez publier ce certificat afin d'informer d'autres
utilisateurs que cette clé publique ne doit plus être
utilisée.
 | Pourquoi "révoquer" une clé que
vous venez de créer ? |
|---|
| | Générer un certificat de révocation
n'équivaut pas à révoquer une clé que
vous venez de créer. Le fait de révoquer une
clé la protège de l'utilisation publique. Imaginons
qu'après avoir créé une clé, vous
oubliiez votre phrase de passe, changiez de fournisseur
d'accès Internet (et donc d'adresse) ou soyez victime d'une
panne de disque dur. Ce certificat de révocation vous offre
alors une solution pratique pour disqualifier votre clé
publique.
|
Votre signature apparaîtra comme valide aux personnes ayant lu
votre correspondance avant la révocation de la clé et
vous serez en mesure de décrypter les messages reçus
avant la révocation. Pour générer un certificat
de révocation, utilisez l'option
--gen-revoke.
[newuser@localhost newuser]$ gpg --output revoke.asc --gen-revoke
<vous@votre-fournisseur.net>
|
Notez que si vous omettez l'option --output
revoke.asc ci-dessus, votre certificat de révocation
sera retourné à la "sortie standard",
à savoir votre écran. Même si vous pouvez copier
et coller le contenu de la sortie dans un fichier de votre choix
à l'aide d'un éditeur de texte tel que
Pico, il est probablement plus simple
d'envoyer la sortie à un fichier se trouvant dans votre
répertoire de connexion. Vous pourrez de la sorte conserver le
certificat en vue d'un usage ultérieur ou bien le
déplacer vers un lecteur de disquette et le conserver en lieu
sûr.
La transaction permettant de créer un certificat de
révocation ressemblera à ceci :
[newuser@localhost newuser]$ gpg --output revoke.asc --gen-revoke <you@yourisp.net>
sec 1024D/823D25A9 2025-04-26 Your Name <you@yourisp.net>
Create a revocation certificate for this key? y
You need a passphrase to unlock the secret key for
user: "Your Name <you@yourisp.net>"
1024-bit DSA key, ID 823D25A9, created 2025-04-26
ASCII armored output forced.
Revocation certificate created.
|
Une fois votre certificat de révocation créé
(revoke.asc), il est placé dans votre
répertoire de connexion. Veillez à ce que le fichier
soit en sécurité ; le mieux est de le copier sur une
disquette que vous conserverez en lieu sûr (si vous ignorez
comment copier un fichier sur une disquette dans Red Hat Linux, reportez-vous
à la la section intitulée Utilisation d'une disquette dans Chapitre 17).
Pour que vous puissiez utiliser la cryptographie à clé
publique, il faut que vos correspondants disposent d'une copie de
votre clé publique. Pour envoyer votre clé à vos
correspondants ou à un serveur de clés, vous devez
exporter la clé.
Pour ce faire, afin de pouvoir l'afficher sur une page Web ou la
coller dans un message électronique, tapez ce qui suit :
[newuser@localhost newuser]$ gpg --armor --export
<vous@votre-fournisseur.net> >
ma-clé.asc
[newuser@localhost newuser]$
|
Rien ne s'affiche parce que, en plus d'avoir exporté votre
clé publique, vous avez redirigé la sortie vers un
fichier appelé, par exemple,
ma-clé.asc (sans l'ajout de >
ma-clé.asc, la clé aurait été
affichée comme sortie standard à l'écran).
A présent, vous pouvez insérer le fichier
ma-clé.asc dans un message
électronique ou l'exporter vers un serveur de clés.
Pour voir la clé, tapez less
ma-clé.asc afin d'ouvrir le fichier dans un pager
(tapez Q pour quitter le pager). Le résultat
serait semblable à ceci :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDkHP3URBACkWGsYh43pkXU9wj/X1G67K8/DSrl85r7dNtHNfLL/ewil10k2
q8saWJn26QZPsDVqdUJMOdHfJ6kQTAt9NzQbgcVrxLYNfgeBsvkHF/POtnYcZRgL
tZ6syBBWs8JB4xt5V09iJSGAMPUQE8Jpdn2aRXPApdoDw179LM8Rq6r+gwCg5ZZa
pGNlkgFu24WM5wC1zg4QTbMD/3MJCSxfL99Ek5HXcB3yhj+o0LmIrGAVBgoWdrRd
BIGjQQFhV1NSwC8YhN/4nGHWpaTxgEtnb4CI1wI/G3DK9olYMyRJinkGJ6XYfP3b
cCQmqATDF5ugIAmdditnw7deXqn/eavaMxRXJM/RQSgJJyVpbAO2OqKe6L6Inb5H
kjcZA/9obTm499dDMRQ/CNR92fA5pr0zriy/ziLUow+cqI59nt+bEb9nY1mfmUN6
SW0jCH+pIQH5lerV+EookyOyq3ocUdjeRYF/d2jl9xmeSyL2H3tDvnuE6vgqFU/N
sdvby4B2Iku7S/h06W6GPQAe+pzdyX9vS+Pnf8osu7W3j60WprQkUGF1bCBHYWxs
YWdoZXIgPHBhdWxnYWxsQHJlZGhhdC5jb20+iFYEExECABYFAjkHP3UECwoEAwMV
AwIDFgIBAheAAAoJEJECmvGCPSWpMjQAoNF2zvRgdR/8or9pBhu95zeSnkb7AKCm
/uXVS0a5KoN7J61/1vEwx11poLkBDQQ5Bz+MEAQA8ztcWRJjW8cHCgLaE402jyqQ
37gDT/n4VS66nU+YItzDFScVmgMuFRzhibLblfO9TpZzxEbSF3T6p9hLLnHCQ1bD
HRsKfh0eJYMMqB3+HyUpNeqCMEEd9AnWD9P4rQtO7Pes38sV0lX0OSvsTyMG9wEB
vSNZk+Rl+phA55r1s8cAAwUEAJjqazvk0bgFrw1OGO9m7fEeDlvPSV6HSA0fvz4w
c7ckfpuxg/URQNf3TJA00Acprk8Gg8J2CtebAyR/sP5IsrK5l1luGdk+l0M85FpT
/cen2OdJtToAF/6fGnIkeCeP1O5aWTbDgdAUHBRykpdWU3GJ7NS6923fVg5khQWg
uwrAiEYEGBECAAYFAjkHP4wACgkQkQKa8YI9JamliwCfXox/HjlorMKnQRJkeBcZ
iLyPH1QAoI33Ft/0HBqLtqdtP4vWYQRbibjW
=BMEc
-----END PGP PUBLIC KEY BLOCK-----
|
Si vous n'avez que quelques correspondants, vous pouvez exporter
votre clé publique et la leur envoyer personnellement. En
revanche, si vous correspondez avec de nombreuses personnes, la
distribution de votre clé risque de prendre du temps. C'est
là qu'interviennent les serveurs de clés.
Un serveur de clés est un site Internet où vous
pouvez déposer votre clé publique et à partir
duquel vous pouvez la distribuer à qui la demande. Il existe
de nombreux serveurs de clés qui, pour la plupart, essaient
de coordonner leur activité ; envoyer votre clé
à l'un d'eux équivaut à la distribuer à
tous. Il ne restera plus à votre correspondant qu'à
demander votre clé publique à un serveur de
clés, puis à l'importer vers son
porte-clés (le porte-clés est
un fichier dans lequel sont conservées les clés
publiques et secrètes).
 | Quel serveur de clés utiliser ? |
|---|
| | Du fait que la plupart des serveurs de clés s'efforcent de
coordonner leur activité, l'envoi de votre clé
publique à un seul d'entre eux équivaut à
l'envoyer à tous. Vous pouvez cependant en localiser
plusieurs. Un bon endroit pour rechercher des serveurs de
clés et autres informations est
Keyserver.Net, à l'adresse
http://www.keyserver.net ;
vous pouvez également consulter les Robert's
Crypto & PGP Links: Keyservers , à
l'adresse
http://crypto.yashy.com/www/Keyservers/.
|
Vous pouvez envoyer votre clé publique depuis l'invite du
shell ou depuis votre navigateur (comme à la
Figure 13-1) ; évidemment,
vous devez être en ligne pour pouvoir envoyer ou recevoir des
clés d'un serveur de clés.
A l'invite du shell, tapez ce qui suit :
gpg --keyserver search.keyserver.net --send-key
vous@votre-fournisseur.net
|
Dans votre navigateur, connectez-vous à Keyserver.Net
(http://www.keyserver.net),
puis sélectionnez l'option vous permettant d'ajouter
votre propre clé publique
PGP.
Votre nouvelle tâche consiste à couper et coller
votre clé publique dans la zone appropriée de la
page Web. Voici comment procéder :
Ouvrez votre fichier de clé publique exporté
(par exemple, ma-clé.asc,
créé à la
la section intitulée Exportation de votre clé publique) à l'aide d'un
pager, par exemple,
less ma-clé.asc
A l'aide de la souris, copiez le fichier en mettant en
surbrillance toutes les lignes depuis BEGIN
PGP jusqu'à
END PGP (voir la
Figure 13-2).
Collez le contenu du fichier
ma-clé.asc dans la zone
appropriée de la page de Keyserver.Net en cliquant
avec le bouton du milieu de votre souris (ou bien avec les
deux boutons si vous avez une souris à deux
boutons). Cliquez ensuite sur le bouton
Submit de la page du serveur de
clés (si vous commettez une erreur, cliquez sur le
bouton Reset de la page afin
d'effacer la clé que vous avez collée).
Notez que si vous soumettez votre clé à un autre
serveur de clés de type Web, la transaction ci-dessus sera
essentiellement la même.
Voilà. Que vous utilisiez l'invite du shell ou le Web, vous
verrez s'afficher un message vous informant que la soumission de
votre clé a réussi, soit dans la fenêtre Xterm,
soit sur le site Web du serveur de clés. Désormais,
tous les utilisateurs qui souhaitent communiquer avec vous en toute
sécurité peuvent importer
votre clé publique et l'ajouter à leur
porte-clés.
L'autre opération impliquée par l'échange de
clés (l'importation des clés publiques d'autres
utilisateurs vers votre porte-clés) est aussi simple que
l'opération d'exportation. Lorsque vous importez la
clé publique de quelqu'un, vous pouvez décrypter ses
messages et vérifier sa signature numérique par rapport
à la clé publique correspondante de votre
porte-clés.
L'une des manières les plus simples d'importer une clé
consiste à la télécharger ou à
l'enregistrer à partir d'un site Web (comme pour
l'enregistrement de la clé de Red Hat, à la
la section intitulée Importation de clés dans Chapitre 12).
Après avoir téléchargé une clé,
utilisez la commande --import pour l'ajouter
à votre porte-clés.
Une autre manière d'enregistrer une clé consiste
à utiliser la fonction d'un navigateur. Si vous utilisez un navigateur tel
que Navigator et localisez une clé
sur un serveur de clés, vous pouvez enregistrer la page comme
un fichier texte ( =>
). Dans la zone
déroulante permettant de choisir le format du
document à enregistrer, sélectionnez
Fichier texte. Ensuite, vous pouvez l'importer
pour autant que vous vous rappeliez du nom du fichier
enregistré. Par exemple, imaginons que vous veniez
d'enregistrer une clé comme fichier texte appelé
nouvelle-clé.txt . Pour importer le
fichier, à l'invite du shell, tapez :
[newuser@localhost newuser]$ gpg --import
nouvelle-clé.txt
gpg: key F78FFE84: public key imported
gpg: Total number processed: 1
gpg: imported: 1
[newuser@localhost newuser]$
|
Pour vérifier si le processus a abouti, utilisez la commande
--list-keys à l'invite, comme dans
gpg --list-keys ; la nouvelle clé
importée devrait être accrochée à votre
porte-clés.
Les signatures numériques sont
similaires aux signatures ou tampons que vous pourriez placer sur un
document tel qu'un message électronique.
A la différence du courrier traditionnel, où quelqu'un
peut toujours tenter d'imiter votre signature manuscrite, il est
impossible de falsifier une signature numérique. Ceci
résulte du fait que la signature est
générée à l'aide de votre clé
secrète unique et peut être vérifiée par
le destinataire à l'aide de votre clé publique.
Une signature numérique date un
document ; cela signifie essentiellement que l'heure à
laquelle vous avez signé le document fait partie de la
signature. Ainsi, si quelqu'un tente de modifier le document, la
vérification de la signature échoue. Certaines
applications de courrier électronique, telles que
Exmh ou KMail
de KDE, permettent de signer des documents à l'aide de
GnuPG intégré à
l'interface de l'application.
Les deux types de signatures numériques possibles sont les
documents clairement signés et les
signatures détachées. Les deux
solutions offrent, techniquement, la même
sécurité quant à l'authenticité du
message, sans que le destinataire doive décrypter le message
tout entier.
Dans le cas d'un message clairement signé, votre signature
apparaît comme un bloc de texte dans le cadre de votre
lettre ; en revanche, une signature détachée est
envoyée comme fichier séparé avec votre
correspondance (c'est-à-dire
détachée de votre message).
La technologie du cryptage est trop complexe pour que nous puissions
prétendre avoir épuisé le sujet avec cette
présentation de GPG. Voici quelques
ressources qui vous permettront de compléter ces
informations :
Sites Web :
GnuPG : la page
http://www.gnupg.org
contient des liens pointant sur les versions les plus
récentes de GPG, un manuel
utilisateur exhaustif et d'autres ressources en
matière de cryptage.
Un didacticiel sur le cryptage, de
Webmonkey : la page
http://hotwired.lycos.com/webmonkey/backend/security/tutorials/tutorial1.html
vous en dit plus sur le cryptage et la manière
d'appliquer les techniques de cryptage.
The Electronic Frontier Foundation, document intitulé
"Privacy, Security, Crypto, &
Surveillance" :
http://www.eff.org/pub/Privacy.
Livres :
The Official PGP User's Guide,
de Philip R. Zimmermann ; MIT Press, 1995
PGP : Pretty Good Privacy,
de Simson Garfinkel ; O'Reilly & Associates, 1994
Sécurité du courrier
électronique : How to Keep Your Electronic
Messages Private, de Bruce Schneier ;
John Wiley & Sons, 1995