Sådan fungerer brute force-angreb

Hvorfor længden er vigtig: Beregningseksempler og modforanstaltninger.

Ved brute force-angreb forsøger angribere at gætte et kodeord ved systematisk at afprøve alle mulige tegnkombinationer. Den bagvedliggende idé er enkel: at afprøve så mange kombinationer som muligt pr. sekund – ideelt set på GPU'er eller i distribuerede systemer. Man taler også om en udtømmende søgning (exhaustive search).

I praksis er sådanne angreb desværre ofte succesfulde, fordi mange adgangskoder er for korte, er begrænset til få tegn (kun bogstaver) eller findes i ordlister. Dette reducerer søgeområdet drastisk og gør det lettere at gætte. Endnu vigtigere: Man skelner mellem online-angreb (mod login-formularer, hvor rate-begrænsning/kontospærring hjælper) og offline-angreb (mod stjålne adgangskode-hashes, hvor hash-funktionen og adgangskodens styrke afgør angrebstiden).

At knække adgangskoder (offline) ≠ »dekryptere«

Adgangskoder bliver ikke dekrypteret, men gemt som hashværdier og derefter søges med gætning + hashing</ em> (brute force, ordbogs-/maskeangreb). Den beregningshastighed for moderne hardware ligger i milliarder pr. sekund (for hurtige hash-procedurer), hvorfor lange og med langsomme procedurer (f.eks. Argon2, scrypt, PBKDF2, bcrypt) adgangskoder er afgørende.

Kombination og længde af passwordet

Følgende eksempler viser indflydelsen af længde og tegnsvalg. Til illustration beregnes der med 2 milliarder forsøg pr. sekund (meget kraftig enkeltcomputer; reelle værdier varierer stærkt afhængigt af hardware og – i offline-tilfælde – hash-procedure).

Typiske tegn grupper:

  • Tal (10: 0–9)
  • Bogstaver (52: A–Z og a–z)
  • Specialtegn (≈ 32; afhænger af den tilladte tegnsæt for tjenesten)

Antallet af mulige kombinationer beregnes som følger:

Mulige kombinationer = (tegnmængde)adgangskodelængde

Vigtigt: Tabellen viser den maksimale søgetid. I gennemsnit er den faktiske tid cirka halvdelen. Desuden reducerer ordbogs-, regel- og maskeangreb søgeområdet betydeligt, mens langsomme adgangskode-hashprocedurer sænker den effektive hastighed drastisk.

Adgangskoden består af Mulige kombinationer (formel) Nødvendig tid (ved 2 mia./s)

5 tegn
(3 små bogstaver,
2 tal)

( 53) × 263 × 102 =
17.576.000

17.576.000 / 2.000.000.000 =
0,008788 sekunder

7 tegn
(1 stort bogstav,
6 små bogstaver)

( 71) × 261+6 =
56.222.671.232

56.222.671.232 / 2.000.000.000 =
28,111335616 sekunder

8 tegn
(4 små bogstaver,
2 specialtegn,
2 tal)

( 84) × ( 42 ) × 264 × 322 × 102 =
19.653.623.808.000

19.653.623.808.000 / 2.000.000.000 =
9.826,811904 sekunder =
≈ 2,73 timer

9 tegn
(2 store bogstaver,
3 små bogstaver,
2 tal,
2 specialtegn)

( 92 ) × ( 73) × ( 42 ) × 262+3 × 102 × 322 =
9.197.895.942.144.000

9.197.895.942.144.000 / 2.000.000.000 =
4.598.947,971072 sekunder =
≈ 53,23 dage

12 tegn
(3 store bogstaver,
4 små bogstaver,
3 specialtegn,
2 tal)

( 123) × ( 94 ) × ( 53) × 263+4 × 323 × 102 =
7.295.525.784.083.496.960.000

7.295.525.784.083.496.960.000 / 2.000.000.000 =
3.647.762.892.041,74848 sekunder =
≈ 115.590,63 år

14 tegn
(4 store bogstaver,
4 små bogstaver,
3 tal,
3 specialtegn)

( 144 ) × ( 104) × ( 63 ) × 264+4 × 103 × 323 =
28.768.690.008.569.256.345.600.000

28.768.690.008.569.256.345.600.000 / 2.000.000.000 =
14.384.345.004.284.628,1728 sekunder =
≈ 455.812.387,64 år

Konklusion: Hvert ekstra tegn mangedobler søgeområdet. Længde slår kompleksitetsregler – især mod offline-angreb – forudsat at tjenester bruger egnede, langsomme hash-metoder med salt.

Beskyttelse mod brute force-angreb

Den mest effektive brugerforanstaltning er en lang, tilfældig masteradgangskode eller en adgangskodefrase (f.eks. flere tilfældige ord) – unik for hver tjeneste. Password Depot hjælper med genereringen og viser en anslået angrebstid, der ud over længde/tegnsæt også tager højde for svagheder i ordbogen.

  • Aktivér MFA/2FA (f.eks. TOTP-app eller hardwaretoken) – hvor det er muligt, er adgangskoder endnu bedre. Se BSI-henvisninger.
  • Ingen genbrug af adgangskoder. Hver konto skal have sin egen stærke adgangskode.
  • Lang i stedet for obligatorisk kompleksitet. Tjenester bør tillade lange adgangskoder/adgangssætninger (mindst 64 tegn) og blokere kompromitterede adgangskoder (sortliste).
  • Langsom hash-metode på serversiden (f.eks. Argon2, scrypt, PBKDF2, bcrypt) med salt og passende arbejdsfaktorer; hurtige hashes som MD5/SHA-1 er uegnede til adgangskodelagring.
  • Ratebegrænsning/throttling og spærring: Onlineangreb skal bremses ved hjælp af begrænsede fejltilfælde, progressive ventetider og eventuelt CAPTCHA.

Derudover vanskeliggør Password Depot Online rateforsøg ved efter forkerte indtastninger kortvarigt at spærre indtastningsmasken for masteradgangskoden – med stigende ventetid ved gentagne fejlagtige forsøg.

Yderligere kilder