Tehničko Veleučilište u Zagrebu Informatički odjel
Seminarski rad iz predmeta Sigurnost i zaštita informacijskih sustava
DIGITALNI POTPIS
Profesor: dr.sc. Krunoslav Antoliš
Studenti: Ivan Horvat
Ivan Auguštan
Listopad 2012.
Digitalni potpis
Ivan Auguštan/Ivan Horvat
2
SADRŽAJ
Sažetak.........................................................................................................................5 UVOD............................................................................................................................5 Kako funkcionira digitalni potpis?............................................................................ 6 potpis?............................................................................6 Prednosti sustava.......................................................................................................7 SSL................................................................................................................................7 Pribavljanje digitalnog potpisa..................................................................................8 Razbijanje enkripcije...................................................................................................9 Tipovi ključeva........................................................................................................... ključeva...........................................................................................................10 10 Javni i privatni ključ.................................................................................................. .................................................................................................. 12
Nabavljanje potpisa...................................................................................................13 13 Generiranje CSR datoteke........................................................................................13 13
Instaliranje potpisa...................................................................................................17
Zašto je zaštita podataka bitna?..............................................................................17 17
Tko su ljudi od kojih prijeti opasnost priliko prijenosa nezaštičenih podataka putem interneta?.......................................................................................................18
DODATAK ..................................................................................................................19
Generiranje ključa sa RSA algoritmom...................................................................19 Funkcija za sažimanje – HASH FUNKCIJA.............................................................. FUNKCIJA.............................................................. 20 SHA-1 (Secure Hash Algoritam)............................................................................... 20 Kako HASH funkcija pomaže da se utvrdi autentičnost poruke?......................... 20 RSA DIGITALNI POTPIS...........................................................................................21
ZAKLJUČAK............................................................................................................... ZAKLJUČAK...............................................................................................................21 LITERATURA..............................................................................................................22
Digitalni potpis
Ivan Auguštan/Ivan Horvat
4
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Ključne riječi: RSA algoritam, digitalni potpis, kriptografija
Sažetak Digitalni potpis predstavlja metodu za potpisivanje poruka u elektronskoj formi. Tako potpisana poruka može se prenositi računalskim mrežama. Ipak, treba biti oprezan jer kopija digitalno potpisane poruke identična je originalu, za razliku od poruke koja je na papiru potpisana na konvencionalan način. Digitalni potpis predstavlja kriptografsko obilježje poruke potpisnikovim tajnim parametrom. Digitalni potpis je kriptosustav s javnim ključem koji omogućuje prenošenje korisnih svojstava konvencionalnog paprinog potpisa u digitalni svijet. Međutim, ono što je vrlo bitno, digitalni potpis omogućuje: autentifikaciju i nepobitnost .
UVOD Relativno vrlo rano, u povijesti čovječanstva javila se potreba za komunikacijom. Čovjek po svojim društvenim osobinama svakodnevno pokazuje potrebu za komunikacijom. Međutim, često smo u situaciji da ne želimo sve informacije podijeliti sa svima tj. Želimo ih uputiti samo jednoj osobi. Tada na scenu stupa znanost koja se zove kriptografija. Što je to kriptografija? Riječ kriptografija potječe od grčkih rijeći kripto što znaći tajno i grafein što znači pisati, pa bismo u doslovnom prijevodu mogli reći da kriptografija znaći tajnopis. Kriptografiju kao znanstvenu disciplinu definiramo kao znanost koja se bavi proučavanjem metoda za slanje poruka u takvom obliku da ih samo onaj kome su namijenjene može razumjeti. Na osnovu toga možemo reći da je osnovni cilj kriptografije omogučiti dvjema osobama komunikaciju preko nesigurnog komunikacijskog kanala, tako da ih treća osoba ne rezumije. Osoba koja šalje poruku naziva se pošiljatelj, a osoba koja prima poruku naziva se primatelj, dok treću osobu koja želi presresti poruku nazivamo napadač . Pošiljatelj najprije, pomoću vec unaprijed dogovorenog ključa, mora transformirati poruku koju šalje. Poruku koju pošiljatelj transformira nazivamo otvoreni tekst (engl. plaintext), postupak transformacije nazivamo šifriranje (kriptiranje), a dobiveni rezultat nazivamo šifrirana poruka (engl. chipertext). Nakon toga pošiljatelj šalje poruku preko nesigurnog komunikacijskog kanala. Ako napadač presretne poruku i sazna sadržaj šifrirane poruke, on zbog nepoznatog ključa, za razliku od primatelja ne može dešifrirati poruku i razumijeti je. Šifra predstavlja matematičku funkciju koju koristimo za šifriranje i dešifriranje. Sve moguće poruke, šifrati i ključevi zajedno s funkcijom šifriranja i dešifriranja čine kriptosustav. Više o samom kriptosustavu ćemo se osvrnuti malo kasnije.
5
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Pravno gledano zemlje u tranziciji ubrzano donose zakon o digitalnom potpisu. Digitalni potpis je pretpostavka elektroničkog poslovanja koji se velikom brzinom širi planetom zbog nebrojenih prednosti. Najveća prednost su svakako manji troškovi poslovanja, kao i lakši pristup mnogo širem tržištu. Formalni zahtjevi zakonskih transakcija, uključujući i zahtjev za potpisom, razlikuju se u raznim pravnim sustavima, ali se i mijenjaju vremenom. Pravne posljedice ukoliko transakcija nema zakonski propisanu formu mogu isto tako biti različite. Tradicionalno pravo o nezakonitom poslovanju npr. ne proglašava transakciju nevažećom ukoliko nema potpisa optužene strane, ali u slučaju spora ne može se izvesti pred sud. Zbog toga ovaj zakon ima vrlo ograničenu primjenu. Tokom prošlog stoljeća, većina pravnih sustava je ograničila broj formalnih zahtjeva i smanjila zakonske posljedice ukoliko se ovi zahtjevi ne ispune. U svakom slučaju, svakodnevna praksa i dalje zahtijeva da se transakcije uobliče na način koji osigurava klijente i zadovoljava kriterije validiranosti i primjenjivosti pred sudom. U dosadašnjoj praksi, to se osigurava izradom dokumentacije s odgovarajućim potpisom. Tradicionalne metode, međutim, prolaze kroz korijenite promjene. Dokumenti se i dalje pišu na papiru, ponekad samo zbog toga da bi se zadovoljila zakonska forma. U nekim slučajevima, informacija koja se razmjenjuje u cilju obavljanja transakcije nikada se i ne stavi na papir. Tehnologija digitalnih potpisa uglavnom daje mnogo više mogućnosti od onih na papiru. Da bi se shvatile njene mogućnosti, prvo se mora shvatiti kako digitalna tehnologija potpisa funkcionira. Nakon ovako podužeg uvoda, u daljnjem tekstu ćemo objasniti neku od vrsta enkripcije, te sigurnosni protokol koji se koristi za iste, te naravno kako funkcionira digitalni potpis i svakako njegove prednosti.
Kako funkcionira digitalni potpis? Digitalni potpisi se kreiraju i verificiraju uz pomoć kriptografije, jedne grane primjenjene matematike koja se bavi transformacijom poruka u, na prvi pogled, nečitljive oblike, a zatim ih vraća u prvobitno stanje. Digitalni potpis koristi ono što se naziva "kriptografija javnih šifri" koja koristi jedan algoritam sa dvije različite, ali matematički povezane šifre: jedna služi za kreiranje digitalnog potpisa ili transformaciju podataka u nečitljivi oblik, a druga za verifikaciju digitalnog potpisa i vraćanje poruke u prvobitni oblik. Računalna oprema i software koji koristi ove dvije šifre nazivaju se imenom "asimetrični kriptosustav". Procesi koji se koriste za kreiranje digitalnih potpisa pod budnim su nadzorom stručnjaka tokom posljednjih deset do dvadeset godina. Digitalni potpisi su prihvaćeni kao nacionalno i internacionalni standardni u suradnji sa mnogim korporacijama, bankama i vladinim agencijama.
6
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Ukoliko se kriptosustav napravi i primjeni po utvrđenim standardima, mogućnost zloupotrebe je izuzetno mala, mnogo manja od rizika u klasičnom poslovanju da će potpis biti falsificiran, ili da će se dio dokumenta izmjeniti.
Prednosti sustava Ukoliko se pravilno ugrade i koriste, digitalni potpisi nude rješenje za sljedeće probleme: 1. Prijevare , svodeći na minimum rizik od poslovanja sa osobama koje žele da izbjegnu
odgovornost tvrdeći da se neko lažno predstavljao umjesto njih ili sa prevarantima 2. Osigurava vjerodostojnost poruke , jer isključuje rizik da će se određena poruka krivotvori, kao i od lažnih tvrdnji da je poruka izmjenjena nakon slanja 3. Rješava problem formalno pravnih zahtjeva , potvrđuje stav da su pravni zahtjevi kao što su pisana forma, potpis i originalni dokument zadovoljeni, jer digitalni potpisi funkcioniraju isto tako dobro kao i oni na papiru, čak i bolje. 4. Problem dostupnosti drugim sustavima, zato što štiti informaciju čak iako se ona šalje kanalima koji su otvoreni, nesigurni i zbog toga jeftini i masovno korišteni.
SSL Sigurnost je jedna od najbitnijih faktora sadašnjeg i budućeg razvoja e-poslovanja. Kritična tema je osiguravanje da razmjene podataka između korisnika i Web servera ostanu sigurne. Secure Sockets Layer (SSL) je sigurnosni protokol za siguran prijenos važnih podataka preko interneta. Dalje se bavimo temom najvažnijih koncepata kao što su digitalni potpisi i njihova distribucija, enkripcija i odgovarajuća konfiguracija Microsoft Internet Information Services (IIS). Prikupljanje certifikata, njegovo instaliranje i konfiguracija IIS za SSL navedeni su redom, korak po korak. Čini se da je svatko zabrinut za sigurnost transakcija putem Interneta – naročito kada uspijeh mnogih e-kompanija zavisi od toga. Danas je Secure Sockets Layer (SSL) standardna tehnika za zaštitu komunikacija putem Weba. SSL je kompatibilan sa svim najnovijim Web browserim-a, počevši od Microsoft Internet Explorer-a i drugih. Sa strane servera, SSL certifikati su kompatibilni sa većinom Web servera uključujući Microsoft Internet Information Services (IIS). Pod sigurnim serverom podrazumijevamo Web server (kakav je IIS) koji će koristiti SSL. SSL je sigurnosna metoda koji se koristi za emitiranje osjetljivih informacija, kakve su brojevi kreditnih kartica i online bankarenje podataka putem interneta.
7
Digitalni potpis
Ivan Auguštan/Ivan Horvat
U osnovi, SSL je tehnologija koja služi za enkripciju i dekripciju poruka poslanih između browser-a i server-a. Enkripcijom podataka, štite se podaci od čitanja tokom njihovog slanja putem Interneta. SSL enkriptira poruku sa browser-a, a zatim je šalje na server. Kada je poruka primljena na serveru, SSL izvodi dekripciju i provjerava da li je došla od pravog pošiljatelja (proces poznat kao autentifikacija, engl. authentication). Opće poznate su 40-bitna i 128-bitna enkripcija. To se zapravo odnosi na dužinu ključa generiranog svakom enkriptiranom transakcijom. Što je duži ključ, teže je provaliti enkripciju. Zašto onda ne koristiti 128-bitnu enkripciju u svim slučajevima? To bi bilo idealno, većina browser-a podržava obje enkripcije, ali ukoliko je korisniku potrebno da se transakcija sprovede međunarodno mogao bi biti ograničen na 40-bitnu enkripciju, pod određenim uvjetima. Budući da 128-bitna enkripcija pruža mnogo bolju zaštitu, izaberite je ukoliko imate izbora.
Pribavljanje digitalnog potpisa Digitalni potpisi, češće zvani samo potpisi su korišteni od strane SSL-ovog sigurnosnog protokola za enkripciju, dekripciju i autentifikaciju podataka. Potpis sadrži ime kompanije vlasnika i ostale specifične informacije koje omogućavaju primatelju potpisa da identificira vlasnika potpisa. Potpis također koristi i javni ključ korišten za enkripciju poruke prilikom slanja preko Interneta. Kao što je napomenuto ranije, SSL koristi dvije vrste potpisa: korijenski (engl.root) i serverski potpis. Korijenski potpisi se instaliraju na browser, dok serverski postoje na Web serveru. Korijenski potpis obavještava browser o primanju potpisa koji je potpisao vlasnik korijenskog potpisa. Na primjer, ako instalirate korijenski potpis koji je potpisao i izdao Microsoft Inc., korisnik će biti u stanju da autentificira i dekriptira poruke koje dobije od Microsoft-a. Ovo je od velikog značaja za osiguravanje pouzdane transakcije. Serverski potpis je instaliran na Web serveru. Radi slično kao korijenski certifikat i upravlja enkripcijom poruka poslanih browser-u i dekripcijom poruka dobijenih od browser-a. Kako se dobivaju digitalni potpisi? Prije svega, potrebno je da korisnik ode na Web site jednog od raznih vlasnika potpisa, i da podnese zahtijev za dobijanje digitalnog potpisa (engl. Certificate Signing Request ili kraće CSR). Nakon podnošenja zahtjeva vlasnik potpisa potvrđuje valjanost korisnikovog zahtjeva i izdaje mu serverski potpis. Korisnik zatim instalira serverski potpis na Web server. Korisnik treba imati na umu, da svaki drugi korisnik, koji želi da koristi njegov sigurni Web server mora imati korijenski potpis, dobiven od vlasnika potpisa.
8
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Razbijanje enkripcije SSL kodira poruke za korisnika tako da jedino korisnik kome je poruka bila namjenjena može je čitati. Proces enkripcije/dekripcije izgleda ovako: 1. Korisnik ode na stranicu Web servera. 2. Korisnikova SSL osigurana sesija počinje i jedinstveni javni ključ se kreira za browser (koristeći vlasnikov korjenski potpis) 3. Poruka je enkriptirana i potom poslana sa browser-a korištenjem serverskog javnog ključa. Poruka je kodirana tokom razmjene, tako da nitko, tko presretne poruku, nije u stanju da izvuče smisao iz nje. 4. Web server prima poruku i dekriptira je koristeći serverski privatni ključ. Proces SSL enkripcije se oslanja na dva ključa: serverski javni i privatni ključ. Privatni ključ jedino postoji na samom Web serveru koji ga koristi za enkripciju i dekripciju osiguranih poruka. Javni ključ postoji na svakom korisničkom računalu, koji ima instaliran korijenski potpis danog Web servera. Kada je javni ključ instaliran korisnik može slati enkriptirane poruke, i da prima dekriptirane poruke sa Web servera. Sljedeća slika prikazuje ovaj proces. Za veću sigurnost ključevi se uništavaju po završetku transakcije. Slika 1. Prikaz enkripcije i dekripcije
SSL ne sprečava presretanje poruka. Bilo kako bilo, svakako poruku čini beskorisnom presretaču-hackeru. Drugim riječima, neko bi mogao da presretne poruku na njenom putu do sigurnog Web servera, ali je ne bi mogao dekriptirati, zato što nema privatni ključ.
9
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Tipovi ključeva U osnovi postoje dva tipa algoritama baziranih na ključu: SIMETRIČNI (privatni ključ) i ASIMETRIČNI (javni ključ). Razlika između ovih algoritama je da simetrični ključ koristi isti algoritam za enkripciju i dekripciju, za razliku od asimetričnog algoritma, koji koristi različite ključeve za enkriptiranje, kreiranje ciphertext-a, zatim za dekriptiranje, prevođenje ciphertext-a u čitljiv tekst. Ovo ostavlja ključ, sa njegovom moći da dekriptira poruke, kao lak plijen za iskusnog krekera (engl. cracker). Zbog ovog nedostatka asimetrična enkripcija je opće prihvaćena. S obzirom da se ključ nikada ne transportira sa asimetričnom enkripcijom, ne postoji rizik od krađe. Kao što prikazuje slika 1. korištenje asimetrične enkripcije omogućava sigurnu poslovnu transakciju preko Web-a. Zašto neko ne bi mogao da sa korijenskim potpisom ukrade poruku, osiguranu asimetričnom ekripcijom i da je potom dekriptira sam? Svaki sesijski ključ (ili javni ključ) generirani su korijenskim potpisom koji je jedinstven. Tako da, čak iako bi cracker imao isti korijenski potpis instaliran na svom browser-u, ne bi mogao dekriptirati poruku. U prijevodu, čak ni prvobitni browser enkriptirane poruke ne može je dekriptirati.
Slika 2. Kako radi JAVNI-PRIVATNI sustav za šifriranje
Dalje sljedi prikaz funkcioniranja javno-privatnog sustava za enkriptiranjee: 1. Par javni – privatni ključ je kreiran. 2. Javni ključ je smješten u javni direktorij. Direktorij je skladište za čuvanje imena i informacija o korisnicima (e-mail, telefonski broj, javni ključ). 3. Privatni ključ je smješten u oblast kojoj samo ovlašten korisnik ima pristup, preko PCa, ili laptop-a. 4. Sada korisnik može da šifrira poruku. 5. Poruka je šifrirana korištenjem javnog ključa ciljnog korisnika.
10
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Slika3. Prikaz upotrebe javnih i privatnih ključeva
6. Podatak je sada razmjenjen između sistema, aplikacija ili e-mail-a kao ciphertext. Sada korisnik ima enkriptiranu poruku koju uljez ne može dešifrirati.
Slika 4. Razmjena ciphertext-a
7. Korisnik prima poruku i dekriptira je sa svojim privatnim ključem. Privatni ključ može biti zaključan šifrom koju samo korisnik zna. Poruka je čitljiva za ciljnog korisnika.
11
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Slika 5. Dekriptiranje ciphertext-a
Javni i privatni ključ Ideju o funkcioniranju javno – privatnog sistema je patentirao Diffie-Hellman 1974, a formatirao u arhitekturu Rivest, Shamir i Adelman (u dodatku je priloženo objašnjenje kako funkcionira i čemu služi RSA algoritam). Postoji nekoliko metoda za šifriranje poruka. Jedan standard je S/MIME. Također postoje: sustavi tajnog ključa i drugi sustavi za šifriranje podataka dok se prenose sa jedne lokacije na drugu. Dalje navodimo neke tehnike za šifriranje: •
•
•
• •
DES – standard U.S. vlade za šifriranje podataka, CIPHER koji radi na 64-bitnim blokovima podataka, koristeći 56-bitni ključ. IBM je razvio DES pod ugovorom sa NIST-om (National Institute of Standards and Technology). RC2 - ključ promjenljive veličine CIPHER simetričnih blokova koji može poslužiti kao zamjena za DES. RC4 – ključ promjenljive veličine CIPHER simetričnih tokova poznat zato što je brži od DES-a. PEM – Internet privatni – unaprijeđen standard za e-mail. S/MIME – (Secure/Multipurpose Internet Mail Extensions) – pruža metodu za slanje i primanje sigurnih MIME poruka. Zasnovan je na RSA javni-ključ kriptografskim sistavima.
12
Digitalni potpis • •
Ivan Auguštan/Ivan Horvat
MD2, MD4, i MD5 (Message Digest) SHA-1 (Secure Hashing Algoritm) – hashovani sustav koji je veći od 128-bitnog hash-a i sporiji od MD5.
Nabavljanje potpisa Da bi korisnik podesio SSL podršku na svoju Web stranicu baziranu na IIS-u, počinje sa nabavljanjem odgovarajućih digitalnih potpisa od vlasnika potpisa. Kada korisnik ode na stranicu vlasnika potpisa i počne proces prijavljivanja za potpise, koraci su unapred određeni. Potrebno je da korisnik popuni podatke o svom preduzeću, osobu za kontaktiranje i važeću dokumentaciju za njegovu organizaciju. Obično su članci inkorporacije dovoljni za dobivanje potpisa od vlasnika potpisa. Ovaj proces se možda čini kompliciranim, ali je neophodan za vlasnike potpisa kako bi provjerili da li je organizacija korisnika legalna.
Generiranje CSR datoteke Vlasnici potpisa od korisnika zahtijevaju da osiguraju CSR file. CSR file (Certificate Signing Request) je enkriptirani file koji sadrži informacije o kompaniji korisnika i Web serveru. Odnosno, on označava datoteku s javnim ključem koja se kreira na poslužitelju u procesu implementacije SSL certifikata. Vlasnici potpisa upotrebljavaju CSR file za generiranje i validiranje potpisa za korisnika. Prije nego što krenemo opisivati kako napraviti jednostavni CSR file, budite sigurni da imate instaliran IIS (Internet Information Services) Manager na svojem računalu: http://www.microsoft.com/en-us/download/details.aspx?id=2299
13
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Slika 6. Odabiranje „Server Certificates“ unutar „Security“ sekcije
Proces generiranja CSR iz IIS je prilično jednostavan. Prvo, korisnik otvara Administrative Tools, te potom Internet Services Manager i selektira Server Certificates unutar sekcije Security, što je prikazano na slici 6. Zatim na Action toolbar button za prikazivanje mogućnosti stvaranja Certificate Request-a, što je prikazano na slici 7. Sada lijevi klik miša na „Create Certificate Request“. Slika 7. Stvaranje Certificate Request-a
.
14
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Na slici 8. vidimo pojavljivanje prozora Request Certificate, u kojemu korisnik upisuje ime preduzeća i organizacijsku jedinicu. Ovo može biti po korisnikovoj želji, ali mora voditi računa ako traži više potpisa, biti će mu potreban unos različitih imena za svaku organizacijsku jedinicu. Također mu treba ulaz za Common Name potpisa. Ovo mora biti glavno ime Web servera. Slika 8. Prozor za zadavanje potrebnih informacija
Klik na dugme Next. U sljedećem dijalogu korisnik ukucava nivo Bit-ne zaštite prikazan na slici 9. Također potrebno je izabrati kriptografskog poslužitelja.
15
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Slika 9. Zadavanje nivoa bitne zaštite i kriptografskog poslužitelja
Odabirom dugmeta Next, korisnik prelazi na sljedeći prozor, korisnik unosi željeno ime CSR datoteke. Slika 10. Prozor za zadavanje imena CSR file-u
16
Digitalni potpis
Ivan Auguštan/Ivan Horvat
Odabirom Finish button za izlazak iz Wizard-a. Ovo će generirati CSR file za korisnika. Sada je potrebno da korisnik ode na Web stranicu vlasnika potpisa i prati njihova uputstva za zahtjev potpisa. Na pitanje o CSR file-u korisnik treba da podnese CSR file, koji je upravo kreirao (najlakši način je vjerojatno kopiranje file-a u Notepad, a zatim u za to predviđenu formu).
Instaliranje potpisa Pod pretpostavkom da vlasnik potpisa odobri zahtjev za novi digitalni potpis, poslati će korisniku file preko e-mail-a (ovo je serverski potpis). Korisnik treba sačuvati potpis na i pratiti sljedeće uputstvo radi instaliranja istog na IIS: 1. Korisnik treba otvoriti Key Manager dijalog na svom Web serveru. 2. Desni klik na ključ sa narančastom crticom i odabir Install Key Certificate iz kontekstnog menija. 3. Selektiranje file-a, koji je vlasnik potpisa poslao i ukucavanje šifre, kada se to zatraži. 4. Korisnik prati uputstva Wizard-a i pobrine se da izvrši sve promjene, koje su potrebne. Potpis je sada instaliran na Web server korisnika.
Zašto je zaštita podataka bitna? Navodimo nekoliko situacija u kojima se vidi da je zaštita podataka nephodna: •
Korisnik šalje važnu poruku o prodaji koju treba izvršiti zastupnici putem interneta u različitim djelovima svijeta. Ovi zastupnici putuju često i nose sa sobom laptop na koji primaju poruke. Kako zaštititi ove poruke od neovlaštenog pristupa?
• Trgovci postavljaju narudžbe na Extranet (Extranet je privatna mreža koja koristi
Internet tehnologiju i javne telekomunikacijske sustave kako bi osigurala djeljenje poslovnih informacija ili djelanja sa trgovcima, partnerima, potrošačima ili drugim poslovnim suradnicima. Extranet se može uporediti sa Intranetom koji koriste radnici van preduzeća.). Zatim Extranet uzima narudžbe i šalje istovremeno pošiljke trgovcu. ‘Ali čekaj!’, prodavac kaže. ‘Nisam naručio 10000 cipela!’. Kako korisnik može dokazati da je trgovac zapravo naručio cipele? •
Tvoj posao kao korisnika je da prodaješ cipele koje naplaćuješ kreditnom karticom. Kako možeš zaštititi informaciju o broju kreditne kartice tokom transmisije između
17
Digitalni potpis
Ivan Auguštan/Ivan Horvat
klijentovog browser-a i tvog Web servera (sprječavanje kriminalca od uzimanja broja kreditne kartice i poništavanja podataka). •
Neka poduzeće ima 1000 korisnika širom svijeta. Poduzeće zna tko su korisnici njegovog Web servera i vrše bar 80% prodaje poduzeća putem Interneta. Korisnici – njihova imena i šifre nisu sigurni bez korištenja SSL-a, jer su njihovi podaci nezaštićeni i otvoreni za pristupe 'internet-kriminalaca' odnosno napdača.
Tko su ljudi od kojih prijeti opasnost priliko prijenosa nezaštičenih podataka putem interneta?
Hakeri (engl. hackers) – Hakeri vole tražiti unutarnje i izvana vidljive rupe u sustavu, bugove i siromašne sistemske konfiguracije. Oni mogu znati nekoliko
programskih jezika i raditi sa UNIX-om, obično imajući temeljno razumjevanje TCP/IP protokola. U nekim hakerskim krugovima, smatra se neetičnim da se mjenjaju podaci sa strane logiranja, koji su im potrebni za rad njihove prohodnosti. Iako se radi na poboljšanju sigurnosti i dan danas, hakeri svejedno su u koraku sa razvojem tehnologije, pa tako i u koraku sa sigurnosti sustava. Krekeri (engl. crackers) – Ova vrsta upada u sustav pogađajući korisnika i sistemske
šifre. Mediji imaju tendenciju da mješaju hakere i krekere. Kreker najčešće nije tako dobro obučen u ‘umjetnosti’ provaljivanja sustava kao haker. U prijevodu, razlika je: ‘haker gradi stvari, a kreker ih ruši.’. Frikovi (engl. phreak) – Doslovno, frik je ‘telefonski haker’. Bilo kako bilo, frik
može biti bilo tko, tko radi oko telefona i telefonskih linija. Iako u današnje vrijeme rijetko tko poseže za ovom vrstom internet kriminala, svejedno je moguća u namjeri da se izmjeni originalna poruka namjenjena točno određenom primatelju. Smrfovi (engl. smurf) - ‘Smurf’ – napad je jedan od najnovijih kategorija mrežnih napada na hostove. Prestupnik šalje ogromnu količinu ICMP echo poruka na IP
prijenosnim adresama, koje sve imaju izvornu adresu žrtve. Ako korijenski uređaj dostavlja poruku prijenosnim adresama koje izvode IP prijenos na dva nivoa, većina hostova na toj IP adresi će uzeti ICMP echo zahtjev i odgovoriti na njega sa echom, povećavajući promet za broj odgovora hostova. Na višepristupnim mrežama moglo bi biti više stotina računala, koje bi mogle odgovoriti na svaki paket. „Rođak“ smrfa se zove ‘fraggle’, koji koristi UDP echo pakete, isto kao što smrf koristi ICMP echo pakete. ICMP - (Internet Control Message Protocol) – predstavlja jezgru protokola unutar
Interneta. Koristi se za slanje poruka sa greškom – izazivajući nedostupnost i nedosežnost hosta ili router-a. ICMP se razlikuje, u upotrebi, od TCP i UDP po tome što se obično ne koristi direktno u korisničkim mrežnim aplikacijama. Izuzetak je ping alat, koji šalje ICMP poruke sa Echo zahtjevom (i prima poruke sa Echo odgovorom) određujući tako da
18
Digitalni potpis
Ivan Auguštan/Ivan Horvat
li je host dostupan i koliko vremena treba paketima da dođu i da se vrate sa hosta.
DODATAK 1978. god. Rivest, Shamir i Adleman definirali su prvi, praktični asimetrični algoritam, koji se označava sa RSA (ranije spomenut u poglavlju „Javni i privatni ključ“). Ova tehnika proizvodi javni ključ koji je povezan sa specifičnim privatnim ključem, koji je nemoguće dobiti samim znanjem javnog ključa. Poruka se šifrira javnim ključem i može je dešifrirati samo vlasnik privatnog ključa, dok ostali dobivaju besmisleni tekst. Matematička osnova algoritma je u nemogućnosti faktoriziranja velikih, cijelih brojeva, tj. činjenica da je lako naći produkt dva prosta broja (brojevi djeljivi sa samim sobom i jedinicom), ali ako je taj broj koji je produkt dva prosta broja, teško je naći koji brojevi pomnoženi daju taj rezultat (naći faktore zadanog broja). 48611*53993=2624653723. Ovo se lako može dobiti olovkom i papirom. Teško je istim priborom naći faktore broja 2624653723, tj. brojeve 48611 i 53993. Računalom bi se problem lako riješio, ali samo dok su u pitanju mali brojevi. Primjer:
Za formiranje digitalnog potpisa je najbitnije da je teško naći proste faktore zadanog broja. U protivnom postoje programi koji mogu naći tajni ključ i onda je stvar propala. Rješenje je naći što veće proste brojeve, od više stotina decimalnih mjesta (milijarda ima samo 9 mjesta). Međutim postoji problem jer niti jedno računalo nezna pomnožiti tako velike brojeve (pokazuje grešku - prekoračenje). Da bi smo i praktično primjenili ovaj algoritam, moramo naučiti računalo sabirati, oduzimati, množiti, dijelit tako velike brojeve, da izgradimo čitavu aritmetiku rada sa velikim brojevima, što znatno odudara od klasičnog rada sa aritmetičkim operacijama.
Generiranje ključa sa RSA algoritmom Postupak generisranja ključa za RSA algoritmom je sljedeći: 1. Generiramo slučajno dva velika (različita) prosta broja p i q (približno iste veličine). 2. Izračunamo sljedeće produkte: n=p*q
i t=(p-1)*(q-1).
3. Izaberemo slučajan broj e, 1< e < t, tako da e i t osim broja 1, nemaju ni jedan drugi broj s kojim su oba djeljivi (uzajamno prosti).
19
Digitalni potpis
Ivan Auguštan/Ivan Horvat
4. Izračunamo broj d , 1 < d < t , tako da je broj e*d-1, bez ostatka djeljiv brojem t . 5. Javni ključ je par ( n,e), Privatni ključ je d .
Vlasnik privatnog (netko kaže i tajnog ključa) d , slobodno može objaviti brojeve n i e, tako da svako tko želi mu uputiti tajnu poruku može to i učiniti, a njen sadržaj može čitati samo vlasnik privatnog ključa, dok ostali dobivaju besmislen tekst.
Funkcija za sažimanje – HASH FUNKCIJA Šifriranje samo po sebi ne štiti integritet poruke, čak i ako ključ nije otkriven-“provaljen”. Nužno je razviti tehniku koja će snažno štititi integritet podataka tj. garantirati autentičnost sadržaja poruke. U tom cilju koristi se funkcija za sažimanje - hash funkcija.
SHA-1 (Secure Hash Algoritam) Ona svaku poruku, svaki tekst (predmet šifriranja) bez obzira na njegovu veličinu, doslovno „samelje“ (to joj i sam naziv kaže), tako da na izlazu dobijemo niz od 160 nula i jedinica. Poznato je da takvih nizova ima 2 160, a koliko je to ogroman broj o tome ne treba trošiti riječi. Bitno je istaknuti da je računski nemoguće naći bilo koji ulaz čija je hash vrijednost unapred zadani izlaz, a također je računski nemoguće naći dva različita ulaza sa istom hash vrijednošću. Dakle, kao što je teško, a možda i nemoguće naći dva čovjeka sa istim otiskom prsta tako bi i napadaču bilo teško da nađe dvije poruke sa istom hash vrijednošću. Vjerojatnost da u poruci neko izmjeni neku stavku, tako da novodobiveni tekst ima istu hash vrijednost kao i originalni je 1/2160=0.00000… , dakle zanemarivo mala vjerojatnost.
Kako HASH funkcija pomaže da se utvrdi autentičnost poruke? Primatelj poruke će poslagivanjem hash vrijednosti koju je primio sa digitalno potpisanom porukom i hash vrijednosti koju je sam generirao nakon prijema poruke utvrditi da li je poruka ostala autentična. Ako su Hash vrijednosti iste poruka nije mjenjana.
20
Digitalni potpis
Ivan Auguštan/Ivan Horvat
RSA DIGITALNI POTPIS Budući se u elektroničkoj komunikaciji javila potreba za prenošenjem poruka, moralo se pronaći tehnika koja će biti digitalni pandan svojeručnog potpisa, digitalni potpis. Digitalni potpis je matematički algoritam koji osigurava da je dana informacija potekla od danog entiteta. Digitalni potpis poruke je transformat poruke koji zavisi od nekih tajni poznatih samo potpisivaču i, dopunski, od same poruke koja će biti potpisana.
Sam koncept i korisnost digitalnih potpisa bili su poznati i nekoliko godina prije prve praktične realizacije. Prva metod je bio RSA shema (ranije opisan algoritam) potpisa koji je i danas najpraktičnija i najdomišljatija tehnika kojom raspolažemo. RSA shema digitalnog potpisa je sljedeća:
Osoba koja potpisuje poruku m, nalazi njenu hash vrijednost, neka je to m’, formatira tu poruku u skladu sa usvojenim standardima: s = (m’)d mod n.
Potpis je s, a na raspolaganje se stavlja i m (poruka).
ZAKLJUČAK Kako je danas rad bez računala i interneta u obavljanju bilo kakvog posla skoro nezamisliv, potreba za očuvanjem autentičnosti i sigurnosti dokumenata postaje sve veća. Iz navedenog razloga digitalni potpis poprima sve širu upotrebu i samo je pitanje vremena kada će u potpunosti zamijeniti klasično potpisivanje (potpisivanje dokumenata na papiru), pa je neophodno osigurati njegovu sigurnu upotrebu. Nakon dugog niza godina intenzivnog proučavanja i pokušaja „razbijanja“ RSA kriptosustava, još nije pronađena metoda kojom bi se RSA sustav u potpunosti razbio. Poznati napadi na RSA kriptosustav pokazuje kakve parametre treba izbjegavati a kakve birati. Zbog toga RSA sustav smatramo jedan od najsigurnijih načina kriptiranja podataka kako bi oni ostali sigurni od strane napadača, te ga možemo iskoristiti za efikasno digitalno potpisivanje dokumenata.
21
Digitalni potpis
Ivan Auguštan/Ivan Horvat
LITERATURA 1. Digital Press - Internet Security - A Jumpstart for Systems Administrators and IT Managers, Tim Speed and Juanita Ellis, 2003.godine. 2. SSL Certificates HOWTO, Franck Martin, 2001.godine 3. SSL & TLS Essentials – Securing the Web, Stephen A. Thomas, 2000.godine 4. http://web.studenti.math.pmf.unizg.hr/~manger/mr/MrezeRacunala-17.pdf 5. http://www.hit.bme.hu/~buttyan/courses/BSc_Coding_Tech/ssl-tls.pdf 6. http://www.verisign.com.au/repository/tutorial/digital/intro1.shtml 7. http://e-ammar.net/download/Digital%20Signature%20Guidelines%20%20Tutorial.pdf
8. http://www.hosting.com/support/ssl/generate-a-csr-in-iis
22