Jak uruchomić e-dowód i podpis elektroniczny na Fedora Linux 44

Postanowiłem sprawdzić, czy da się wygodnie skorzystać z e-dowodu na Linuksie zamiast opierać się wyłącznie na Profilu Zaufanym.

Spodziewałem się walki z bibliotekami, sterownikami oraz zależnościami. Okazało się jednak, że na Fedora Linux 44 całość działa całkiem dobrze, pod warunkiem wcześniejszego sprawdzenia kilku elementów.

W tym artykule pokazuję cały proces: od podłączenia czytnika NFC, przez uruchomienie e-dowodu, aż do podpisania dokumentu i potwierdzenia Profilu Zaufanego.

Artykuł powstał i został przetestowany na Fedora Linux 44. Na starszych lub nowszych wersjach Fedory nazwy pakietów albo zachowanie aplikacji mogą się różnić.

Wymagania

Do wykonania całej konfiguracji potrzebne będą:

  • Fedora Linux 44,
  • e-dowód z aktywną warstwą elektroniczną,
  • PIN do e-dowodu,
  • numer CAN znajdujący się na dowodzie,
  • czytnik NFC.

W moim przypadku wykorzystałem:

ACS ACR1252U-M1

Warto od razu rozróżnić dwie rzeczy, bo łatwo się na tym zaciąć: CAN to nie PIN. CAN jest sześciocyfrowym numerem wydrukowanym na dowodzie. PIN jest kodem ustawionym dla funkcji elektronicznych e-dowodu. Jeżeli aplikacja pyta o CAN, nie wpisujemy tam PIN-u.

Czy system wykrywa czytnik?

Po podłączeniu czytnika warto upewnić się, że został wykryty przez system.

lsusb

Przykładowy wynik:

Bus 003 Device 005: ID 072f:223b Advanced Card Systems, Ltd ACR1252 Dual Reader

Jeżeli czytnik pojawił się na liście, można przejść dalej.

Instalacja PC/SC

Fedora posiada natywne wsparcie dla większości czytników zgodnych z CCID.

Instalujemy potrzebne pakiety:

sudo dnf install pcsc-lite pcsc-lite-ccid pcsc-tools

Następnie uruchamiamy usługę:

sudo systemctl enable --now pcscd

Test komunikacji z e-dowodem

Najlepszym narzędziem diagnostycznym jest:

pcsc_scan

Po przyłożeniu e-dowodu powinniśmy zobaczyć komunikat podobny do:

Card inserted
ATR: 3B ...

Jeżeli pojawia się ATR, oznacza to, że:

  • czytnik działa,
  • usługa PC/SC działa,
  • e-dowód został poprawnie wykryty.

Na tym etapie nie ma jeszcze potrzeby instalowania oficjalnego oprogramowania.

Instalacja oprogramowania e-dowodu

Aktualne pakiety należy pobrać z oficjalnej strony rządowej: e-Dowód na gov.pl, sekcja „Pliki do pobrania”.

Nie instalowałbym tutaj paczek z forów, losowych mirrorów ani nieoficjalnych repozytoriów. To oprogramowanie obsługuje dokument tożsamości i podpis, więc źródło ma znaczenie.

Po instalacji zostanie zainstalowany:

  • e-Dowód Menedżer,
  • biblioteka PKCS#11,
  • narzędzia do obsługi podpisu elektronicznego.

Po uruchomieniu aplikacji e-Dowód Menedżer powinien zostać automatycznie wykryty czytnik oraz e-dowód.

Oficjalna strona podaje wspierane dystrybucje dla paczek linuksowych, ale w praktyce na Fedora Linux 44 udało mi się uruchomić całość poprawnie.

Komunikat dotyczący GNOME

Podczas instalacji pojawia się komunikat:

Jeżeli ikony zasobnika nie są widoczne…

Na Fedora Linux można go bezpiecznie zignorować.

Brak ikony w zasobniku nie wpływa na działanie podpisu elektronicznego ani e-dowodu.

Jeżeli zależy nam na wyświetlaniu ikony, należy doinstalować rozszerzenie:

sudo dnf install gnome-shell-extension-appindicator

Problem z Podpis GOV i pksigner

Na Fedora Linux 44 Workstation trafiłem też na osobny problem z aplikacją Podpis GOV uruchamianą z paczki tar.gz.

Objawy były mylące. Aplikacja działała, ale strona gov.pl nadal czekała na odpowiedź z aplikacji albo sugerowała pobranie nowej wersji. Testowałem to w Chrome, Chromium i Firefoxie.

Najpierw sprawdziłem, czy proces aplikacji w ogóle działa:

pgrep -af PodpisGOV

Następnie sprawdziłem, czy aplikacja nasłuchuje lokalnie:

ss -ltnp | grep java

W moim przypadku aplikacja nasłuchiwała na portach 8640 i 8641.

Test po HTTP pokazywał, że wymagany jest TLS:

curl -v http://127.0.0.1:8640/

Po użyciu HTTPS lokalna usługa odpowiadała kodem 401 Unauthorized, co było dobrą informacją: lokalne API działało, tylko przeglądarka nie potrafiła poprawnie skomunikować się z aplikacją.

curl -vk https://127.0.0.1:8640/
curl -vk https://127.0.0.1:8641/

Certyfikat lokalnej usługi wskazywał nazwę pksigner:

subject: CN=pksigner
issuer: CN=PK Signer

Problem rozwiązał się po dodaniu wpisu do /etc/hosts:

127.0.0.1 pksigner

Po tej zmianie strona gov.pl poprawnie skomunikowała się z lokalną aplikacją Podpis GOV i dokument został podpisany.

Można to szybko sprawdzić poleceniem:

getent hosts pksigner

Jeżeli polecenie nic nie zwraca, warto dodać wpis:

sudo vim /etc/hosts

I dopisać:

127.0.0.1 pksigner

Jest jeszcze jedna drobna pułapka: okno aplikacji Podpis GOV może otworzyć się jako zminimalizowane albo niewidoczne na pierwszym planie. Wtedy wygląda to tak, jakby aplikacja nie odpowiadała, choć w rzeczywistości czeka na interakcję użytkownika.

Potwierdzenie Profilu Zaufanego

Proces zaczynamy na stronie pz.gov.pl, wybierając rejestrację lub potwierdzenie Profilu Zaufanego przy użyciu e-dowodu.

W przypadku czytnika wygląda to w praktyce tak:

  • przykładamy e-dowód do czytnika,
  • wybieramy logowanie lub potwierdzenie przez e-dowód,
  • podajemy numer CAN z dowodu,
  • podajemy PIN1 do e-dowodu.

To jest moment, w którym najłatwiej się pomylić. Najpierw aplikacja pyta o CAN, czyli numer z dowodu. Dopiero później pojawia się etap z PIN1. Jeżeli ktoś uparcie wpisuje PIN w polu CAN, proces oczywiście nie przejdzie.

Po kilku sekundach powinniśmy otrzymać komunikat:

Twój Profil Zaufany został potwierdzony.

Diagnostyka

Podstawowe narzędzia instalujemy razem z PC/SC:

sudo dnf install pcsc-lite pcsc-lite-ccid pcsc-tools

Dodatkowo można doinstalować OpenSC i narzędzia NFC:

sudo dnf install opensc libnfc libnfc-examples

Przydatne polecenia:

Czytnik

lsusb

PC/SC

pcsc_scan

OpenSC

opensc-tool -l

NFC

nfc-list

Przykładowy wynik:

ISO14443A passive target found
UID: xx xx xx xx
SAK: 20
ATS: 75 77

Pozwala to zweryfikować, czy czytnik poprawnie komunikuje się z kartami NFC.

Podsumowanie

Cała konfiguracja okazała się znacznie prostsza, niż się spodziewałem.

Najwięcej czasu poświęciłem nie samej instalacji, ale sprawdzeniu działania czytnika, zrozumieniu sposobu komunikacji e-dowodu z systemem oraz obejściu problemu z aplikacją Podpis GOV. Do tego doszła prosta, ale irytująca pomyłka: CAN i PIN to dwa różne elementy procesu.

Po wykonaniu kilku prostych kroków Fedora Linux 44 bez problemu współpracuje z e-dowodem oraz oficjalnym oprogramowaniem rządowym.

Jeżeli wcześniej zweryfikujemy działanie czytnika za pomocą pcsc_scan i pamiętamy, że w polu CAN wpisujemy numer z dowodu, dalsza konfiguracja przebiega praktycznie bezproblemowo.