pacman-key

De ArchwikiFR.


pacman-key est un outil fourni avec pacman à partir de la version 4. Il permet à l'utilisateur de gérer la liste des clés de confiance.

Sommaire

Aperçu

  • Une clé PGP permet à chaque développeur de signer leurs paquets assurant ainsi leurs sources.
  • Une empreinte de clé (fingerprint) est une version courte de la clé.
    • Une fingerprint de la forme "6645 B0A8 C700 5E78 DB1D 7864 F99F FE0F EAE9 99BD" doit être compressée en "6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD" (espaces supprimés)
    • Le "0x" au début est optionnel.
  • Les servers de clés PGP contiennent les fichiers correspondant aux clés et vous permettent de rechercher une clé en se basant sur les fingerprints.
  • pgp.mit.edu est un serveur utilisé par une majorité de développeurs Archlinux.

Pour être sûr d'un paquet, il faut une chaîne de confiance des signatures depuis votre propre clé PGP jusqu'au paquet lui-même. Sous Arch, cela se décline de trois manières:

  • paquets personnalisés: votre propre paquet signé ou pas avec votre propre clé.
  • paquets non officiels: un développeur a fait le paquet et l'a signé. Vous utilisez votre propre clé pour signer celle du développeur.
  • paquets officiels: un développeur a fait le paquet et l'a signé. La clé du développeur a été signée par 3 clés principales d'Arch Linux (master keys). Vous utilisez votre clé pour signer les clés principales et en leur faisant confiance, ils vous garantissent l'authenticité des clés des développeurs.

Configuration

Il faut d'abord créer une clé et un dossier de stockage:

pacman-key --init
Note: Cette étape peut vous indiquer que le système a besoin de davantage d'entropie pour achever le processus (en vue de récupèrer des éléments aléatoires pour générer votre clé): il vous suffit de bouger la souris, taper des touches du clavier, lancer des processus en parallèle...

La gestion des signatures se configure à l'aide de la directive SigLevel dans /etc/pacman.conf. Consulter man pacman pour plus de détails.

La directive peut se configurer soit en globale en la plaçant dans la section [options], soit par dépôt en la plaçant dans la section du dépôt à configurer.

La syntaxe est (man pacman.conf):

SigLevel = <quand vérifier> [à qui faire confiance]

Par exemple, pour désactiver la vérification:

SigLevel = Never

L'option par défaut vérifie les signatures lorsqu'elles existent (l'absence de signature n'est pas considérée comme une erreur):

SigLevel = Optional TrustedOnly

Cette configuration demande d'avoir importé la liste des clés de confiance.

Si vous voulez faire confiance à toute clé rencontrée:

SigLevel = Optional TrustAll
Attention: L'option TrustAll existe uniquement à des fins de debug en accordant la confiance à des clés non vérifiées. Pour les dépôts officiels, vous devriez utiliser TrustedOnly.

Pour rejeter tout paquet ou dépôt non signé:

SigLevel = Required TrustedOnly
Note: Pour l'option Required, la signature des bases de données étant encore à mettre en place à l'heure actuelle, il vous faudra utiliser pour installer de nouveaux paquets:
SigLevel = Required DatabaseOptional TrustedOnly

Pour le moment, attention également car les paquets plus anciens ne peuvent être installés avec cette option car ils ne sont pas signés.

Gestion du trousseau

Ajout de clés

Vous pouvez rajouter une clé en téléchargant son fichier puis:

pacman-key -a fichier_de_la_cle

La page des développeurs contient les fingerprints des clés des développeurs et la page des utilisateurs de confiance celles des TUs, vous pouvez importer une clé en vous basant sur le fingerprint:

pacman-key -r <fingerprint> --keyserver pgp.mit.edu
Astuce: Vous pouvez modifier le serveur d'où importer les clés en modifiant le fichier /etc/pacman.d/gnupg/gpg.conf :
keyserver hkp://pgp.mit.edu
Note: En installant les clés principales, pacman récupérera et vérifiera au fur et à mesure celles des développeurs et utilisateurs de confiance d'Arch. Nul besoin de les ajouter manuellement. En outre, il est inutile de signer ces clefs ou de leur accorder un niveau de confiance (cela passe par les clés principales et la votre).

Pour lister les clés rajoutées:

pacman-key -l

Ce qui précède rajoute les clés sans pour autant fixer le niveau de confiance.

Signature de clés

Pour que la vérification des signatures fonctionne, il faut modifier les niveaux de confiance des clés importées. Pour cela, il faut signer les clés:

pacman-key --edit-key <fingerprint>

Il suffira de taper tsign et répondre aux différentes questions pour définir le niveau de confiance.

Si vous ne voulez pas signer les clés, indiquez Required dans SigLevel

Clés principales

Il en existe 5 pour Arch Linux qui sont utilisés pour signer les clés des développeurs et des utilisateurs de confiance (Trusted Users, TUs). Ces clés devraient faire partie de votre trousseau car elles permettront de vérifier l'authenticité des clés des différents paquets officiels. Pour les installer, il faut récupèrer leurs identifiants (indiqués par la colonne «Master Key») depuis cette page:

pacman-key -r <keyid> <keyid> <keyid> <keyid> <keyid>

Vous devrez ensuite signer localement ces clés et modifier leur niveau de confiance au moins à «marginal»:

pacman-key --edit-key <keyid> <keyid> <keyid> <keyid> <keyid>
Important: Avant de signer ou d'accorder votre confiance à une clé, vous devez vérifier son empreinte par vous-même. La plus sûre des méthodes est de ne pas passer par un ordinateur, mais, par exemple, «de payer une bière à Allan McRae et de lui demander en personne la valeur de l'empreinte de sa clé publique» (tiré du wiki anglophone ^^). Dans la pratique, il est acceptable de vérifier cette empreinte par différentes sources ( la page d'où vous avez retiré les "master keys", le propre blog d'Allan, etc. ).
gpg> lsign
...
 Empreinte de la clé principale: ...
...
Signer réellement ? (o/N) o
gpg> trust
...
  1 = ne sais pas ou ne dirai pas
  2 = je ne fais PAS confiance
  3 = je crois marginalement
  4 = je fais entuèrement confiance
  5 = je donne une confiance ultime
  m = retour au menu principal
Votre decision? 3
gpg> save

Ceci sera à répéter pour chaque clé principale. Puis :

gpg> q
Enregistrer les changements? (o/N) o

Remise à zéro

Si, pour une raison ou une autre, vous désirez supprimer toutes les clés installées et repartir sur du neuf:

rm -rf /etc/pacman.d/gnupg
pacman-key --init

Liens

Outils personnels
Autres langues