User Tools

Site Tools


hash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
hash [2023/11/27 09:25] lsshash [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 5: Line 5:
  
 **1) Otpornost na izračunavanje originala ili prva domenska otpornost** //(preimage resistance)//\\ **1) Otpornost na izračunavanje originala ili prva domenska otpornost** //(preimage resistance)//\\
- H=h(M)  M=h<sup>-1</sup>(H) -  ne postoji funkcija koja za dani sažetak može proizvesti originalnu poruku+ Ne postoji funkcija koja za dani sažetak može proizvesti originalnu poruku.
  
 **2) Otpornost na izračunavanje poruke koja daje isti sažetak ili druga domenska otpornost** //(2nd  preimage resistance)//\\ **2) Otpornost na izračunavanje poruke koja daje isti sažetak ili druga domenska otpornost** //(2nd  preimage resistance)//\\
Line 22: Line 22:
 Jedan je od osnovnih napada na hash funkcije tzv. **rođendanski napad**. Rođendanski napad temelji se na statističkoj anomaliji rođendanskog problema. Vjerojatnost da dvije osobe u dvorani u kojoj je ukupno 1.2 x 365/2 = 23 ljudi imaju isti dan rođendan veća je od 50%. Isto tako, vjerojatnost da dvije poruke iz skupa od k=1.2 (2n )1/2 = 1.2x2n/2 poruka daju isti sažetak veća je od 50%, gdje je n duljina sažetka u bitovima. Jedan je od osnovnih napada na hash funkcije tzv. **rođendanski napad**. Rođendanski napad temelji se na statističkoj anomaliji rođendanskog problema. Vjerojatnost da dvije osobe u dvorani u kojoj je ukupno 1.2 x 365/2 = 23 ljudi imaju isti dan rođendan veća je od 50%. Isto tako, vjerojatnost da dvije poruke iz skupa od k=1.2 (2n )1/2 = 1.2x2n/2 poruka daju isti sažetak veća je od 50%, gdje je n duljina sažetka u bitovima.
  
-Još je jedan od zanimljivih napada na hashirane podatke tzv. **Rainbow table napad**. Svoj naziv duguje šarenoj tablici unaprijed izračunatih sažetaka najčešćih lozinki. Cilj je napada dobiti lozinke spremljene u bazi podataka. Napadač uspoređuje unaprijed izračunate sažetke jedan po jedan sa sažetcima spremljenim u bazi podataka sve dok ne nađe poklapanje. Nakon što ga pronađe, lako može doći i do ostatka lozinki u istoj bazi. \\ \\ +Još je jedan od zanimljivih napada na hashirane podatke tzv. **Rainbow table napad**. U takvom napadu napadač uspoređuje hashirane lozinke s unaprijed izračunatom tablicom sažetaka. Napadač uspoređuje unaprijed izračunate sažetke jedan po jedan sa sažetcima spremljenim u bazi podataka sve dok ne nađe poklapanje. \\ \\ 
-Rođendanski napad može se spriječiti konstrukcijom dobre hash funkcije. Funkcija mora biti takva da se ne mogu u razumnom vremenu naći dva ulaza koji će rezultirati istim sažetkom. Nemoguće je napraviti hash funkciju koja će za svaki ulaz dati različit izlaz jer je prostor mogućih ulaza beskonačan, a duljina sažetka ograničena. Rainbow table napad sprečava se korištenjem tzv. //salt hashinga//+Rođendanski napad može se spriječiti konstrukcijom dobre hash funkcije. Funkcija mora biti takva da se ne mogu u razumnom vremenu naći dva ulaza koji će rezultirati istim sažetkom. To se može postići tako da hash funkcija daje dug izlaz. Nemoguće je napraviti hash funkciju koja će za  apsolutno svaki ulaz dati različit izlaz jer je prostor mogućih ulaza beskonačan, a duljina sažetka ograničena. Rainbow table napad sprečava se korištenjem tzv. //salt hashinga//
  
 ===Salt hashing=== ===Salt hashing===
-**Salt hashing** je metoda koja se koristi za hashiranje osjetljivih podataka, primjerice lozinki. Podatku se prije ubacivanja u funkciju sažetka dodaje još jedan nasumično generiran podatak (//salt//). Dodavanje ide najčešće na kraj (//append//) ili na početak (//prepend//), ali može ići na bilo koje mjesto. Nakon toga se u bazu podataka zapišu korisničko ime, sažetak lozinke zajedno sa //saltom// i sam //salt//. Kad se korisnik želi ulogirati u sustav i upiše lozinku, njoj se dodaje onaj //salt// koji je zapisan pored tog korisnika u bazi podataka i provjerava se odgovara li hash lozinke i //salta// zajedno onom hashu koji je zapisan u bazi. Na taj se način otežava napadaču da otkrije lozinku korisnika jer, čak i da probije hash funkciju, mora  pogoditi //salt// i točno mjesto na koje je on dodan. Važno je da //salt// bude dugačak podatak koji se teško može pogoditi te mora biti unikatan za svaku unesenu informaciju. \\ \\ +**Salt hashing** je metoda koja se koristi za hashiranje osjetljivih podataka, primjerice lozinki. Podatku se prije ubacivanja u funkciju sažetka dodaje još jedan nasumično generiran podatak (//salt//). Dodavanje ide najčešće na kraj (//append//) ili na početak (//prepend//), ali može ići na bilo koje mjesto. Nakon toga se u bazu podataka zapišu korisničko ime, sažetak lozinke zajedno sa //saltom// i sam //salt//. Kad se korisnik želi ulogirati u sustav i upiše lozinku, njoj se dodaje onaj //salt// koji je zapisan pored tog korisnika u bazi podataka i provjerava se odgovara li hash lozinke i //salta// zajedno onom hashu koji je zapisan u bazi. Na taj se način otežava napadaču da otkrije lozinku korisnika jer ne može koristiti unaprijed pripremljenu tablicu sažetaka. 
-Također, rješava se problem istih lozinki. U slučaju da dva korisnika odaberu istu lozinku, sustav nikako ne bi smio dojaviti drugome da njegova lozinka već postoji. Zlonamjeran bi korisnik mogao pokušati enumerirati sva korisnička imena i isprobavati čija je to lozinka. No, kad dozvolimo dvama korisnicima da imaju iste lozinke, nailazimo na drugi problem. Svako tko dobije pristup bazi podataka može vidjeti da su  im lozinke iste jer su im sažetci istiTo može biti opasno jer, ako napadač jednom od njih probije lozinku, može provaliti u račune drugog i svih ostalih koji imaju tu lozinku. //Salt hashing// stvara različite sažetke za iste lozinke, stoga napadač ne može prepoznati korisnike s istim lozinkama. \\ \\+
 Iako se na prvi pogled može činiti problematičnim što je //salt// zapisan u jasnom tekstu pored korisnika, treba uzeti u obzir da funkcije sažetka nemaju inverznu funkciju, odnosno nema načina kojim se može iz sažetka izravno dobiti original. Napadač baze podataka možda i vidi koji je //salt// iskorišten u generiranju sažetka, no ne može ga nikako eliminirati iz rezultata i izvući samo lozinku korisnika. Može eventualno dodavati taj //salt// na svaki svoj unos i nadati se da će pogoditi funkciju sažimanja koja je korištena. Nije nemoguće, ali se značajno produljuje vrijeme pretrage u odnosu na dosadašnje metode sažimanja, stoga se ova metoda smatra vrlo dobrom praksom i sve se češće koristi. Iako se na prvi pogled može činiti problematičnim što je //salt// zapisan u jasnom tekstu pored korisnika, treba uzeti u obzir da funkcije sažetka nemaju inverznu funkciju, odnosno nema načina kojim se može iz sažetka izravno dobiti original. Napadač baze podataka možda i vidi koji je //salt// iskorišten u generiranju sažetka, no ne može ga nikako eliminirati iz rezultata i izvući samo lozinku korisnika. Može eventualno dodavati taj //salt// na svaki svoj unos i nadati se da će pogoditi funkciju sažimanja koja je korištena. Nije nemoguće, ali se značajno produljuje vrijeme pretrage u odnosu na dosadašnje metode sažimanja, stoga se ova metoda smatra vrlo dobrom praksom i sve se češće koristi.
  
hash.1701077129.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki