710 likes | 854 Views
Specijalistički studij Informacijska sigurnost Sigurnosna arhitektura i tehnologije. Doc . Dr Hrvoje Mlinarić. Algoritmi za jednokratnu zaporku. Postojeća problematika Korisničko ime i zaporka Mali broj ljudi koristi više od 8 znakova za zaporku Uglavnom samo slova i to mala
E N D
Specijalistički studij Informacijska sigurnostSigurnosna arhitektura i tehnologije Doc. Dr Hrvoje Mlinarić
Algoritmi za jednokratnu zaporku • Postojeća problematika • Korisničko ime i zaporka • Mali broj ljudi koristi više od 8 znakova za zaporku • Uglavnom samo slova i to mala • Rijetko tko koristi brojeve i druge znakove • Često se koriste neki osobni pojmovi • Nitko ne mijenja redovito svije zaporke • Prijenos korisničkog imena i zaporke putem mreže vrlo često nezaštićen mreže ili slabo zaštićene • …
Algoritmi za jednokratnu zaporku • PhilKarna – Bellcore • Bell laboratorij – odjel za istraživanje i razvoj • 1994 godine predložio prvi algoritam za generiranje jednokratne zaporke • Standardiziran pod nazivom S/KEY PasswordSystemRFC1760 (N. Haller – Bellcore) ( veljača 1995)
Algoritmi za jednokratnu zaporku • Danas se algoritmi za jednokratne zaporke koriste stalo i vrlo često nismo ni svjesni da u transakcijama koje obavljamo koristimo jednokratnu zaporku • Kerberos –komunikacijski protokol koji omogućava identifikaciju i autorizaciju preko nesigurne mreže. Dizajniran je da omogući client-server arhitekturu te da omogući obostranu autentifikaciju. Poruke unutar protokola su zaštićene od mogućih napada. • Windows authentification – ista stvar samo od Microsoft Windows-a
Algoritmi za jednokratnu zaporku • OTP – One Time Password • Jednokratna zaporka bazirana na brojaču • Jednokratna zaporka bazirana na algoritmu HMAC • Jednokratna zaporka bazirana na vremenu • Jednokratna zaporka bazirana na izazovi i odgovoru
Jednokratna zaporka bazirana na brojaču • Svi kriptografski algoritmi pa tako i ovi temelj uzimaju u nemogućnosti inverzije algoritama za računanje - sažetaka poruka • Prema definiciji algoritmi za računanje sažetaka poruka moraju biti jednosmjerne funkcije, odnosno iz sažetka se ne može generirati ulazna poruka.
Jednokratna zaporka bazirana na brojaču • Algoritam generira jednokratnu zaporku tako da izračuna sažetak korisničke tajne, koja je poznata i serveru i korisniku • Korisnička tajna je slučajni broj dodijeljen korisniku, pin, i neke druge informacije • Dobiveni sažetak služi kao ulaz u slijedeći korak iteracije računanja sažetka • Iteracija se ponavlja N puta
ulazna tajnaW računanje sažetka(n puta)H(W) H(H(W))…. OTPHn(W) Jednokratna zaporka bazirana na brojaču
Jednokratna zaporka bazirana na brojaču • Prijava korisnika na sustav vrši se u tri koraka: • Predstavljanje korisnika • Korisničko ime / serijski broj – mora biti jedinstveno u sustavu • Izazov prema korisniku • Server dohvaća posljednji sažetak i vrijednost brojača iz svoje baze • Uočite da server ne mora znati korisničku tajnu • Na temelju zadnjeg sažetka računa novi sažetak i uvećava brojač za jedan. Sprema podatke u bazu • Šalje korisniku broj iteracije koju želi dobiti
Jednokratna zaporka bazirana na brojaču • OTP Odgovor prema serveru • Korisnik računa sažetak i šalje ga serveru koji ga provjerava. • Često se korisničkoj tajni pridodaje i javna tajan servisa. Više servisa može koristiti isti OTP. • Problem je izmjena i slanje sažetaka koji su u pravilu 64 bitni brojevi a u novijim algoritmima i 128,160 i 256 bitni.
Jednokratna zaporka bazirana na brojaču S/KEY • S/KEY predlaže kako 66 bitni broja pretvoriti u niz od šest riječi koje je lakše utipkati od 66 bitnog boja. • Postupak koristi niz/tablicu od 2048 engleskih riječi duljine od 2 do 4 slova. Svaka riječ pokriva 11 bitova podataka koji se kodiraju. Potrebno je 6 riječi. • Sažetak je dužine 64 bita, preostala dva bita se koriste za kontrolu
Jednokratna zaporka bazirana na algoritmu HMAC - HOTP • HOTP - HMAC-based One Time Password • Nije potrebno komunicirati s serverom prije generiranja zaporke. • Svi relevantni parametri moraju biti poznati i serveru i korisniku i moraju biti sinkronizirani • Standard propisuje upotrebu HMAC-SHA-1 algoritma za računanje sažetka poruka. • HMAC Hash-basedMessageAuthenticationCode
Jednokratna zaporka bazirana na algoritmu HMAC - HOTP • Izraz po kojem se računa jednokratna zaporka: H = hotp (T,N) T – korisnička tajna poznata i serveru N – trenutna vrijednost brojača H – izračunata jednokratna zaporka
Jednokratna zaporka bazirana na algoritmu HMAC - HOTP • Proces Autentifikacije • Korisnike • na temelju svoje tajne i vrijednosti brojača generira zaporku. • povećava brojač za jedan • Šalje zaporku i svoj identitet serveru • Server • Računa zaporke u rasponu od N do N+C. • N zadnja ispravna vrijednost brojača • C dozvoljeno odstupanje od brojača • U koliko dobivena zaporka odgovara jednoj od generiranih server pamti vrijednost brojača od te zaporke N+R
HMAC • HMAC Hash-basedMessageAuthenticationCode HMAC(K,D) = H(KeyXOR o_pad, H(KeyXOR i_pad,D)) H- funkcija za računanje sažetka Key- korisnička tajna D - Blok podataka popunjen s nulama do željene veličine o_pad – konstanta 0x5c5c5c5c…5c i_pad – konstanta 0x36363636..36
HOTP • Izlaz iz HMAC algoritma je 20 bajtova. Što je 3 puta duže od prijašnjih algoritama i korištenjem S/KEY trebalo bi nam 14 riječi. • Kako bi smanjili dužinu na izlaz se primjenjuje funkcija koja ulaz pretvara u niz alfanumeričkih ili samo numeričkih znakova proizvoljne dužine, min 6
HOTP HOTP = Truncate (x) Truncate – funkcija koja izvlači 31 bit iz X koji sadrži 160 bitova. • Uzme 4 najmanje važeća bita • Pretvori u broj T u rasponu od 0 -15 • Uzme 4 bajta na mjestima T, T+1, T+2, T+3 • Postavi najviši bit u nulu, bit predznaka 32 broja T, T+1, T+2, T+3 • Napravimo dijeljenje sa 10^R i uzmemo ostatak dijeljenja kao zaporku. R je broj znamenki zaporke
Jednokratna zaporka bazirana na vremenu – TOTP • TOTP - Time-based One Time Password • Potpuno isti postupak kao i kod HOTP algoritma samo što se umjesto brojača za sinkronizaciju koristi vrijeme • Brojač ovisi o trenutnom vremenu i ukoliko su server i korisnik vremenski sinkronizirani imat će istu vrijednost brojača
Jednokratna zaporka bazirana na vremenu – TOTP • Izraz po kojem se računa jednokratna zaporka: H = hotp (T,N) T – korisnička tajna poznata i serveru N – trenutna vrijednost brojača H – izračunata jednokratna zaporka N = |U/I| U – Broj sekundi proteklih od početka mjerenja vremena I – interval sekundi u kojem je zaporka valjana
Jednokratna zaporka zasnovana na izazovu i odgovoru • Zasniva se na HMAC algoritmu za računanje sažetka • Umjesto brojača i korisničke tajne OCRA koristi cijeli niz parametara minimalne duljine 230 bajtova
Jednokratna zaporka zasnovana na izazovu i odgovoru OCRA = Funkcija(K, Blok) Funkcija – algoritam za računanje sažetka poruka HMAC-SHA-1 K – korisnička tajna poznata i serveru Blok - skup vrijednosti varijabli čiji se sažetak računa
Jednokratna zaporka zasnovana na izazovu i odgovoru Blok = {OCRASuite |0x00|C|Q|P|S|T} OCRASuite – vrijednost koja definira Verziju algoritma, vrstu algoritma i koje se varijable koriste Varijable su [C]Q[P][S][T] C - da li se koristi brojač ili ne Q - određuje dužini i koji znakovi se smiju koristiti za generiranje izazova P - da li se koristi SHA-1 S - da li se koristi identifikator komunikacije T - da li se koristi vrijeme
Algoritmi za računanje sažetaka poruka • Svi algoritmi za računanje jednokratnih zaporki u svom temelju imaju jedan od algoritama za računanje sažetaka poruka (hash algoritama) • Uglavnom se koriste MD4, MD5, i SHA-1 algoritmi
Sigurnost jednokratnih zaporki • Napadi na jednokratne zaporke postoje, kao što postoje i napadi na sve zaštite i sigurnosne mehanizme na svijetu. • Mogućnost razbijanja algoritma • Napad na token korisnika • Napad na komunikaciju između servera i korisnika
Napad na algoritme • Algoritmi za računanje sažetaka djeluju na neograničenom broju poruka različitih dužina i sadržaja. • Njihov izlaz s druge strane je fiksne dužine od n bitova. • U stvarnosti postoji ogroman broj poruka koje imaju isti sažetak • Postoje kriteriji koje mora zadovoljiti algoritam
Napad na algoritme • Uspješni napadi na MD4 i MD5 su davno pronađeni (2007). MD5 je nešto otporniji, a MD4 se ne preporuča koristiti • Napadi na SHA-1 nisu tako uspješni, no međutim postoje • HMAC-SHA-1 koristi dva SHA-1 algoritma i do sada je otporan na napade kolizijom
Napad na token • Jedan jednostavan primjer napada • Nije moguće detektirati korisničku tajnu jer token kod svake detekcije ili sumnje na napada briše sve važne podatka. Zato se napada pin korisnika. • Prati se potrošnja napajanja. Naime tokeni pamte koliko ste puta pogrešno unijeli pin i broj pokušaja pamte u memoriji EEPROMU. • Za pisanje u EEPROM moramo trošiti više struje. • Napad ide da unesete pin i pratite koliko vremena treba da poraste potrošnja. • U sljedećem pokušaju ne dopustite da se upisivanje izvrši isključite napajanje • Drugi primjer - Usporedba pina - algoritam
Napad na server • Najčešći oblik napada • Tolerancija na brojač i vrijeme • Truncate funkcija • Smanjuje sigurnost povećava jednostavnost usluge
Literatura: • N. HALLER, C. METZ, P. NESSER, M. STRAW, A One-Time Password System, 1998. • TIME-BASED ONE-TIME PASSWORD ALGORITHM (LAMBERT M. TENNOE, MARIAM T. HENSSONOW, SUSAN F. SURHONE) • RFC1760 The S/Key One-Time PasswordSystem, Neil M. Haller • DAVID M'RAIHI, JOHAN RYDELL, DAVID NACCACHE, SALAH MACHANI, SIDDHARTH BAJAJ, OCRA: OATH Challenge-ResponseAlgorithms, 2008. • H. KRAWCZYK, M. BELLARE, R. CANETTI, HMAC: Keyed-Hashing for Message Authentication, 1997.
Primjeri napada • Chipand Pin is Broken - Steven J. Murdoch - 27th ChaosCommunicationCongress (November 2010) • Deconstructing a ‘Secure’ Processor - Black Hat – Washington D.C. - Christopher Tarnovsky, Flylogic, Inc. (Februar 2010)
H S M • Prvi primjeri kriptografije • 3300 BC, Sumer – Južna Mezopotamija: prvi znakovni sustav za pisanje: “Cuneiform script” • 1600 BC, Irak: Do sada najstariji kriptirani dokument koji je ikada pronađen!
HSM • 1000 BC, Grčka: “TranspositionCiphers” (Mijenje redoslijeda slova) pomoću štapa “Plutarque’stick” • 600 BC, Hebrew: “Substitutionciphers” (zamjena karaktera)
HSM • 100 BC, Caesar’s ciphers • Srednji vijek, Zamjena sa višestrukom zamjenom
HSM • Enigma Automat, 1920, Arthur Scherbius(Drugi svjetski rat): Višestruka slovna zamjena (kontinuirana promjena supstitucijskih tablica)
HSM • Što smo do sada vidjeli? • Kriptografija uvijek koristi neki algoritam i neki ključ • Što nam treba? • Treba nam nešto što će čuvati ključeve • A to se zove HSM
HSM • HSM • HardwareSecurity Module • HostSecurity Module • Što je HSM • Crna kutija koja kombinira sklopovsku i programsku izvedbu • Spojena ili dodana na PC računalo ili server • Omogućava izvođenje kriptografskih funkcija • Fizička i logička zaštita podataka “Tamperprotection” • Povećanje performansi
HSM • Primjena • Generiranje sigurnosnih informacija • Pohrana sigurnosnih podataka • Korištenje sigurnosnih algoritama • Napomena: HSM nikada ne dozvoljava eksportiranje sigurnosnih ključeva
HSM • Drugi nazivi za HSM • PCSM – Personal Computer Security Module • SAM – SecureApplication Module • SCD – SecureCryptographicDevice • SSCD – Secure Signature CreationDevice • TRSM – Tamper Resistant Security Module • HardwareCryptographicDevice, Cryptographic Module…
HSM • Zašto koristiti HSM?
HSM • Spajanje HSM u ili sa sustavom • Unutarnja ugradnja • PCI (32 bit / 64 bit) • PCI Express • Vanjska • Serijski prijenos: RS232 • Mrežni prijenos - Ethernet • USB
HSM • Sklopovska izvedba i ubrzanje kriptografskih algoritama: • Simetrična kriptografija • DES, 3DES, AES • Generiranje i derivacija ključeva • Kriptiranje i dekriptiranje • Prepoznavanje poruka • Asimetrična kriptografija • RSA, ECC • Generiranje ključeva • Potpisivanje podatka i verifikacija potpisa • Kriptiranje i dekriptiranje podataka
HSM • Algoritmi za računanje sažetaka • SHA-1, SHA-2, MD5 • Ostale funkcije koje se koriste u algoritmima za kriptografiju • Slučajni generator • Pravi slučajni generatori (Undeterministic) • Pseudo slučajni generatori (Deterministic)
HSM • Pravi slučajni generatori • Nedeterministički • Koristi fizički proces koji je nepredvidiv (naravno koliko je to moguće definirati). [npr. Šum] • (FIPS) izvan ljudske kontrole • FIPS 140-2: Za sada ne postoji atestirani radnom generator koji zadovoljava uvijete certifikata
HSM • Pseudo slučajni generator • Deterministički • Koristi računalne algoritme koji proizvode dugačke sekvence koje naizgled izgledaju slučajne • (FIPS 140-2) Preporuča generator slučajnih brojeva zasnovan na algoritmu ANSI X9.31 Appendix A.2.4 koristeći3-Key Triple DES iAES Algorithms