Hash i kolizija
Kriptografski hash je jednosmjerna matematička funkcija koja pretvara ulazne podatke bilo koje veličine u fiksnu izlaznu vrijednost (digest / hash). Isti ulaz uvijek daje isti izlaz; minimalna promjena ulaza rezultira potpuno drugačijim hashom (avalanche efekt).
Svrha hashiranja
- Otkrivanje kršenja integriteta — usporedba hasha prije i poslije prijenosa/pohrane
- Pohranjivanje lozinki bez čuvanja plaintexta
- Digitalni potpisi i certifikati
- Forenzička verifikacija integriteta dokaza
Identifikacija algoritma po duljini
- MD5 → 32 hex znaka = 128 bita
- SHA-1 → 40 hex znaka = 160 bita
- SHA-256 → 64 hex znaka = 256 bita
- SHA-512 → 128 hex znaka = 512 bita
Formula: broj hex znakova × 4 = broj bita
Forenzički integritet (DFTT)
DFTT (Digital Forensics Tool Testing) je projekt s repozitorijem test-slika diskova na dftt.sourceforge.net. Sadrži 14 forenzičkih test-slika za validaciju alata. U labu koristimo 4-kwsrch-ext3.zip.
Forenzički integritet i salting proces
Priprema forenzicke slike (iz laba)
cp /media/cdrom0/* /root/Downloads/— kopira datoteke s DVD-acd /root/Downloads/unzip 4-kwsrch-ext3.zip— raspakira forenzicku slikuls -l 4-kwsrch-ext3/— provjeri sadrzaj- Ocekivana datoteka: ext3-img-kw-1.dd (5.242.880 bajta = 5 MB ext3 disk slika)
Provjera integriteta slike
- Preuzmes originalni hash s DFTT web stranice u
4-kwsrch-ext3-hash.txt md5sum 4-kwsrch-ext3/ext3-img-kw-1.dd >> 4-kwsrch-ext3-hash.txtcat 4-kwsrch-ext3-hash.txt— usporedi gornji (originalni) i donji (izracunati) hash- Ako su identicni — slika nije modificirana i moze se koristiti kao forenzicki dokaz
Hash pretraga — VirusTotal / MetaDefender
Pretrazivanje hasha sumnjive datoteke u malware bazama podataka omogucuje identifikaciju bez prijenosa same datoteke. Ovo ima prednosti privatnosti — ne otkriva se sadrzaj javno (npr. u istrazi).
Primjeri iz laba (SHA-1)
- nc.exe (Windows netcat):
57F0839433234285CC9DF96198A6CA58248A4707 - klogger.exe:
196BF6F43F85F97CC2851C840DA8E451256995CB - Oba pretrazi na
metadefender.opswat.comiliwww.virustotal.com
Prednosti hash pretrage vs. upload datoteke
- Privatnost — sadrzaj datoteke ne saljes javnom servisu
- Brzina — bez uploada, rezultati odmah
- Primjenjivo u istrazi gdje je upload zabranjen
- Ogranicenje: ako je malware novi (0-day) — hash nije u bazi
Salt i John the Ripper
Salt je nasumicna vrijednost koja se dodaje lozinci PRIJE hashiranja. Pohranjena je uz hash (nije tajna) ali osigurava da ista lozinka producira drugaciji hash za svakog korisnika.
Linux shadow format
Format: korisnik:$id$SALT$HASH:...
$1$= MD5$5$= SHA-256$6$= SHA-512
Pregled: grep '$' /etc/shadow filtira zapise s hashovima
Uklanjanje salta iz hasha (za brute force)
- Kopiras hash iz shadow datoteke u
salted-hash.txt cat salted-hash.txt | sed "s/SALT//g" > salt-secret-hash.txt- Uklonis salt iz hasha — ostaje samo hash lozinke
john --format=raw-md5 salt-secret-hash.txt
Matematika saltiranja — zasto salt funkcionira
Primjer: lozinka = 5 znakova, salt = 4 znaka
- Bez salta — brute force 5 znakova: 10 s × 95^4 = 814 milijuna s = 25.8 godina
- Sa saltom — hash je produciran od kombinacije lozinke i salta = efektivno 9 znakova ulaza
- Salt se pohranjuje javno uz hash — ali rainbow tablice za 5-znakovne lozinke sada nisu primjenjive
Kljucna prednost: Cak i ako dva korisnika imaju istu lozinku, hashevi su razliciti (razliciti saltovi) — onemogucuje prepoznavanje duplikata i rainbow table napade.
John the Ripper — status crackinga
Pritisni razmak dok John radi za status prikaz:
g= broj pogodaka (guesses)time= proteklo vrijemeg/s= pogodaka u sekundip/s= lozinki/sekundic/s= kombinacija/sekundiC/s= kreativnih kombinacija/s- zadnje polje = trenutni kandidat koji se testira
Korisne John naredbe
john --format=raw-md5 hash.txt— specificiraj algoritamjohn --show hash.txt— prikazi pronadene lozinkejohn --wordlist=/path/wordlist hash.txt— dictionary napad
OpenSSL — izracun hasha
OpenSSL dgst naredbe
openssl dgst -md5 datoteka— MD5 hashopenssl dgst -sha1 datoteka— SHA-1 hashopenssl dgst -sha256 datoteka— SHA-256 (opcija -5 u nekim verzijama)openssl dgst -sha512 datoteka— SHA-512 (opcija -6 u nekim verzijama)
Identifikacija algoritma po duljini hasha
- 32 hex znaka = 128 bit = MD5
- 40 hex znaka = 160 bit = SHA-1
- 64 hex znaka = 256 bit = SHA-256
- 128 hex znaka = 512 bit = SHA-512
MD5 nije preporucljiv za sigurnosne primjene — kolizije su dokumentirane.
- Svrha hasha = otkrivanje krsenja integriteta (ne enkripcija, ne tajnost)
- Kolizija = dva razlicita ulaza produciraju isti hash output
- MD5 se izbjegava zbog sklonosti kolizijama (nije potpuno "broken", ali nije siguran za sigurnosnu primjenu)
- Salt povecava otpornost na brute force i onemogucuje rainbow table napade
- Hash pretraga u bazi — prednost: ne otkivas sadrzaj datoteke javno
- Formula: hex znakovi x 4 = bita — prepoznaj algoritam
- DFTT = Digital Forensics Tool Testing repozitorij s 14 forenzickih test-slika na dftt.sourceforge.net
Kviz — 15 pitanja
1. Koja je primarna svrha kriptografskog hashiranja u kontekstu sigurnosti podataka?
2. Sto je hash kolizija?
3. Hash neke datoteke je 40 heksadekadskih znakova. Koji algoritam je koristen?
4. Koja je kljucna prednost pretrage hasha sumnjive datoteke na VirusTotalu umjesto uploada same datoteke?
5. Sto je DFTT repozitorij i za sto se koristi u labu?
6. Zasto se MD5 izbjegava u modernim sigurnosnim primjenama?
7. Koja naredba prikazuje shadow hash zapise koji sadrze simbol "$"?
8. Koja sed naredba uklanja "SALT" iz sadrzaja salted-hash.txt i sprema u novi file?
9. Korisnik provjeri status John the Ripper crackinga (pritiskom razmaka) i vidi polje "g/s" = 15.000.000. Sto to znaci?
10. Koji je primarni benefit dodavanja salta lozinkama prije hashiranja?
11. Dva korisnika imaju istu lozinku "abc123". U bazi su pohranjena dva razlicita hasha. Zasto?
12. U Linux /etc/shadow datoteci format je: $6$SALT$HASH. Sto "6" oznacava?
13. Forenzicki istrazitelj preuzima disk-sliku i zeli dokazati da nije promijenjena. Koji je korak?
14. Hash sumnjivog nc.exe je pronaden u VirusTotal bazi kao "netcat Windows version". Znaci li to da je nc.exe na ovom sustavu koristen maliciozno?
15. Koje su karakteristike dobrog kriptografskog hash algoritma? (Odaberi 3)