Näin brute force -hyökkäykset toimivat
Miksi pituudella on merkitystä: laskentaesimerkkejä ja vastatoimia.
Bei brute force -hyökkäyksissä hyökkääjät yrittävät arvata salasanan käymällä järjestelmällisesti läpi kaikki mahdolliset merkkien yhdistelmät. Perusajatus on yksinkertainen: testataan mahdollisimman monta yhdistelmää sekunnissa – mieluiten GPU:illa tai hajautetuissa järjestelmissä. Tästä käytetään myös nimitystä täydellinen haku (tyhjentävä haku).
Käytännössä tällaiset hyökkäykset onnistuvat valitettavan usein, koska monet salasanat ovat liian lyhyitä , rajoittuvat vain muutamiin merkkiryhmiin (vain kirjaimia) tai esiintyvät sanalistoissa . Tämä pienentää hakutilaa merkittävästi ja helpottaa arvaamista. Vielä tärkeämpää on erottaa online-hyökkäykset (kirjautumislomakkeita vastaan; tällöin rate limiting / tilin lukitukset auttavat) ja offline-hyökkäykset (varastettuja salasana-hasheja vastaan; tällöin hash-funktio ja salasanan vahvuus ratkaisevat hyökkäykseen kuluvan ajan).
Salasanojen murtaminen (offline) ≠ ”purkaminen”
Salasanoja ei pureta, vaan ne tallennetaan hash-arvoina ja niitä etsitään menetelmällä arvaus + hash-laskenta (Brute Force, sanakirja-/maskihyökkäykset). Laskentanopeus nykyaikaisella laitteistolla on miljardiluokkaa sekunnissa (nopeissa hash-menetelmissä), minkä vuoksi pitkät ja hitailla menetelmillä (esim. Argon2, scrypt, PBKDF2, bcrypt) hashatut salasanat ovat ratkaisevan tärkeitä.
Historiallinen ja ajankohtainen viite: distributed.netin RC5-projekti havainnollistaa tyhjentävän haun raakaa voimaa avainavaruudessa: 56 bittiä löydettiin vuonna 1997 250 päivässä, 64 bittiä vuonna 2002 1 757 päivässä. Tällä hetkellä välityspalvelimen tila RC5-72:llenoin 2,38 biljoonaa avainta sekunnissa (tilanne: tämän päivän hakuhetkellä). Tämä on avainten bruteforce-hakua eikä salasanojen hajautusten laskentaa – mutta havainnollistaa, miten tehokkaasti hajautettu laskentateho skaalautuu.
Salasanan yhdistelmä ja pituus
Seuraavat esimerkit näyttävät, miten pituus ja merkkivalikoima vaikuttavat. Havainnollistamiseksi oletetaan 2 miljardia yritystä sekunnissa (erittäin tehokas yksittäinen tietokone; todelliset arvot vaihtelevat suuresti laitteiston ja – offline-tapauksessa – hajautusmenetelmän mukaan).
Tyypilliset merkkiryhmät:
- Numerot (10: 0–9)
- Kirjaimet (52: A–Z ja a–z)
- Erikoismerkit (≈ 32; riippuu palvelun sallimasta merkistöstä)
Mahdollisten yhdistelmien määrä saadaan kaavalla:
Tärkeää: Taulukko näyttää suurimman mahdollisen hakuajan. Todellinen aika on keskimäärin noin puolet tästä. Lisäksi sanakirja-, sääntö- ja maskihyökkäykset pienentävät hakutilaa merkittävästi, kun taas hitaat salasanojen hajautusmenetelmät laskevat todellista nopeutta dramaattisesti.
| Passwort besteht aus | Mögliche Kombinationen (Formel) | Benötigte Zeit (bei 2 Mrd./s) |
|---|---|---|
| 5 Zeichen 3 Kleinbuchstaben, 2 Zahlen | (53) × 263 × 10217.576.000 | 0,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 |
Johtopäätös: Jokainen lisämerkki moninkertaistaa hakutilan. Pituus voittaa monimutkaisuussäännöt – erityisesti Offline-hyökkäykset – edellyttäen, että palvelut käyttävät soveltuvia, hitaita hajautusalgoritmeja suolan kanssa.
Suoja brute force -hyökkäyksiltä
Tehokkain käyttäjän toimenpide on pitkä, satunnainen pääsalasana tai tunnuslause (esim. useita satunnaisia sanoja) – yksilöllinen jokaiselle palvelulle. Password Depot auttaa niiden luomisessa ja näyttää arvioidun hyökkäysajan , jossa otetaan pituuden/merkkijoukon lisäksi huomioon myös sanakirjapohjaiset heikkoudet.
- Ota MFA/2FA käyttöön (esim. TOTP-sovellus tai laitteistotunniste) – mahdollisuuksien mukaan Passkeys ovat vielä parempi vaihtoehto. Katso BSI:n ohjeet.
- Älä kierrätä salasanoja. Jokainen tili tarvitsee oman vahvan salasanan.
- Pituus ennen pakollista monimutkaisuutta. Palveluiden tulisi sallia pitkät salasanat/tunnuslauseet (vähintään 64 merkkiä) ja estää vaarantuneet salasanat (musta lista).
- Hitaat hajautusalgoritmit palvelinpuolella (esim. Argon2, scrypt, PBKDF2, bcrypt) yhdessä Saltin ja asianmukaisten work factor -arvojen kanssa; nopeat hajautukset, kuten MD5/SHA-1, eivät sovellu salasanojen tallentamiseen.
- Rate limiting / throttling ja lukitukset: Online-hyökkäyksiä on hidastettava rajoittamalla virheellisiä yrityksiä, käyttämällä asteittain piteneviä odotusaikoja ja tarvittaessa CAPTCHAa.
Lisäksi Password Depot vaikeuttaa online-rate-yrityksiä lukitsemalla Master-Passwort-kentän hetkeksi virheellisten syöttöjen jälkeen – odotusajan pidentyessä toistuvien virheyritysten myötä.
Käytännön ohjeita palveluntarjoajille (teknisille tiimeille)
- Hyväksykää kaikki tulostettavat merkit, myös välilyönnit/Unicode, ja sallikaa kopiointi ja liittäminen.
- Ottakaa käyttöön estolistat (kompromettoituneet/tavanomaiset salasanat) ja rate limiting selkeillä käyttäjäohjeilla.
- Tallentakaa salasanat ainoastaan suolattuina, hajautettuina arvoina käyttäen hitaita KDF:iä ja tarkistakaa work factorit säännöllisesti.
Lisälähteet
- NIST SP 800–63B (Rev. 4), liite: Strength of Passwords – pituus, tunnuslauseet, offline-hyökkäykset (miljardeja hasheja/s) ja rate limiting -konsepti.
- NIST SP 800–63B (Rev. 3) – mm. vähimmäispituus, pitkien salasanojen salliminen (≥ 64), estolistat, liittämisen salliminen; Rate-Limiting/Throttling siten, että peräkkäisiä virheyrityksiä saa olla enintään 100.
- OWASP Password Storage Cheat Sheet – soveltuvat menetelmät (Argon2, scrypt, PBKDF2, bcrypt), salt-/work factorit.
- OWASP Authentication Cheat Sheet – ohjeistukset salasanan syöttämisestä, pituudesta, estolistoista ja lukitusmekanismeista.
- BSI: Turvallisten salasanojen luominen – mm. pitkät/monimutkaiset salasanat ja tunnuslauseet; käytännön vinkkejä.
- BSI-tiedote 31.01.2025 – ei pakotettuja säännöllisiä salasananvaihtoja; 2FA/Passkeys ensisijaisina.
- distributed.net RC5 / nykyinen välityspalvelimen tila – havainnollinen esimerkki tyhjentävästä hausta ja hajautetusta laskentatehosta.
Turvallisten salasanojen luominen
Lue, miten luot salasanoja, jotka kestävät brute force -hyökkäykset.
Vinkkejä turvallisiin salasanoihin