Card inteligent OpenPGP cu GnuPG pe Fedora

Notă

Următoarele instrucțiuni necesită ca Nitrokey 3 să aibă instalată cel puțin versiunea de firmware 1.4.0. Vă rugăm să consultați firmware update pentru a afla cum să îl actualizați.

Suportul pentru cardul inteligent GnuPG necesită scdaemon. În Fedora, scdaemon face parte din pachetul GnuPG.

Notă

scdaemon este instalat în /usr/libexec/scdaemon. De obicei, această cale nu face parte din variabila de mediu PATH.

Proiectul GnuPG suportă două configurații de interfațare cu o cartelă inteligentă OpenPGP.

  1. GnuPG (scdaemon cu driver CCID) → Smartcard (de exemplu, Nitrokey)

    În această configurație, scdaemon comunică direct cu Nitrokey cu driverul său intern CCID și libusb. Este necesar ca regulile Udev să fie setate, deoarece scdaemon rulează în spațiul utilizatorului cu permisiunile utilizatorului conectat.

  2. GnuPG (scdaemon cu biblioteca PCSC) → pcscd → Smartcard (de exemplu, Nitrokey)

    În această configurație, scdaemon comunică cu pcscd, care apoi comunică cu Nitrokey.

Pe Fedora este acceptată doar cea de-a doua configurație, deoarece configurația pachetului GnuPG definește driverul CCID ca fiind dezactivat și suportul pcsc ca fiind necesar. Configurația relevantă poate fi găsită în fișierul de specificații aici și aici.

Depanare

Cea mai recentă versiune Fedora 38 ar trebui să funcționeze fără probleme după instalare. Versiunile actualizate ale Fedora ar putea avea o configurație conflictuală și ar trebui să fie verificate după cum urmează. S-a raportat că Fedora Silverblue a avut probleme cu GnuPG și smartcards. Instrucțiunile de mai jos se aplică numai la edițiile Fedora Workstation și Fedora Server.

Configurația corectă a unei configurații poate fi verificată prin interogarea informațiilor despre Nitrokey cu gpg --card-status.

Verificați recunoașterea

Verificați cu ajutorul comenzii lsusb dacă Nitrokey este recunoscut. La ieșire ar trebui să apară o listă a Nitrokey, de exemplu Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Verificați configurația sistemului

  1. Asigurați-vă că pachetul pcscd este instalat împreună cu dnf install pcsc-lite. În plus, serviciul systemd și socket-ul trebuie să fie activate și pornite cu systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. scdaemon are nevoie de biblioteca libpcsclite pentru a se conecta la pcscd. Calea de acces la biblioteca pcsc poate fi setată în mod explicit cu echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternativ, biblioteca poate fi, de asemenea, pusă la dispoziție cu o legătură simbolică, după cum urmează: ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Asigurați-vă că în fișierul ~/.gnupg/scdaemon.conf nu au fost aplicate setări conflictuale.

  3. În mod implicit, scdaemon se așteaptă la acces exclusiv la pcscd, pentru a evita eventualele probleme legate de modificarea simultană a informațiilor de pe card. Acest lucru face ca accesul să eșueze în cazul în care alți clienți, de obicei browsere web, accesează cardul, chiar și numai pentru citire. Accesul partajat poate fi activat cu echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (în GnuPG versiunea 2.2.28 sau mai recentă).