follow me !

Documentations -- Applications

Sécurisation de l'installation de paquets à l'aide des signatures GPG

Sécurisation de l'installation de paquets à l'aide des signatures GPG

Edi Stojicevic

Ce document est publié sous la licence GNU FDL

Historique des versions
Version 0.12005ES
Première version

Si vous utilisez une Debian Unstable, vous avez certainement remarqué que l'installation et la mise à jour de paquets demande une confirmation et affiche un avertissement concernant la vérification des paquets. Ceci est dû à la nouvelle version d'APT qui supporte maintenant la signature des paquets à l'aide de GPG.

GNU Privacy Guard est un logiciel connu pour le cryptage à l'aide de clefs publiques qui permet de signer des fichiers et de les crypter également. Ces signatures permettent de détecter la falsification de fichiers, suite à des actions illégales ou à des erreurs réseaux, comme le font MD5 et SHA-1.

Cette modification a mis du temps à arriver depuis son annonce en 2004.

Les versions les plus récentes du paquet apt supporte la vérification de tous les paquets téléchargés pour vérifier que leur signature soit valide. Cette fonctionnalité est rééllement utile afin de certifier que les paquets téléchargés ne sont pas de faux paquets qui pourraient dissimuler des chevaux de Troie par exemple.

Voici ce que vous observerez si vous êtes en Unstable lors de l'installation d'un paquet ou d'une mise à jour :

root@eden# apt-get install pyzor 
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  python-gdbm python2.3-gdbm
The following NEW packages will be installed:
  python-gdbm python2.3-gdbm pyzor
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 69.1kB of archives.
After unpacking 229kB of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
  python2.3-gdbm python-gdbm pyzor
Install these packages without verification [y/N]? y
		

Vous disposez de plusieurs choix lors de l'installation :

  • Accepter et procéder à l'installation des paquets sans la vérification.

  • Installer la clef appropriée pour être sûr de la provenance des paquets.

Si vous ne vous soucier pas de la validation des signatures des paquets à installer, vous pouvez répondre "y" pour ignorer l'avertissement ou utiliser une des nouvelles options :
			root@eden# apt-get --allow-unauthenticated  install packagename
		

Si vous ne désirez pas ajouter cette option chaque fois que vous installez un nouveau paquet, vous pouvez ajouter ceci dans le fichier /etc/apt/apt.conf (il faut créer le fichier si celui-ci n'existe pas) :

			APT::Get::AllowUnauthenticated 1 ;
		

Si vous ne voulez pas courir de risque quant à l'installation de paquets suspect, vous devez disposer de deux choses :

  • Le paquet gnupg d'installé

  • La clef publique qui validera l'installation des paquets

L'installation du logiciel se fait ainsi :

			root@eden# apt-get install gnupg
		

Une fois l'installation terminée, vous pouvez télécharger la clef publique en faisant :

			root@eden# gpg --keyserver keyring.debian.org --recv 4F368D5D
			gpg: directory `/root/.gnupg' created
			gpg: new configuration file `/root/.gnupg/gpg.conf' created
			gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
			gpg: keyring `/root/.gnupg/secring.gpg' created
			gpg: keyring `/root/.gnupg/pubring.gpg' created
			gpg: requesting key 4F368D5D from hkp server keyring.debian.org
			gpg: /root/.gnupg/trustdb.gpg: trustdb created
			gpg: key 4F368D5D: public key "Debian Archive Automatic Signing Key (2005) ftpmaster@debian.org" imported
			gpg: no ultimately trusted keys found
			gpg: Total number processed: 1
			gpg:               imported: 1
		

Une fois la clef publique importée, APT l'utilisera lors de l'installation des paquets et sera totalement transparent pour l'utilisateur comme vous pouvez le remarquer dans l'exemple suivant :

			root@eden# apt-get install tcpflow
			Reading package lists... Done
			Building dependency tree... Done
			The following extra packages will be installed:
			  libpcap0.7
			Suggested packages:
			  tcpdump
			The following NEW packages will be installed:
			  libpcap0.7 tcpflow
			0 upgraded, 2 newly installed, 0 to remove and 5 not upgraded.
			Need to get 93.2kB of archives.
			After unpacking 287kB of additional disk space will be used.
			Do you want to continue [Y/n]? 
			Get:1 http://http.us.debian.org unstable/main libpcap0.7 0.7.2-7 [69.8kB]
			Get:2 http://http.us.debian.org unstable/main tcpflow 0.21-6 [23.5kB]
			Fetched 93.2kB in 2s (39.7kB/s) 
			Selecting previously deselected package libpcap0.7.
			(Reading database ... 69624 files and directories currently installed.)
			Unpacking libpcap0.7 (from .../libpcap0.7_0.7.2-7_i386.deb) ...
			Selecting previously deselected package tcpflow.
			Unpacking tcpflow (from .../tcpflow_0.21-6_i386.deb) ...
			Setting up libpcap0.7 (0.7.2-7) ...
			
			Setting up tcpflow (0.21-6) ...