Tudástár / Jelszóbiztonság

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

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

A(z) brute-force támadások során a támadók megpróbálják kitalálni a jelszót az összes lehetséges karakterkombináció szisztematikus végigpróbálásával. Az alapelv egyszerű: másodpercenként a lehető legtöbb kombinációt tesztelni – ideális esetben GPU-kon vagy elosztott rendszerekben. Ezt nevezik más néven kimerítő keresésnek (kimerítő keresés).

A gyakorlatban az ilyen támadások sajnos gyakran sikeresek, mert sok jelszó túl rövid , csak kevés karaktercsoportra korlátozódik (csak betűk), vagy szerepel a(z) szólistákban. Ez drasztikusan csökkenti a keresési teret, és megkönnyíti a kitalálást. Ennél is fontosabb, hogy különbséget teszünk a következők között: online támadások (bejelentkezési űrlapok ellen; itt a rate limiting/fiókzárolás segít) és offline támadások (ellopott jelszó-hash-ek ellen; itt a hash-függvény és a jelszó erőssége határozza meg a támadáshoz szükséges időt).

A jelszavak feltörése (offline) ≠ „visszafejtés”

A jelszavakat nem visszafejtik, hanem hash-értékként tárolják, majd találgatással + hasheléssel keresik őket (brute force, szótár-/maszktámadások). A modern hardverek számítási sebessége a(z) másodpercenkénti milliárdos tartományban van (gyors hash-eljárások esetén), ezért a hosszú és lassú eljárásokkal (pl. Argon2, scrypt, PBKDF2, bcrypt) hashelt jelszavak kulcsfontosságúak.

Történeti és aktuális vonatkozás: A(z) distributed.net RC5-projektje jól szemlélteti a kimerítő keresés nyers erejét egy kulcstéren: az 56 bites kulcsot 1997-ben 250 nap után, a 64 biteset 2002-ben 1.757 nap után találták meg. Jelenleg a(z) proxy állapota az RC5-72 esetébenkb. 2,38 billió kulcs másodpercenként (állapot: a mai napi lekérdezés alapján). Ez kulcsalapú brute force és nem jelszó-hashelés – ugyanakkor jól szemlélteti, mennyire skálázható az elosztott számítási teljesítmény.

A jelszó összetétele és hossza

Az alábbi példák bemutatják a(z) hossz és a(z) karakterkészlet hatását. A szemléltetéshez 2 milliárd próbálkozás/másodperc értékkel számolunk (nagyon erős önálló számítógép; a valós értékek a hardvertől és – offline esetben – a hashelési eljárástól függően jelentősen eltérhetnek).

Tipikus karaktercsoportok:

  • Számjegyek (10: 0–9)
  • Betűk (52: A–Z és a–z)
  • Speciális 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óhossz

Fontos: A táblázat a maximális keresési időt mutatja. Átlagosan a tényleges idő ennek körülbelül a fele. Emellett a szótár-, szabály- és maszkalapú támadások jelentősen csökkentik a keresési teret, míg a(z) lassú jelszóhashelési eljárások az effektív sebességet drasztikusan csökkentik.

A jelszó tartalmazLehetséges kombinációk (képlet)Szükséges idő (2 Mrd/s mellett)
5 karakter
3 kisbetű, 2 számjegy
(53) × 263 × 10217 576 0000,009 másodperc
7 karakter
1 nagybetű, 6 kisbetű
(71) × 261+656 222 671 232≈ 28 másodperc
8 karakter
4 kisbetű, 2 speciális karakter, 2 számjegy
(84) × (42) × 264 × 322 × 10219 653 623 808 000≈ 2,73 óra
9 karakter
2 nagybetű, 3 kisbetű, 2 számjegy, 2 speciális karakter
(92) × (73) × (42) × 262+3 × 102 × 3229 197 895 942 144 000≈ 53 nap
12 karakter
3 nagybetű, 4 kisbetű, 3 speciális karakter, 2 számjegy
(123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021≈ 115 591 év
14 karakter
4 nagybetű, 4 kisbetű, 3 számjegy, 3 speciális karakter
(144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025≈ 455 812 388 év

Összegzés: Minden további karakter megsokszorozza a keresési teret. A hossz fontosabb, mint a komplexitási szabályok – különösen a(z) Offline támadások – feltéve, hogy a szolgáltatások megfelelő, lassú hash-eljárásokat használnak Salt-tal.

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

A leghatékonyabb felhasználói intézkedés egy hosszú, véletlenszerű mesterjelszó vagy egy jelmondat (pl. több véletlenszerű szó) – szolgáltatásonként egyedi formában. A Password Depot segít a létrehozásban, és megjeleníti a becsült feltörési időt is, amely a hossz/karakterkészlet mellett a szótár alapú gyengeségeket is figyelembe veszi.

  • MFA/2FA bekapcsolása (pl. TOTP-alkalmazás vagy hardveres token) – ahol lehetséges, a Passkeys még jobbak. Lásd a(z) BSI útmutatóját.
  • Ne használjon újra jelszavakat. Minden fiókhoz külön, erős jelszó szükséges.
  • A hossz fontosabb, mint a kötelező komplexitás. A szolgáltatásoknak engedélyezniük kell a hosszú jelszavakat/jelmondatokat (legalább 64 karakter), és blokkolniuk kell a kompromittálódott jelszavakat (feketelista).
  • Lassú hash-eljárások szerveroldalon (pl. Argon2, scrypt, PBKDF2, bcrypt) Salt és megfelelő work factorok használatával; az olyan gyors hashek, mint az MD5/SHA-1, nem alkalmasak jelszavak tárolására.
  • Rate-Limiting/Throttling és zárolás: Az online támadásokat korlátozott számú hibás próbálkozással, fokozatos várakozási idővel és szükség esetén CAPTCHA-val kell lassítani.

Emellett a Password Depot az online próbálkozásos támadásokat is nehezíti azzal, hogy hibás bevitel után rövid időre zárolja a mesterjelszó beviteli mezőjét –egyre hosszabb várakozási idővel ismételt sikertelen próbálkozások esetén.

Gyakorlati útmutatás szolgáltatók (műszaki csapatok) számára

  • Fogadják el az összes nyomtatható karaktert, beleértve a szóközöket/Unicode karaktereket is, és engedélyezzék a másolás és beillesztés használatát.
  • Vezessenek be blokkolólistákat (kompromittálódott/gyakori jelszavak) és Rate-Limitinget egyértelmű felhasználói tájékoztatással.
  • A jelszavakat kizárólag saltolt, hash-elt értékekként tárolják, lassú KDF-ekkel, és rendszeresen ellenőrizzék a work factorokat.

További források

Biztonságos jelszavak létrehozása

Ismerje meg, hogyan hozhat létre olyan jelszavakat, amelyek ellenállnak a brute-force támadásoknak.

Tippek a biztonságos jelszavakhoz