Vérification de la "signature" d'un paquetage

Grâce à la technologie RPM, il est facile d'installer rapidement des applications ; et si ce que vous avez installé ne vous plaît pas, vous pouvez aisément supprimer des applications de votre système.

Mais il ne faudrait pas déduire de cette facilité d'emploi que RPM est peu sûr. En effet, RPM collabore avec Gnu Privacy Guard (également appelé GnuPG) pour garantir la "fiabilité" du paquetage téléchargé.

Imaginons que vous avez téléchargé le paquetage coolapp-1.1.rpm. Pour vérifier rapidement l'intégrité du fichier, tapez

rpm -K coolapp-1.1-1.rpm
		  

Le système affiche immédiatement le message coolapp-1.1-1.rpm: md5 OK. Ce court message signifie que le fichier n'a pas été endommagé par le téléchargement.

C'est évidemment très bien mais quelle est la fiabilité du développeur ? Le connaissez-vous vraiment ? Si le paquetage est signé à l'aide de la clé GnuPG du développeur, vous savez au moins que le développeur est bien celui qu'il prétend être.

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. Avec GnuPG, vous pouvez authentifier la validité de documents, crypter et décrypter des données à destination ou en provenance de vos correspondants. Cet outil peut également décrypter et vérifier des fichiers PGP 5.x.

Durant l'installation de Red Hat Linux, GnuPG est installé par défaut. Après avoir consulté la présentation de GnuPG ci-dessous, vous serez en mesure de vérifier les clés d'un développeur.

GnuPG utilise l'échange de clé publique comme forme de cryptographie. Lorsque vous vérifiez la clé d'un propriétaire, vous pouvez être certain que ce dernier est bien celui qu'il prétend être. Dans la cryptographie à clé publique, les utilisateurs créent une paire de clés, composée d'une clé publique et d'une clé privée.

Si vous pouvez distribuer votre clé publique à des correspondants ou à des serveurs de clés publics (sites en ligne où les utilisateurs peuvent déposer leur clés publiques), ne divulguez jamais votre clé privée à qui que ce soit.

Génération d'une nouvelle paire de clés

Pour utiliser GnuPG, vous devez tout d'abord générer une nouvelle paire de clés : vos clés publique et privée. Vous pouvez le faire à l'aide de l'option --gen-key à l'invite du shell.

ImportantNe divulguez pas votre clé privée
 

Rappel : si vous pouvez communiquer votre clé publique à toute personne avec laquelle vous voulez communiquer de façon sécurisée, vous ne devez jamais révéler votre clé privée.

Dans une fenêtre Xterm, entrez gpg --gen-key. Etant donné que vous travaillez généralement avec votre compte utilisateur, c'est là que vous devrez le faire plutôt qu'en tant que root. Un écran d'introduction s'affiche, contenant des options de clé, y compris une option recommandée (option par défaut), similaire à celle ci-dessous :

gpg (GnuPG) 1.0.1; Copyright (C) 1999 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)
   (4) ElGamal (sign and encrypt)
Your selection?
		  

La plupart des écrans dans lesquels vous devez sélectionner une option proposent, entre parenthèses, l'option par défaut. A moins d'avoir une excellente raison de ne pas le faire, vous pouvez accepter les options par défaut en appuyant simplement sur Entrée.

Dans le premier écran, nous vous conseillons d'accepter l'option par défaut : (1) DSA and ElGamal. Cette option vous permet de créer une signature numérique et de crypter et décrypter à l'aide de deux types de technologies. Tapez 1, puis appuyez sur Entrée.

Ensuite, sélectionnez key size, c'est-à-dire la longueur de la clé, exprimée en bits. Généralement, plus la clé est longue, mieux elle résiste aux attaques. La taille par défaut, qui est de 1024 bits, devrait convenir à la plupart des utilisateurs ; appuyez sur Entrée.

L'option suivante vous demande de spécifier la durée de validité de votre clé. Habituellement, la valeur par défaut (0 = key does not expire) convient parfaitement. Si vous tenez néanmoins à sélectionner une date d'expiration, songez que toute personne avec qui vous aurez échangé votre clé publique devra également être informée de cette expiration, et recevoir votre nouvelle clé publique.

Vous devez ensuite fournir un ID utilisateur composé de vos nom et adresse électronique et d'un commentaire éventuel. Cela fait, un récapitulatif des informations entrées s'affiche.

Après avoir confirmé vos choix, vous devez entrer une phrase de passe, sorte de mot de passe qui permettra de vous valider en tant que propriétaire de vos nouvelles clés.

TuyauChoisissez une phrase de passe sûre
 

A l'instar d'un mot de passe de compte, il est essentiel de choisir une bonne phrase afin d'assurer une sécurité optimale dans GnuPG. Par exemple, il est conseillé d'utiliser une combinaison de lettres majuscules et minuscules, de chiffres et de signes de ponctuation.

Une fois votre phrase de passe entrée et confirmée, vos clés sont générées. Un message similaire à celui ci-dessous s'affiche :

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

Lorsque l'activité à l'écran cesse, les nouvelles clés sont générées et placées dans le répertoire .gnupg. Pour afficher les clés, utilisez la commande gpg --list-keys ; un message similaire à celui ci-dessous s'affiche :

[newuser@localhost newuser]$ gpg --list-keys
/home/newuser/.gnupg/pubring.gpg
-----------------------------------------
pub  1024D/B7085C8A 2000-04-18 Votre nom
<vous@votreisp.net>
sub  1024g/E12AF9C4 2000-04-18
	

Echange de clés

Une fois votre paire de clés créée, vous pouvez échanger votre clé publique avec les personnes de votre choix. Pour ce faire, exportez votre clé publique et importez les clés publiques de vos correspondants.

Exportation de clés

Pour exporter votre clé afin de pouvoir l'envoyer par courrier électronique ou la coller dans une page Web, utilisez la commande suivante :

gpg --armor --export vous@votre-fournisseur.net
	

Le résultat qui s'affiche ressemble à ceci :

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDj8sFIRBACoyF4UucTkkuDV/KIW/kCbyzAx18OKXosVJkn4Sb/zhc/IVxoE
e/idTkzB292CUvN4KGFxCXyE0nKG/Vjc2lHwepsN41IcYQTVXUL0raITYYxyOHQe
7BJfjW0cYB/tyJLurr+iOB8JFs4HdZcCQzR9aufqcN4ErCVorrAM8k0y5wCggM9G
+Qcr32lplMKXxgf6NLj1O2oCMUwECYrrUTbxE82aZAFuJj55O/QNyv0eWXWeJvzf
oPLBTaxQDp4MaYZUc5qwgxY6sxz9gBUqAJRNUbg2U5lK5A4emNYVRh4tRs6etpaH
+SQpA/4qRhKRHyTRK8CmGRPg9zfMkCVDHFjvA2cDXeN0Rz1Qd3WWWEGg3ytz4Omv
sYkzMAh0988HMzxWCRKXVPJoNjGHXnyvt44eb5oFE6u/b+RDcNu5FL7V7snXfOfp
GhF+YNq74tt9YFlOEjvQMRKcBXjU6NnZ1pWK7fPs8W1tF2Nzo7Q1UGF1bCBHYWxs
YWdoZXIgKHd3dy5yZWRoYXQuY29tKSA8cGF1bGdhbGxAcmVkaGF0LmNvbT6IVgQT
=NYlu
-----END PGP PUBLIC KEY BLOCK-----
	

TuyauEnregistrez la sortie
 

Vous pouvez enregistrer le bloc de clé publique en redirigeant la sortie vers un fichier. Cela vous permet ensuite d'insérer le fichier dans un courrier électronique ou de le copier et de le coller dans une page Web. Pour rediriger la sortie vers un fichier appelé ma-clé.txt dans votre répertoire /home, ajoutez > ma-clé.txt à la commande :

gpg --armor --export vous@votre-fournisseur.net > ma-clé.txt

Vous pouvez ensuite insérer le fichier ma-clé.txt dans un message à chaque fois que vous voulez envoyer votre clé à quelqu'un.

Importation de clés

Lorsque vous importez la clé publique de quelqu'un, vous l'ajoutez à votre porte-clés. Ensuite, lorsque vous téléchargez un document ou un fichier de ce correspondant, vous pouvez vérifier la validité de ce document par rapport à la clé que vous avez ajoutée à votre porte-clés.

Pour importer une clé, utilisez l'option --import. Pour illustrer notre propos, nous allons télécharger et importer la clé publique de Red Hat. Ainsi, chaque fois que vous voudrez valider un paquetage de Red Hat, vous pourrez contrôler sa signature par rapport à la clé récupérée.

La clé de Red Hat est disponible à l'adresse http://www.redhat.com/about/contact.html. Depuis votre navigateur, vous pouvez télécharger la clé en appuyant sur la touche Maj tout en cliquant sur le lien de téléchargement, puis en cliquant sur le bouton OK pour enregistrer le fichier (par exemple, redhat2.asc). A l'invite du shell, importez la clé à l'aide de la commande suivante :

gpg --import redhat2.asc	    
	  

Le message qui en résulte indique que la clé a été traitée ("processed"). Pour vérifier si la clé a été ajoutée, tapez gpg --list-keys. Vous verrez s'afficher la clé que vous venez de télécharger sur le site de Red Hat, de même que vos propres clés.


[newuser@localhost newuser]$ gpg --list-keys
/home/newuser/.gnupg/pubring.gpg
-----------------------------------------
pub  1024D/DB42A60E 1999-09-23 Red Hat, Inc <security@redhat.com>
sub  2048g/961630A2 1999-09-23
	

TuyauLes clés ne doivent pas nécessairement être des liens
 

Il est parfois impossible de télécharger une clé comme un lien ; vous pouvez enregistrer n'importe quelle clé comme fichier texte. Tant que vous connaissez le nom et l'emplacement du fichier enregistré, vous pouvez l'importer vers votre porte-clés.

Vérification des paquetages

La commande permettant de vérifier un paquetage téléchargé (rpm --K nom de fichier) suit la même procédure que celle utilisée avant la génération de vos clés GnuPG et l'ajout de la clé de Red Hat. Une fois la clé de Red Hat ajoutée à votre porte-clés, le message qui s'affiche est légèrement différent : md5 gpg OK. Cela signifie que le paquetage n'a pas été corrompu et que vous pouvez faire confiance à son auteur, à savoir Red Hat.

A partir d'ici

Il y aurait naturellement beaucoup plus à dire sur GnuPG (et la technologie de cryptage). En fait, le volume d'informations existantes dépasse largement la portée de ce guide. En revanche, vous pouvez vous initier à des concepts tels que la gestion de clés, l' importation et l' exportation de clés, en vous reportant au Chapitre 13.