Prednosti i ograničenja PKI sustava

PKI svakako pruža osnovnu sigurnost potrebnu za sigurnu komunikaciju, i to takvu da korisnici, koji se međusobno ne poznaju ili su dosta udaljeni, mogu sigurno komunicirati kroz lanac povjerenja. Povjerenje je građevni blok infrastrukture javnog ključa i ono se ostvaruje osiguravanjem:
  • Privatnosti. Ostvaruje se korištenjem kriptiranja. Poruka se pretvara u drugačiji tekst korištenjem algoritama enkripcije i samo osobe s ispravnim ključem za dekriptiranje mogu dobiti izvornu poruku.
  • Integriteta. Jamči da je ono što je primatelj primio upravo ono što je pošiljatelj poslao. Nema gubitka informacija.
  • Neporecivosti. Osigurava da korisnik ne može negirati da je poslao poruku ili sudjelovao u transakciji.
  • Autentikacije. Utvrđuje da je entitet ono što tvrdi da jest. Digitalni certifikat povezuje identitet s jedinstvenim ključem.
PKI sustav nažalost ima i nekoliko mana. Sve sadžano u poljima X.509 certifikata potpisuje se privatnim ključem certifikacijskog centra. Niti jedan bit unutar certifikata ne može se promijeniti bez da certifikat postane nevažeći. Svaka promjena, kao npr. promjena e-mail adrese ili organizacijske jedinice uzrokuje ne samo izdavanje novog certifikata nego i poništavanje starog. Drugi veliki problem su liste opozvanih certifikata (CRL). Ideja je poprilično jednostavna – svaki CA sadrži listu opozvanih certifikata koja se može koristiti svaki put kad aplikacija želi koristiti certfikat. Ovo dovodi do novog problema – certifikati se ne mogu više koristiti offline, jer se mora koristit online pristup najnovijoj listi. CRL sama po sebi može biti dugačka, pa je i sam proces downloadanja liste netrivijalan, i za aplikaciju i za samu mrežu. Kako svaki certifikat sadrži i podatke o točki distribucije liste opozvanih certifikata (Certificate Revocation List Distribution Point), promjena nekog parametra CRL-a, npr. URL-a, uzrokuje poništavanje svih certifikata. CRL ne prate nikakvu paradigmu stvarnog svijeta. Osim sporog downloadanja velike liste opozvanih certifikata, postoji još jedan problem, a to je mehanizam koji se već pokazao neučinkovit. Kada se iz nekog razloga certifikat opoziva, moraju se istovremeno opozvati sve njegove kopije unutar raspodijeljenog sustava. U načelu se to može izvesti kao što se radi s ukradenim kreditnim karticama. Banke su nekoć koristile listu ukradenih ili opozvanih kreditnih kartica, ali su to prestale. Umjesto toga, izdavatelj kartice šalje svim prodajnim mjestima popis opozvanih kartica s tim da se na svakom mjestu prije odobrenja kupovine mora provjeriti je li kartica još važeća. Sličan mehanizam postoji i u PKI-ju, u kojem umjesto downloadanja CRL-a aplikacija koja provodi validaciju certifikata provjerava kod izdavajućeg CA je li certifikat bio opozvan. Online Certificate Status Protocol (OCSP) pokušava se baviti s ovim problemom. Još jedan problem X.509 certifikata jest da je previše fleksibilan. Većina proizvođača stvara certifikate koju su nekompatibilni sa certifikatima drugih proizvođača. To se događa jer koriste polja kao npr. polje upotrebe ključeva (Key Usage) na razne načine. Želi li se postići interoperabilnost, najbolje je koristiti jedan proizvod na više mjesta. Drugim riječima, nema prave interoperabilnosti. Neki proizvodi podržavaju unakrsnu certfikaciju. Unakrsna certifikacija dozvoljava različitim CA da izdaju certifikate jedan drugome. Npr. zamislimo dvije tvrtke, svaku sa svojim internim CA koje žele upogoniti PKI komunikaciju između sebe. Unakrsna certifikacija dozvoljava korisnicima unutar svake od te dvije tvrtke da prepoznaju i validiraju certifikate druge tvrtke. Ovo je naravno izvedivo samo ako su polja unutar certifikata kompatibilna između dviju tvrtki. Različite organizacije mogu imati različite načine zapisivanja imena da bi se izbjegle kolizije.