OpenPGP smartcard z GnuPG na Fedorze#

Informacja

Poniższe instrukcje wymagają, aby Nitrokey 3 miał zainstalowaną co najmniej wersję oprogramowania sprzętowego 1.4.0. Zapoznaj się z aktualizacją oprogramowania sprzętowego ` <./firmware-update.html>` __, aby dowiedzieć się, jak je zaktualizować.

Obsługa kart inteligentnych GnuPG wymaga scdaemon. W Fedorze scdaemon jest częścią pakietu GnuPG.

Informacja

Scdaemon ** jest zainstalowany w /usr/libexec/scdaemon. Ścieżka ta zwykle nie jest częścią zmiennej środowiskowej PATH.

Projekt GnuPG obsługuje dwie konfiguracje połączenia z kartą inteligentną OpenPGP.

  1. GnuPG (scdaemon ze sterownikiem CCID) → Smartcard (np. Nitrokey)

    W tej konfiguracji scdaemon komunikuje się bezpośrednio z Nitrokey za pomocą wewnętrznego sterownika CCID i libusb. Wymaga to ustawienia reguł Udev, ponieważ scdaemon ** działa w przestrzeni użytkownika z uprawnieniami zalogowanego użytkownika.

  2. GnuPG (scdaemon z biblioteką PCSC) → pcscd → Smartcard (np. Nitrokey)

    W tej konfiguracji scdaemon komunikuje się z pcscd, który następnie komunikuje się z Nitrokey.

Na Fedorze obsługiwana jest tylko druga konfiguracja, ponieważ konfiguracja pakietu GnuPG ustawia sterownik CCID jako wyłączony, a obsługę pcsc jako wymaganą. Odpowiednią konfigurację można znaleźć w pliku specyfikacji tutaj i tutaj.

Rozwiązywanie problemów#

Najnowsza wersja Fedory 38 powinna działać po instalacji bez problemów. Uaktualnione wersje Fedory mogą mieć konfliktową konfigurację i powinny być sprawdzone jak poniżej. Fedora Silverblue miała problemy z GnuPG i kartami inteligentnymi. Poniższe instrukcje dotyczą tylko wydań Fedora Workstation i Fedora Server.

Prawidłową konfigurację można sprawdzić, sprawdzając informacje o Nitrokey za pomocą gpg --card-status.

Sprawdź rozpoznawanie#

Sprawdź za pomocą komendy lsusb, czy Nitrokey został rozpoznany. Wyjście powinno zawierać listę Nitrokey, np. Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Sprawdź konfigurację systemu#

  1. Upewnij się, że pakiet pcscd jest zainstalowany z dnf install pcsc-lite. Ponadto usługa systemd i gniazdo muszą być włączone i uruchomione z systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. scdaemon wymaga biblioteki libpcsclite do połączenia z pcscd. Ścieżkę do biblioteki pcsc można ustawić jawnie za pomocą echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternatywnie, biblioteka może być również udostępniona za pomocą dowiązania symbolicznego w następujący sposób ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Upewnij się, że plik ~/.gnupg/scdaemon.conf nie ma żadnych sprzecznych ustawień.

  3. Domyślnie scdaemon oczekuje wyłącznego dostępu do pcscd, aby uniknąć potencjalnych problemów z jednoczesnymi modyfikacjami informacji na karcie. Powoduje to niepowodzenie dostępu, jeśli inni klienci, zwykle przeglądarki internetowe, uzyskują dostęp do karty, nawet jeśli tylko do odczytu. Dostęp współdzielony można włączyć za pomocą echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (w GnuPG w wersji 2.2.28 lub wyższej).