12 јун 2022

Enkripcija podataka: Razbijanje enkripcije (Epizoda 5)

Ranije je rečeno da enkripcija obezbjeđuje sigurno slanje informacija po konceptu povjerljivosti, integriteta i originalnosti. Sada se postavlja pitanje može li se enkripcija razbiti?

Razbijanje enkripcije; Design by Saša Đurić

Na ovo pitanje se ne može dati direktan odgovor, ali u zavisnosti od datih okolnosti i drugih faktora enkripciju je moguće razbiti. Međutim, potrebno je imati na umu da taj proces može zahtjevati ogromnu količinu uloženog vremena, resursa i tehničkog znanja. Generalno gledajući, napadači teže da do podataka dođu prije enkripcije ili da dođu do enkripcijskih ključeva. Međutim, ako je podatak već šifrovan, a napadač hoće da dođe do njega postoje određene vrste napada koji se mogu izvesti. Napadi na šifrovane podatke možemo prvo podijeliti u dvije grupe:

 

Pasivni napadi -  ovo je grupa napada koji nisu štetni za sistemsko okruženje, jer oni ne vrše nikakve izmjene. Posmatranje ili prisluškivanje bi bili primjeri pasivnog napada.

 

Aktivni napadi – ova grupa napada može izmijeniti podatke ili sistemska podešavanja i očigledno je da su mnogo štetniji za okruženje u kojem se odvijaju.

 

Neki od aktivnih napada za razbijanje enkripcije su:

 

Iscrpljujući napad (eng. brute-force). Ova vrsta napada pokušava primijeniti svaku moguću kombinaciju znakova (slova, brojevi, simboli...) kako bi se našao ključ za dešifrovanje poruke. Treba imati na umu da ova vrsta napada zahtjeva manje vremena za male dužine ključa, ali će zahtjevati ogromnu količinu vremena za duže ključeve. Stoga se ova vrsta napada na moderne enkripcijske sisteme ne smatra praktičnom.

 

Samo šifrovani tekst napad (eng. cipher-only). U ovom slučaju napadač zna šifrovane podatke iz različitih poruka koje su šifrovane istim enkripcijskim algoritmom. Pored toga, ako su poznate informacije kao što su jezik na kom su podaci pisani i statističke informacije o rasporedu znakova, napadač ima dovoljno informacija da pokrene ovu vrstu napada. Sa svim ovim informacijama napadaču ostaje da shvati šta je ključ i da ga primjeni za dešifrovanje svih poruka. Ova vrsta napada je možda najlakši napad imajući u vidu da se do šifriranog teksta može doći njuškanjem (eng. sniffing), ali veoma ga je teško primijeniti jer je znanje o enkripcijskom procesu ograničeno.

 

Data encryption
Source: Wallpapercave

Napad poznatog teksta (eng. known-plaintext). U ovom slučaju napadač zna dio izvornog teksta prije šifrovanja, a posjeduje i šifrovani podatak. Ono što mu preostaje je da obrnutim inžinjeringom shvati šta je ključ i onda može dešifrovati i ostale šifrovane poruke koje koriste isti ključ i algoritam. Ovaj napad je veoma efikasan kada su u pitanju jednostavne šifre, kao na primjer supstituciona šifra. Ovaj napad je često korišten tokom Drugog svjetskog rata.

 

Napad izabranog teksta (eng. chosen-plaintext). Ova vrsta napad je slična napadu poznatog teksta. Razlika je u tome što napadač sam odredi neki proizvoljan teksta na koji primjeni šifru koju hoće da razbije. Pretvaranjem svog teksta u šifrirani tekst, koristeći interesnu šifru napadač pokušava da shvati koji je ključ korišten za šifrovanje. Onog trenutka kada shvati ključ, on može da nauči više o procesu šifrovanja i da razumije kako je ključ upotrebljen. Sa tim saznanjem on može dešifrovati šifriran podatak.

 

Napad izabranog šifrovanog teksta (eng. chosen ciphertext). U ovom napadu napadač posjeduje dio dešifrovanog teksta. On onda upoređivanjem običnog teksta sa šifriranim pokušava da shvati šta je ključ. Ovo je relativno teška vrsta napada za izvesti.

 

Diferencijalna kriptoanaliza. Ovo je vrsta napada koja se najviš primjenjuje na blokovske algoritme, kao što je DES. Napadač prati nekoliko šifrovanja običnog podatka u šifrovani podatak. Posmatrajući promjene, on pokušava da zaključi šta je ključ. Ovo je vrsta napada poznatog teksta, pošto napadač posmatra transformaciju izabranog teksta.

 

Linearna kriptoanaliza. Ovdje napadač primjenjuje napad poznatog teksta na nekoliko poruka šifriranih istim ključem. To napadaču daje uvid u vjerovatnoću određenog ključa. Što na više poruka primjeni napad, veća je vjerovatnoća da će pronaći odgovarajući ključ.

 

Napad bočnim kanalima (eng. side channel). Matematički način nije jedini način za razbijanje šifriranih podataka. Napadači mogu koristiti druge tehnike kao što su posmatranje potrošnje električne energije, emisije zračenja i vremena potrebnog za obradu podataka. Sa svim ovim podacima, napadač pokreće obrnuti proces da shvati šta je ključ, samo posmatrajući količinu generisane toplote prilikom napada.

 

Napad reprodukcije (eng. replay attack). U ovom napadu, napadač dođe do nekih informacija (informacija o autentifikaciji), koju vrati nazad primaocu. To prevari primaoca, koji ne obraća pažnju na vremenske oznake i on mu daje neovlašteni pristup.

 

Implementacioni napad. Ovdje napadači teže da iskoriste ranjivosti ili slabosti koje su nastale tokom implementacije enkripcijskog sistema. Ovaj napad se isključivo usmjerava na greške u softverskom kôdu i druge nedostatke u okviru implementacije sistema šifrovanja.

 

LQCD cluster at Fermilab’s Grid Computing Center
Lattice Quantum Chromodynamics (LQCD) cluster at Fermilab’s Grid Computing Center; Source: rawpixel

Kvantni  računari. Činjenica je da je enkripciju moguće razbiti ukoliko se ima dovoljno vremena za to. U prilog tome ide Murov zakon, nazvan po jednom od osnivača kompanije Intel – Gordonu Muru, koji glasi da se snaga računara udvostručuje svakih 18 do 24 mjeseca. Posmatrajući to na primjeru razbijanje Data Encryption Standard (DES) šifre, 1998. godine bilo je potrebno 56 sati korištenjem iscrpljujućeg napada (eng. brute-force), a 2021. godine za to je bilo potrebno samo 5 minuta. To pokazuje da je razvoj tehnologije ubrzalo razbijanje enkripcije. Ipak, Murov zakon, kao i svaki zakon eksponencijalnog rasta mora doći do kraja. Zbog toga je za očekivati da će doći do fizičkog limita u proizvodnom procesu, što bi značilo da se vrijeme razbijanja enkripcije više ne može smanjiti. Tu sada na scenu stupaju kvantni računari koji nemaju ograničenja koja imaju postojeći računari, već radne na principu kubita (subatomskih čestica poput elektrona i fotona) postižući zapanjujuće brzine. Ali ni tu nije sve nije tako jednostavno i lako, a tome u prilog govori  činjenica da  oni zahtijevaju mnogo više resursa od običnih računara. Njima je potrebno obezbijediti sistem hlađenja sa temperaturom blizu apsolutne nule, a i zauzimaju dosta prostora. Ali napredak je vidljiv u poređenju sa klasičnim računarima gdje je odnos tranzistora i ukupne računarske snage 1:1, snaga kvantnih računara raste eksponencijalno sa brojem kubita. Imajući u vidu razvoj kvantnih računara, uskoro bi mogli vidjeti razbijanje AES i RSA enkripcijskih šifri.
 
 

09 јун 2022

Enkripcija podataka: Heš funkcija (Epizoda 4)

KRIPTOGRAFSKA HEŠ FUNKCIJA. To je matematička jednačina, odnosno formula sa specifičnim skupom osobina koje je čine izuzetno korisnom za šifrovanje.

Hash function
Heš funkcija; Design by Saša Đurić

Iako postoji nekoliko različitih klasa heš funkcija, sve one dijele sljedeće zajedničke osobine:

Računarska efikasnost. Heš funkcija prvenstven mora biti kompjuterski efikasna. Drugim riječima računari moraju biti sposobni da da izvrše računanje heš funkcije za veoma kratko vrijeme, što je samo po sebi i očigledno. Ako bi računanje heš funkcije trajalo po nekoliko minuta to ne bi bilo praktično. Danas ipak ova osobina nema toliko značaja kao prije recimo pedeset godina. Danas računari računaju napredne heš funkcije u djeliću sekunde.

 

Determinizam. Kriptografska heš funkcija mora biti određena, odnosno za svaki dati ulazni podatak, heš funkcija mora dati uvijek isti rezultat. Ako se jedan podatak unese milion puta, heš funkcija mora dati tačno isti rezultat milion puta. Dobijanje različitog rezultata svaki put bi obesmislilo korištenje heš funkcije, jer bi ona tada bila nasumična i beskorisna. Bez određenosti ne bi bilo moguće potvrditi određeni unos, što je i smisao heš funkcije. Ona treba da da može da potvrdi autentičnost bez pristupa privatnom ključu.

 

Otpornost na presliku. Izlazni rezultat heš funkcije ne smije otkriti niti jednu informaciju o ulaznim podacima. To se naziva otpornost na presliku - skup mogućih ulaza. Treba imati na umu da heš funkcija kao ulaznu vrijednost može imati različite vrijednosti ulaznog podatka – brojevi, slova, riječi ili znaci interpunkcije. Dalje, to može biti jedan znak, rečenica, čitava stranica ili čitava knjiga. Kako god, heš funkcija će dati rezultat iste dužine. Znači, bez obzira na ulazni podatak, rezultat će biti alfanumerički niz iste dužine. Ovo je važno, jer nizovi različite dužine bi napadači već dali neki trag za razbijanje heš funkcije. Na ovaj način je nemoguće odrediti ulaznu dužinu podatka, odnosno da li su to brojevi ili slova, nasumični znakovi ili prepoznatljive riječi. Dodatno, promjena samo jednog znaka ulaznog podatka, mora dati skroz drugačiji izlazni niz.

 

Otpornost na sudar. Ovo znači da mora biti veoma teško – gotovo nemoguće – da dva različita ulazna podatka daju isti izlazni rezultat. Kao što je već rečeno, za bilo koju ulaznu vrijednost podatka, izlazna vrijednost je uvijek iste dužine. To znači da je određen broj mogućnosti u izlaznom nizu. Pošto je ulazni niz u suštini beskonačan, a izlazni niz ograničen, matematički je vjerovatno da će više od jednog ulaznog podatka dati istu izlaznu vrijednost. Ovdje je cilj da se postigne astronomski mala vjerovatnoća da dva ulazna podatka imaju isti izlazni niz, toliko mala da se ta mogućnost može praktično odbaciti. 

 

Heš funkcija - otpornost na sudar
Otpornost na sudar; Design by Saša Đurić

Nemogućnost obrnutog inžinjeringa. Posljednja osobina podrazumijeva da heš funkcija bude potpuno otporna na obrnuti inžinjering. To znači da bi trebalo biti nemoguće da se na osnovu izlaznog podatka, obrnutim postupkom dobije ulazni podatak.

 

Zbog svega navedenog heš funkcije se nazivaju jednosmjernim funkcijama, a ova njihova jednosmjerna sposobnost je upravo ono što je potrebno u kriptografiji. Na ovim osnovama je nastalo nekoliko klasa heš funkcija. Neke od najpopularnijih su:

 

Message Digest (MD). U ovoj porodici su MD2, MD4, MD5 i MD6 heš funkcije. Kao najpopularnija MD5 heš funkcija je korištena za obezbjeđivanje integriteta prilikom prenosa podataka. Međutim, 2004. godine otkriven je sudar u ovoj heš funkciji, pa je uz pomoć nekoliko povezanih računara bilo moguće razbiti ovu funkciju. To je za posljedicu imalo da se ova heš funkcija proglasi nesigurnom i da se više ne preporučuje za upotrebu.

 

Secure Hash Function (SHA). Ova porodica obuhvata četiri algoritma: SHA-0, SHA-1, SHA-2 i SHA-3. Originalna verzija SHA-0 je 160-bitna funkcija, objavljena 1993. godine. Imala je nekoliko slabosti i nikada nije postala popularna. Kasnije, pojavom SHA-1 1995. godine, ispravljaju se greške iz prethodne verzije. Ova verzija ulazu u široku primjenu, pa je korištena i za Secure Socket Layer (SSL). Kako je 2005. godine u SHA-1 otkriven sudar unutar funkcije, dalja upotreba ove funkcije je postala upitna. Sledeći algoritam u porodici SHA-2 ima četiri varijante SHA-224, SHA-256, SHA-384 i SHA-512, u zavisnosti od broja bita u heš vrijednosti. Iako nema poznatog napada koji razbija ovu heš funkciju pokrenut je razvoj nove heš funkcije. Razlog za ovakvu odluku se krije u tome što SHA-2 prati dizajn SHA-1, pa je moguće da ipak ima ranjivost. Tako da danas imamo i SHA-3. Razvijena 2012. godine i donosi nekoliko unapređenja kao što su povećanje performansi i dobra otpornost na napade.

 

SHA Function
Secure Hash Function (SHA); Design by Saša Đurić

RACE Integrity Primitives Evaluation Message Digest (RIPEMD). Ovaj set heš funkcija je dizajniran od strane zajednice otvorenog kôda i poznat je kao Evropska porodica heš funkcija. Ovdje se nalaze RIPEMD, RIPEMD-128 i RIPEMD-160, kao i 256-bitna u 320-bitna verzija. Originalna RIPEMD je dizajnirana na principima korištenim u izradi MD4  heš funkcije, pa je sigurnost bila upitna. Odmah je kao zamjena došla  RIPEMD-128 heš funkcija kao ispravka za ranjivosti originala. RIPEMD-160 heš funkcija je sljedeća naprednija verzija i u najširoj je upotrebi. Verzije od 256-bita i 320-bita samo povećavaju otpornost na sudar unutar heš funkcije, ali nemaju veću sigurnost od RIPEMD-128 i RIPEMD-160 heš funkcija.

 

Whirlpool. Ovo je 512-bitna heš funkcija, izvedena na osnovu izmijenjene verzije Advanced Encryption Standard (AES). Postoje tri verzije nazvane WHIRLPOOL-0, WHIRLPOOL-T i WHIRLPOOL. Ova heš funkcija je usvojena od strane Međunarodna organizacija za standardizaciju (eng. International Organization for standardization – ISO).

 

Heš funkcije imaju dvije direktne primjene. Prva primjena je kod zaštite lozinki, gdje se lozinke umjesto svoje originalne vrijednosti čuvaju kao heš vrijednosti. Ako napadač dođe u situaciju da dobije pristup lozinkama, on će vidjeti samo njihove heš vrijednosti, a zbog nemogućnosti obrnutog inžinjeringa napadač neće saznati stvarnu vrijednost lozinke. Druga direktna upotreba je za provjeru integriteta podataka. Heš funkcija ne vrši enkripciju podataka, već omogućavaju da se upoređivanjem ulazne i izlazne vrijednosti heš algoritma garantuje integritet i ispravnost fajlova ili podataka što omogućava da se otkrije da li je neko neovlašteno mijenjao podatke.

 

<----- Enkripcija podataka: Upravljanje ključevima i nedostaci enkripcije  (Epizoda 3)

Enkripcija podataka: Razbijanje enkripcije (Epizoda 5) ----->

Razbijanje Sajber Mitova #3/22

Razbijanje Sajber Mitova #3/22; Design by Saša Đurić Ne možeš vjerovati svemu što pročitaš na Internetu: Tačno! Interne je pun zavjera,...