Így működnek a brute force támadások

Miért fontos a hosszúság: számítási példák és ellenintézkedések.

A brute-force támadások során a támadók szisztematikus kipróbálással próbálják kitalálni a jelszót, az összes lehetséges karakterkombinációt végigpróbálva. Az alapötlet egyszerű: a lehető legtöbb kombinációt kell másodpercenként kipróbálni – ideális esetben GPU-kon vagy elosztott rendszereken. Ezt kimerítő keresésnek (exhaustive search) is nevezik.

A gyakorlatban sajnos az ilyen támadások gyakran sikeresek, mert sok jelszó túl rövid, csak néhány karaktercsoportra korlátozódik (csak betűk) vagy szólistákban szerepel. Ez drasztikusan csökkenti a keresési teret és megkönnyíti a kitalálást. Még fontosabb: megkülönböztetünk online támadásokat (bejelentkezési űrlapok ellen, itt segít a sebességkorlátozás/fiók zárolás) és offline támadásokat (ellopott jelszó-hash-ek ellen, itt a hash-funkció és a jelszó erőssége dönti el a támadás idejét).

Jelszavak feltörése (offline) ≠ „dekódolás”

A jelszavakat nem dekódolják, hanem hash-értékekként tárolják, majd kísérletezéssel + hash-eléssel</ em> (brute force, szótár-/maszk támadások) segítségével keresik meg. A számítási sebesség a modern hardvereknél milliárd/másodperc tartományban mozog (gyors hash-eljárások esetén), ezért a hosszú és lassú eljárásokkal (pl. Argon2, scrypt, PBKDF2, bcrypt) hash-elt jelszavak döntő fontosságúak.

A jelszó kombinációja és hossza

Az alábbi példák bemutatják a hosszúság és a karakterválasztás hatását. Az illusztrációhoz 2 milliárd kísérletet másodpercenként számolunk (nagy teljesítményű egyedi számítógép; a valós értékek a hardvertől és – offline esetben – a hash-eljárástól függően jelentősen eltérhetnek).

Tipikus karaktercsoportok:

  • Számok (10: 0–9)
  • Betűk (52: A–Z és a–z)
  • Különleges karakterek (≈ 32; a szolgáltatás által engedélyezett karakterkészlettől függ)

A lehetséges kombinációk száma a következőképpen adódik:

Lehetséges kombinációk = (karakterkészlet)jelszó hossza

Fontos: A táblázat a maximális keresési időt mutatja. Átlagosan a tényleges idő körülbelül a fele. Ezenkívül a szótár-, szabály- és maszk támadások jelentősen csökkentik a keresési teret, míg a lassú jelszó-hash eljárások drasztikusan csökkentik az effektív arányt.

A jelszó a következőkből áll Lehetséges kombinációk (képlet) Szükséges idő (2 milliárd/másodperc esetén)

5 karakter
(3 kisbetű,
2 szám)

( 53) × 263 × 102 =
17 576 000

17 576 000 / 2 000 000 000 =
0,008788 másodperc

7 karakter
(1 nagybetű,
6 kisbetű)

( 71) × 261+6 =
56 222 671 232

56 222 671 232 / 2 000 000 000 =
28,111335616 másodperc

8 karakter
(4 kisbetű,
2 speciális karakter,
2 szám)

( 84) × ( 42 ) × 264 × 322 × 102 =
19 653 623 808 000

19 653 623 808 000 / 2 000 000 000 =
9 826,811904 másodperc =
≈ 2,73 óra

9 karakter
(2 nagybetű,
3 kisbetű,
2 szám,
2 speciális karakter)

( 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 másodperc =
≈ 53,23 nap

12 karakter
(3 nagybetű,
4 kisbetű,
3 speciális karakter,
2 szám)

( 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 másodperc =
≈ 115 590,63 év

14 karakter
(4 nagybetű,
4 kisbetű,
3 szám,
3 speciális karakter)

( 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 másodperc =
≈ 455 812 387,64 év

Következtetés: Minden további karakter megsokszorozza a keresési teret. A hosszúság komplexitási szabályokat – különösen az offline támadások ellen – feltételez, feltéve, hogy a szolgáltatások megfelelő, lassú hash-eljárásokat használnak sóval.

Védelem brute-force támadások ellen

A leghatékonyabb felhasználói intézkedés egy hosszú, véletlenszerű mesterjelszó vagy egy jelszófrázis (pl. több véletlenszerű szó) – egyedülálló minden szolgáltatáshoz. A Password Depot segít a generálásban és megjeleníti a becsült támadási időt, amely a hosszúság/karakterkészlet mellett a szótárban található gyenge pontokat is figyelembe veszi.

  • MFA/2FA aktiválása (pl. TOTP-alkalmazás vagy hardveres token) – ahol lehetséges, a jelszavak még jobbak. Lásd BSI-tanácsok.
  • Nincs jelszó-újrahasznosítás. Minden fióknak saját, erős jelszóra van szüksége.
  • Hosszú jelszavak a kötelező komplexitás helyett. A szolgáltatásoknak hosszú jelszavakat/jelszófrázisokat kell engedélyezniük (legalább 64 karakter), és blokkolniuk kell a kompromittált jelszavakat (feketelista).
  • Lassú hash-eljárások szerver oldalon (pl. Argon2, scrypt, PBKDF2, bcrypt) salt és megfelelő munkatényezőkkel; a gyors hash-ek, mint az MD5/SHA-1, nem alkalmasak jelszó tárolására.
  • Sebességkorlátozás/fojtás és zárolás: Az online támadásokat korlátozott hibás kísérletek, fokozatos várakozási idők és adott esetben CAPTCHA segítségével kell megakadályozni.

Ezenkívül a Password Depot Online megnehezíti a jelszófeltörési kísérleteket azzal, hogy a helytelen beírások után rövid időre letiltja a mesterjelszó beviteli mezőjét – növekvő várakozási idővel ismételt hibás beírások esetén.

További források