Uporaba kriptografije v internetu
Kazalo   
 

Digitalna potrdila javnih ključev in overitelji

Digitalno potrdilo javnega ključa (public key certificate) je digitalni dokument, ki potrjuje povezavo med javnim ključem in osebo ali institucijo ali strežnikom. Z njim lahko preverimo, komu pripada javni ključ. Potrdilo vsebuje javni ključ in informacijo o njegovem imetniku, ki ju podpiše oseba ali institucija, ki ji zaupamo. Potrdila so objavljena v splošno dostopnih imenikih ali na spletnih straneh. Uporabljamo jih za identifikacijo v elektronskem poslovanju, prav tako kot osebno izkaznico v vsakdanjem življenju.

Podobno, kot je nastajal sistem elektronskih naslovov in imen računalnikov, so začele nastajati posamezne infrastrukture javnih ključev (udomačena je kratica PKI za public key infrastructure), ki jih vpeljujejo vlade (Kanada, ZDA, Singapur, nekatere evropske države) ali posebne organizacije (Verisign, Thawte, EuroTrust, ...). Če imata dva overitelja sorodno politiko preverjanja, kompatibilno opremo in si zaupata, lahko skleneta dogovor, da se medsebojno priznavata. Tako se njuni infrastrukturi javnih ključev povežeta in uporabniki obeh lahko varno izmenjujejo podatke. Prvotna ideja je bila, da bi se tako postopoma gradila svetovna PKI obenem z imenikom po standardu X.500. Zdaj takih pričakovanj ni več - PKI bodo ostale omejene na posamezna območja ali aplikacije, znotraj katerih je možno natančno določiti imetnika digitalnega potrdila in namen uporabe potrdila. Potrdilo na ime "Janez Novak" ne pove dovolj, če je oseb s tem imenom več, ključa, kot je EMŠO, za povezavo z različnimi bazami podatkov pa zaradi zakona o varstvu osebnih podatkov ne sme vsebovati. Potrdilo za Janeza Novaka z neko negovorečo enolično identifikacijsko številko mora biti na nek način povezano z zalednimi aplikacijami, katerim je namenjeno - zagotovljena mora biti povezava na običajne identifikatorje (EMŠO, davčna številka, številka bančnega računa itd.). Tudi ugotavljanje veljavnosti digitalnega potrdila je v omejenih področjih lažje rešljivo.

Infrastrukturo javnih ključev določajo postopki in oprema za:

  • generiranje in hranjenje ključev,
  • overjanje imetnikov ključev in izdajanje digitalnih potrdil javnih ključev,
  • objavljanje digitalnih potrdil (imeniki),
  • preklicevanje digitalnih potrdil,
  • časovno označitev postopkov.

Središčni del predstavlja overitelj javnih ključev (Certification Authority -CA). Vsak overitelj objavi svoj javni ključ in dokument (Certification Policy), ki opisuje postopek, kako in komu podeljuje potrdila ter na kakšen način varuje svoj zasebni ključ.

Glede na zahtevnost postopka preverjanja identitete tistega, ki mu bo izdal digitalno potrdilo, overitelj lahko izdaja digitalna potrdila na različnih nivojih zaupanja. Lahko npr. določi, da se mora posameznik osebno zglasiti in predložiti osebni dokument, lahko pa podeli digitalno potrdilo na osnovi zahtevka, poslanega po elektronski pošti. Jasno je, da je mogoče bolj zaupati digitalnemu potrdilu, podeljenemu po prvem postopku kot po drugem. Poskrbeti mora, da so imetniki digitalnih potrdil enolično določeni (posameznik ima lahko več javnih ključev in torej tudi digitalnih potrdil) in za poseben seznam preklicanih digitalnih potrdil (torej tistih digitalnih potrdil, ki so iz različnih vzrokov neveljavni).

Pomembno je tudi, da overitelj poskrbi za varnost svojega zasebnega ključa, saj bi bila sicer potrdila, ki jih je izdal, brez pomena - še več, lahko bi prišlo do poneverb, ki bi jih prepozno opazili. Hraniti ga morajo na dobro zaščitenem računalniku.

Čeprav je ideja PKI stara že več kot dvajset let, proces izčiščevanja standardov na tem področju ni končan in smemo zaradi tega uporabniki pričakovati le omejeno povezljivost med različnimi produkti. Izhodišče je standard za digitalno potrdilo X.509V3, ki je splošno sprejet (če izvzamemo PGP). V okviru IETF deluje posebna delovna skupina PKIX, ki pripravlja standarde za PKI. Eden od evropskih projektov je bil PKI challenge in v njegovem oviru je bilo pripravljeno priporočilo za uporabo PKI.

Oblika digitalnega potrdila po standardu ISO/IEC X.509V3:

  • verzija (zdaj do verzije 3)
  • serijska številka (enolična za potrdila posameznega overitelja)
  • algoritmi in parametri (npr. SHA1 in RSA)
  • izdajatelj (overitelj javnih ključev)
  • datuma veljavnosti od -do
  • prejemnik digitalnega potrdila (njegovo ime, drugi podatki o njem)
  • podatki o njegovem javnem ključu:
    • algoritem
    • parametri
    • javni ključ
  • enolična oznaka uporabnika (samo v verzijah 2 in 3)
  • razširitve (verzija 3)
  • digitalen podpis teh podatkov, ki je narejen z zasebnim ključem CA

Kmalu se je pokazalo, da je prvotna oblika (verziji 1 in 2) pomanjkljiva, ker imajo uporabniki lahko več parov javnih ključev, ki jih uporabljajo za različne namene, zato moramo imeti možnost, da jih razlikujemo na čimbolj avtomatiziran način. Tako je nastala verzija 3, kjer je možno dodati več razširitev (število ni eksplicitno omejeno) v obliki:

  • tip razširitve (registriran kot object identifier)
  • kritična/nekritična (če je razširitev označena kot kritična, potem sistem ali aplikacija ne sme uporabiti nobenega dela digitalnega potrdila, če razširitve ne pozna in je ne zna uporabiti)
  • vrednost razširitve

Določili so nabor standardnih razširitev, ki določajo naslednje skupine podatkov:

  • o ključu in politiki (npr. namen uporabe ključa, čas uporabe privatnega ključa za podpisovanje; ustrezajoča politika drugega overitelja v primerih, ko se medsebojno priznata dva overitelja
  • o prejemniku digitalnega potrdila in izdajatelju (alternativno ime za enega ali drugega, atributi v imeniku po standardu X.500)
  • omejitve pri povezovanju dveh infrastruktur.

Če pride do zlorabe, če pozabimo geslo za uporabo svojega zasebnega ključa ali pa se je pokvarila naprava, kjer smo ključ hranili, je treba tvoriti nov par ključev in dobiti novo digitalno potrdilo, staro pa preklicati. Vsa digitalna potrdila, ki so iz različnih razlogov neveljavna, objavljajo overitelji na posebnih seznamih, za katere se je uveljavila kratica CRL (Certificate Revocation List). Ti seznami se objavljajo na spletnih strežnikih overiteljev ali pa v imenikih po standardu X.500, kjer so dostopni prek protokola LDAPv3. Preverjanje CRL mora biti omogočeno neprekinjeno. Da bi bilo dostopanje do CRL čim hitrejše, se je uveljavilo več načinov: ko število preklicanih potrdil preseže neko mejo, se CRL razdelijo na več vstopnih točk v direktoriju; dodatno se objavljajo samo nova preklicana potrdila od nekega časa dalje (delta CRL). V CRL je najavljeno, kdaj bo najkasneje objavljen nov CRL (čez nekaj ur, en dan, en teden, ...). Aplikacija, ki uporablja digitalna potrdila nekega overitelja, mora znati vključiti zadnji veljavni CRL overitelja v ustreznih obdobjih. Overitelj lahko izda nov CRL pred najavljenim časom, zato morajo aplikacije preverjati veljavnost upoštevanega CRL pogosteje, kot bi sklepali iz objavljenega časa v CRL.
Zaradi problema določanja časa za vključitev CRL in ker so spletne povezave vedno hitrejše, se razvija sistem sprotnega preverjanja veljavnosti digitalnega potrdila: delovna skupina PKIX pri IETF pripravlja OCSP (Online Certificate Status Protocol). Do zdaj je bil izdan RFC 2560. Aplikacija pošlje zahtevo za preverjanje statusa potrdila direktno "pooblaščenemu" strežniku, ki mu pravijo "Certificate Status Responder", in ustavi vse transakcije, dokler ne dobi odgovora. Protokol OCSP že uporabljajo banke, ki so vključene v sistem Identrus.


Od leta 1994 naprej delujejo organizacije, ki podeljujejo potrdila posameznikom in organizacijam z vsega sveta, seveda stroške zaračunajo. Najbolj znana je Verisign, ki po nakupu druge največje take organizacije Thawte obvladuje večino tega trga. Nekateri overitelji imajo dogovor s proizvajalci brskalnikov, da so njihova digitalna potrdila instalirana v seznam overiteljev (n.pr. kot Trusted Root Certification Authorities). V tem primeru uporabnikov brskalnik avtomatično zaupa takemu overitelju in torej uporabniku njegovega digitalnega potrdila ni potrebno posebej preveriti in vključiti v brskalnik. Za to je potrebno pridobiti revizijsko poročilo Webtrust ((http://www.webtrust.org/homepage.htm). Po podatkih iz leta 2003 je začetna revizija stala od 75.000$ do 250.000$, treba pa jo je izvrševati enkrat letno. Jasno je, da potrdila manjših overiteljev zaradi tega niso avtomatično vključena v brskalnike, kar pa je varnostno še bolje - uporabnik se sam odloči, ali bo zaupal potrdilom nekega overitelja. V tem primeru njegovo potrdilo vključi v svoj brskalnik med zaupanja vredne overitelje.

Kako je z uporabo digitalnih potrdil v Sloveniji?
Uporaba digitalnih potrdil za strežnike za to, da se omogoči zašifrirana povezava z brskalnikom po protokolu SSL, je uveljavljena pri praktično vseh, ki se ukvarjajo s prodajo po internetu. S tem dosežemo to, da podatkov, ki jih je vtipkal uporabnik, ne more kdo prestreči, ker je povezava zašifrirana, poleg tega pa uporabnik lahko preveri digitalno potrdilo strežnika in iz tega sklepa, ali se je priključil na pravi strežnik.

Uporabo potrdil v brskalnikih za overjanje svojih komitentov sta prvi začeli uporabljati NLB (1999) v aplikaciji Klik in SKB v aplikaciji SKBNet. Vsaka banka ima svojo službo za izdajanje digitalnih potrdil in tako potrdilo je uporabno samo za dostop do bančnih aplikacij ustrezne banke. Je pa možno nekatera potrdila, ki so jih izdale banke, uporabljati za dostop do aplikacij državne uprave (n.pr. potrdilo NLB za oddajo dohodnine). Zanimiva je letošnja odločitev Abanke (2006), da preneha izdajati svoja potrdila za Abanet, omogoči pa uporabo potrdil Posta®ca, v bodoče pa tudi potrdil SIGEN-CA in HALCOM-CA.

Tudi slovenska vlada uresničuje načrt o e-poslovanju javne uprave. V okviru tega nastaja PKI za javno upravo, saj je bil leta 2001 ustanovljen overitelj digitalnih potrdil na Centru Vlade za informatiko. Po reorganizaciji leta 2004 je naloge Centra Vlade za informatiko prevzelo na novo ustanovljeno Ministrstvo za javno upravo, v okviru katerega zdaj deluje overitelj digitalnih potrdil:

  • SIGOV-CA, ki deluje od 17.januarja 2001, izdaja kvalificirana digitalna potrdila za institucije javne uprave,
  • SIGEN-CA, ki deluje od 9.julija 2001, izdaja kvalificirana digitalna potrdila za državljane ter za pravne in fizične osebe, registrirane za opravljanje dejavnosti.

Z uporabo digitalnih potrdil se da urediti že kar nekaj stvari prek interneta - seznam je na spletni strani e-uprave.


Kako pa pridemo do digitalnega potrdila za svoj brskalnik?

Glede na to, za kaj ga bomo potrebovali, izberemo overitelja, pri katerem ga bomo naročili. Zaenkrat digitalna potrdila za posameznike izdajajo:

Vsak overitelj ima svoj postopek, objavljen na spletnih straneh. Vsi našteti overitelji izdajajo kvalificirana digitalna potrdila, kar med drugim pomeni, da morajo "s pomočjo uradnega osebnega dokumenta s fotografijo za fizične osebe ali z uradno potrjenimi dokumenti za pravne osebe zanesljivo ugotoviti identiteto in druge pomembne lastnosti osebe, ki zahteva potrdilo" (ZEPEP, 31. člen). Zato prijavnice za potrdilo ne moremo oddati po elektronski pošti, ampak se moramo osebno zglasiti na prijavnem uradu overitelja. Tu preverijo izpolnjene podatke in naš identifikacijski dokument. Potem nam pošljejo gesla za prevzem potrdila.

V svojem brskalniku se postavimo na spletno stran za prevzem potrdila na overiteljevem strežniku. Vnesemo potrebna gesla in izberemo ustrezne parametre (n.pr. dolžino ključa RSA). Kliknemo na gumb za prevzem potrdila. Potem se odvijejo naslednji koraki:

  • Brskalnik tvori par ključev po enem od asimetričnih algoritmov. Običajno je to algoritem RSA. Uporabnik pri tem vnese geslo za zaščito zasebnega ključa.
  • Brskalnik tvori zahtevek za potrdilo in ga v obliki PKCS#10 pošlje overitelju.
    Zahtevek vsebuje javni ključ prosilca za potrdilo, ki je digitalno podpisan z zasebnim ključem prosilca. Zasebni ključ pa ni del zahtevka, saj je bistveno, da zasebni ključ pozna samo njegov lastnik (torej prosilec za potrdilo).
  • Overitelj preveri podpis v zahtevku in se tako prepriča, da prosilec res ima zasebni ključ, ki pripada javnemu ključu v zahtevku.
  • Overitelj digitalno podpiše javni ključ iz zahtevka s svojim zasebnim ključem in tako nastane digitalno potrdilo.
    Potrdilo je po standardu X.509v3, uporabljen je postopek za digitalni podpis. Algoritem za digitalni podpis pa sestavljata zgoščevalna funkcija(zaenkrat običajno SHA-1) in asimetrični algoritem (zaenkrat najbolj pogosto RSA).
  • Overitelj pošlje potrdilo prosilcu v obliki PKCS#7.
  • Brskalnik vključi potrdilo v svojo shrambo.

Ko imamo potrdilo v shrambi brskalnika, je nujno, da naredimo varnostno kopijo, v kateri je poleg potrdila tudi pripadajoči zasebni ključ. Za to se uporablja PKCS#12. Brskalnik bo tvoril varnostno kopijo po tem standardu, ko bomo kliknili na "Izvozi" (MSIE) ali "Backup" (Mozilla). Shranimo jo na disketo ali ključek in jo spravimo na varno obenem z geslom, s katerim smo jo zaščitili pri izvažanju. Tako bomo vedno lahko ponovno naložili svoj zasebni ključ in ustrezno potrdilo, če se nam pokvari računalnik. Lahko pa ga prenesemo tudi na drug računalnik ali v drug brskalnik.

April 1997, zadnje dopolnitve marca 2006