hash
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| hash [2023/11/27 09:36] – lss | hash [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| 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**. | + | Još je jedan od zanimljivih napada na hashirane podatke tzv. **Rainbow table napad**. |
| 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, | 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, | ||
| ===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 (// | + | **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 (// |
| 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.1701077786.txt.gz · Last modified: 2025/12/01 11:40 (external edit)