Chytrá karta OpenPGP s GnuPG ve Fedoře

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

active

inactive

active

active

inactive

Poznámka

The following instructions require the Nitrokey 3 to have at least firmware version 1.4.0 installed. Please refer to firmware update to learn how to update it.

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šší).