Projekt R 2025./2026. - Testiranje sigurnosti zaporki

O projektu

Projekt obuhvaća ispitivanje četiri alata za probijanje zaporki: Hashcat, John the Ripper, RainbowCracker i Wfuzz, nad zaporkama zaštićenima pomoću različitih hashing algoritama. Testiranja su provedena korištenjem unaprijed pripremljenih skupova tekstualnih datoteka koji sadrže kadidate za zaporke(engl. wordlist).

Za analizu su korištene tri wordliste različite razine složenosti: bad, common i locker. Skup bad sadrži slabe zaporke koje ne zadovoljavaju osnovne sigurnosne zahtjeve, common obuhvaća najčešće korištene zaporke u praksi, dok locker uključuje visoko složene zaporke usporedive s onima koje generiraju alati za upravljanje lozinkama. Svaka wordlista testirana je pojedinačno tijekom 12 sati, čime je omogućena usporedba učinkovitosti alata pri različitim razinama sigurnosti zaporki.

U projektu su analizirani sljedeći hashing algoritmi. SHA-1 je kriptografska hash funkcija koja generira 160-bitni sažetak, no danas se smatra nesigurnom zbog dokazanih kolizijskih napada te se koristi uglavnom u naslijeđenim sustavima. SHA-1 sa solju povećava otpornost na unaprijed izračunate napade dodavanjem slučajne vrijednosti zaporci prije hashiranja, ali ne uklanja temeljne kriptografske slabosti samog algoritma SHA-1. Argon2id je suvremeni, zahtjevan za memoriju (engl. memory-hard) algoritam za hashiranje zaporki koji kombinira otpornost na GPU napade i bočne kanale te se danas smatra industrijskim standardom za sigurnu pohranu zaporki. PBKDF2 (HMAC-SHA256) je standardizirana funkcija za derivaciju ključeva iz zaporki koja sigurnost postiže ponavljanjem velikog broja iteracija hash funkcije.

Testirani alati

Hashcat

Hashcat je otvoreni alat za oporavak zaporki i analizu hash vrijednosti, poznat po visokoj brzini i podršci za CPU i GPU platforme, što ga čini popularnim među sigurnosnim istraživačima i administratorima. Podržava stotine algoritama i funkcija za pohranu zaporki, uključujući zastarjele metode poput MD4 i MD5, ali i moderne funkcije poput PBKDF2-HMAC-SHA256 i Argon2id, koje se smatraju funkcijama za derivaciju ključa (KDF). Alat se koristi za simulaciju napada na hashirane zaporke i time omogućuje procjenu njihove jačine i sigurnosti pohrane, pri čemu korisnik definira algoritam opcijom -m, a način napada opcijom -a, uz dodatne opcije za optimizaciju performansi i kontrolu izlaza. Hashcat podržava različite strategije napada, uključujući rječnički, kombinatorni, maskirani, hibridni i asocijacijski napad, uz mogućnost primjene pravila za transformacije kandidata, kao i definiranje maski, skupova znakova i složenih kombinacija. Zbog svoje učinkovitosti, fleksibilnosti i široke podrške za algoritme, Hashcat je jedan od najčešće korištenih alata za testiranje sigurnosti zaporki.

📥 Hashcat

John the Ripper

John the Ripper je besplatan alat otvorenog koda namijenjen sigurnosnim auditima i obnovi zaporki, dostupan na velikom broju operativnih sustava i platformi. Podržava širok raspon kripto sažetaka i formata zaporki, uključujući zaporke operativnih sustava, web i grupnih aplikacija, baza podataka, mrežnih autentifikacija, šifriranih datoteka, arhiva i dokumenata. Alat integrira više tehnika razbijanja zaporki unutar jednog okruženja te automatski prepoznaje tipove kripto sažetaka, što omogućuje jednostavnu i fleksibilnu primjenu u različitim sigurnosnim scenarijima. Zahvaljujući optimizaciji za višejezgrene procesore i podršci za akceleraciju, John the Ripper postiže visoku učinkovitost pri izvođenju napada. Podržava razne strategije napada, uključujući napade rječnikom, napade grubom silom (engl. brute-force) te napade temeljene na pravilima i obrascima, kao što su mask, Markov i regex načini rada. Zbog svoje svestranosti, prilagodljivosti i široke podrške za algoritme poput DES-a, MD5, SHA-1, bcrypta, Argon2id-a i PBKDF2, John the Ripper spada među najčešće korištene alate za testiranje sigurnosti zaporki.

📥 John the Ripper

RainbowCrack

RainbowCrack je alat za probijanje hash vrijednosti zaporki temeljen na konceptu rainbow tablica, koji optimizira standardni Hellmanov napad (engl. time memory tradeoff) kako bi ubrzao pronalazak zaporki. Tablice se generiraju posebno za odabrani hash algoritam i prostor zaporki, pri čemu se iz nasumično odabranog početnog niza stvara lanac ponovnim primjenjivanjem hash funkcije i redukcijske funkcije. Nakon što je tablica generirana, pretraživanje se vrši usporedbom zadanog hasha s elementima lanaca, a pronađeni lanac se zatim vraća unatrag kako bi se rekonstruirala originalna zaporka. Generiranje tablica je izrazito vremenski i prostorno zahtjevno, stoga se alat danas smatra zastarjelim i uglavnom se koristi za demonstraciju koncepta, dok su moderni alati, poput Hashcata, brži i praktičniji. RainbowCrack je funkcionalan za jednostavnije algoritme (npr. MD5, LM, NTLM), no za novije algoritme koji koriste sol (engl. salt) ili imaju veću kompleksnost, izrada i pretraga tablica postaju neisplativi. Iako postoje poboljšane verzije s višedretvenom obradom i indeksiranim tablicama, alat i dalje ne koristi GPU, što dodatno ograničava performanse.

📥 RainbowCrack

Wfuzz

Wfuzz je alat otvorenog koda za fuzzing web aplikacija, korišten u sigurnosnim testiranjima radi otkrivanja skrivenih resursa, funkcionalnosti i potencijalnih ranjivosti. Generira i šalje velik broj HTTP zahtjeva prema ciljnoj aplikaciji, sustavno mijenjajući dijelove zahtjeva pomoću oznake FUZZ, uz vrijednosti iz rječnika ili generiranih skupova podataka. Iako je primarno namijenjen fuzzingu, često se koristi i za napade grubom silom na web autentifikacijske mehanizme, jer omogućuje automatizirano isprobavanje kombinacija vjerodajnica te analizu odgovora poslužitelja radi identificiranja uspješnih autentifikacija. Alat podržava fuzzing URL-ova, direktorija, GET i POST parametara, zaglavlja i kolačića, te testiranje REST API sučelja, uz mogućnost korištenja više rječnika istovremeno. Ključna prednost Wfuzza je precizno filtriranje rezultata prema statusnom kodu, duljini ili sadržaju odgovora, što smanjuje broj nerelevantnih podataka i ubrzava identifikaciju ranjivosti. Također podržava rad preko proxyja i različite načine enkodiranja i hashiranja podataka, što omogućuje testiranje aplikacija koje prije slanja obrađuju zaporke ili druge podatke kriptografskim funkcijama. Zbog fleksibilnosti i snažnih opcija filtriranja, Wfuzz je pogodan alat za kontrolirano testiranje sigurnosti web aplikacija i autentifikacijskih sustava.

📥 Wfuzz

Članovi tima

Lara Brečić

Izrada web stranice

Marin Mikulčić

Izrada prezentacije

Sven Sonicki

Voditelj projekta

Dominik Topić

Voditelj programskog dijela rada

Mentor

prof. dr. sc. Marin Golub

Mentor projekta