Приказивање постова са ознаком Hash. Прикажи све постове
Приказивање постова са ознаком Hash. Прикажи све постове

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) ----->

20 март 2022

Enkripcija podataka: Istorija i osnove (Epizoda 1)

Enkripcija u sajber prostoru je moderna forma kriptografije koja omogućava korisniku da sakrije informacije od drugih. Po definiciji enkripcija je kriptografska transformacija podataka u formu koja sakriva originalno značenje podatka na način da sprečava spoznaju ili korištenje. Jednostavnije rečeno, enkripcija koristi kompleksan algoritam – šifru da pretvori obične podatke u seriju nepovezanih proizvoljnih znakova koji se ne mogu pročitati bez specijalnog ključa za dešifrovanje. Onaj ko ima ključ i primjeni ga, može ponovo da vidi obične podatke umjesto besmislenog niza proizvoljnih znakova.

 

Encryption
Enkripcija; Design by Saša Đurić

ISTORIJA. Jedna od najstarijih naučnih formi je enkripcija. Od preistorijskih vremena do modernog doba ljude zaokuplja želja da sakriju, maskiraju ili zaštite osjetljive informacije od radoznalih očiju. Ovo se jednostavno postizalo zamjenom znakova u originalnoj poruci dogovorenoj ranije između pošiljaoca i primaoca. Na ovaj način, poruku je mogao pročitati samo primalac koji ima pravi ključ za otkrivanje pravilnog rasporeda znakova kako bi postali čitljivi. Sad je lako zaključiti da problem nije bio u kompleksnosti šifre koja se koristila nego u sigurnosti i tajnosti ključa za dekripciju. Istorijski gledano to izgleda ovako:

 

Drevni Egipat. Postoji nekoliko scenarija po kojima je enkripcija nastala, ali sa sigurnošću se može reći da je nastala u drevnom Egiptu. Jedan od razloga bi mogla biti potreba egipatskih sveštenika da u tajnosti sačuvaju svoje religijske rituale ili da bi dali svojim dokumentima zvanični izgled. Skoro prije 4000 godina, egipatski pisar u želji da sačuva priču o životu svoga gospodara, zapisao istu u hijeroglifima i tako napravio prvu formu kriptografije. Poslije njega, egipatski plemić je prilikom izgradnje grobnice za faraona, izvršio zamjenu simbola na pojedinim mjestima i tako neupućenim onemogućio da pročitaju zapis. Kako je civilizacija napredovala, oni su koristili tehniku zamjene pojedinih simbola, umjesto cijelog dokumenta, što je prilično primitivno, jer je pažljiv posmatrač to mogao lako otkriti.

 

Hieroglyphs
Hijeroglifi; Design by Saša Đurić

Grčka. U antičkoj Grčkoj, Spartanci su prvobitno koristili šifru transpozicije ili šifru pomjeranja. U ovom slučaju, elementi otvorenog teksta se ostavljaju nepromijenjeni, ali se mijenja njihov međusobni položaj. U petom vijeku prije nove ere, Spartanci su razvili sistem pod nazivom  Skitel (eng. Scytale) koji je bio više od jednostavnog pomjeranja znakova. Način funkcionisanja je bio veoma jednostavan, ali komplikovan za navedeni period. Sastojao se od trakastog komada papirusa i okruglog štapa. Pošiljalac bi ispisao poruku na traci papirusa koja bi bila umotana oko štapa. Kada se odmota, znakovi jedni ispod drugih ne bi imali smisla. Primalac poruke je morao imati štap istog prečnika da oko njega umota traku papirusa kako bi se znakovi ponovo složili u riječi. Veoma primitivan način, pošto je za dešifrovanje bio potreban samo štap istog prečnika, međutim u to doba je veoma mali broj ljudi znao čitati i pisati.

 

Spartan's Scytale
Spartanski Skitel; Design by Saša Đurić 

Julije Cezar. Prva upotreba enkripcija u vojne korištena je od strane Rimljana. U svojoj potrebi da šalje poruke vojsci na ratištu na sigurna način, Cezar je razvio metodu supstitucione šifre. U ovo metodi, on je jednostavno pomjerajući raspored slova za tri mjesta onemogućio neupućenim da pročitaju poruku. Veoma jednostavan, ali i efikasan metod.

 

Caesar cipher
Cezarova šifra; Design by Saša Đurić

Džefersonov disk. Američki pronalazač Tomas Džeferson (Thomas Jefferson) je 1795. izmislio sistem šifriranja koji je poslije američka vojska koristila od 1923-1942. godine. Zanimljivo je da vojska nije znala za Džefersonov sistem, već su ga ponovo smislili i nazvali M-64. Sistem je koristio 26 točkića sa slovima alfabeta na svakom, proizvoljno upisanih. Ključ funkcionisanja je bio da točkići moraju biti u tačno određenom položaju oko ose rotacije da se poruka mogla dešifrovati.

 

Jefferson Cipher Wheel
"Jefferson Cipher Wheel" by Ryan Somma is marked with CC BY 2.0

Čokto i Navaho šifranti. Američka vojska je imala problem što su njihovi telefonski pozivi u Prvom svjetskom ratu bili prestretani od stane Nijemaca. Kako bi riješili problem, američka vojska je iskoristila kompleksan jezik Čokto indijanaca. Osam pripadnika ovog plemena je bilo raspoređeno na određenim komandnim mjestima i prenosili su poruke na svom jeziku između njih. Nijemci nisu uspjeli nikad da dešifruju ovaj način komunikacije. Slično se desilo i tokom Drugog svjetskog rata na pacifičkom ratištu. Problem je nastao time što su mnogi japanski oficiri završili školovanje u Americi i odlično poznavali engleski jezik. Američka vojska je ovaj put upotrijebila jezik Navaho indijanaca, koji japanska mornarica nije uspjela dešifrovati.

 

Choctaw Coders
Čokto šifranti; Source: Wikimedia

Enigma. Razvijena od stane Nijemaca za potrebe komunikacije vojske u Drugo svjetskom ratu, imala je izgled pisaće mašine sa rotorima i razvodnom pločom. U ranim počecima razvoja ova mašina je imala tastaturu od 26 slova i tri seta rotora i razvodnu ploču. Kod ove verzije mašine, poljski matematičari su imali uspjeha u razbijanju šifri. Međutim, kada je njemačka vojska preuzela razvoj, oni su povećali broj rotora na osam, povećavajući broj kombinacija rotora na 60. Pored toga, razvodna ploča je zavisno od postavke mogla da zamjeni bilo koje slovo sa nekim drugim povećavajući eksponent broja kombinacija od 10 do 15. Na sve to podešavanja položaja rotora i razvodne ploče su mijenjanja svaka dva dana. Enigma je iz matematičkog ugla imala jaku enkripcija i bila sigurna. Međutim, problem nije bio u mašini, već u pretjeranom pouzdanju korisnika u nju. Na kraju dvije stvari su presudile: Prva je to što su Nijemci rijetko mijenjali ožičenje na razvodnoj tabli, a druga stvar je bila ta što je svaka poruka počinjala i završavala isto – pozdravom Njemačkom vojskovođi.

 

Enigma machine
Enigma mašina; Source: Pixabay

SIGABA. Ovaj uređaj je unaprijeđena verzija njemačke Enigme, koji koristi petnaest rotora u odnosu na Enigmu koja je koristila samo tri. Za razliku od brzinskog pokretanja rotora koji je korišten kod Enigme, ovdje su konstruktori napravili mehanizam labirint koraka (eng. stepping maze) koji se ne može vidjeti golim okom, a to je u suštini znači korištenje sistema enkripcije unutar sistema enkripcije. Korištena je od kraja Drugog svjetskog rata do 1959. godine, kada je izbačena iz upotrebe, jer više nije mogla pratiti razvoj modernih komunikacija. 

 

ECM Mark II or SIGABA
"SIGABA M-134-C (Army) CSP-888 (Navy)" by Ryan Somma is marked with CC BY 2.0

Moderna kriptografija. Početkom sedamdesetih godina prošlog vijeka kompanija IBM razvija nacionalni standard Data Encryption Standard – DES, koji je bio u upotrebi do 1997. kada je i razbijen ovaj način šifriranja. Početkom 2000-ih godina dolazi do zamjene DES standarda sa  Advanced Encryption Standard ili AES standardom. Danas se ovaj standard koristi širom svijeta.

 

Istorijski gledano, enkripcija je bila potrebna iz mnogo razloga. Neko je šifrovanjem želio da sačuva svoju istoriju, neko da sakrije dokumente od radoznalih očiju ili neprijatelja.

 

OSNOVE. U današnjem modernom svijetu, za razliku od najvećeg dijela ljudske istorije, informacije u realnom vremenu putuju sa kraja na kraj svijeta. Kada neko donese odluku na osnovu tako dobijene informacije, nije važno samo da je dobio informaciju ili da li je može dobiti. Mnogo važnije je da je ta informacija pouzdana i često povjerljiva. U skladu sa tim zahtjevima, enkripcija danas omogućava povjerljivost, pouzdanost i kontrolu. Tako da danas imamo sigurnosnu informativnu trijadu od povjerljivosti, integriteta i dostupnosti.

 

Povjerljivosti.  Podaci imaju vrijednost, pogotovo u današnjem dobu informacija. Može se govoriti o bankovnim računima, privatnim informacijama, trgovačkim tajnama, državnim dokumentima i slično. Svi imaju informacije koje žele sačuvati za sebe, a njihova zaštita je veoma važan dio informacione bezbjednosti. Ključna komponenta u zaštiti povjerljivosti je enkripcija. Ona osigurava da samo ljudi koji imaju dekripcijski ključ mogu pročitati informaciju.

 

Integritet. Integritet podrazumijeva zaštitu od neovlaštenog mijenjanja informacije, jer ona ima vrijednost samo ako je tačna. Izmijenjena informacija može izazvati u nekim situacijama ogromnu štetu i nezamislive posljedice. Enkripcija ovdje dolazi kao proaktivan korak, jer se preko korištenog algoritma za enkripciju može osigurati integritet podatka.  Kako bi se osigurao integritet podataka prilikom enkripcije koriste se heš (eng. Hash) algoritmi koji prosto sažmu (samelju u bukvalnom prevodu) svaku poruku ili fajl bez obzira na veličinu i na izlazu dobijamo niz od 128 ili 160 nula i jedinica, u zavisnosti koji algoritam je korišćen. Pored toga, gotovo je nemoguće rekonstruisati ulaznu poruku, a isto tako gotovo je nemoguće naći dva ulaza sa istom heš vrijednošću. Važno je naglasiti da ovi algoritmi ne vrše enkripciju podataka, već omogućavaju da se upoređivanjem ulazne i izlazne vrijednosti heš algoritma garantuje integritet i ispravnost fajlova ili podataka.

 

Triad of confidentiality
Sigurnosna informativna trijada; Design by Saša Đurić

Dostupnost. Dostupnost informacija se odnosi na pristup informacijama u slučaju potrebe samo od strane ovlaštenih lica. Informacija ima vrijednost samo ako pravi ljudi u pravo vrijeme mogu da se koriste sa njom. U današnjem vremenu modernih komunikacija, onemogućavanje pristupa je postala popularna vrsta napada. Pored toga tu su još otkazivanje uređaja, nestanci struje i prirodne katastrofe. Kao odgovor na ovo, koristi se proces pravljenja rezervne kopije podatka. Bilo koji način pravljenja rezervne kopije podataka i čuvanja istih da se izabere, neodgovorno bi bilo podatke transportovati van organizacije ili čuvati ih na jednom mjestu a da nisu zaštićeni enkripcijom. Na taj način podaci uvijek mogu biti na dohvat ruke ovlaštenim licima, a opet nedostupni za radoznale oči.

 

Enkripcija podataka: Funkcionisanje i vrste (Epizoda 2) ----->

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,...