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.
