Tag Archive : heš fnkcije

/ heš fnkcije

Kriptografija: Heš funkcije

November 27, 2019 | SECURITY | No Comments

Heš funkcija je svaka funkcija koja mapira podatake proizvoljne veličine u vrijednosti fiksne veličine. Sam postupak se naziva heširanje, a vrijednosti koje vraća heš funkcija nazivaju se heš kodovi (eng. hash codes) ili samo heš. Malo jednostavnije rečeno, uzmete neki fajl ili tekst i kada on prođe kroz heš funkciju dobijete niz karaktera (slova i brojeva) određene dužine. Taj niz karaktera se zove heš i u slučaju MD-5 funkcije to su 32 karaktera, dok SHA-1 vraća 40 karaktera.

Postupak heširanja mora biti deterministički određen, to jest određena ulazna vrijednost mora uvijek da generiše istu heš vrednost. Na primjer, svaki put kada unesem tekst “lozinka”, očekujem da je za MD-5 funkiju heš “8aa87050051efe26091a13dbfdf901c6”. Dok različiti ulazi i različite heš funkcije moraju imati ražličite izlazne heš vrijednosti. Ako se desi da različiti ulazi za istu heš funkciju imaju iste heš vrijednosti došlo je do kolizije. Suština je da male promjene ulaznih podataka drastično mijenjaju heš vrijednost, a od samog heša bi trebalo biti nemoguće dobiti ulazne podatke.

Heširanje se često koristi za zaštitu lozinki, u praksi bi se uvijek trebao čuvati heš od lozinke a nikad sama lozinka u izvornom tekstu. Tako da ukoliko neko provali u bazu, dođe do tabele sa korisnicima i pronađe kolonu za lozinke, vidi samo neke znakove a ne originalne lozinke.

Naravno da je moguće opet pokušati razne lozinke koje će dati bas tu heš vrijednost, ali su algoritmi do te mijere otporni na kolizije da ću ja ostaviti SHA-256 od svoje Instagram lozinke:
abd6c59226cc23cc67acb737f92a7028ae001c6573f6fb50656a19baf72fac3e.
Sretno!

Da li je dužina lozinke važna?

Ko je pažljivo pratio primjetio je da “lozinka123” i “mojaSuperDugaLozinka” na kraju, kad se pretvore u heš, imaju istu duzinu. Dakle, zbog čega su kratke lozinke slabe?

Odgovor: Brute force napadi. Jednostavno pokušavati sa različitim unosima dok se ne pogodi onaj koji generiše heš lozinke. Što je lozinka duža, to će više trajati napad. Ako je napadaču potrebno 100 godina da pogodi lozinku određene dužine, može se reći da je lozinka sigurna.

Checksum fajlova

Checksum ili kontrolna suma je samo drugi naziv za heš koji računari koriste u pozadini da bi provjerili probleme sa fajlovima, ovo možete uraditi i sami. Na primjer, preuzimate novi operativni sistem i hoćete provjerite da li je taj fajl ispravno preuzet. Obično pri preuzimanju ISO fajlova negdje u opisu budu kontrolne sume.

U Windows PowerShell-u naredba Get-FileHash izračunava heš fajla, samo je potrebno navesti putanju do fajla i naziv algoritma (MD5, SHA1, SHA256… ).

Get-FileHash C:\Downloads\Windows10.iso -Algorithm SHA1

Ako se heš podudara, fajlovi su identični. Ako ne, postoji problem – možda je fajl oštećen ili je neko ubacio virus i planira u pozadini kopati Bitcoin-e preko vas. Razmislite o tome sljedeći put kada skinete neki piratski Windows 10 ili slične “krekovane” aplikacije.

Huawei i Wi-Fi QR kod

Lozinka za Wi-Fi se naravno isto čuva kao heš, pa je relativno teško provaliti. Bar u teoriji, u praksi se neko iz Huawei-a napravio pametan i počeo čuvati lozinke u običnom tekstu pri svakom uspiješnom spajanju na Wi-Fi. Ogroman sigurnosni propust, ali kinezi kao kinezi, da bi ovo zamaskirali jednostavno su to sve stavili u QR kod. Sada se ne vidi lozinka direktno, ali svako ko ima čitač QR koda može da vidi naziv mreže i lozinku.

I onda čitate ovako nešto i pitate se kako je moguće, a bukvano ste im dali lozinke i prihvatili uslove korištenja.

Čitaj dalje: Kriptografija PKI