Objavljeno:

Digitalno podpisovanje PDF dokumentov v Linuxu (in Windows)

Ena glavnih prednosti digitalnega podpisovanja PDF-jev je zmanjšanje potrebe po tiskanju, pošiljanju in shranjevanju papirnatih dokumentov. V Sloveniji lahko PDF dokumente digitalno podpišemo s pomočjo SIGEN-CA digitalnih potrdil, ki se uporabljajo za e-storitve državne uprave, oddajo dohodnine, dostop do geodetskih in katastrskih podatkov, itd. Kvalificirana digitalna potrdila SIGEN-CA izdaja država in sicer fizičnim osebam (starejšim od 15 let, ki imajo slovensko davčno številko) ter poslovnim subjektom. V tokratnem prispevku si bomo pogledali kako PDF dokumente s pomočjo SIGEN-CA potrdil podpisujemo v Linuxu (v grafičnem okolju, ne v terminalu) in sicer z odprtokodno in brezplačno aplikacijo Okular. Na koncu pa še, kako aplikacijo z Okular PDF dokumente digitalno podpisujemo v okolju Windows

Digitalno podpisovanje PDF v okolju Linux

Prvi korak je, da si SIGEN-CA digitalno potrdilo, pa tudi korensko potrdilo slovenske državne uprave in vmesno potrdilo izdajatelja SIGEN-CA prenesemo v sistemsko shrambo v Linuxu. Gre za sistemsko shrambo NSS (Network Security Services). NSS je nabor kriptografskih knjižnic, ki je v Ubuntu Linuxu že privzeto nameščen, je pa za lažji uvoz potrebno namestiti še nekatera dodatna orodja.

Namestitev digitalnih potrdil v NSS sistemsko shrambo

Najprej torej namestimo pki-tools. Odpremo terminal in vpišemo ukaz: sudo apt install pki-tools

Nato si iz spletne strani si-trust.gov.si na svoj računalnik prenesemo Korensko potrdilo SI-TRUST Root ter Vmesno potrdilo SIGEN-CA G2.

Obe potrdili (si-trust-root.crt in sigen-ca-g2.xcert.crt) je nato potrebno pretvoriti iz DER formata v PEM zapis:

openssl x509 -inform der -in si-trust-root.crt -out si-trust-root.pem

openssl x509 -inform der -in sigen-ca-g2.xcert.crt -out sigen-ca-g2.xcert.pem

Zdaj ti dve potrdili (v PEM formatu) uvozimo v NSS sistemsko shrambo (spodnji ukazi predvidevajo, da ste potrdila shranili neposredno v svojo domačo mapo):

cd $HOME/.pki/nssdb
PKICertImport -d . -n "SI-TRUST Root - Republika Slovenija" -t "CT,C,C" -a -i $HOME/si-trust-root.pem -u L
PKICertImport -d . -n "SIGEN-CA G2 - Republika Slovenija" -t "CT,C,C" -a -i $HOME/sigen-ca-g2.xcert.pem -u L

Končno pa uvozimo še naše osebno SIGEN-CA potrdilo (tudi ta naj bo shranjen neposredno v vaši domači mapo): pk12util -d ~/.pki/nssdb -i $HOME/Matej_Kovacic_SIGEN-CA.p12

Zdaj lahko uvožena potrdila pregledamo: certutil -L -d sql:.

Dobimo takšen izpis:

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Matej Kovačič’s Republika Slovenija ID                   u,u,u
SIGEN-CA G2 - Republika Slovenija                            CT,C,C
SI-TRUST Root - Republika Slovenija                          CT,C,C

Podrobnosti posameznega potrdila sicer lahko pogledamo z ukazom, kjer kot parameter podamo tim. vzdevek oz. ime potrdila, ki ga želimo pregledati:

certutil -L -d sql:. -a -n "Matej Kovačič’s Republika Slovenija ID" | openssl x509 -text -noout

Pomembno: certutil ukaz moramo poganjati v mapi $HOME/.pki/nssdb.

Nameščanje aplikacije Okular v Linux

Zdaj lahko namestimo aplikacijo Okular. Aplikacijo lahko namestimo preko sistema Snap, vendar v mojem primeru aplikacija ni znala dostopati do NSS sistemske shrambe potrdil. Druga možnost je namestitev preko sistema APT, kjer digitalno podpisovanje deluje brez težav, a če bi radi najnovejšo različico aplikacije, je najbolje, da jo namestimo preko sistema Flatpak.

To je mogoče preko aplikacije Programi Ubuntu.

Programi Ubuntu

Programi Ubuntu.

Če te aplikacije in Flatpat dodatka nimamo nameščenega, to lahko storimo z ukazi:

sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo apt install gnome-software-plugin-flatpak gnome-software

Namestitev je nato preprosta. Zaženemo aplikacijo Programi Ubuntu in kot vir namestitve izberemo Flathub ter Okular namestimo.

Namestitev Okularja preko Programi Ubuntu

Namestitev Okularja preko Programi Ubuntu.

Digitalno podpisovanje v okolju Linux

Ko Okular zaženemo, v meniju Nastavitve - Nastavi zaledja v zavihku PDF preverimo ali je dostop do zalednega NSS sistema pravilen (v mojem primeru je /home/matej/.pki/nssdb) in ali vidimo svoje digitalno potrdilo.

Nastavitve zaledja v Okularju

Nastavitve zaledja v Okularju.

Zdaj v Okularju odpremo PDF dokument, ki ga želimo digitalno podpisati ter v meniju kliknemo Orodja - Digitalno podpiši.

Digitalno podpisovanje v Okularju

Digitalno podpisovanje v Okularju.

Nato bomo na dokumentu najprej narisali kvadratek kjer bo prikazan digitalni podpis, v naslednjem koraku pa še izberemo s katerim digitalnim podpisom želimo podpisati dokument (če jih imamo več), lahko pa dodamo tudi tim. vizualni podpis oz. svoj fizični podpis nastavimo za ozadje značke digitalnega podpisa. Na veljavnost digitalnega podpisa to sicer ne vpliva, lahko pa ta funkcija pride prav, ko je dokument natisnjen na papir.

Podpisan PDF dokument v Okularju

Podpisan PDF dokument v Okularju.

Opomba: na sliki se ne nahaja moj dejanski podpis, pač pa je le-ta umetno ustvarjen z generatorjem podpisov.

S tem je PDF dokument digitalno podpisan s SIGEN-CA.

Digitalno podpisovanje v okolju Windows

Aplikacijo Okular lahko namestimo tudi v okolju Windows, digitalno potrdilo pa lahko uporabimo če smo ga namestili v kriptografsko shrambo aplikacije Firefox.

Najprej je torej potrebno namestiti Firefox in vanj SIGEC-CA digitalna potrdila, nato pa Okular namestimo preko Microsoftove trgovine s programsko opremo. Podporo za digitalno podpisovanje PDF dokumentov ima namreč namestitev Okularja iz Trgovine.

Zaženemo Okular in v Settings - Configure Backends v zavihku PDF preverimo ali je dostop do zalednega NSS sistema pravilen oziroma ali pod Available Certificates vidimo svoje digitalno potrdilo.

Nastavitve zaledja v Okularju

Nastavitve zaledja v Okularju.

Če ga je, je potrebno nastaviti pot do baze potrdil v profilu Firefoxa.

Pot do mape z nastavitvami Firefoxa dobimo tako, da v Firefoxu kliknemo na ikonico s tremi črticami, izberemo Pomož za Firefox in nato Več podatkov za odpravljanje težav. Spodaj nato vidimo lokacijo Mape s profilom, in to lokacijo nato prekopiramo v Okular med nastavitve zaledja.

Lokacija profilne mape v Firefoxu

Lokacija profilne mape v Firefoxu.

Podpisovanje nato poteka na enak način kot v Linuxu.

Digitalno podpisovanje PDF v okolju Windows

Digitalno podpisovanje PDF v okolju Windows.

Veljavnost digitalnega podpisa

Po standardu eIDAS (electronic identification and trust services) obstajajo tri ravni podpisov, ‘enostavni’ elektronski podpis, napredni elektronski podpis ter kvalificiran elektronski podpis. Glede na standard je le tretji enak lastnoročnemu podpisu.

Z opisanim postopkom ustvarjen digitalni podpis velja za napredni elektronski podpis, podprt z kvalificiranim digitalnim potrdilom.

To lahko preverimo tudi preko portala EU za preverjanje veljavnosti elektronskega podpisa, ki ta elektronski podpis prepozna kot napredni elektronski podpis, podprt z kvalificiranim digitalnim potrdilom (angl. Advanced electronic Signature supported by a Qualified Certificate (AdES/QC)).

Preverjanje podpisa na spletni strani EC

Preverjanje podpisa na spletni strani EC.

Če bi želeli najvišjo stopnjo podpisa, bi morali uporabiti SIGEN-CA potrdilo zapisano na tim. pametni USB ključek. A vseeno opisan način podpisovanja v praksi zadostuje za veliko večino uradnih opravil.

Mimogrede, dokument podpisan v Linuxu lahko preverimo še v bralniku Adobe PDF v okolju Windows, kjer tudi vidimo, da je veljavno digitalno podpisan.

Preverjanje podpisa v Adobe PDF bralniku

Preverjanje podpisa v Adobe PDF bralniku.

Kot smo torej videli, je digitalno podpisovanje PDF datotek v Ubuntu Linux res enostavno, le uvoz digitalnih potrdil je nekoliko bolj okoren. Na srečo je ta postopek treba narediti samo enkrat (oz. občasno, ko zamenjamo svoje digitalno potrdilo), upam pa, da bo enkrat bo bližnji prihodnosti tudi ta del poenostavljen oziroma bo vse skupaj veliko tesneje integrirano v operacijski sistem.

V Ubuntu vgrajeni LibreOffice zna shranjevati dokumente, preglednice in predstavitve v PDF zapis z enim klikom, te dokumente v PDF zapisu pa sedaj lahko enostavno digitalno podpišemo z Okularjem.

Kategorije: Odprta koda
Ključne besede: kriptografija, Linux