Fakultet organizacionih nauka Univerzitet u Beogradu
Seminarski rad Tema:Digitalni potpis Profesor: Dejan Simić
Student: Ilić Dragutin 270/06
Beograd, 2007 Sadržaj:
Uvod
3
Kriptologija
3
Istorija
4
Digitalni potpis
5
Tehnički opis digitalnog potpisa
8
Sažeci poruka
12
MD5
13
Opis SHA-1 «Secure Hash Algorithm»
13
Rođendanski napad
15
Upotreba digitalnog potpisa kod digitalnog sertifikata
16
Digitalni (Elektronski) potpis u Srbiji
18
Zaključak
19
Literatura
20
2
Uvod U modernoj „eri informatike“, kada se podaci obrađuju, prenose i čuvaju u elektronskoj formi, informacije postaju izložene čitanju, kopiranju i neautorizovanoj promjeni. Savremene računarske mreže se, skoro upotpunosti, zasnivaju na Internet tehnologijama. Slabosti koje su uočene u arhitekturi mreža Internet tipa sa aspekta bezbednosti su da protokoli na kojima se Internet zasniva (TCP/IP) nisu projektovani da zadovolje zahteve za zaštitom informacija koje se preko njih prenose. Rešenje ovog problema donekle pruža kriptologija, nauka koja razmatra različite aspekte obezbeđivanja tajnosti informacija.
Kriptologija Kriptologija je termin koji potiče od grčkih reči kriptos (skriven, tajan) i logos (nauka), i označava naučnu disciplinu koja se bavi sigurnim (tajnim) komunikacijama. Dvije osnovne, tijeesno povezane grane kriptologije su: kriptografija i kriptoanaliza. 1. Predmet kriptografije je, pre svega, sinteza postupaka za obezbeđivanje tajnosti informacija, tzv. kripto-zaštitu informacija. 2. Predmet kriptoanalize je razmatranje metoda kojim se kompromituju ("razbijaju" od strane neovlašćenih korisnika) postupci kripto-zaštite informacije. Primjenom kriptografije realizuju se četiri osnovna bezbjednosna zahtjeva (servisa): tajnost – obezbjeđuje da informacioni sadržaj poruke bude dostupan samo ovlašćenim korisnicima integritet – obezbeđuje otkrivanje neovlašćene izmjene informacionog sadržaja poruke autentičnost – omogućava provjeru identiteta učesnika u komunikaciji neporecivost – sprečava mogućnost poricanja realizacije određenih aktivnosti učesnika u komunikaciji (kao što su slanje poruke, transakcija i dr.). •
•
• •
3
Historija Simetrična kriptografija ili tzv. kriptografija tajnih ključeva je najstariji oblik kriptografije, stara gotovo koliko i ljudska komunikacija. Ona se razvijala i koristila kao alat u zaštiti informacija, naročito u vojnim, diplomatskim i državnim komunikacijama. Za proces kriptovanja u simetričnoj kriptografiji potrebno je znati algoritam kriptovanja i tajni ključ, a sigurnost zavisi od sigurnosti algoritma i dužine ključa. Najpoznatiji simetrični algoritmi su DES (eng. Data Encryption Standard), koji koji koristi ključeve dužine 56 bita i AES (eng. Advanced Encryption Standard), koji koristi ključeve dužine 128, 192 i 256 bita. Osnovni nedostatak simetričnih algoritama, odn. sistema zasnovanih na simetričnoj kriptografiji jeste upravljanje ključevima tj. njihova distribucija. Pre početka sigurne komunikacije subjekti komunikacije moraju razmeniti ključeve. Budući da se sigurnost svih zaštićenih (kriptovanih) informacija zasniva na sigurnosti ključa, razmjena ključeva postaje vrlo ozbiljan problem, koji se usložava ako se komunikacija odvija na većoj udaljenosti i u njoj učestvuje više subjekata. Za n subjekata u komunikaciji potrebno je n(n - 1)/2 ključeva. Generisanje i upravljanje ovako velikim brojem ključeva najčešće je nepraktično, a njihova razmena je nesigurna. Javni interes za kriptografiju drastično je porastao 1976. god. kada se prvi put javila ideja o infrastrukturi sa javnim ključevima (eng. Public Key Infrastructure, PKI). Naime Whitfield Diffie i Martin Hellman u svojoj publikaciji "New Directions in Cryptography" predstavili su ideju kriptografije bazirane na javnom i privatnom ključu. Tako je utemeljena asimetrična kriptografija ili tzv. kriptografija javnih ključeva čime se dobila mogućnost postizanja tajnosti informacija bez prethodne razmene tajnog ključa putem (ne)sigurnog komunikacionog kanala. Osnova sigurnosti asimetričnih algoritama temelji se na nemogućnosti (ili vrlo teškoj mogućnosti) izračunavanja privatnog ključa iz javnog ključa. 1978. god. definisan je prvi praktični, asimetrični algoritam, koji se oznacava sa RSA (početna slova imena njegovih autora Ronald Rivest, Adi Shamir, and Len Adleman) i koji je iskorišćen za kreiranje digitalnog potpisa (eng. Digital Signature, DS). 1984.-1985. u softveru za čitanje novosti na USENET-u upotrebljena je rot13 šifra (rotiranje slova za 13, slično "caesar" šifri) da bi se spriječio pristup djece za njih neprikladnim sadržajima. 1991. god. usvojen je prvi standard digitalnog potpisa, baziran na RSA asimetričnom algoritmu . 1994. god. američka Nacionalna Bezbednosna Agencija (eng. National Security Agency, NSA) razvila je i usvojila standard digitalnog potpisa (eng. Digital Signature Standard, DSS), kako bi omogućila generisanje digitalnog potpisa u svrhu autentifikacije elektronskih dokumenata. Sve ovo, uz ubrzan razvoj savremene komunikacije preko
4
različitih medija (najviše Interneta), dovelo je do realizacije infrastrukture sa javnim ključevima (PKI) koja omogućuje sigurnu komunikaciju preko nesigurnog kanala.
Digitalni potpis Digitalni potpis (eng. Digital Signature) predstavlja postupak kojim se određeni segment bloka podataka, ili standardizovane poruke, kriptografski obeležava potpisnikovim tajnim parametrom. Digitalni potpis je 51-bitni broj koji se dobija primenom RSA algoritma na HASH vrednost generisanu iz bloka podataka koji se štiti. On se dodaje na kraj bloka podataka koji se šalje. Pod blokom podataka misli se na čitav DER (Datoteka za elektronsku razmenu podataka) osim njegovog poslednjeg dela. Digitalni potpis se bayira na dva kriptografska ključa: 1. tajni ili privatni ključ (Private Key), kojim se vrši potpisivanje podataka i 2. javni ključ (Public Key), kojim se vrši verifikovanje potpisa. Digitalni potpis i digitalno potpisani dokumenat se mogu izraziti formulom: Digitalni potpis = E [H(m), SA] Digitalno potpisani dokument = m; E [H(m), SA] gde su: m - digitalni dokument koji se potpisuje, H(m) - otisak digitalnog dokumenta, a H funkcija sažetka, SA – tajni (privatni) ključ potpisnika, E - funkcija šifrovanja (asimetrično kriptovanje).
Kreiranje digitalnog potpisa •
•
Postupak kreiranja digitalnog potpisa se sastoji iz dve faze: u prvoj fazi se primenom odgovarajuće kriptografske kompresione funkcije (MD5 HASH) određuje otisak poruke (message digest), u drugoj fazi potpisnik poruke šifruje dobijeni otisak svojim tajnim (privatnim) ključem, primenom odgovarajuđeg asimetričnog algoritma (RSA). Šifrovani otisak poruke predstavlja njen digitalni potpis i pridružuje joj se.
5
Kreiranje digitalnog potpisa (primer za MD5 HASH alogoritam i RSA algoritam) Da bi potpisao dokument, potpisnik mora jasno naznačiti granice dokumenta koji potpisuje. Za označenu poruku (podatak) koji treba sigurno preneti, HASH funkcija softvera potpisnika izračunava jedinstveni otisak (message digest), pridružen jedino toj poruci. Softver zatim transformiše otisak u digitalni potpiskoristeći se potpisnikovim tajnim (privatnim) ključem. Tako nastali digitalni potpis je stoga jedinstven i za poruku i za privatni ključ koji ga je kreirao. Uobičajeno je da se digitalni potpis pridodaje poruci, skladišti i šalje zajedno s njom. Medutim, on se može poslati i kao odvojeni podatak, dokle god zadržava pouzdanu vezu s originalnom porukom. Kako je svaki potpis jedinstveno vezan uz original, besmisleno ga je u potpunosti odvojiti od izvora na osnovu kojeg je nastao.
Verifikacija digitalnog potpisa
Postupak verifikacije digitalnog postupka sastoji se iz 3 faze: u prvoj fazi se iz dobijene poruke izdvaja digitalni potpis i dešifruje javnim ključem pošiljaoca u drugoj fazi primalac kreira otisak informacionog dela dobijene poruke identičnim postupkom kao na predajnoj strani u trećoj fazi vrši se poređenje, i ako je dobijeni otisak poruke identičan sa dešifrovanim otiskom, verifikacija je uspešna. •
•
•
6
Verifikacija digitalnog potpisa
Funkcionalnost digitalnog potpisa
Na osnovu iznetog može se zaključiti da je za funkcionalnost digitalnog potpisa potrebno izvršiti dva procesa, od kojih jedan sprovodi potpisnik, a drugi primalac. Uspešnom proverom digitalnog potpisa garantuje se: Autentičnost, pouzdanost identiteta pošiljaoca je posledica činjenice da je otisak poruke koji je šifrovan tajnim ključem, moguće uspešno dešifrovati samo primenom odgovarajuđeg javnog ključa. Integritet, uporećivanjem izračunatog i dešifrovanog otiska poruke utvrđuje se da porukanije modifikovana. Neporecivost, pošiljalac ne može da porekne slanje poruke pošto je potpisana njegovim tajnim ključem. •
•
•
Važno je pomenuti da elektronski potpisi uopšte, pa tako ni digitalni potpis ne pružaju zaštitu tajnosti podataka od neovlašćenog čitanja, jer se svi podaci šalju u svom originalnom (nepromenjenom) obliku. Postupci kreiranja i verifikacije digitalnog potpisa prolaze kroz postupke modifikacije vec čitavu deceniju, i mogu se automatizovati do te mere da je ljudska interakcija potrebna samo u izuzetnim slučajevima. Verovatnoća otkaza ili problem sigurnosti u sistemima kriptografije koji su dizajnirani i implementirani prema razvijenim industrijskim standardima je beznačajan, i puno je manji od rizika neprimećenog falsifikata ili izmene dokumenta na papiru.
7
Tehnički opis digitalnog potpisa Kao što smo već rekli današnje tehnike digitalnog potpisivanja temelje se na algoritmima asimetrične kriptografije, poznate još i pod nazivom kriptografija javnog ključa (engl. «public key cryptography»). Algoritme javnog ključa (engl. «public-key algotithms») možemo podeliti u tri osnovne grupe: 1. algoritmi temeljeni na praktičnoj nemogućnosti faktorizacije velikih prostih brojeva (RSA) 2. algoritmi temeljeni na praktičnoj nemogućnosti izračunavanja diskretnih logaritama (Diffie-Hellman protokol, DSA) 3. algoritmi temeljeni na elipsastim krivama (praktične realizacije ove metode su tek u razvoju) Osim ovih algoritama postoji još i nekolicina ređe korišćenih, temeljenih na praktičnoj nemogućnosti utvrđivanja sadržaja ranca (engl. «knapsack algorithms», Merkle), no većina današnjih komercijalnih implementacija se može svrstati u jednu od tri glavne kategorije. Recimo još i to da se različite verzije Knapsack algoritma ne smatraju sigurnima zbog toga jer su Rivest i Shamir (nazavisno jedan od drugog, Rivest prvu verziju, Shamir dorađenu nakon prvog uspešnog razbijanja) uspeli «razbiti» ovakvu zaštitu. RSA је algoritam za asimetričnu kriptografiju nastao 1977. на МIТ univerzitetu. Tvorci ovog algoritma su Ron Rivest, Adi Shamir i Leonard Adleman gde RSA predstavlja akronim nihovih imena. Kliford Koks, britanski matematičar koji je radeći za jednu vladinu agenciju za komunikacije, još je 1973. godine objavio u internim dokumentima potpuno ekvivalantni sistem za asimetričnu kriptografiju, ali zbog poverljivosti tih dokumenata, to je tek objavljeno 1997. Algoritam je patentiran od strane MIT-a 1983. у САД , pod šifrom U.S. Patent 4,405,829. Patentna prava su istekla 21. septembra 2000. U RSA algoritmu ključnu ulogu igraju veliki prosti brojevi. Sigurnost RSA zasniva se na složenosti faktorizacije velikih prostih brojeva. Smatra se da je određivanje orginalne poruke na osnovu šifrata i ključa za šifrovanje ekvivalentno faktorizaciji proizvoda dva velika prosta broja. Postupak generisanja: 1. Generisaćemo slučajno dva velika različita prosta broja p i pri čemu . 2. Izračunaćemo sledeće proizvode: n = pq 3. I Ojlerovu funkciju ф(n)=(p-1)(q-1) 4. Odabere se celobrojna vrednost e pri čemu je 1
8
Prosti brojevi koji se koriste u ovom algoritmu uglavnom sadže nekoliko stotina cifara i zbog toga se ovde javljaju više problema praktične prirode. Da bi se pomnožili tako veliki brojevi, potrebno je da se koriste posebni aalgoritmi za množenje. Sem toga lako se primeti da je za takve operacije potrebno više vremena , pa su ovi algoritmi šifriranja mnogo sporiji u odnosu na simetrične algoritme. Tipični algoritmi druge grupe su DSA (engl. «digital signature algoritam») i Diffie-Hellman protokol za razmenu ključeva. “Digital Signature Algorithm” se koristi za potpisivanje kao i za proveru valjanosti već načinjenog potpisa. Svaki potpisnik poseduje javni i tajni ključ. Tajni ključ se koristi u procesu stvaranja digitalnog potpisa, a javni ključ se koristi u procesu provere valjanosti potpisa. U oba slučaja se algoritam primjenjuje na sažetak poruke, M, načinjen korištenjem “Secure Hash Algorithm” funkcije. Bez poznavanja tajnog ključa potpisnika nije moguće stvoriti valjan potpis, tj. nije moguće falsifikovati potpis (u razumnom vremenskom periodu). Suprotno tome, svako je u mogućnosti proveriti valjanost potpisa korišćenjem javnog ključa potpisnika. Pre korišćenja DSA mora se utvrditi nekakva povezanost para ključeva (javnog i tajnog) sa korisnikom. To se obično ostvaruje potpisivanjem javnog ključa od strane “poverljive stranke” (engl. “trusted party”) uz prethodnu proveru stvarnih fizičkih dokumenata.
Primer DSA
9
DSA (engl. «digital signature algoritam») i Diffie-Hellman temelje se na računarskom vrlo zahtevnom procesu izračunavanja diskretnih logaritama. Ilustrujmo to Diffie-Hellman protokolom. Kao prvo, protokol koristi dva parametra p i g, oba javna. Parametar p je prim broj, a parametar g (obično se naziva generator) je ceo broj manji od p, koji ima sposobnost generisanja bilo koje vrednosti od 1 do p-1 kada ga se pomnoži samim sobom određeni broj puta mod p. Pretpostavimo sad da dve osobe, A i B, žele da razmenjuju šifrovane poruke preko nesigurne veze bez da prethodno imaju neki tajni ključ. Prema DH protokolu, obe strane generišu tajne vrednosti; osoba (A) generiše slučajan broj a, a osoba (B) slučajan broj b. Nakon toga koriste javne parametre p i g da bi izračunali vrednost zajedničkog tajnog ključa K, i to tako da osoba (A) izračuna svoju javnu vrednost kao ga mod p, a osoba (B) g b mod p. Javne vrednosti se razmene (nesigurnim kanalom), a potom osoba (A) računa K ab=(g b)a mod p, a osoba (B) računa K ba=(ga) b mod p. Obe strane ovim postupkom dobijaju isti rezultat, K ab=K ba=K, tj. razmenili su tajni ključ preko nesigurne veze. Sigurnost ovog protokola temelji se na problemima izračunavanja diskretnih logaritama. Naime, praktično je vrlo teško izračunati deljeni tajni ključ K, K=g ab mod p uz dovoljno veliko p uz poznavanje samo javnih vrijednosti ga mod p i g b mod p. Jedno relativno novo područje (prvi radovi su iz 1993. godine, A. Menezes, Elliptic Curve Public Key Cryptosystems, Kluwer Academic Publishers, Boston, 1993) u kriptografiji javnog ključa je i šifrovanje korišćenjem elipsastih kriva. Prednosti ove metode su pre svega kraći ključevi i kao rezultat toga i bolje performanse algoritma uz zadržavanje jednake sigurnosti kao i kod prethodno opisanih algoritama. Pod pojmom «elipsasta kriva» (engl. «elliptic curve») podrazumeva se poseban tip krive (ne elipsa) kao ovaj na donjoj slici.
10
Ovakav tip krive (konkretan primer je y2-y=x3-x2) ima osobinu da iako se «proteže» u beskonačnost, kriva prolazi kroz konačno mnogo celobrojnih koordinatnih parova (x,y). Definišemo li operator sabiranja nad tim parovima (x,y) dobili smo grupu. Sabiranjem dve tačke iz tako stvorene grupe dobijamo treću tačku (takođe iz grupe). Kriva prikazana na obe ove slike može stvoriti polje od svega 5 celobrojnih parova (uključujući tačku O koja je svojevrsni neutralni element), što za bilo kakvu kriptografsku upotrebu nije dovoljno, no posluži će za ilustraciju. Da bi cela stvar funkcionisala potrebno je još definisati i tačku O, negde u beskonačnosti, gde sve vertikalne linije konvergiraju. Uočimo još jednu vrlo zanimljivu osobinu; kada povučemo tangentu na krivu u nekoj tački, tangenta uvek prolazi kroz još jednu tačku. Npr. tangenta kroz a prolazi i kroz tačku c, a tangenta na b i kroz tačku a.
,
Sabiranje elemenata vršimo tako što povučemo pravac kroz dve tačke koje želimo da saberemo zatim kroz tačku kojoj je taj pravac tangenta povučemo pravac u tačku O. Taj novi pravac seče krivu u još jednoj tački koja je rezultat sabiranja prethodne dve. Na sledećoj slici imamo primer sabiranja tačaka a i b tako da povučemo pravac kroz te dve tačke. Pošto je taj pravac tangenta na krivu u tački b, kroz tačku b povučemo pravac u tačku O. Taj novi pravac seče krivu u tački c i to je rezultat sabiranja a i b. Sabiranje tačaka a i d daje rezultat O.
11
Skalarno množenje nije ništa drugo nego višestruko sabiranje elementa samim sobom. Tako npr. 2a je a+a=b, 3a=(a+a)+a=c, 4a=((a+a)+a)+a=d, itd.
U kriptografskim primenama posmatraju se samo celobrojne koordinate (x,y) a aritmetika se izvodi modulo p gde je p ili veliki prost broj ili velika potencija od 2. Za kriptografske primene prikladna grupa sadrži N elemenata gde je N skoro jednak p, N=k*q, q je prim broj a k je mali broj. Iz ovoga vidimo da smo uspeli da stvorimo algebarsku grupu, GF, koja sadrži N članova i pogodna je za izvođenje kriptografskih operacija poput Diffie-Hellman i SPEKE.
Sažeci poruka Jedna od kritika upućenih metodama digitalnog potpisivanja je i to da one često spajaju dve jasno razdvojene funkcije: proveru identiteta i tajnost. Često se događa da je provera identiteta neophodna, ali ne i tajnost. Isto tako, dozvola za izvoz se lakše dobija ako predmetni sistem obezbeđuje proveru identiteta bez tajnosti. U nastavku ćemo opisati šemu za proveravanje identiteta kod koje ne treba šifrovati celu poruku. Šema se zasniva na funkciji za jednosmerno hesiranje koja otvoren tekst pro-izvoljne duzine preracunava u niz bitova fiksne duzine. Ta funkcija za hesiranje, zvana i sazetak poruke (engl. message digest, MD), ima cetiri vazna svojstva: 1. Za zadato P, lako se izracunava MD(P). 2. Za zadato MD(P), prakticno je nemoguce naci P. 3. Za zadato P, niko ne moze da izracuna takvo P' da vazi MD(Pr) = MD(P). 4. Izmena ulaznih podataka cak i za samo 1 bit proizvodi veoma razlicit rezultat I
12
Za ispunjenje trećeg kriterijuma, rezultat heširanja mora biti duzine barem 128 bitova. Četvrti kriterijum biće ispunjen ako funkcija za heširanje dobro ,,protrese" bitoS| ve. Dobijanje sažetka poruke iz delića otvorenog teksta mnogo je brže od šifrovanja tog istog teksta javnim kljucem, pa se sažeci poruka mogu iskoristiti za ubrzavanje digitalnog.potpisivanja.
MD5 Predložene su mnoge funkcije za pravljenje sažetaka. Najcesće se koriste funkcije MD5 (Revest, 1992) i SHA-1 (NIST, 1993). MD5 je peta u nizu funkcija za heširanje sažetaka koje je smislio Ronald Rivest. Ona radi tako sto ,,melje" bitove na nacin koji obezbeđuje da svaki izlazni bit zavisi od svakog ulaznog bita. Ukratko, ostatak celobrojnog deljenja duzine poruke sa 512 prvo se dopunjava do 448 bitova. Zatim se tome pripaja prvobitna dužina poruke kao 64-bitni ceo broj, sto ukupnu duzinu ulaznih podataka čini umnoškom od 512. U poslednjem koraku se 128-bitni bafer inicijalizuje fiksnom vrednošću. Tek sada počinje stvarno izračunavanje. U svakoj rundi se 512-bitni blok ulaznih podataka energično mesa sa sadržajem 128-bitnog bafera. Radi ,,boljeg ukusa", u mešavinu se dodaju sinusne funkcije iz pethodno konstruisane tabele. Sinusne funkcije nisu izabrane zato što možda daju bolji rezultat od generatora slučajnih brojeva, već zato što su svima poznate i otklanjaju sumnju da je projektant ugradio mala vrata kojima samo on ima pristup. Svaki ulazni blok se obraduje u cetiri runde. Postupak traje sve dok ima ulaznih blokova. Sadrzaj 128-bitnog bafera tada predstavlja sažetak poruke. Algoritam MD5 se koristi već desetak godina i mnogi su za to vreme pokušali da ga provale. U njemu su zaista pronađene neke slabe tačke, ali su ga od provaljivanja sačuvale određene komponente njegove unutrašnje strukture. Međutim, ako te unutrašnje prepreke jednom popuste, MD5 će pasti. Pa ipak, u ovom trenutku on se još uvek čvrsto drži.
Opis SHA-1 «Secure Hash Algorithm» Druga poznatija funkcija za sazimanje poruka jeste tzv. bezbedni algoritam za hesiranje 1 (engl. Secure Hash Algorithm 1, SHA-1). SHA funkcija, tj. SHA-1 koja je ponešto izmenjena u odnosu na prvobitni dizajn koji potiče od američke agencije za nacionalnu sigurnost, NSA (National Security Agency), kao ulaz prima samu poruku i iz
13
poruke računa 160-bitni rezultat. Rezultat poruke teoretski nije jedinstven, ali je praktična verovatnost dobijanja istog rezultat za dve razičite poruke zanemarljivo mala. SHA započinje s time što dopunjuje poruku tako da poruka bude n*512 bitova duga. U zadnjih 64 bita zadnjeg 512 bitnog bloka sadržana je dužina poruke l. Poruka se dopunjuje tako da se doda «1» (bitovni znak), zatim se dodaje m nula (broj nula m, zavisi od toga koliko bitova je potrebno da blok bude 512 bitova dug) a kao zadnja 64 bita poruke stavlja se dužina cele poruke (svih blokova poruke zajedno). Tako dopunjena poruka (engl. «padded message») se potom procesira kao n *512 bitnih blokova.
Algoritmi
Veličina sažetka u bitima
Inicijalna veličina sažetka u bitima
Veličina bloka u bajtima
SHA-0 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512
160 160 224 256 384 512
160 256 256 512 512
64 64 64 128 128
Upoređivanje SHA sažetaka
MD5
SHA-1
Dužina digesta
128 bitova
160 bitova
Dužina bloka
512 bitova
512 bitova
Broj koraka
64 (16*4)
80 (20*4)
Najveća dužina poruke
/
2^64-1 bitova
Primitivnih logičkih funkcija
4
4
Broj konstanti
64
4
Upoređivanje MD5 i SHA-1
Rođendanski napad 14
U svetu šifara nista nije kao sto izgleda. Pomislili biste da je dovoljno oko 2 m operacija da se podrije sažetak poruke od m bitova. U stvari, cesto je dovoljno 2m/2 operacija ako iskoristite rođendanski napad (engl. birthday attack) - pristup koji je objavio Yuval (1979) u svom sada klasičnom radu ,,Kako prevariti rabina". Podloga za ovaj napad je pitanje koje profesori teorije verovatnoće često postavljaju studentima na svojim predavanjima: koliko treba da nas se okupi u ovoj sali, da bi se s verovatnoćom 1/2 u njoj našle dve osobe rođene istog dana? Većina studenata odgovara da treba da ih ima barem 100, dok se u stvari moze izračunati da ih je potrebno samo 23. Ne ulazeci u detalje, navedimo samo to da se od 23 osobe mogu napraviti (23 x 22)/2 = 253 razlicita para, od kojih svaki ima verovatnocu 1/365 da bude onaj traženi par. Problem možemo i da uopstimo. Ako postoji određeno preslikavanje izmedu ulaznih i izlaznih podataka, pri čemu ima n ulaznih podataka (osoba, poruka itd.) i k mogućih izlaznih podataka (rođendana, sažetih poruka itd.), postoji n(n — l)/2 ulaznih parova. Ako je n(n - l)/2 > k, šanse za jedno poklapanje su prilicno dobre. Na taj nacin, znači da će se između oko 232 generisanih poruka verovatno pojaviti dve sa istim 64 bitnim sažetkom. Ovaj napad je veoma koristan u slučaju kada se koristi MD5 sažetak
Mogući Željena mogućnost slučajnih podudaranja (p) Bitovi ishodi −18 −15 −12 −9 −6 10 10 10 10 10 0.1% 1% 25% 50% (H) 2.9 × 9.3 × 5.0 × 7.7 × 32 4.3 × 109 <1 <1 <1 2.9 93 103 103 104 104 1.9 × 6.1 × 1.9 × 6.1 × 1.9 × 6.1 × 3.3 × 5.1 × 64 1.8 × 1019 6.1 102 103 105 106 108 108 109 109 2.6 × 8.2 × 2.6 × 8.2 × 2.6 × 8.3 × 2.6 × 1.4 × 2.2 × 128 3.4 × 1038 1010 1011 1013 1014 1016 1017 1018 1019 1019 4.8 × 1.5 × 4.8 × 1.5 × 4.8 × 1.5 × 4.8 × 2.6 × 4.0 × 256 1.2 × 1077 1029 1031 1032 1034 1035 1037 1037 1038 1038 8.9 × 2.8 × 8.9 × 2.8 × 8.9 × 2.8 × 8.9 × 4.8 × 7.4 × 384 3.9 × 10115 1048 1050 1051 1053 1054 1056 1056 1057 1057 1.6 × 5.2 × 1.6 × 5.2 × 1.6 × 5.2 × 1.6 × 8.8 × 1.4 × 512 1.3 × 10154 1068 1069 1071 1072 1074 1075 1076 1076 1077
75% 1.1 × 105 7.2 × 109 3.1 × 1019 5.7 × 1038 1.0 × 1058 1.9 × 1077
Tabela pokazuje broj heševa n(p) potrebnih za ostvarenje zadate verovatnoće, pod pretpostavkom da su svi heševi podjednako mogući.
Upotreba digitalnog potpisa kod digitalnog sertifikata 15
Kreiranje digitalnog potpisa i njegova verifikacija vrše se, kako je većpomenuto, asimetričnim kriptografskim sistemom, prilikom čega se koriste: tajni (privatni) ključ poznat jedino potpisniku javni ključ poznat širem krugu, a ne samo primaocu. Međutim, kako možetmo biti sigurni da je to zaista javni ključ potpisnika? Rešenje ovog problema postiže se upotrebom digitalnog sertifikata. Digitalni certifikat je digitalno potpisani dokument koji povezuje javni kljuc s osobom kojoj pripada. Možemo ga nazvati i digitalnom ličnom kartom, jer on to zaista i jeste - digitalna lična karta u ”syber prostoru”, odn. sredstvo kojim dokazujemo identitet na Internetu. ”Digitalni sertifikat (eng. Digital Certificate) predstavlja element kojim se utvrđuje veza između identiteta subjekta i njegovog javnog ključa primenjenog asimetričnog algoritma”. • •
Struktura digitalnog sertifikata Elementi koji čine strukturu digitalnog certifikata su: verzija formata sertifikata - sadrži oznaku strukture digitalnog sertifikata. Jedan od najzastupljenijih formata digitalnih sertifikata definisan je X.509 standardom. serijski broj sertifikata - sadrži vrednost koju dodeljuje sertifikacioni autoritet u trenutku kreiranja digitalnog sertifikata identifikator algoritma - sadrži podatke o algoritmu koji je pirmenjen za digitalno potpisivanje naziv sertifikacionog tela - identifikuje izdavača digitalnog sertfikata. rok važnosti sertifikata - sadrži vremenski period u kome je izdati digitalni sertifikat validan. vlasnik sertifikata - predstavljen je složenom strukturom koja obuhvata nekoliko ličnih podataka: o dvoslovni niz koji označava državu o region u okviru države o elektronska adresa (e-mail) o naziv mesta u kome stanuje o naziv organizacije u kojoj je zaposlen o ime vlasnika, o naziv odeljenja (niže organizacione celine) u organizaciji o ime vlasnika sertifikata polje dodatnih atributa - sadrži vrednosti koje identifikuju vlasnika sertifikata a nisu sadržane u polju vlasnik sertifikata (broj telefona, broj faxa itd.) informacija o javnom ključu vlasnika – sadrži javni ključ i identifikator asimetričnog algoritma sa kojim se dati ključ primenjuje digitalni potpis sertifikata - od strane ustanove koja je izdala setifikat (CA). Prema dosadašnjim iskustvima ovakva struktura sertifikata ispunjava zahteve savremenih kriptografkih sistema zaštite. Većina savremenih sistema zaštite, koji •
•
•
•
•
•
•
•
16
uključuju infrastrukturu sa javnim ključevima (PKI), bazira se na primeni X.509 digitalnih sertifikata.
Funkcionalnost digitalnog sertifikata
Uloga digitalnog sertifikata je da dovede u jednoznačnu vezu fizički identitet subjekta sa njegovim javnim ključem. Kreiranje i digitalno potpisivanje sertifikata vrši “treća strana od poverenja” (eng. Trusted Tthird Party, TTP). Ukoliko prijemna strana uspešno verifikuje dobijeni sertifikat, onda je ona sigurna u autentičnost pošiljaoca poruke – vlasnika odgovarajućeg tajnog ključa. Kako je par ključeva matematički povezan, ako je asimetrični sistem dobro oblikovan i implementiran, nemoguće je iz javnog ključa izdvojiti tajni (privatni) ključ. Stoga, bez obzira na to što je javni ključ poznat mnogima, u svrhu potvrde identiteta potpisnika, nemoguće je otkriti njegov tajni ključ i iskoristiti ga za lažiranje digitalnog potpisa. Ova činjenica se naziva načelo ireverzibilnosti.
Slika 4. Postupak kreiranja i provere digitalnog potpisa Digitalni sertifikati mogu biti: samopotpisani kvalifikovani. Samopotpisane digitalne sertifikate može da izda „bilo ko”, pa čak i sam korisnik. Uglavnom se koriste interno, a „pravna snaga“ dobija se potpisivanjem posebnog • •
17
ugovora sa korisnikom (npr. e-banking sistemi). Kvalifikovane digitalne sertifikate može da izda samo sertifikaciono telo koje ispunjava određene zakonske uslove i ima dozvolu za rad, što je definisano Zakonom o digitalnom potpisu i pripadajućim podzakonskim aktima. Kvalifikovani digitalni sertifikat sa odgovarajučim parom ključeva može se upotrebiti za kreiranje „kvalifikovanog digitalnog potpisa“ elektronskog dokumenta, koji je po pravnoj snazi ekvivalentan papirnom dokumentu potpisanom i overenom na klasičan način – olovkom ipe čatom.
Digitalni (Elektronski) potpis u Srbiji Elektronski potpis predstavlja tehnologiju čijom se primenom u sistemima elektronskog poslovanja omogućava provera autentičnosti potpisnika, zaštita integriteta podataka koji se prenose i neporecivost elektronskog potpisivanja date poruke ili dokumenta. Dakle, analogno svojeručnom potpisu u standardnom poslovanju, elektronski potpis se koristi u elektronskom poslovanju. Štaviše, elektronski potpis ima i dodatnu osobinu da štiti integritet elektronski potpisane poruke, što svojeručni potpis ne obezbeđuje. Što se tiče pravnih aspekata elektronskog potpisa, Direktiva EU 1999/93/EC o elektronskim potpisima (usvojena 13. decembra 1999, a formalno stupila na snagu 19. januara.2000. godine) predstavlja pravno utemeljenje elektronskog potpisa i na osnovu nje su doneti Zakoni o elektronskom potpisu u svim zemljama EU, kao i u većini ostalih zemalja Evrope. Zakon o elektronskom potpisu u Srbiji, u potpunosti usklađen sa EU Direktivom 1999/93/EC, izglasan je u Narodnoj skupštini Republike Srbije dana 14. decembra 2004. i publikovan u Službenom glasniku Republike Srbije br. 135 od 21.decembra 2004. godine. Osnovna uloga Zakona o elektronskom potpisu svodi se na dve najvažnije stvari: Da propiše uslove pod kojima je elektronski potpis pravno ekvivalentan svojeručnom potpisu. Da propiše uslove koje moraju da ispune sertifikaciona tela koja izdaju kvalifikovane sertifikate za verifikaciju kvalifikovanih elektronskih potpisa.
U Zakonu o elektronskom potpisu navedene su sledeće definicije: Elektronski potpis - skup podataka u elektronskom obliku, koji su pridruženi ili su logički povezani sa elektronskim dokumentom i koji služe za identifikaciju potpisnika. Kvalifikovani elektronski potpis - elektronski potpis kojim se pouzdano garantuje identitet potpisnika, integritet elektronskih dokumenata i onemogućava naknadno poricanje odgovornosti za njihov sadržaj, i koji ispunjava uslove utvrđene Zakonom o elektronskom potpisu. Takođe, prema tekstu Zakona, kvalifikovani elektronski potpis mora da zadovolji sledeće uslove: isključivo je povezan sa potpisnikom nedvosmisleno identifikuje potpisnika
18
nastaje korišćenjem sredstava kojima potpisnik može samostalno da upravlja i koja su isključivo pod nadzorom potpisnika direktno je povezan sa podacima na koje se odnosi i to na način koji nedvosmisleno omogućava uvid u bilo koju izmenu izvornih podataka formiran je sredstvima za formiranje kvalifikovanog elektronskog potpisa proverava se na osnovu kvalifikovanog elektronskog sertifikata potpisnika.
Kvalifikovani elektronski potpis, koji zadovoljava prethodno navedene uslove, u odnosu na podatke u elektronskom obliku ima isto pravno dejstvo i dokaznu snagu kao i svojeručni potpis, odnosno svojeručni potpis i pečat, u odnosu na podatke u papirnom obliku.
Zaključak Budućnost digitalnog potpisa je u svakom slučaju svetla. Koja god tehnologija ili algoritam bili korišćeni, teško je već danas zamisliti svet računarskih mreža bez odgovarajućih algoritama autentifikacije. No suprotno tome što je digitalni potpis de računarskog sveta koji se vrlo brzo menja i prihvata novitete, pri oslanjanju na jedan od algoritama za digitalni potpis važno je razmišljati ne samo o današnjoj računarskoj moći, već i o nadolazećim računarima koja će eventualno biti dovoljno snažni za falsifikovanje potpisa pukom silom (engl. “brute force attack”). Druga, uvek prisutna neugodna mogućnost je da već danas postoji način “razbijanja” kripto zaštite (isto tako i digitalnih potpisa) pomoću nekih brzih metoda faktorizovanja (velikih) prim brojeva, koje bi tad ugrozile ne samo kripto zaštitu algoritmima poput danas najraširenijeg RSA, već bi vrlo lako osporile i digitalne potpise (načinjene s RSA ili sličnim algoritmom). Ipak, dok se to ne dogodi (ako se ikad dogodi), ostaje nam da verujemo saznanjima današnje matematike koja kaže da je digitalni potpis praktički neprobojan ne samo danas, već i u decenijama koje dolaze.
Literatura: 19
• • • •
http://www.wikipedia.org http://en.wikipedia.org/wiki/Digital_signature http://sr.wikipedia.org/wiki/RSA http://en.wikipedia.org/wiki/Birthday_attack
20