Infrastruktura javnog ključa - PKI
Temu dodao i preuzeo Damir Kutičić
Sadržaj |
Uvod
Temelji koncepta infrastrukture (PKI) su uz kriptografiju javnog ključa osmišljeni prije tridesetak godina, a infrastruktura javnog ključa se snažno proširila i razvila tijekom posljednjeg desetljeća uslijed velike potražnje korporacijskih i komercijalnih PKI servisa. Unatoč temeljnim tehnologijama za podršku ovjere, integriteta, povjerljivosti i neporecivosti, važno je napomenuti kako se može reći da PKI tehnologija ima i konkretnu, tj. opipljivu vrijednost. Ako se planski implementira, PKI će ostvariti određene prednosti unutar organizacije otvarajući prostor za značajne uštede, što je na kraju i jedan od bitnih motivacijskih čimbenika kod odabira i implementacije infrastrukture javnog ključa. Tako se između ostalog, mogu napomenuti i smanjenje administrativnog opterećenja, smanjenje broja korisničkih lozinki za pristup raznim poslovnim aplikacijama i dijeljenim resursima, odnosno posljedično smanjenje „help deskova“ i troškova povezanih za njihovo vođenje, smanjenje papirologije i poboljšanje učinkovitosti rada kroz više automatiziranih, dakako i sigurnijih, poslovnih procesa, zatim smanjenje zahtjeva za obukom krajnjeg korisnika u pogledu sigurnosnih sustava, jer postoji jedinstveno sigurnosno rješenje, optimiziranje produktivnosti radne snage, pošto se krajnji korisnici manje bave samom sigurnosnom infrastrukturom i sl.
Nastajanjem certifikata i kriptografije javnih ključeva rezultat je potrebe za jakom sigurnošću i u današnje vrijeme mnoge velike organizacije implementiraju certifikate i kriptografiju javnih ključeva. Infrastruktura javnih ključeva (PKI) zahtijeva kriptografiju javnih ključeva, osnovnog servisa za upravljanjem digitalnim certifikatima i enkripcijom ključeva za ljude, programe i sustave.
Kriptografija
Kriptografija je znanost o primjeni kompleksne matematika za povećanje sigurnosti elektroničkih transakcija. Kriptografija je bazirana na kriptografskim algoritmima i procesima za konverziju shvatljivog običnog teksta u neshvatljiv šifrirani tekst. Kriptografski algoritmi su matematički algoritmi koji su dizajnirani tako da se mogu povezati s različitim setovima podataka i obavljati operacije nad njima. Takvi algoritmi su kompleksni i dosta su zahtjevni za provođenje.
Koliko je kriptografija opsežna govori činjenica da je ova disciplina podijeljena na kriptologiju i kriptoanalizu. Dok se kriptologijom bave matematičari i istraživači koji pronalaze nove kriptografske algoritme, kriptoanalitičari analiziraju nove algoritme i testiraju njihove ranjivosti.
Kriptografija je bazirana na konceptu u kojem se neki dijelovi algoritma jednostavnije i brže izvode u jednom smjeru, ali izrazito kompleksno i teško u suprotnom smjeru. Npr. uzmemo li dva prirodna broja veličine od nekoliko znamenki i pomnožimo ih, jednostavno i brzo ćemo dobiti rezultat. Ali, ako iz tog rezultata netko drugi želi dobiti naša inicijalna dva broja, namučit će se jer kad i dobije neko rješenje, ne mora biti točno jer vjerojatno postoji više od jednog rješenja.
Od prvih početaka civilizacije, postojala je potreba da poneka komunikacija bude tajna i nedostupna. Definirani su koncepti simetričnog šifriranja i asimetričnog šifriranja, odnosno šifriranje tajnim ključem i šifriranje javnim ključem. Već je iz naziva vidljivo kako je ključ vrlo bitan za oba kriptografska algoritma, i simetričnog i asimetričnog. Kriptografski ključ je u mnogo pogleda poput fizičkog ključa iz realnog svijeta. Svaki kriptografski algoritam koristi ključ određene matrice i duljine. Iako se svaki ključ može pokrenuti algoritmom, samo onaj ključ koji ima valjanu matricu bitova i određene je duljine, moći će šifrirati i dešifrirati dokument.
Simetrična kriptografija
Za simetrično šifriranje karakteristično je da za šifriranje, odnosno pretvaranje običnog teksta u šifrirani tekst, i dešifriranje, tj. pretvaranje šifriranog teksta u obični tekst, postoji jedan tajni ključ. Autor šifriranog teksta mora osigurati sigurni kanal i način dijeljenja tajnog ključa s osobom kojoj je šifrirani tekst namijenjen.
Prednost ovog tipa simetrične kriptografije je jednostavnost i brzina izvođenja, no mane se ističu kada je potrebno većem broju osoba osigurati dostupnost šifriranog teksta ili osigurati sigurnu komunikaciju. Npr. tekst je šifriran jednim tajnim ključem, i on je poznat svim osobama koji imaju prava pristupa šifriranom dokumentu. Postoji velika vjerojatnost presretanja ili krađe ključa. Ili, za svakog primatelja šifriranog teksta, autor mora izraditi unikatni tajni ključ. Mana ovog ključa se iskazuje i u trenutku kada se u proces zaštićene komunikacije uključuju osobe koje autoru i ostalim sudionicima nisu poznate i još nije uspostavljeno povjerenje.
Jedan od prvih primjera jednostavnog simetričnog ključa je ROT-13 ili jednostavno zamjensko šifriranje, u kojem se svako slovo originalnog teksta zamjenjuje slovom koji je za šifriranje pomaknut unaprijed za 13 mjesta u engleskom alfabetu, odnosno unazad za dešifriranje.
Osim ROT-13 koji je klasificiran kao vrlo jednostavan algoritam, poznati su još složeni i visoko sofisticirani algoritmi poput:
- DES (FIPS46) - najpoznatiji i najviše istraženiji simetrični algoritam. Kreirao ga je IBM krajem 70-ih. DES ima mogućnost šifriranja blokova dužine 64 bitova. Ključ DES-a je fiksiran na 56 bitova dužine i američke Agencije za nacionalnu sigurnost ga je usvojila. Uslijed stalnog napretka računala i procesorske moći, vremenom je DES postao ranjiv na tehniku razbijanja (tzv. bruteforce attack).
- 3DES - kratica je za trostruki DES. Trostrukim kriptiranjem postignuto je povećanje otpornosti i efektivnosti DES algoritma.
- RC5 (Rive95) - simetrični algoritam koji ima mogućnost šifriranja blokova veličine 64 ili 128 bitova, a podržava duljinu ključa do 2048 bitova. Naravno, što je dulji ključ, potrebna je veća snaga procesora za uspješno provođenje algoritma, ali je zato i enkripcija snažnija (ključ od 2048 ima 2^2048 kombinacija, odnosno 2,23*10E+616)
- AES (Advanced Encryption Standard) - tzv. nova generacija kriptografskog algoritma. Simetrični je blok šifrant veličine 128 bita, naziva Rijndael (Daemen i Rijmen iz Belgije) i podržava 128, 192 i 256-bitnu duljinu ključa. Ovaj algoritam šifriranja je specifičan po broju iteracija transformacija običnog u šifrirani tekst. Svaki krug iteracije sadrži nekoliko procesa uključujući jedan koji ovisi o ključu.
Asimetrična kriptografija
Sredinom 70-ih godina 20. stoljeća dvojica istraživača, Diffie i Hellman, uzevši u obzir ograničenja simetričnog ključa, osmislili su koncept u kojem su šifre asimetrične, odnosno u kojem postoji ključ za šifriranje i ključ za dešifriranje, koji su vidljivo različiti a ipak povezani te koji se jedan od njih može publicirati, i to bez straha da se preko njega može izračunati i otkriti drugi ključ. Sama ta ideja da ključ koji se može javno otkriti, a bez mogućnosti da će ugroziti sigurnost komunikacije bila je revolucionarna. Ideja je bila toliko primamljiva za matematičare i računalne znanstvenike, da su se punim tempom uhvatili u koštac s postavljenim problemom.
Dani koncept je ostvaren, pa danas imamo princip da se za asimetrično šifriranje koriste dva povezana ali različita ključa, koji su dovoljno različiti da se ne može dogoditi izvođenje ili otkrivanje drugog dijela para ključeva, bez obzira kojom se računalnom snagom napadač koristi. Naravno, pod terminom da je par ključeva neprobojan, smatra se da se sigurnost tog koncepta temelji na činjenici, kako je svako probijanje ili razbijanje para ključeva ekonomski neisplativo. Drugim riječima, da su za takvu aktivnost potrebni iznimno visoka računalna snaga, jako puno memorije i jako puno vremena. Time je postignut naum da se jedan od ključeva može javno publicirati (javni ključ), a drugi ostaje tajan (privatni ključ). Javni ključ se tako može nalaziti u javnim bazama podataka ili čak otisnuti na posjetnici. Navedenim konceptom postignute su sljedeće pogodnosti[2]:
- ono što je šifrirano jednim ključem (bilo privatnim ili javnim), može se dešifrirati drugim ključem (javnim ili privatnim)
- asimetrična enkripcija je sigurna
- budući da nije potrebno slati ključ primatelju, asimetrično šifriranje je imuno na presretanje ključa
- broj ključeva koje treba distribuirati je uvijek isti bez obzira na broj sudionika pa tako u asimetričnoj kriptografiji ne postoji problem kompleksnosti distribucije ključeva
- asimetrična kriptografija omogućuje digitalni potpis i neporecivost
- asimetrična enkripcija relativno je spora
- asimetrična enkripcija proširuje šifrirani tekst
Algoritmi asinkrone kriptografije danas su mnogobrojni. Isto tako su mnogi i prestali vrijediti zbog stalnog entuzijazma kriptoanalitičara. Najpoznatiji primjeri asimetričnih algoritama su:
- RSA - nazvan prema autorima Rivest, Shamir, Adleman sa MIT-a. Jedan je od najranijih i najistraživanijih algoritama javnog ključa. Pogodan je za šifriranje i dešifriranje, potpisivanje i provjeru (integritet). Može se koristiti i kao sigurnosni generator pseudoslučajnih brojeva. Sigurnost se temelji na složenosti faktoriranja vrlo velikih cijelih brojeva. Sugestija za ovaj algoritam je kako duljina ključeva mora biti najmanje 1024 bitova ne bi li se osigurala sigurnost za nekoliko sljedećih godina. Patent za RSA je istekao 2000. godine čime se počeo slobodno koristiti pa je postao i obavezan u mnogim protokolima.
- ECC - kriptografija eliptične krivulje (Elliptic Curve Cryptography) je nešto mlađi od RSA, ali je do sada pokazao veću otpornost na napade na algoritam. ECC je danas opcionalno prisutan u mnogim protokolima i idealan je u aplikacijama koji ne zahtijevaju široku interoperabilnost te radi odlično sa matematičkom jedinicom koja se nalazi u svim procesorima i ne zahtijeva posebne kriptografske ubrzivače. ECC je manje složeniji od RSA, što se tiče matematičkih operacija unutar samog algoritma, pa se za istu razinu sigurnosti mogu koristiti i ključevi kraće duljine.
- DSA (Digital Signature Algorithm) - algoritam koji je dizajniran isključivo za potpisivanje i verifikaciju te integritet podataka.
- SHA-1 - revizija algoritma SHA (Secure Hash Algorithm) koji je dizajniran za uporabu algoritama DSA i RSA. Princip ovog algoritma je sličan algoritmu MD5 hash funkciji. Hash funkcije nisu algoritmi javnog i privatnog ključa, ali su uključeni jer algoritmi digitalnog potpisa uvijek se koriste u sprezi s hash algoritmima za pružanje usluga potpisivanja i verifikacije te integriteta podataka. Odnosno, hash algoritmi su sastavni dio digitalnog potpisa i integriteta podataka[1].
Podaci iz 2000. godine prikazani u tabeli 1[3] prikazuju analizu sigurnosti zasnovanu na cijeni i veličini ključa. Vrijeme koje je potrebno za razbijanje ključa izračunato je s pretpostavkom da stroj može razbiti 56-bitni DES ključ u 100 sekunda. Kolona „strojevi“ prikazuje koliko se može kupiti NFS (eng. number field sieve) strojeva za 10 milijuna dolara pod pretpostavkom da je trošak njihove memorije 0.5$ po megabajtu. Tako je npr. vidljivo da se za RSA ključ koji je ekvivalentan 128-bitnom simetričnom ključu, može izgraditi tek 16% stroja. Uzme li se npr. umjesto 10 milijuna dolara, 10 trilijuna dolara, napad na simetrični i ECC ključ trajat će 10E+10 godina. Zaključak je da danas još ne postoje takvi strojevi koji bi se mogli upotrijebiti za uspješan napad, a između ostalog i zbog ekonomskih razloga koji prelaze barijere.
Servisi kriptografije javnog ključa
Pronalaskom kriptografije javnog ključa, ostvarile su se brojne mogućnosti koje do sada nisu bile ostvarive simetričnom kriptografijom. Neke od značajnijih servisa su:
Sigurnost između neznanaca
Kao što je već navedeno, jedan od bitnih motivirajućih čimbenika u kreiranju koncepta kriptografije javnog ključa (slika 1) bile su teškoće u ostvarivanju sigurne komunikacije između stranaca u okruženju simetrične kriptografije.
Ova mogućnost je ostvariva u okruženju asimetrične kriptografije, tako da se javni ključ distribuira svima. Javni ključ može biti pohranjen u javnom skladištu ključeva. U tom će slučaju osobe, koje do sada nisu nikad međusobno komunicirale, biti u mogućnosti ostvariti sigurnu komunikaciju. Npr. osoba 1 ako želi zaštititi podatke za osobu 2, uzet će javni ključ osobe 2 i zaštitit će podatke za njega. Kako bi osoba 1 bila sigurna da je dohvatila javni ključ osobe 2, mora vjerovati skladištu ključeva ili na neki drugi način utvrditi ispravnost identifikacijskih informacija.
Šifriranje pomoću javnog ključa
U asimetričnoj kriptografiji, enkripcija podatka javnim ključem je moguća pa se u tom slučaju šifrirani podaci mogu dešifrirati jedino odgovarajućim privatnim ključem. Složenost algoritama asimetrične kriptografije su prespori pa se u mnogim slučajevima ili okruženjima, praktički ne mogu koristiti. Kako bi se ipak iskoristila prednost asimetrične kriptografije, primjenjuje se hibridni modeli, odnosno dodatno se primjenjuje i simetrična kriptografija. U tom slučaju šifriranje se izvodi u dva koraka:
- podaci se šifriraju korištenjem tajnog (simetričnog) ključa koji je generiran slučajnim odabirom
- tajni ključ se šifrira korištenjem javnog ključa primatelja podataka
Dešifriranje se tada izvodi također, u dva koraka:
- Primatelj korištenjem svoj privatnog ključa dešifrira tajni ključ
- Primatelj koristi tajni ključ za dešifriranje podataka
Digitalni potpis
Pojavom asimetrične kriptografije, koncept digitalnog potpisa postao je izvediv. Naime, kao i kod uobičajenog parafa izvedenog rukom, postoji samo jedna osoba koja je sposobna staviti potpis na neki dokument, no mnogo drugih osoba je sposobna pročitati taj potpis.
Digitalni potpis je baziran na konceptu para ključeva. Analogno realnom svijetu, postoji jedan ključ koji je poznat osobi koja potpisuje dokument u vidu privatnog ključa. Pa tako kada osoba potpiše dokument svojim privatnim ključem, jamstvo je da su ti potpisani podaci izričito i jedinstveno povezani s tom osobom. Kako bi se mogao taj potpis identificirati ili verificirati, osoba distribuira svoj javni ključ.
Podaci koji se mogu potpisati mogu biti bilo koji digitalni sadržaj te ne ovise o podatkovnoj veličini, jer se za ulaz u funkciju digitalnog potpisivanja uzima fiksna veličina i operacija kriptografske "hash" funkcije. Samo potpisivanje se svodi na to da potpisnik pomoću hash funkcija dobiva iz dokumenta podatak fiksne duljine, a potom primjenjuje enkripciju na dobiveni podatak, koristeći privatni ključ. Ako se želi taj potpis provjeriti, pomoću hash funkcije se iz dokumenta dobiva podatak fiksne duljine i zatim se ta vrijednost razmatra zajedno s dobivenim potpisom na koji se primjenjuje javni ključ potpisnika. Ako se te dvije vrijednosti poklapaju, potpis je ispravan[1].
Integritet podataka
Digitalni potpis, osim što provodi ovjeru izvornosti, njime se ostvaruje i integritet podataka, drugim riječima garantira i osigurava kako se na zaštićeni sadržaj nije utjecalo na bilo koji način. Naime, za integritet podataka zaslužna je "hash" funkcija. Svaka i najmanja promjena podataka rezultira drugačijom fiksnom vrijednošću koju daje hash funkcija, a koja će na kraju, kod provjere digitalnog potpisa, rezultirati pogreškom.[1]. Jedan od dobrih primjera je potpisivanje elektroničke pošte. Ako elektronička poruka sadržava valjani digitalni potpis, time je primatelj upoznat s dvije činjenice. Prvo, digitalni potpis dokazuje kako sama poruka nije kompromitirana tijekom prijenosa i drugo, potvrđuje kako je poruka zaista od osobe koja se i predstavila kao pošiljatelj.
Inrastruktura javnog ključa
„Definicija sigurnosne infrastrukture je prilično široka i obuhvaća mnoge stvari, uključujući dosljedno nazivlje, odobrenje politike, politike, praćenje, reviziju, upravljanje imovinom, uređaj za kontrolu pristupa itd." [1]
Načelo postojanja sigurnosne infrastrukture je slično kao i kod ostalih infrastruktura. Npr. mrežna ili električna infrastruktura, koja nudi mogućnost jednostavnog priključenja i korištenja prema potrebi. Sigurnosna infrastruktura je, u osnovni, osjetljiva, odnosno striktna arhitektura za različita okruženja, čime se izbjegava ad-hoc ili neupravljiva rješenja, a na značaju najviše dobiva u velikim organizacijskim okruženjima.
Primarni cilj sigurnosne infrastrukture je mogućnost uključivanja dijelova aplikacija prema sigurnosnim zahtjevima ili potrebi dodavanja sigurnosti nad vlastitim podacima ili resursima, te za dodavanjem sigurnosti nad interakcijom s drugim podacima ili resursima. Takav sigurnosni dodatak mora bit dovoljno sigurnosno jak, dok je istovremeno primjena dovoljno brza kako bi bila što upotrebljiva. Iz toga se može navesti kako:
- primjena mora biti dobro poznata, odnosno mora postojati jednostavnost u korištenju sučelja
- rezultat servisa kojeg isporučuje infrastruktura, mora biti predvidljiv i iskoristiv
- način na koji je infrastruktura postigla rezultat ne treba biti poznat za korištenje servisa ili uređaja
U današnje vrijeme izazov sigurnosti je značajno različitiji. Umreženost računala se raširila a masivno prihvaćanje Interneta, kao osnove za elektroničko poslovanje, pomaklo je cijeli sigurnosni model. Sigurnost postaje sofisticiranija i sva pažnja se usredotočuje na temeljna načela koja se primjenjuju na podatke i servise koje je potrebno štititi. Elektronička sigurnost se oslanja na temeljne procese i servise koji omogućuju sigurnosno rješenje za isporuku poslovnih informacija i servisa kroz mrežu. Ovi servisi uključuju sljedeće:
- Identifikacija je proces prepoznavanja pojedinca. Ovaj servis omogućuje povezivanje unikatne informacije s autorom koji je informaciju kreirao i odaslao. Identifikacija zahtijeva jedinstvenost identifikacijskih podataka, a za identifikaciju se koristi uspoređivanje svih poznatih entiteta smještenih u bazi sve dok se podaci za identifikaciju ne poklope.
- Ovjeravanje je bilo koji proces kojim se može dokazati i verificirati pouzdanost informacije. Npr. čin potpisivanja obrasca u banci i uspoređivanje s potpisom koji je prethodno deponiran.
- Autorizacija je proces kojim se određuje koje su ovlasti nad informacijom ili servisom. Npr. nakon što je korisnik ovjeren, a po mogućnosti i identificiran, proces ovjere određuje što taj korisnik može raditi, čitati ili koristiti.
- Integritet je proces kojim se osigurava da je informacija stigla do odredišta nepromijenjena. Nakon što je poruka ili dokument potpisan, ovjerena je izvornost dokumenta, a sadržaj se ne može mijenjati. Ovaj proces je vrlo zahvalan kod ugovaranja između dva entiteta.
- Povjerljivost je proces držanja informacije tajnom. Enkripcijom informacije, štiti se sadržaj informacije tajnom, odnosno pristup sadržaju imaju samo autorizirani entiteti.
- Neporecivost je proces kojim se osigurava izvornost nekog čina, čime se onemogućuje poricanje i vrijedi na sudu.
Navedeni servisi koriste se u nekom obliku i našem stvarnom životu, a izazov je bio reproducirati te servise u elektronički komercijalni svijet. Tehnike koje su korištene za stvaranje e-analogije stvarnom svijetu, bazirane su na kriptografiji.
Certifikacija
Po fundamentalnom principu prema kojem je omogućeno tehnologiji javnog ključa slobodno izdavanje para ključeva, dok se javni ključ može slobodno distribuirati entitetima kojima je javni ključ potreban, pojavljuje se pitanje povjerenja među entitetima, tj. postavlja se pitanje, stoji li iza javnog ključa doista onaj entitet za kojeg se on izdaje. Jačina javnog ključa, koji se može samo čitati, nije imuna na mogućnost kreiranja para ključeva od strane osobe koja se samo pretvara da je netko drugi i distribuira takav "lažni" javni ključ te na taj način "prevari" drugu stranu u komunikaciji.
Navedeni problem eliminira se uvođenjem certifikata kao sredstvo za potvrđivanje javnih ključeva.
Certifikat je digitalni dokument koji povezuje javni ključ s osobom, aplikacijom ili servisom. Na ovom konceptu zasnivani su razni standardi, a najpoznatiji su:
- X.509/PKIX - zasniva se ne certifikacijskim tijelima koji izdaju komercijalne certifikate, a za verifikaciju je zadužen korijenski certifikator
- PGP - Pretty Good Privacy - certifikat izdaje pojedinac, a više drugih osoba potvrđuje taj certifikat
- SDSI/SPKI (Simple Public Key Infrastructure) - zasniva se na certifikacijskim tijelima kao i kod PKIX, s time da više certifikatora potvrđuje certifikat. Ovaj model je mješavina PKIX-a i PGP-a
Za izdavanje certifikata javnog ključa zadužen je autoritet za certifikaciju (eng. Ceritification Authority - CA). Garanciju da je CA izdao certifikat, integritet tog certifikata ostvaruje se tako da se certifikat digitalno potpisuje privatnim ključem CA. Takav certifikat se slobodno može distribuirati jer ne sadrži osjetljive podatke. Organizacija CA ovisi o usvajanju određenog standarda.
Iako se funkcija provjere certifikata mogla implementirati u CA, zbog praktičnih razloga, poput rasterećenja, široke geografske rasprostranjenosti, poboljšane skalabilnosti i smanjenja troškova, postoji autoritet za registraciju (eng. Registration Authority - RA). Bitno je napomenuti kako RA ne smije izdavati certifikate. Osim navedenog, RA može biti podrška u:
- potvrđivanju identiteta osobe na temelju fizičke pojavnosti poput osobne karte, zdravstvene iskaznice, kreditne kartice i sl.
- inicijalizaciji certifikacijskog procesa s CA od strane krajnjeg korisnika
- dijeljenju tajnih podataka krajnjih korisnik nakon ovjeravajućih postupaka
- generiranju ključeva krajnjeg korisnika
- definiranju životnog ciklusa ključeva ili certifikata te inicijalizaciji certifikata koji više ne vrijede
PKIX model
Osnove X.509 standarda definiraju format certifikata, procedura i način distribucije javnih ključeva. Inače, ovaj standard moguće je primijeniti na mnoga područja u cijelosti ili djelomično. Ovisno o modelu i domeni na kojem će model djelovati, odabiru se ona svojstva standarda X.509 koja su potrebna i koja se mogu dodati u certifikat ili koncept.
PKIX model baziran je na X.509 standardu i standardu kriptografije javnog ključa (PKCS) kao niza standarda koji pokrivaju PKI u području izdavanja, održavanja i distribucije certifikata za proizvođače, korisnike i dr.
Za okruženje rada na Internetu IETF (Internet Engineering Task Force) je formirao PKIX (The Public Key Infrastructure X.509). PKIX ne koristi sve mogućnosti X.509 standarda, a u nekim slučajevima čak i onemogućuje korištenje nekih dijelova standarda. „PKI standardi definiraju PKI, a sigurnosni standardi za aplikacije mogu pretpostaviti, zahtijevati ili dopustiti korištenje PKI (slika 3)[4]
Glavne funkcije PKIX su:
- registracija - proces u kojem se krajnjem entitetu potvrđuje valjanost certifikata. Obično, proces registracije obavlja RA, ali može i CA ako CA provodi i funkcije RA.
- inicijalizacija - ostvarivanje početne komunikacije s CA ili RA u kojem se uspostavlja protokol daljnje komunikacije
- certifikacija - CA provodi izdavanje certifikata javnog ključa, prosljeđuje ga entitetu koji je tražio certifikat i objavljuje ga u repozitorij
- oporavak para ključeva - u slučaju gubitka ključa, arhivske operacije i operacije oporavka mogu oporaviti par ključeva
- generiranje ključa - PKIX omogućuje generiranje para ključeva u okruženju krajnjeg korisnika koji se može prenijeti u RA ili CA sa zahtijevom za registraciju i izdavanjem certifikata. Isto tako, ključeve je moguće kreirati i od strane RA ili CA pod uvjetom da se privatni ključ može dalje distribuirati
- ažuriranje ključa - zamjena ključeva i certifikata nakon isteka valjanosti, održavanje ključeva koje je izdao CA i sl.
- unakrsna certifikacija - PKIX može identificirati unakrsnu certifikaciju koju izdaje jedan CA za drugi CA koji opet potpisuje ključeve trećeg CA. Unakrsni certifikati se mogu izdavati unutar iste ili kroz više administrativnih domena
- opozivanje - u PKIX modelu, CA je odgovoran za održavanje informacija o stanju certifikata. U slučaju isteka ili kompromitacije, certifikat više neće vrijediti. Uloga ovog procesa je stavljanje takvih certifikata na listu opozvanih certifikata i distribuirati ih. CA, može koristiti i protokol on-line statusa certifikata (eng. Online Certificate Status Protocol - OCSP) kako bi se smanjilo vrijeme od opoziva do objave.
- distribucija i publikacija certifikacije i opozivanja - PKI je odgovoran i za distribuciju certifikata i njihovih stanja. Distribucija se najčešće provodi korištenjem repozitorija poput LDAP imenika.
Komponente PKIX arhitekture[2]
PKI entiteti
Entiteti su definirani kao sastavni dio PKIX arhitekture.
Autoritet za certifikaciju
Autoritet za certifikaciju ili certifikacijsko tijelo (eng. Certification Authority - CA) odgovoran je za kreiranje i izdavanje certifikata krajnjim entitetima. Isto tako, CA je odgovoran za upravljanje svim aspektima životnog ciklusa certifikata.
PKIX model poznaje hijerarhiju autoriteta za certifikaciju u kojoj se najviši u hijerarhiji naziva korijenski CA (eng. root CA). Korijenski CA certificira ostale CA ispod sebe.
Autoritet za registraciju
Autoritet za registraciju ili registracijsko tijelo (eng. Registration Authority - RA) je komponenta u PKI koja je odgovorna za registraciju krajnjih entiteta i utvrđivanje njihove povezanosti s certifikatima koje je CA izdao. U slučaju da u infrastrukturi nije prisutan autoritet za registraciju - RA, tu ulogu će preuzeti na sebe CA. Funkcije RA ovise o implementacije PKI, ali osnovne funkcije su utvrđivanje i provjera identiteta krajnjeg entiteta.
Odvojenost RA od autoriteta za certifikaciju, pitanje je poslovne odluke, poslovnih procesa ili implementacije PKI. Npr. neka firma može staviti RA na strani kupaca i poslovnih partnera, a izdavanje certifikata je unutar firme ili je povjereno registracijskoj kući kao trećoj strani. Isto tako sama topologija mreže može uvjetovati da se RA nalazi izvan poslovne domene, dok se poslovna domena i CA nalaze u zaštićenom mrežnom okruženju.
Repozitorij certifikata
Repozitorij ili skladište certifikata koristi se za javno skladištenje certifikata i liste opozvanih i nevažečih certifikata (CRL). Kao suport skladištenja PKIX modelu, najčešće se korist LDAP imenik koji slovi kao jedan od najoperativnij imenika. Osim certifikata i liste opozvanih certifikata, LDAP se može direktno koristiti za pretraživanje, može pohraniti dodatne informacije autoriteta za izdavanje certifikata, kao i identificirajuće odnose između autoriteta za izdavanje certifikata u unakrsnom certificiranju.
Povezanost komponenata
Veze između komponenata su:
- operativne transakcije - izmjena poruka koje su uključene u operativni protokol dokumenata i osigurava osnovni prijenos certifikata, listu odjavljenih certifikata - CRL-a (eng. Certification Revocation List) i ostalih upravljačkih i statusnih informacija
- upravljanje transakcijama - podrška upravljanju transakcijama ili operacijama unutar PKI
- objava certifikata i CRL-a - distribucija certifikata i listi odjavljenih i nevažećih certifikata u javna skladišta
Infrastruktura javnog ključa u Microsoft Windows okruženju
U ovom praktičnom dijelu prikazat ću način uspostavljanja infrastrukture javnog ključa, odnosno certifikacijskih servisa Microsoftove serverske tehnologije Windows Server 2008 Enterprise.
Općenito
Certifikacijski servisi su vrlo bitni za mrežnu infrastrukturu aktivnog imenika (Windows Server 2008 Active Directory - AD) kao i za Domain Name Server (DNS) te Dynamic Host Configuration Protocol (DHCP). Certifikacijski servisi omogućuju također, izdavanje certifikata koje podržavaju pametne kartice (eng. Smart Card), šifriranje mrežnog prometa putem protokola IPSec, šifriranje prometa na Web-u korištenjem Secure Socket Layers (SSL) te šifriranje datoteka i mapa kroz sustav šifriranja datoteka (eng. Encrypting File System - EFS).
Certifikacijski servisi, znani i pod nazivom PKI, se u Windows okruženju nazivaju Active Directory Certificate Services (AD CS) i povezani su striktno hijerarhijski, za razliku od recimo od ostalih servisa kao što su kontroler domene (eng. Active Directory Domain Service - AD DS) ili DNS koji su integrirani u AD ravnopravno.[5]
Hijerarhijska struktura CA
Na vrhu hijerarhijske strukture nalazi se korijenski CA (eng. Root CA). Svaki server ispod korijenskog CA je podređeni CA (eng. subordinate CA). Korijenski CA potpisuje potpisivanje certifikata podređenih CA. Implicitno, ako se vjeruje korijenskom CA, onda se vjeruje i podređenom. Ako se posumnja kako je jedan od podređenih CA kompromitiran, vrlo se jednostavno mogu opozvati potpisani certifikati tog CA, a svi podređeni CA ispod njega su nevažeći. Korijenski CA tada dodjeljuje novi certifikat. U slučaju da je korijenski CA kompromitiran, analogno već navedenom, svi CA ispod njega su nevažeći. Stoga je vrlo bitno držati korijenski CA u potpunoj sigurnost.
Sigurnost korijenskog CA
Pošto je korijenski CA vrlo bitan za cijelu infrastrukturu javnog ključa, postoji nekoliko metoda kako osigurati korijenski CA od napada.
Jedna od metoda je tzv. Offline Root CA, odnosno korijenski root je instaliran na server koji nije dodan u domenu (eng. standalone CA) i djeluje samostalno. Druga metoda ide korak dalje, gdje ne samo da je server offline, nego su mu fizički uklonjeni diskovi i pohranjeni u čuvani prostor.
Konfiguracija
Windows Server 2008 (Enterprise i Datacenter) podržava konfiguraciju certifikacijskih servera kao CA za poduzeća (eng. enterprise CA) ili samostalni CA (eng. standalone CA). Time se dobiva podjela od četiri mogućnosti: korijenski CA za poduzeća (eng. enterprise root CA), samostalni korijenski CA (eng. standalone root CA), podređeni CA za poduzeća (eng. enterprise subordinate CA) i podređeni samostalni CA (eng. standalone subordinate CA).
CA za poduzeća je u interakciji s domenom i koristi grupnu politiku (eng. group policy) za distribuciju certifikata i liste opozvanih certifikata klijentima kroz šumu aktivnog imenika (eng. Active Directory Forest). CA za poduzeća imaju i predloške za certifikate i svaki je taj predložak podložan konfiguraciji seta sigurnosnih dopuštenja kojim se administrator rasterećuje ponavljajućih poslova. Dodatna opcija je i ta što se certifikat automatski dobiva iz DS pa se mogu neki poslovi automatizirati.
Samostalni CA djeluje samostalno na serverima koji nisu članovi domene aktivnog imenika. Za razliku od CA za poduzeća, samostalni CA ne može automatski dobivati informacije iz DS koje su potrebne certificiranje.
Mnoge organizacije miješaju gore navedene konfiguracije pa tako za korijenski CA uzimaju samostalni CA, a za grupu podređenih uzimaju podređene CA za poduzeća.
Instalacija certifikacijskog servera
U mom praktičnom dijelu odlučio sam se za uspostavu infrastrukture javnog ključa u Windows okruženju čime će poduzeće biti spremno za međusobnu sigurnu komunikaciju računala na razini klijent-server koristeći IPsec protokol, prijavu korisnika na domenu pametnim karticama i sl. Infrastruktura će se sastojati od jednog root enterprise CA i jednog subordinate enterprise CA gdje su oba prijavljeni kao članovi domene (eng. member servers).
U Windows okruženju sama instalacija i inicijalizacija certifikacijskih servera je vrlo jednostavna:
1. Potrebno je otvoriti konzolu za upravljanje serverom (eng. Server Manager console) i preko odabira uloga (eng. Role Servers), bira se instalacija CA i web sučelje preko kojeg će krajnji korisnici samostalno moći koristiti neke od usluga CA
2. Odabere se Enterprise verzija
3. a za tip Root CA
4. Bira se opcija kojom se automatski nakon instalacije dodjeljuje par ključeva za Root CA
5. Pošto se radi o rootu, za kriptografiju se može birati nekoliko algoritama, a moj je odabir RSA duljine 4096 bita, za hash algoritam biram SHA-1 te uključujem opciju "Use Strong Private Key Protection Provided by The CSP"
6. Nakon odabira naziv ROOT-CA, roka trajanja certifikata i smještaja baze podataka certifikata pritiskom na tipku Install pokreće se instalacija CA. U ovom testnom primjeru za smještaj baze podataka certifikata odabrana je predložena putanja, no bolje rješenje je smještaj baze na redundatni zasebni disk.
Za instalaciju podređenog autoriteta za certifikaciju u zadanoj infrastrukturi, na drugom serveru pokreće se konzola za upravljanje serverom i preko odabira uloga
1. Odabere se instalacija CA i web sučelje
2. bira se Enterprise verzijua
3. Tip će u ovom slučaju biti Subordinate CA
4. Odabere se opcija kojom se automatski nakon instalacije dodjeljuje par ključeva za subordinate CA
5. Kriptografija je RSA s duljinom ključa od 2024 bita, a za hash je SHA-1
6. Postavljeno je da subordinate CA automatski zatraži certifikat od nadređenog CA, u ovom slučaju root CA, ROOT-CA.
7. Nakon odabira naziva SUBORD-CA, roka trajanja certifikata i smještaja baze podataka certifikata pritiskom na tipku Install pokreće se instalacija CA. U ovom testnom primjeru za smještaj baze podataka certifikata odabrana je predložena putanja, no bolje rješenje je smještaj baze na redundatni zasebni disk.
Nakon instalacije oba servera, ovdje ćemo napraviti pregled servisa.
1. Pokrenemo certsrv.msc i priključimo se na oba CA
2. Pregled izdanog certifikata za SUBORD-CA
3. Prikaz svih certifikata koje je izdao ROOT-CA
4. Pristup CA preko web sučelja
5. Preuzimanje CA certifikata
6. Zahtjev za izdavanje certifikata za neadministratorskog korisnika domene preko web sučelja
7. Pregled izdanog certifikata za korisnika
Zaključak
Kad god se spomene riječ računalo, uz tu riječ često će već u idućoj rečenici slijediti riječi rizik i sigurnost. Tijekom sve jače informatizacije poslovnih subjekata, poslovnih i državnih organizacija, a posebno velikih korporacija te načina na koji posluju, iskazana je potreba za sigurnosnim kanalima razmjene podataka. Npr. uzmimo samo e-mail, koji u današnje vrijeme može, osim tekstualnih bilješki, sadržavati ugovore ili osjetljive financijske informacije. Ili, Web se primjerice, sve više koriste kao sučelje za poslovne aplikacije, a pod utjecajem globalizacije, sve je više primjera gdje uspostavom virtualne privatne mreže (VPN), korporacije koriste Internet, radi proširenja vlastite mreže i povezivanja udaljenih ureda i sličnih potreba. Svi ovi primjeri, koji su samo dio raznoraznih korisničkih ili korporacijskih zahtjeva, zahtijevaju jake sigurnosne kontrole koje osiguravaju povjerljivost podataka, ovjeru, kontrolu pristupa štićenim podacima, integriteta podataka te odgovornost ili neporecivost.
PKI kao sigurnosna platforma doista je donijela rješenje nepremostivih pitanja sigurnosti, vjerodostojnosti i distribucije javnog ključa. Jesu li tim rješenjem zadovoljeni svi sigurnosni aspekti? Naravno, još uvijek postoje pitanja koja se postavljaju uz PKI. Npr. kome vjerujem i zašto? Tko sve koristi moj ključ? Kako su osigurana računala koja garantiraju, odnosno certificiraju javni ključ? Je li korisnik sudionik sigurnosnog dizajna? Je li osoba doista ona za koju se predstavlja i sl?
Ponekad je PKI poprilično kompleksan i neisplativ za uvođenje zbog dužeg razdoblja povrata sredstava, tako da se danas mogu pronaći mnoge e-trgovine koje funkcioniraju i bez certificiranih ključeva te time dovode u opasnost krajnjeg korisnika. S druge strane, mnoge korporacije ozbiljno shvaćaju sigurnost komunikacija i IT-a u cjelini, a uložena sredstva u zaštitu, sigurno će im se vratiti kroz niz ušteda koje PKI neposredno ili posredno donosi.
Literatura
- ^ Adams C., Lloyd S.: Understanding PKI, Second Edition, Addison Wesley, Boston, 2002.
- ^ Nash A.,Duane W.,Joseph C.,Brink D.: PKI: Implementing and Managing E-Security, McGraw-Hill, 2001.
- ^ Silverman R.: A Cost-Based Security Analysis of Symmetric and Asymmetric Key Lengths, http://www.rsa.com/rsalabs/node.asp?id=2088
- ^ RSA Data Security: Understanding PKI An RSA Dana Security White Paper, ftp://ftp.rsa.com/pub/pdfs/understanding_pki.pdf
- ^ Orin T., McLean I.:Transitioning Your MCSA/MCSE to Windows Server 2008, Microsoft Press, 2009.
- ^ Raina K.: PKI Security Solution for Enterprise, Willey Publishing, Indianapolis, 2003.
Autor
Damir Kutičić