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
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
Pour rejeter tout paquet ou dépôt non signé:
SigLevel = Required TrustedOnly
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
keyserver hkp://pgp.mit.edu
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>
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
- Proposition de signature de paquet pour pacman (en)
- Signature de paquet avec pacman (en)
- Blog d'Allan McRae (en): [1], [2], [3] et [4]