Chapitre 13. Utilisation de GnuPG

Utilisation de GnuPG

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.

TuyauAutres 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.

G�n�ration d'une paire de cl�s

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�:

gpg --gen-key
		  

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�!

ImportantPoint 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 2000-04-18 Your Name <you@yourisp.net>
sub  1024g/E12AF9C4 2000-04-18
	

G�n�ration d'un certificat de r�vocation

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.

NotePourquoi "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 2000-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 2000-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).

Exportation de votre cl� publique

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-----
	

Exportation vers un serveur de cl�s

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.

Figure 13-1. Page d'accueil de Keyserver.Net

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).

TuyauQuel 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).

Figure 13-2. Copie de votre cl� publique

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.

Importation d'une cl� publique

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 Enregistrer sous... 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 (Fichier => Enregistrer sous...). 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.

Que sont les signatures num�riques�?

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).

Sources d'informations compl�mentaires

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�:

  • 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