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.
Taulukkoa voi vierittää sivusuunnassa
| Salasana koostuu | Tarvittava aika (nopeudella 2 mrd/s) | Mahdolliset yhdistelmät (kaava) |
|---|---|---|
| 5 merkkiä 3 pientä kirjainta, 2 numeroa | 0,009 sekuntia | (53) × 263 × 10217 576 000 |
| 7 merkkiä 1 iso kirjain, 6 pientä kirjainta | ≈ 28 sekuntia | (71) × 261+656 222 671 232 |
| 8 merkkiä 4 pientä kirjainta, 2 erikoismerkkiä, 2 numeroa | ≈ 2,73 tuntia | (84) × (42) × 264 × 322 × 10219 653 623 808 000 |
| 9 merkkiä 2 isoa, 3 pientä kirjainta, 2 numeroa, 2 erikoismerkkiä | ≈ 53 päivää | (92) × (73) × (42) × 262+3 × 102 × 3229 197 895 942 144 000 |
| 12 merkkiä 3 isoa, 4 pientä kirjainta, 3 erikoismerkkiä, 2 numeroa | ≈ 115 591 vuotta | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 |
| 14 merkkiä 4 isoa, 4 pientä kirjainta, 3 numeroa, 3 erikoismerkkiä | ≈ 455 812 388 vuotta | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 |
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