Objavljeno: 14.6.2022 | Avtor: Matej Huš | Monitor Posebna 2022

Delo od doma: Podpiši me digitalno

V malo bolj oddaljenih časih smo si dokumente pošiljali po pošti ali faksu, jih podpisali in poslali nazaj. V ne tako zelo oddaljeni preteklosti je digitalizacija obstajala z resno napako. Dokumente smo si pošiljali v elektronski obliki samo zato, da jih je nekdo na drugi strani natisnil, podpisal, skeniral in poslal nazaj. Postopek ni le zamuden, temveč bolj malo pridoda k varnosti. To odpravljajo digitalni podpisi, ki niso novost, so pa šele v zadnjem času postali tehnologija širokih množic.

Koncept delovanja digitalnih podpisov.

Kdor se ni že prej, se je med epidemijo zavedel, da je velik del poslovanja in uradovanja mogoče izvesti na daljavo. Po spletu, prek elektronske pošte, v oblaku – elektronskih alternativ papirju je več, vse pa povezuje skupno vprašanje. Istovetnost moramo zagotavljati vsaj tako varno, kot jo zagotovi podpisani list papirja. V praksi se izkaže, da so digitalno podpisani dokumenti varnejši, saj lahko na podpisani list papirja vedno kaj vrinemo ali pa, če je strani več, kakšno zamenjamo, medtem ko digitalno podpisanemu dokumentu ne moremo spremeniti niti bita, ne da bi razveljavili podpis. Poglejmo, kako to gre.

Kaj želimo

Od digitalnega podpisa želimo iste lastnosti kot od klasičnega, le da jih želimo z matematično gotovostjo neizpodbitno vgraditi v sam koncept, medtem ko se pri klasičnem podpisu lahko le zanesemo, da ga, na primer, nihče ne bo kopiral. Seveda tudi nezakonito skopirani klasični podpis ni veljaven, a je to treba dokazati. Pri digitalnem podpisu tovrstne mahinacije preprečimo že algoritmično.

Zahtevamo torej, da je pri digitalnem podpisu mogoče preveriti verodostojnost (kdo je podpisal) in da avtorstva ni mogoče zanikati, da podpisa ni mogoče ponarediti niti kopirati in da se podpisanega dokumenta ne da naknadno spremeniti. Na ta način digitalni podpis zagotavlja verodostojnost dokumenta in istovetnost avtorja. Če podpis na dokument pripne zaupanja vredna institucija, pa je zaupanja vreden še časovni žig.

Pravna podlaga

Elektronsko poslovanje je prvi celovito urejal Zakon o elektronskem poslovanju in elektronskem podpisu iz leta 2004, ki ga je lani v večjem delu zamenjal Zakon o elektronski identifikaciji in storitvah zaupanja, s čimer se je slovenski pravni red prilagodil evropski uredbi št. 910/2014 (uredba eIDAS), ki se je začela uporabljati 1. julija 2016. Uredba ureja vzajemno priznavanje sredstev za elektronsko identifikacijo med državami članicami.

V praksi to pomeni, da slovenski upravni organi in podjetja priznavajo dokumente, ki so primerno digitalno podpisani (ponekod zahtevajo visoko raven, torej QES), kot enakovredne lastnoročno podpisanim. To omogoča poslovanje na daljavo, večjo ekološkost in znižanje stroškov.

Digitalni podpis je elektronski podpis, torej v elektronski obliki, ki je kriptografsko zaščiten. V ta namen se uporablja asimetrično šifriranje, ki brez dvoma velja za eno najgenialnejših odkritij matematike. Asimetrično šifriranje uporablja par ključev, kjer z zasebnim ključem vsebino šifriramo, z javnim ključem pa jo lahko odšifriramo. Prav ta asimetričnost, zaradi katere potrebujemo par ključev, omogoča delovanje. Zasebni ključ je poznan samo lastniku, čigar identiteto dokazuje, medtem ko je javni ključ dostopen vsem. Tako lahko vsakdo preveri, ali je neki dokument res podpisal, kdor se izdaja za avtorja, a dokumentov ne more podpisovati nihče drug.

Varnost sistema temelji na verodostojnosti javnega ključa. Nič nam ne pomaga dokaz, da javni ključ resnično odšifrira sporočilo, podpisano s pripadajočim zasebnim ključem, če ne moremo z gotovostjo potrditi lastnika para ključev. Zaradi tega uporabljamo pare ključev, ki so jih izdale in podpisale zaupanja vredne institucije. Digitalno potrdilo je tako javni ključ z informacijo o njegovem lastniku, ki jo digitalno podpiše overitelj. Prav tako je pomembno, da javni ključi ostanejo dostopni tudi, ko jih lastnik (recimo zaradi preteka zasebnega ključa) ne potrebuje več, da se lahko preveri verodostojnost starejših dokumentov.

V praksi se ne podpisuje celoten dokument, temveč njegova zgoščena vrednost (hash). Za podpisovanje dokumenta se najprej izračuna njegova zgoščena vrednost, za kar se uporabi enega izmed uveljavljenih algoritmov, denimo MD-5 ali SHA-256. Ta za vsak dokument vrne algoritmično izračunano vrednost, ki ni napovedljiva. To pomeni, da vsakršna, že najmanjša sprememba dokumenta popolnoma spremeni njegovo zgoščeno vrednost. To potem zašifriramo z zasebnim ključem, recimo po algoritmu RSA. Prejemnik dokumenta za preverjanje izračuna zgoščeno vrednost prejetega dokumenta in z javnim ključem dešifrira priloženo šifrirano zgoščeno vrednost. Če se ujemata, je dokument pristen.

V osnovi se tudi za asimetrično šifriranje dokumentov lahko uporablja par zasebnega in javnega ključa, a iz praktičnih in varnostnih razlogov ni smiselno, da je to isti par kot za digitalno podpisovanje. V tem prispevku se bomo omejili na podpisovanje.

Kdo to nudi

V Sloveniji so štirje izdajatelji kvalificiranih digitalnih potrdil za fizične osebe. Poleg ministrstva za javno upravo, ki izdaja potrdila SIGEN-CA, so to še Pošta Slovenije s Pošta®CA, Nova ljubljanska banka z AC NLB in Halcom s Halcom CA. Ker vsi komercialni ponudniki storitev zaračunavajo, je za fizično osebe smiselno uporabiti kar SIGEN-CA.

Če naročimo digitalno potrdilo SIGEN-CA, ga s spleta prevzamemo sami in shranimo na svoj računalnik. Pri namestitvi po prenosu je treba v brskalniku izrecno odkljukati možnost, da dovolimo izvoz, sicer ga ne bomo mogli prenesti na drug računalnik (ali izdelati varnostne kopije) niti ga ne bomo mogli shraniti na pametno kartico ali USB-ključ. SIGEN-CA se namreč lahko uporablja na pametnih medijih, a jo moramo tja shraniti sami.

Digitalni podpisi zagotavljajo, da je dokument napisal, kdor trdi, da ga je, in da se kasneje ni spremenil. Ne omogočajo pa sledljivosti vročanja strankam, kar v upravnem poslovanju omogočajo šele varni elektronski predali in elektronska priporočena pošta (Priporočena pisma tudi elektronsko, Monitor 07-08/20).

Drugače je z drugimi ponudniki digitalnih potrdil, ki nudijo tudi izdajo neposredno na pametnih karticah (za branje potrebujemo čitalnik s priklopom na USB) ali varnih USB-ključkih. Tovrstna potrdila so načelno varnejša, saj jih ni mogoče kopirati. Nova evropska uredba eIDAS predvideva, da bo v prihodnosti za elektronsko podpisovanje obvezna uporaba potrdila, ki je shranjeno na napravo za ustvarjanje elektronskega podpisa (QSCD). QSCD so načelno pametne kartice, pametni USB-ključi in strojni moduli HSM, ni pa nujno fizična naprava pri uporabniku, temveč je lahko tudi storitev na daljavo. Kakorkoli, ko digitalno potrdilo s parom ključev imamo, lahko začnemo podpisovati dokumente.

Lokalno podpisovanje

Digitalno podpisovanje lahko izvajamo lokalno ali oddaljeno. Za lokalno podpisovanje moramo imeti nameščeno ustrezno (osebno) digitalno potrdilo in ustrezno programsko opremo. Glede na opisani način delovanja digitalnih podpisov, ki obsega izračun zgoščene vrednosti in šifriranje rezultatov, ni omejitev, katere datoteke bomo digitalno podpisali. Zgoščeno vrednost lahko izračunamo za katerokoli zaporedje bitov.

V Wordu lahko podpišemo dokumente .docx.

Seveda pa je razlika v prikladnosti, saj golega besedila ne moremo elegantno digitalno podpisati, da bi lahko istočasno dokument odprli in preverili podpis, medtem ko PDF in DOCX to podpirajo. Formati, ki so nastali brez misli na digitalno podpisovanje, denimo ASCII, zahtevajo ločene podpise (detached signature) ali pa ovojnice, v katere dodamo digitalni podpis v formatu XML. V prvem primeru moramo za uporabo digitalnega podpisa skrbeti sami, v drugem imamo potencialne težave z berljivostjo in združljivostjo. Posvetimo se zato formatom, ki s tem nimajo težav, ker jih bomo v praksi tudi največkrat potrebovali.

Slovarček

AdES – napredni elektronski podpis

AdES-QC – napredni elektronski podpis, podprt s kvalificiranim potrdilom

QES – kvalificirani elektronski podpis

Napredni elektronski podpis ima unikatno povezavo s podpisnikom, ki ga lahko identificira, in ga lahko ustvari le podpisnik ter onemogoča kasnejšo manipulacijo dokumenta. Strožji standard pa je kvalificirani elektronski podpis, tj. napredni elektronski podpis, ki se ustvari z napravo za ustvarjanje kvalificiranega elektronskega podpisa in temelji na kvalificiranem potrdilu za elektronske podpise. Pogovorno tem oblikam pravimo digitalni podpis.

Dasiravno v praksi najpogosteje srečamo digitalno podpisane PDF, ker pač želimo imeti dokumente, ki so povsod videti enako, to ni nuja. Povsem enako lahko torej podpisujemo Wordove dokumente (DOCX), Excelove preglednice (XLSX), predstavitve v Powerpointu (PPTX) in podobno.

Vse Officeove dokumente lahko podpišemo neposredno v Officeu. V Wordu in Excelu v zavihku Insert izberemo Signature Line, s čimer na želeno mesto vstavimo grafično ponazoritev podpisa. Ta vsebuje kratko besedilo (običajno ime, datum in funkcijo) ter po želji še sliko (ki je dostikrat sken lastnoročnega podpisa, a je lahko karkoli). Ko dokument dokončamo, dvakrat kliknemo na to mesto in izvedemo dejansko podpisovanje. Tak dokument normalno shranimo kot DOCX ali XLSX in tudi prejemnik ga lahko normalno odpre. A ob odpiranju Word ali Excel ne bosta dovolila urejanja, temveč bosta najprej pobrisala digitalni podpis, če bi želeli v dokumentu kaj spremeniti. Drugi način podpisovanja, ki ga podpirajo na primer Word, Excel, PowerPoint, je s klikom na zavihek File in list Info, kjer je na voljo funkcija Protect Document, ki v spustnem seznamu skriva možnost Add a Digital Signature. Podpisovanje je enako, le da dokument nima vizualne predstavitve podpisa (Signature Line).

Podpisovanje dokumentov seveda omogoča tudi odprtokodni pisarniški paket Libreoffice, ki v vseh programih v meniju File ponuja funkcijo Digital Signatures, ki takisto z nameščenim certifikatom podpiše dokumente. To lahko počnemo za vse lastne vrste dokumentov (odt, ods, odp, odg) kakor tudi za nekatere druge. Če želimo vizualno ponazoritev podpisa v samem dokumentu, pa imamo možnost Insert / Signature Line …

Libreoffice omogoča tudi podpis dokumentov PDF. Vsak dokument lahko izvozimo v podpisan PDF, tako da izberemo File / Export as / Export as PDF in potem v zavihku Digital Signatures uredimo podpis. Podpišemo lahko celo PDF, ki so nastali drugod, saj imajo programi v Libreofficeu funkcijo File / Digital Signatures / Sign Existing PDF. Ta izbrani PDF odpre samo za branje v Libreoffice Drawu, ki ga zna podpisanega shraniti. Tak dokument ima samo digitalni podpis, če pa ga želimo tudi videti, lahko vstavimo ponazoritev (Insert / Signature Line …).

Za podpisovanje dokumentov PDF je na voljo še cel kup drugih programov. Adobova Reader in plačljivi Acrobat omogočata izdelavo poljubne vizualne predstavitve podpisa in digitalni podpis dokumenta (Tools / Sign & Certify / Sign Document). Uporabniki Applovega sistema macOS pa imajo že integrirano orodje Preview, ki omogoča digitalno podpisovanje. Tudi novi Microsoftov brskalnik Edge v svojem bralniku (Edge PDF Reader) omogoča isto, če naložimo ustrezno razširitev (extension).

Podpisovanje s SI-PASS

Slovenija ima storitev za spletno prijavo in e-podpis SI-PASS, ki predstavlja enotno vstopno točko za identifikacijo in preverjanje pristnosti. SI-PASS je enotna točka za preverjanje identitete različnih uporabnikov (državljanov, poslovnih subjektov, javnih uslužbencev) ter elektronsko podpisovanje vlog in ostalih dokumentov. S SI-PASS se je moč prijaviti v različne spletne storitve slovenske javne uprave, denimo v eDavke, eUpravo, eVem itd. Na tak način se ponudniku storitve ni treba ukvarjati z nudenjem različnih načinov prijave, temveč to stori SI-PASS. Ta podpira med drugim enkratna gesla prek sms (smsPASS), kvalificirana digitalna potrdila iz Slovenije, Halcom One, Rekono itd.

SI-PASS omogoča oddaljeni podpis dokumentov.

SI-PASS pa omogoča tudi podpisovanje dokumentov. Podpisujemo lahko lastne dokumente, ki jih imamo naložene na osebnem računalniku ali pametni napravi (v obliki PDF), ali pa dokumente neposredno v spletnih aplikacijah izdajateljev, ki to podpirajo (npr. eUprava ali zVEM). Za uporabo moramo imeti račun pri SI-PASS, ki smo ga ustvarili poprej, ter sredstvo za prijavo. Potem preprosto obiščemo stran https://sicas.gov.si/, izberemo E-podpis dokumenta v SI-PASS in se prijavimo. Imeli bomo dve možnosti: E-podpis dokumenta in Preverjanje e-podpisa dokumenta. S prvo lahko na strežnik naložimo dokument PDF, ki ga bo potem lično opremil z našim podpisom. Če pa naložimo kakšen drugi nepodprti format, bomo dobili datoteko p7b, ki je ovojnica za dokument in digitalni podpis (PKCS #7). Z drugo možnostjo pa v podpisanih dokumentih preverimo, ali je podpis verodostojen (izdelan z zaupanja vrednim certifikatom). Vsi podpisani dokumenti imajo dodana datum in uro podpisa, a če to naredi SI-PASS, je to verodostojna informacija (v nasprotju z lokalno podpisanimi).

S tem smo se že dotaknili naslednje, sicer redkejše možnosti. Zgodi pa se lahko, da bi želeli podpisati datoteke, ki ne podpirajo elegantne vstavitve digitalnega podpisa. V tem primeru moramo podpisani datoteki priložiti ločen podpis, prejemnik pa ju mora potem preveriti skupaj. V praksi se vsebina in digitalni podpis zapakirata v ovojnico, denimo po standardu PKCS #7. Take dokumente moramo pred uporabo odpreti.

Spletno podpisovanje

Opisane metode podpisovanja dokumentov so uporabne, kadar se potrebuje dokument enega podpisnika, na primer, ko komuniciramo z državno upravo. Pogodbe pa potrebujejo podpise vseh strank, zato bi bil zgoraj opisani način zamuden. Dokument bi morali zaporedoma podpisovati vsi udeleženci, si ga medsebojno posredovati in skrbeti, da se vedno podpisuje zadnja različica z vsemi podpisi.

Postopek lahko poenostavimo, če je dokument v oblaku. V teoriji bi lahko imeli preprost oblak (npr. Dropbox), od koder bi podpisnik vzel dokument, ga podpisal in nazaj naložil novo »različico«. V praksi pa obstajajo namenske spletne storitve, kamor naložimo dokument in dostop dodelimo partnerjem, ki ga potem sproti podpisujejo v poljubnem vrstnem redu. V svetu je največja tovrstna storitev Docusign, pri nas pa imamo za slovenske potrebe precej primernejših, in sicer Halcom One, Rekono, mdSign, mSign, Avtenta itd.

Logika je povsod enaka. Da lahko spletna storitev ali storitev v oblaku podpisuje v našem imenu, moramo bodisi nanjo naložiti svoje digitalno potrdilo (ki nam ga je izdal overitelj) bodisi nas kar ponudnik storitve enkrat identificira in potem izda digitalno potrdilo, ki ga hrani sam in nam omogoča njegovo uporabo ob vsakokratni ustrezni avtentikaciji. Ključno je, da vsi udeleženi zaupajo ponudniku storitve, da identifikacijo in avtentikacijo opravlja z vso potrebno skrbnostjo. Tovrstno podpisovanje sicer relevantno za podjetja, ne toliko za posameznike.

Podpisovanje elektronske pošte

Elektronska pošta je nastala v nekem drugem času, ko so se akademiki čudili nad možnostmi povezovanja in hitrega komuniciranja, medtem ko o varnosti in avtentičnosti niso posebej razmišljali, ker so ju predpostavljali. Zaradi tega elektronska pošta potuje nešifrirano in zato ne moremo zagotavljati niti verodostojnosti vsebine niti pošiljatelja. Da bi to popravili, lahko elektronska sporočila kakor vse druge dokumente tudi podpišemo. To lahko storimo za posamezno sporočilo ali pa v odjemalcu nastavimo, da samodejno podpisuje vse. Potrebujemo le digitalno potrdilo, ki ustreza elektronskemu naslovu, s katerega pošiljamo. Tega si teoretično seveda lahko ustvarimo sami, a s tem izgubimo poanto hierarhične urejenosti verige zaupanja. Ta predpostavlja, da nam ga izda zaupanja vreden overitelj.

Digitalno podpisana elektronska sporočila imajo posebno ikono.

V zadnjem času so številni ponudniki elektronske pošte uvedli šifriranje med prenosom, ki uporablja standard TLS. Če pošljemo sporočilo z Gmaila drugemu uporabniku, čigar ponudnik prav tako podpira izmenjavo sporočil prek TLS, bo sporočilo med strežnikoma vseeno potovalo šifrirano. Tega ne moremo primerjati s pravim šifriranjem sporočil pri pošiljatelju (npr. PGP ali S/MIME), saj bo vseeno odšifriral (in teoretično lahko prebral) uporabnikov strežnik, ne pa šele uporabnik. A vrnimo se k podpisovanju, ki zagotavlja istovetnost pošiljatelja.

V odjemalcu Outlook na zavihku Options izberemo možnost Permissions in kliknemo Sign Message. S tem smo vključili to možnost in odjemalec bo samodejno podpisal končno različico sporočila, ko bomo kliknili Send. Da odpravimo to vsakokratno obveznost, lahko nastavimo samodejno digitalno podpisovanje vseh sporočil. V zavihku File izberemo Options in Trust Center ter kliknemo na Trust Center Settings. V novem levem panelu izberemo E-mail Security in odkljukamo Add digital signature to outgoing messages. V bližini najdemo tudi možnost samodejnega šifriranja sporočil, ki sodi v isto kategorijo, a zahteva, da smo s prejemnikom izmenjali pare ključev. Za samo podpisovanje pa to ni potrebno, ker je podpisano sporočilo berljivo tudi brez javnega ključa, ki pa je tako in tako po definiciji – javen.

Odprtokodni odjemalec Thunderbird omogoča podpisovanje na podoben način. Najprej v meniju Tools izberemo Account Settings … in zavihek Security. Tam lahko nastavimo, s katerim certifikatom želimo podpisati sporočilo, in ali želimo to avtomatizirati. Potem med pisanjem sporočila kliknemo na ikono Security in izberemo Digitally Sign This Message.

Odjemalci sporočil, tako spletni kakor lokalni, bodo podpisana sporočila prikazali povsem enako kakor nepodpisana, bodo pa imela dodano ikono rdečega traku. S klikom nanjo lahko preverimo, kdo je sporočilo podpisal. To sicer ni stoodstotno zagotovilo, da ga je res poslal, je pa zelo blizu, predvsem pa zagotavlja, da sporočila v tranzitu nihče ni poneveril.

Podpisovanje elektronskih sporočil v spletnih aplikacijah (npr. Gmail ali Outlook Web App) je nekoliko bolj zapleteno. V plačljivo različico Google Workspace (inačica Enterprise) lahko naložimo certifikate, s katerimi se bo privzeto podpisovala vsa odhodna elektronska pošta, v brezplačni Gmail pa ne. Za domače uporabnike to pomeni, da morajo bodisi uporabljati lokalne odjemalce bodisi kakšno (največkrat plačljivo) razširitev za brskalnik, s katerim dostopajo do spletišča Gmail.

V spletnem Outlooku je nekoliko drugače. Microsoft je pripravil S/MIME ActiveX Control, ki ga kot vtičnik namestimo v brskalnik na računalnik. Ko to opravimo, lahko podpisujemo elektronska sporočila. V oknu za pisanje sporočila kliknemo na ikono s tropičjem, izberemo Message Options in odkljukamo Digitally sign this message (S/MIME). Prek vtičnika se z lokalno nameščenim digitalnim potrdilom podpiše sporočilo, ki ga pošiljamo.

Kako preveriti veljavnost

Digitalno podpisani dokumenti in sporočila dokazujejo, da se v tranzitu niso spremenili in da so bili podpisani z zasebnim ključem, ki ustreza javnemu ključu. To ne pomeni, da jih je res podpisala oseba, ki bi morala biti zakoniti lastnik zasebnega ključa, a se to marsikje – tudi v zakonodaji – predpostavlja. Prav zaradi te drobne, a pomembne razlike se počasi poslavljajo zasebni ključi v obliki datotek na računalnikih. Nadomeščajo jih ključi, ki so shranjeni na namenskih napravah (USB-ključi ali pametne kartice), in dvostopenjsko preverjanje (npr. SI-PASS).

SI-PASS omogoča preverjanje veljavnosti podpisa.

Drugo vprašanje pa je, kako zaupati, komu pripada par zasebni/javni ključ. Veriga zaupanja je hierarhična, torej moramo zaupati centralni avtoriteti, ki je podpisala ta ključa, da je res preverila identiteto uporabnika. V Sloveniji so takšni overitelji štirje, v tujini pa jih je cel kup. Večina programov ob dvokliku na podpis ali ikono zanj prikaže podrobnosti o certifikatu, s katerim je podpisan ključ, med drugim tudi njegovo veljavnost in overitelja. Operacijski sistemi in brskalniki imajo vgrajene sezname zaupanja vrednih mednarodnih overiteljev, slovenske pa si moramo dodati ročno.

Veljavnost podpisanih dokumentov lahko preverjamo tudi na spletni strani SI-PASS, če se prijavimo z elektronsko identiteto, izberemo E-podpis dokumenta v SI-PASS in nato Preverjanje e-podpisa dokumenta. Podpisani dokument naložimo, spletna stran pa nam pokaže podrobnosti o podpisu.

Če pa govorimo o spletnih storitvah, ki so namenjene prav podpisovanju dokumentov, naloženih v oblaku, nam že te zagotavljajo informacijo o veljavnosti podpisa.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Monitor na Facebooku

Monitor TV na YouTube

fc4dkL5HR9w

  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji