Know-how / Sigurnost lozinki

Kako funkcioniraju Brute‑Force napadi

Zašto je duljina važna: primjeri izračuna i protumjere.

Kod Brute‑Force napada napadači pokušavaju pogoditi lozinku sustavnim isprobavanjem svih mogućih kombinacija znakova. Osnovna ideja je jednostavna: testirati što više kombinacija u sekundi – idealno na GPU-ovima ili u distribuiranim sustavima. To se naziva i iscrpnim pretraživanjem (iscrpno pretraživanje).

U praksi su takvi napadi nažalost često uspješni jer su mnoge lozinke prekratke , ograničene na mali broj skupina znakova (samo slova) ili se pojavljuju u popisima riječi. To drastično smanjuje prostor pretraživanja i olakšava pogađanje. Još važnije: razlikuju se online napadi (na obrasce za prijavu; tu pomažu rate limiting/blokade računa) i offline napadi (na ukradene hash vrijednosti lozinki; tu o vremenu potrebnom za napad odlučuju hash funkcija i jačina lozinke).

Razbijanje lozinki (offline) ≠ „dešifriranje“

Lozinke se ne dešifriraju, nego se pohranjuju kao hash vrijednosti i zatim traže metodom pogađanja + hashiranja (Brute Force, rječnički/maskirani napadi). Brzina računanja moderne opreme iznosi u milijardama u sekundi (za brze hash postupke), zbog čega su duge i sporim postupcima (npr. Argon2, scrypt, PBKDF2, bcrypt) hashirane lozinke presudne.

Povijesni i aktualni kontekst: RC5 projekt distributed.net demonstrira sirovu snagu iscrpnog pretraživanja na prostoru ključeva: 56-bitni ključ pronađen je 1997. nakon 250 dana, a 64-bitni 2002. nakon 1.757 dana. Trenutačno status proxyja za RC5-72 oko 2,38 bilijuna ključeva u sekundi (stanje: pristupljeno danas). To je brute-force napad na ključeve a ne hashiranje lozinki – ali zorno pokazuje koliko se distribuirana računalna snaga može skalirati.

Kombinacija i duljina lozinke

Sljedeći primjeri pokazuju utjecaj duljine i odabira znakova. Za ilustraciju se računa s 2 milijarde pokušaja u sekundi (vrlo snažno pojedinačno računalo; stvarne vrijednosti znatno variraju ovisno o hardveru i – u offline slučaju – postupku hashiranja).

Tipične skupine znakova:

  • Brojevi (10: 0–9)
  • Slova (52: A–Z i a–z)
  • Posebni znakovi (≈ 32; ovisi o dopuštenom skupu znakova usluge)

Broj mogućih kombinacija dobiva se iz:

Mögliche Kombinationen = (Zeichenmenge)Passwortlänge

Važno: Tablica prikazuje maksimalno vrijeme pretraživanja. U prosjeku je stvarno vrijeme otprilike upola kraće. Osim toga, rječnički napadi te napadi pravilima i maskama znatno smanjuju prostor pretraživanja, dok spori postupci hashiranja lozinki efektivnu brzinu drastično smanjuju.

Passwort besteht ausMögliche Kombinationen (Formel)Benötigte Zeit (bei 2 Mrd./s)
5 Zeichen
3 Kleinbuchstaben, 2 Zahlen
(53) × 263 × 10217.576.0000,009 Sekunden
7 Zeichen
1 Großbuchstabe, 6 Kleinbuchstaben
(71) × 261+656.222.671.232≈ 28 Sekunden
8 Zeichen
4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen
(84) × (42) × 264 × 322 × 10219.653.623.808.000≈ 2,73 Stunden
9 Zeichen
2 Groß-, 3 Kleinbuchstaben, 2 Zahlen, 2 Sonderzeichen
(92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000≈ 53 Tage
12 Zeichen
3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen
(123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021≈ 115.591 Jahre
14 Zeichen
4 Groß-, 4 Kleinbuchstaben, 3 Zahlen, 3 Sonderzeichen
(144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025≈ 455.812.388 Jahre

Zaključak: Svaki dodatni znak višestruko povećava prostor pretraživanja. Duljina nadmašuje pravila složenosti – osobito protiv Offline‑napadi – pod uvjetom da servisi koriste odgovarajuće, spore hash algoritme sa Salt.

Zaštita od Brute‑Force napada

Najučinkovitija mjera korisnika je dugačka, nasumična glavna lozinka odnosno lozinka u obliku fraze (npr. nekoliko nasumičnih riječi) – jedinstvena za svaki servis. Password Depot pomaže pri generiranju i prikazuje procijenjeno vrijeme napada koje uz duljinu/skup znakova uzima u obzir i slabosti povezane s rječnikom.

  • Aktivirajte MFA/2FA (npr. TOTP aplikaciju ili hardverski token) – gdje je moguće, Passkeys su još bolji. Pogledajte upute BSI-ja.
  • Bez ponovne upotrebe lozinki. Svaki račun treba vlastitu, snažnu lozinku.
  • Duljina umjesto obavezne složenosti. Servisi bi trebali dopuštati duge lozinke/lozinke u obliku fraze (najmanje 64 znaka) i blokirati kompromitirane lozinke (blacklist).
  • Spori hash algoritmi na strani poslužitelja (npr. Argon2, scrypt, PBKDF2, bcrypt) sa Salt i odgovarajućim faktorima rada; brzi hash algoritmi poput MD5/SHA‑1 nisu prikladni za pohranu lozinki.
  • Rate‑Limiting/Throttling i zaključavanje: Online‑napade treba usporiti ograničenim brojem neuspjelih pokušaja, progresivnim vremenima čekanja i po potrebi CAPTCHA-om.

Osim toga, Password Depot otežava online pokušaje pogađanja lozinke tako što se nakon pogrešnih unosa obrazac za unos glavne lozinke nakratko zaključava – uz sve dulje vrijeme čekanja pri ponovljenim neuspjelim pokušajima.

Praktične smjernice za pružatelje usluga (tehničke timove)

  • Prihvatite sve ispisive znakove, uključujući razmake/Unicode, i omogućite copy-&-paste.
  • Implementirajte blok-liste (kompromitirane/uobičajene lozinke) i rate limiting uz jasne upute za korisnike.
  • Pohranjujte lozinke isključivo kao saltirane, hashirane vrijednosti s sporim KDF-ovima i redovito provjeravajte work faktore.

Dodatni izvori

Izrada sigurnih lozinki

Saznajte kako izraditi lozinke koje mogu odoljeti Brute-Force napadima.

Savjeti za sigurne lozinke