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

Kolizija: Kolizija nastaje kada dva različita ulaza produciraju isti hash. MD5 je posebno sklon kolizijama — zbog toga se izbjegava u sigurnosnim kontekstima i modernim protokolima, iako se i dalje koristi za provjeru integriteta (ne-sigurnosne svrhe). Kolizija = slabost, ne "broken" u smislu da se ne može koristiti ni u kakve svrhe.

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

FORENZICKI INTEGRITET: Originalna datoteka Hash md5sum/sha1 Digest cuva se prijenosi/ pohrana Hash ponovo Usporedi originalni vs novi isti = OK razlicit = tamper SALTING LOZINKE: Lozinka 5 znakova + SALT 4 znaka Hash funkcija efektivno 9 znakova Salted Hash pohranjen 10s x 95^4 = 25.8 god brute force SALT = jedinstven po korisniku Rainbow tablice = beskorisne

Priprema forenzicke slike (iz laba)

  1. cp /media/cdrom0/* /root/Downloads/ — kopira datoteke s DVD-a
  2. cd /root/Downloads/
  3. unzip 4-kwsrch-ext3.zip — raspakira forenzicku sliku
  4. ls -l 4-kwsrch-ext3/ — provjeri sadrzaj
  5. Ocekivana datoteka: ext3-img-kw-1.dd (5.242.880 bajta = 5 MB ext3 disk slika)

Provjera integriteta slike

  1. Preuzmes originalni hash s DFTT web stranice u 4-kwsrch-ext3-hash.txt
  2. md5sum 4-kwsrch-ext3/ext3-img-kw-1.dd >> 4-kwsrch-ext3-hash.txt
  3. cat 4-kwsrch-ext3-hash.txt — usporedi gornji (originalni) i donji (izracunati) hash
  4. Ako su identicni — slika nije modificirana i moze se koristiti kao forenzicki dokaz
Zasto usporedivati hash forenzicke slike? U sudskim procesima, obrana moze napasti integritet digitalnih dokaza. Ako mozemo dokazati da je MD5/SHA1 hash preuzete slike identican originalnom hashu na DFTT web stranici — nisi kontaminirao dokaz. Ovo je tzv. chain of custody za digitalne dokaze.

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.com ili www.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
nc.exe = netcat (Windows verzija) — mrezni alat koji legitimno koriste administratori, ali i napadaci za uspostavljanje reverznih shell-ova. Nalazi se u malware bazama jer se cesto koristi u post-exploit aktivnostima. Detekcija u bazi ne znaci nuzno malicioznost — ovisi o kontekstu koristenja.

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)

  1. Kopiras hash iz shadow datoteke u salted-hash.txt
  2. cat salted-hash.txt | sed "s/SALT//g" > salt-secret-hash.txt
  3. Uklonis salt iz hasha — ostaje samo hash lozinke
  4. 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 vrijeme
  • g/s = pogodaka u sekundi
  • p/s = lozinki/sekundi
  • c/s = kombinacija/sekundi
  • C/s = kreativnih kombinacija/s
  • zadnje polje = trenutni kandidat koji se testira

Korisne John naredbe

  • john --format=raw-md5 hash.txt — specificiraj algoritam
  • john --show hash.txt — prikazi pronadene lozinke
  • john --wordlist=/path/wordlist hash.txt — dictionary napad

OpenSSL — izracun hasha

OpenSSL dgst naredbe

  • openssl dgst -md5 datoteka — MD5 hash
  • openssl dgst -sha1 datoteka — SHA-1 hash
  • openssl 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.

Na ispitu zapamti:
  • 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

0 / 15
Odgovori na pitanja da vidis rezultat.

1. Koja je primarna svrha kriptografskog hashiranja u kontekstu sigurnosti podataka?

Hash je jednosmjerna funkcija — ne mozemo vratiti originalne podatke iz hasha. Njegova primarna sigurnosna svrha je detekcija promjene (integriteta): isti ulaz uvijek daje isti izlaz, pa promjena podataka znaci promjenu hasha.

2. Sto je hash kolizija?

Kolizija je sigurnosni problem: ako dva razlicita ulaza daju isti hash, napadac moze zamijeniti originalnu datoteku s drugom (s istim hashom) a detekcija ne otkriva promjenu. MD5 je posebno sklon kolizijama.

3. Hash neke datoteke je 40 heksadekadskih znakova. Koji algoritam je koristen?

Formula: 40 hex x 4 = 160 bita = SHA-1. MD5 = 128 bita (32 hex), SHA-256 = 256 bita (64 hex), SHA-512 = 512 bita (128 hex). SHA-1 je relativno siguran za integritentne provjere ali ne preporucljiv za digitalne potpise.

4. Koja je kljucna prednost pretrage hasha sumnjive datoteke na VirusTotalu umjesto uploada same datoteke?

Upload datoteke javnom servisu = otkrivanje sadrzaja. U istrazi, to moze biti problem (osjetljivi podaci). Hash pretraga daje rezultate bez otkrivanja sadrzaja datoteke — VirusTotal vidi samo hash, ne datoteku.

5. Sto je DFTT repozitorij i za sto se koristi u labu?

DFTT (Digital Forensics Tool Testing) na dftt.sourceforge.net sadrzi 14 forenzickih disk-slika. U labu koristimo 4-kwsrch-ext3.zip koji sadrzi ext3-img-kw-1.dd (5.242.880 bajta). Ove slike se koriste za provjeru forenzickih alata i demonstraciju integriteta.

6. Zasto se MD5 izbjegava u modernim sigurnosnim primjenama?

MD5 kolizija je dokumentirana i prakticno izvediva. Napadac moze izraditi zloudnu datoteku s identicnim MD5 hashom kao legitimna datoteka. Zbog toga se MD5 ne koristi za digitalne potpise, certifikate ni provjere autenticnosti.

7. Koja naredba prikazuje shadow hash zapise koji sadrze simbol "$"?

grep '$' /etc/shadow filtrira linije koje sadrze "$" — tj. one koje imaju hashirane lozinke (format $id$SALT$HASH). Linije bez $ su racuni bez lozinke ili s onemogucenom prijavom.

8. Koja sed naredba uklanja "SALT" iz sadrzaja salted-hash.txt i sprema u novi file?

sed "s/SALT//g" = substitute/SALT/(zamijeni s praznim)/g (global = sve pojave). Pipe iz cat | sed je standardni pattern. Rezultat bez salta sprema se u novi file za daljnji brute force s Johnom.

9. Korisnik provjeri status John the Ripper crackinga (pritiskom razmaka) i vidi polje "g/s" = 15.000.000. Sto to znaci?

g/s = guesses per second — brzina testiranja kandidata. Korisno za procjenu koliko ce brute force trajati. Polje "g" (bez /s) pokazuje ukupan broj pogodaka (pronadenih lozinki do tog trenutka).

10. Koji je primarni benefit dodavanja salta lozinkama prije hashiranja?

Salt cini svaki hash jedinstven (cak i za iste lozinke) sto onemogucuje rainbow tablice. Napadac mora crackati svaki hash posebno. Efektivno povecava "duljinu" lozinke za hash funkciju — 5-znakovna lozinka + 4-znakova salt = hash produciran od 9 znakova.

11. Dva korisnika imaju istu lozinku "abc123". U bazi su pohranjena dva razlicita hasha. Zasto?

Salt = jedinstvena nasumicna vrijednost po korisniku. "abc123" + "X7Kp" = hash A; "abc123" + "mR2q" = hash B. Cak i identicne lozinke daju potpuno razlicite hasheve zbog razlicitih saltova.

12. U Linux /etc/shadow datoteci format je: $6$SALT$HASH. Sto "6" oznacava?

Linux shadow format identifier: $1$ = MD5, $5$ = SHA-256, $6$ = SHA-512. SHA-512 ($6$) je najcesci na modernim sustavima jer pruzuje najvecu otpornost na brute force napade.

13. Forenzicki istrazitelj preuzima disk-sliku i zeli dokazati da nije promijenjena. Koji je korak?

Chain of custody za digitalne dokaze: izracunaj hash preuzete slike i usporedi s originalnim hashom koji je objavio izvor (npr. DFTT web stranica). Identicni hashevi dokazuju da slika nije modificirana pri preuzimanju.

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?

Netcat je dual-use alat: administratori ga koriste za mrezni debugging, provjeru portova, prijenos datoteka. Napadaci ga koriste za reverse shell. Prisutnost u VirusTotal ne potvrdjuje malicioznost — kontekst koristenja (tko, kada, odakle, koji port) je kljucan za zakljucak.

15. Koje su karakteristike dobrog kriptografskog hash algoritma? (Odaberi 3)

Dobri hash algoritam: (1) avalanche efekt — mali input promjena = veliki output promjena, (2) jednosmjernost — preimage resistance, (3) otpornost na kolizije — collision resistance. Reverzibilnost je SUPROTNA od zeljenoga — hash je jednosmjerna funkcija, nije enkripcija.
0 / 15
Rijesi kviz da vidis rezultat.