Carte à puce OpenPGP avec GnuPG sur Fedora#

Note

Les instructions suivantes exigent que la Nitrokey 3 ait au moins la version du micrologiciel 1.4.0 installée. Veuillez vous reporter à firmware update pour savoir comment le mettre à jour.

La prise en charge de la carte à puce GnuPG nécessite scdaemon. Dans Fedora, scdaemon fait partie du paquetage GnuPG.

Note

Le scdaemon ** est installé dans /usr/libexec/scdaemon. Ce chemin ne fait généralement pas partie de la variable d’environnement PATH.

Le projet GnuPG prend en charge deux configurations d’interface avec une carte à puce OpenPGP.

  1. GnuPG (scdaemon avec pilote CCID) → Carte à puce (par exemple Nitrokey)

    Dans cette configuration, le scdaemon ** communique directement avec la Nitrokey avec son pilote CCID interne et libusb. Les règles Udev doivent être définies, car le scdaemon ** s’exécute dans l’espace utilisateur avec les autorisations de l’utilisateur connecté.

  2. GnuPG (scdaemon avec la bibliothèque PCSC) → pcscd → carte à puce (par exemple Nitrokey)

    Dans cette configuration, scdaemon communique avec pcscd, qui communique ensuite avec la Nitrokey.

Sur Fedora, seule la deuxième configuration est supportée, car la configuration du paquetage GnuPG définit le pilote CCID comme désactivé et le support pcsc comme requis. La configuration correspondante se trouve dans le fichier spec ici et ici.

Dépannage#

La dernière version de Fedora 38 devrait fonctionner sans problème après l’installation. Les versions mises à jour de Fedora peuvent présenter des conflits de configuration et doivent être vérifiées comme indiqué ci-dessous. Fedora Silverblue a été signalé comme ayant des problèmes avec GnuPG et les cartes à puce. Les instructions ci-dessous ne s’appliquent qu’aux éditions Fedora Workstation et Fedora Server.

La configuration correcte d’une installation peut être vérifiée en demandant des informations sur la Nitrokey avec gpg --card-status.

Vérifier la reconnaissance#

Vérifiez avec la commande lsusb que la Nitrokey est reconnue. La sortie devrait donner la liste des Nitrokey, par exemple Bus 001 Device 002 : ID 20a0:42b2 Clay Logic Nitrokey 3.

Vérifier la configuration du système#

  1. Assurez-vous que le paquet pcscd est installé avec dnf install pcsc-lite. De plus, le service systemd et le socket doivent être activés et démarrés avec systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. Le scdaemon ** a besoin de la bibliothèque libpcsclite pour se connecter à pcscd. Le chemin d’accès à la bibliothèque pcsc peut être défini explicitement avec echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. La bibliothèque peut également être rendue disponible par un lien symbolique comme suit : ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Assurez-vous que le fichier ~/.gnupg/scdaemon.conf ne contient pas de paramètres conflictuels.

  3. Le scdaemon ** attend par défaut un accès exclusif à pcscd, afin d’éviter les problèmes potentiels liés aux modifications simultanées des informations sur la carte. L’accès échoue si d’autres clients, généralement des navigateurs web, accèdent à la carte, même si ce n’est que pour la lire. L’accès partagé peut être activé avec echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (dans GnuPG version 2.2.28 ou supérieure).