Tietotaito / Salasanojen turvallisuus

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:

Mögliche Kombinationen = (Zeichenmenge)Passwortlänge

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 ausMögliche Kombinationen (Formel)Benötigte Zeit (bei 2 Mrd./s)
5 Zeichen
3 Kleinbuchstaben, 2 Zahlen
(53) × 263 × 10217.576.0000,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

Turvallisten salasanojen luominen

Lue, miten luot salasanoja, jotka kestävät brute force -hyökkäykset.

Vinkkejä turvallisiin salasanoihin