AfterDawn logo

Näin kauan salasanan murtaminen kestää

Petteri Pyyny Petteri Pyyny

Vanha viisaus, johon monet tukeutuvat edelleen salasanaa valitessaan, on, että salasanassa pitäisi olla isoja ja pieniä kirjaimia, numeroita sekä mahdollisesti myös erikoismerkkejä. Valitettavasti suurin osa unohtaa sen nykypäivän tärkeimmän säännön: salasanan pitää olla pitkä. Siis todella, todella pitkä.

Kaivoimme hieman taustatietoa siitä, miten nopeasti nykyaikaisilla näytönohjaimilla voidaan laskennallisesti murtaa salasana - ja nimenomaan salasanan pituus oli se määrittävä tekijä kaikissa laskelmissa.

Salasanan murtaminen brute force-tekniikalla

Salasanan murtamiseen käytetään yksinkertaisimmillaan ns. brute force-tekniikkaa, jossa ohjelmallisesti kokeillaan kaikkia mahdollisia kirjain- ja numeroyhdistelmiä läpi. Eli raakaa voimaa (=brute force).

Fiksummat salasanoja murtavat tahot pohjaavat tekniikkansa ns. hashcat -tekniikkaan, joka käyttää sanakirjatiedostoja ja muita fiksumpia tapoja salasanojen arvaamiseen. Mutta molemmat tekniikat pohjautuvat silti käytännössä siihen, että laskentatehon avulla kokeillaan hurja määrä erilaisia vaihtoehtoja, kunnes oikea löytyy.


Alla olevissa laskelmissa on käytetty puhdasta "tyhmää" brute force -tekniikkaa ja laskenta on tehty parin vuoden takaisella NVIDIA GeForce GTX 1080 -näytönohjaimella. Uudemmalla näytönohjaimella laskentateho luonnollisesti hyppää loikan eteenpäin, joten mainitut ajatkin pienentyvät.

Pelkkiä pieniä kirjaimia sisältävä salasana

Jos salasana on pelkkiä pieniä kirjaimia sisältävä, kuten vaikkapa mainiosalasana, sen murtamiseen kuluu aikaa seuraavasti:

  • Jos salasanassa on 4 merkkiä, kestää murtamisessa 0,015 sekuntia
  • Jos salasanassa on 5 merkkiä, kestää murtamisessa 0,4 sekuntia
  • Jos salasanassa on 6 merkkiä, kestää murtamisessa 10 sekuntia
  • Jos salasanassa on 7 merkkiä, kestää murtamisessa 4,5 minuuttia
  • Jos salasanassa on 8 merkkiä, kestää murtamisessa 1,9 tuntia
  • Jos salasanassa on 9 merkkiä, kestää murtamisessa 2,1 vuorokautta
  • Jos salasanassa on 10 merkkiä, kestää murtamisessa 54 vuorokautta
  • Jos salasanassa on 11 merkkiä, kestää murtamisessa 3,9 vuotta
  • Jos salasanassa on 12 merkkiä, kestää murtamisessa 100 vuotta


Pidempi on siis parempi. Alle 11 merkkiä pitkän salasanan luominen, käyttäen pelkkiä pieniä kirjaimia luo salasanan, jonka laskennallinen "elinikä" on alle kaksi kuukautta - aika, jona aikana et välttämättä edes ehdi huomata salasanasi tulleen murretuksi ja käytetyksi tietämättäsi.

Isoja ja pieniä kirjaimia sekoittava salasana

Salasanan vahvuus paranee, jos siinä on yksikin iso kirjain mukana, koska silloin tarvittava laskenta tuplaantuu (pienten kirjainten isot sisarukset tulevat mukaan). Aikaa sAlaSaNa -muotoisen salasanan murtamiseen hurahtaa seuraavasti:

  • Jos salasanassa on 4 merkkiä, kestää murtamisessa 0,024 sekuntia
  • Jos salasanassa on 5 merkkiä, kestää murtamisessa 13 sekuntia
  • Jos salasanassa on 6 merkkiä, kestää murtamisessa 11 minuuttia
  • Jos salasanassa on 7 merkkiä, kestää murtamisessa 9,5 tuntia
  • Jos salasanassa on 8 merkkiä, kestää murtamisessa 21 vuorokautta
  • Jos salasanassa on 9 merkkiä, kestää murtamisessa 2,9 vuotta
  • Jos salasanassa on 10 merkkiä, kestää murtamisessa 150 vuotta
  • Jos salasanassa on 11 merkkiä, kestää murtamisessa 7 900 vuotta
  • Jos salasanassa on 12 merkkiä, kestää murtamisessa 410 000 vuotta


Isoja ja pieniä kirjaimia yhdistelemällä saavutetaan kohtuullisen hyvä turvallisuustaso siis jo 9 merkillä. Mutta luonnollisesti myös laskentateho kasvaa vuosi vuodelta, joten jo 2030-luvulle tultaessa voidaan olettaa 9 merkkiä pitkän tällaisella kaavalla rakennetun salasanan aukeavan varsin nopeasti.

Isoja ja pieniä kirjaimia sekä numeroita yhdistelevä salasana

Kun lisätään leikkiin mukaan numerot, kasvatetaan laskettavan merkkimäärän kokoa jo taas kymmenellä aiemmasta. Tämä hidastaa murtamista jo merkittävästi, jos salasana on muotoa o1k31nMaini05ala5ana:

  • Jos salasanassa on 4 merkkiä, kestää murtamisessa 0,5 sekuntia
  • Jos salasanassa on 5 merkkiä, kestää murtamisessa 31 sekuntia
  • Jos salasanassa on 6 merkkiä, kestää murtamisessa 32 minuuttia
  • Jos salasanassa on 7 merkkiä, kestää murtamisessa 33 tuntia
  • Jos salasanassa on 8 merkkiä, kestää murtamisessa 84 vuorokautta
  • Jos salasanassa on 9 merkkiä, kestää murtamisessa 14 vuotta
  • Jos salasanassa on 10 merkkiä, kestää murtamisessa 890 vuotta
  • Jos salasanassa on 11 merkkiä, kestää murtamisessa 55 000 vuotta
  • Jos salasanassa on 12 merkkiä, kestää murtamisessa 3 400 000 vuotta


Jälleen, vähintään 9 merkkiä vaaditaan, jotta salasanan laskennallinen kesto edes tyhmää brute force -hyökkäystä vastaan olisi jokseenkin säädyllinen.

Isot ja pienet kirjaimet, numerot ja erikoismerkit samassa

Kun mukaan otetaan myös erikoismerkit sekä välilyönti, voidaankin luoda salasanoja jotka ovat taas astetta vahvempia, kuten vaikkapa 0ike1n m4ini0 ja waHva 5ala$ana!. LAskenta hidastuu jälleen:

  • Jos salasanassa on 4 merkkiä, kestää murtamisessa 2,7 sekuntia
  • Jos salasanassa on 5 merkkiä, kestää murtamisessa 4,3 minuuttia
  • Jos salasanassa on 6 merkkiä, kestää murtamisessa 6,8 tuntia
  • Jos salasanassa on 7 merkkiä, kestää murtamisessa 27 vuorokautta
  • Jos salasanassa on 8 merkkiä, kestää murtamisessa 7 vuotta
  • Jos salasanassa on 9 merkkiä, kestää murtamisessa 670 vuotta
  • Jos salasanassa on 10 merkkiä, kestää murtamisessa 63 000 vuotta
  • Jos salasanassa on 11 merkkiä, kestää murtamisessa 6 000 000
  • Jos salasanassa on 12 merkkiä, kestää murtamisessa 570 000 000 vuotta


Käyttämällä kaikkia merkkejä, numeroita ja isoja sekä pieniä kirjaimia saavutetaan tietty turvallisuuden taso jo 8 merkillä typerää brute force -hyökkäystä vastaan.

Pelkkiä numeroita sisältävä salasana

Jos taas oikein halutaan hullutella ja käytetäänkin pelkästään numeroita salasanana, ollaan todella ohuella jäällä:

  • Jos salasanassa on 4 merkkiä, kestää murtamisessa 0,3 millisekuntia
  • Jos salasanassa on 5 merkkiä, kestää murtamisessa 3 millisekuntia
  • Jos salasanassa on 6 merkkiä, kestää murtamisessa 33 millisekuntia
  • Jos salasanassa on 7 merkkiä, kestää murtamisessa 330 millisekuntia
  • Jos salasanassa on 8 merkkiä, kestää murtamisessa 3,3 sekuntia
  • Jos salasanassa on 9 merkkiä, kestää murtamisessa 33 sekuntia
  • Jos salasanassa on 10 merkkiä, kestää murtamisessa 5,6 minuuttia
  • Jos salasanassa on 11 merkkiä, kestää murtamisessa 56 minuuttia
  • Jos salasanassa on 12 merkkiä, kestää murtamisessa 9,3 tuntia
  • Jos salasanassa on 13 merkkiä, kestää murtamisessa 3,9 vuorokautta
  • Jos salasanassa on 14 merkkiä, kestää murtamisessa 39 vuorokautta
  • Jos salasanassa on 15 merkkiä, kestää murtamisessa 1,1 vuotta
  • Jos salasanassa on 16 merkkiä, kestää murtamisessa 11 vuotta

Pelkillä sattumanvaraisilla numeroilla luotu salasana on siis turvallinen ainoastaan, kun sen pituus alkaa olemaan vähintään 15 merkkiä pitkä.

Yhteenveto

Edellä mainitut laskelmat pohjautuvat siihen, että salasana löytyisi aina viimeisellä yrityksellä, eli se voi aueta jo paljon nopeamminkin kuin laskelmissa mainitut arvot kertovat. Mutta kuten kaikista laskelmista näkyy, salasanan pidentäminen edes yhdellä merkillä aiempaa pidemmäksi muuttaa murtamiseen tarvittavaa aikaa merkittävästi. Laskelmat pohjautuvat tähän kaavioon. Aihetta on käsitelty monissa muissakin artikkeleissa, mm. SpyCloudin artikkeli totesi, että salasanat jotka ovat vähintään 16 merkkiä pitkiä ja ovat oikeasti satunnaisia, ovat oikeasti turvallisia.

Salasanojen heikentymisestä vuosien mittaan on myös julkaistu mainio graafi, jonka mukaan salasanan security1 murtamiseen vaadittiin vielä vuonna 2000 aikaa lähes neljän vuoden ajan. Ja vuonna 2016 enää reilut pari kuukautta. Laskentatehon kasvaminen on tosiasia, joka tapahtuu vuodesta toiseen, joten salasana, joka tänään voi olla turvallinen, voi olla jo 5 vuoden päästä auttamatta liian heikko.


Suosittelemme käyttämään salasanojen hallintatyökaluja, kuten KeePassia tai LastPassia ja antaa niiden luoda salasanat kuhunkin palveluun itse. Tällöin salasana on tarpeeksi pitkä ja monimutkainen - eikä niitä tarvitse muistaa itse.

TÄMÄN UUTISEN KOMMENTOINTI ON PÄÄTTYNYT