Petteri Pyyny
23. tammikuuta, 2021 15:15
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 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.
Jos salasana on pelkkiä pieniä kirjaimia sisältävä, kuten vaikkapa mainiosalasana, sen murtamiseen kuluu aikaa seuraavasti:
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.
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:
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.
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:
Jälleen, vähintään 9 merkkiä vaaditaan, jotta salasanan laskennallinen kesto edes tyhmää brute force -hyökkäystä vastaan olisi jokseenkin säädyllinen.
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:
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.
Jos taas oikein halutaan hullutella ja käytetäänkin pelkästään numeroita salasanana, ollaan todella ohuella jäällä:
Pelkillä sattumanvaraisilla numeroilla luotu salasana on siis turvallinen ainoastaan, kun sen pituus alkaa olemaan vähintään 15 merkkiä pitkä.
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.