Chytrá karta OpenPGP s GnuPG ve Fedoře

Poznámka

Následující pokyny vyžadují, aby byl v zařízení Nitrokey 3 nainstalován firmware alespoň ve verzi 1.4.0. Informace o aktualizaci firmwaru ` <./firmware-update.html>`__ naleznete v části .

Podpora čipových karet GnuPG vyžaduje scdaemon. Ve Fedoře je scdaemon součástí balíčku GnuPG.

Poznámka

Démon scdaemon je nainstalován v /usr/libexec/scdaemon. Tato cesta obvykle není součástí proměnné prostředí PATH.

Projekt GnuPG podporuje dvě nastavení propojení s čipovou kartou OpenPGP.

  1. GnuPG (scdaemon s ovladačem CCID) → Smartcard (např. Nitrokey)

    V tomto nastavení komunikuje démon scdaemon přímo s Nitrokey pomocí svého interního ovladače CCID a libusb. Vyžaduje nastavení pravidel Udev, protože scdaemon běží v uživatelském prostoru s právy přihlášeného uživatele.

  2. GnuPG (scdaemon s knihovnou PCSC) → pcscd → Smartcard (např. Nitrokey)

    V tomto nastavení komunikuje scdaemon s pcscd, který pak komunikuje s Nitrokey.

Ve Fedoře je podporováno pouze druhé nastavení, protože v konfiguraci balíčku GnuPG je ovladač CCID zakázán a podpora pcsc je požadována. Příslušnou konfiguraci najdete ve specifikačním souboru zde a zde.

Řešení problémů

Nejnovější verze Fedory 38 by měla po instalaci fungovat bez problémů. Aktualizované verze Fedory mohou mít konfliktní konfiguraci a měly by být zkontrolovány podle níže uvedeného postupu. U Fedory Silverblue byly hlášeny problémy s GnuPG a čipovými kartami. Níže uvedené pokyny platí pouze pro edice Fedora Workstation a Fedora Server.

Správnou konfiguraci nastavení lze zkontrolovat dotazem na informace o klíči Nitrokey pomocí gpg --card-status.

Kontrola rozpoznávání

Pomocí příkazu lsusb ověřte, zda je klíč Nitrokey rozpoznán. Na výstupu by měl být uveden seznam kláves Nitrokey, např. Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Kontrola konfigurace systému

  1. Ujistěte se, že balíček pcscd je nainstalován spolu s dnf install pcsc-lite. Dále musí být povolena a spuštěna služba systemd a socket pomocí systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. Démon scdaemon vyžaduje knihovnu libpcsclite pro připojení k pcscd. Cestu ke knihovně pcsc lze explicitně nastavit pomocí echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternativně lze knihovnu zpřístupnit také pomocí symlinku takto: ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Ujistěte se, že v souboru ~/.gnupg/scdaemon.conf nejsou použita žádná konfliktní nastavení.

  3. Démon scdaemon ve výchozím nastavení očekává výhradní přístup k pcscd, aby se předešlo možným problémům se souběžnými změnami informací na kartě. To způsobí, že přístup selže, pokud ke kartě přistupují jiní klienti, obvykle webové prohlížeče, i když pouze za účelem čtení. Sdílený přístup lze povolit pomocí echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (ve verzi GnuPG 2.2.28 nebo vyšší).