Inteligentná karta OpenPGP s GnuPG na Fedore#

Poznámka

Nasledujúce pokyny vyžadujú, aby bol v zariadení Nitrokey 3 nainštalovaný firmvér minimálne vo verzii 1.4.0. Informácie o tom, ako ho aktualizovať, nájdete v časti aktualizácia firmvéru.

Podpora čipovej karty GnuPG vyžaduje scdaemon. Vo Fedore je scdaemon súčasťou balíka GnuPG.

Poznámka

Démon scdaemon je nainštalovaný v /usr/libexec/scdaemon. Táto cesta zvyčajne nie je súčasťou premennej prostredia PATH.

Projekt GnuPG podporuje dve nastavenia prepojenia s čipovou kartou OpenPGP.

  1. GnuPG (scdaemon s ovládačom CCID) → Smartcard (napr. Nitrokey)

    V tomto nastavení komunikuje démon scdaemon priamo s Nitrokey pomocou svojho interného ovládača CCID a libusb. Vyžaduje si to nastavenie pravidiel Udev, pretože scdaemon beží v užívateľskom priestore s právami prihláseného používateľa.

  2. GnuPG (scdaemon s knižnicou PCSC) → pcscd → Smartcard (napr. Nitrokey)

    V tomto nastavení komunikuje scdaemon s pcscd, ktorý potom komunikuje s Nitrokey.

V systéme Fedora je podporované len druhé nastavenie, pretože konfigurácia balíka GnuPG nastavuje ovládač CCID ako vypnutý a podporu pcsc ako požadovanú. Príslušnú konfiguráciu nájdete v súbore špecifikácií tu a tu.

Riešenie problémov#

Najnovšia verzia Fedory 38 by mala po inštalácii fungovať bez problémov. Aktualizované verzie Fedory môžu mať konfliktnú konfiguráciu a mali by sa skontrolovať podľa nižšie uvedeného postupu. V prípade Fedory Silverblue boli hlásené problémy s GnuPG a čipovými kartami. Nižšie uvedené pokyny sa vzťahujú len na vydania Fedora Workstation a Fedora Server.

Správnu konfiguráciu nastavenia možno skontrolovať dopytovaním sa na informácie o Nitrokey pomocou gpg --card-status.

Kontrola rozpoznávania#

Pomocou príkazu lsusb overte, či je kľúč Nitrokey rozpoznaný. Výstup by mal obsahovať zoznam kľúča Nitrokey, napríklad Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Kontrola konfigurácie systému#

  1. Uistite sa, že balík pcscd je nainštalovaný spolu s dnf install pcsc-lite. Ďalej je potrebné povoliť a spustiť službu systemd a socket pomocou systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. Démon scdaemon vyžaduje knižnicu libpcsclite na pripojenie k pcscd. Cestu ku knižnici pcsc možno explicitne nastaviť pomocou echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternatívne je možné knižnicu sprístupniť aj pomocou symlinku takto: ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Uistite sa, že súbor ~/.gnupg/scdaemon.conf nemá použité žiadne konfliktné nastavenia.

  3. Démon scdaemon v predvolenom nastavení očakáva výhradný prístup k pcscd, aby sa predišlo prípadným problémom so súbežnými úpravami informácií na karte. To spôsobuje, že prístup zlyhá, ak ku karte pristupujú iní klienti, zvyčajne webové prehliadače, aj keď len na čítanie. Zdieľaný prístup možno povoliť pomocou echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (vo verzii GnuPG 2.2.28 alebo vyššej).