Salasanat ovat luultavasti tärkein tietoturvatekijä. Asiantuntijat ovat jo vuosikymmeniä kehoittaneet ihmisiä kehittämään turvallisia salasanoja, mutta tutkimusten valossa viesti ei ole mennyt suurimmalle osalle tietokoneiden käyttäjistä perille. Tässä kolmeosaisen juttusarjan ensimmäisessä osassa kerron perusasioita salasanojen muodostamisesta ja miten niistä tehdään turvallisempia.
Merkkiavaruuden vaikutus
Ensimmäinen asia salasanoista on se, että se ei missään nimessä saa olla oikea sana. Sanakirjahyökkäyksellä okeat sanat voidaa murtaa naurettavan helposti. Paris Hiltonin tili murrettiin, koska hän käytti salasanana lemmikkikoiransa nimeä, joka oli yleisesti tiedossa. Älä siis käytä oikeita sanoja tai nimiä.
Salasanalla on tietoturvan kannalta kaksi merkittävää ominaisuutta: pituus ja merkkiavaruuden koko. Mahdollisten kombinaatioiden määrä on merkkiavaruuden koko potenssiin salasanan pituus. Otetaan esimerkiksi kuusi merkkiä pitkä salasana, jossa on käytetty vain pieniä kirjaimia (ääkköset pois lukien). Silloin kombinaatioiden määrä on 26⁶, eli 321 272 406. Aika paljon, eikö? Ei. Tuollainen salasana murtuu kotikonsteinkin alle sekunnin sadasosassa, jos hyökkääjä on saanut ladattua salasanasi tarkistussumman omille koneillensa.
Entä jos salasanan yksi merkki on numero? Silloin merkkiavaruus kasvaa kymmenellä merkillä ja kuusimerkkiä kombinaatioita on jo 36⁶, eli noin 2,2 miljardia. Sen murtamiseen kotikonstein menee jo kaksi sekunnin sadasosaa, mutta vieläkään ei mistään pomminvarmasta ratkaisusta voida puhua.
Lisätään salasanaan vähintään yksi iso kirjain. Silloin merkkiavaruus kasvaa jälleen 26 merkillä. Kuusimerkkisiä kombinaatioita on 62⁶, joka on noin 58 miljardia. Nyt murtajalla menee aikaa jo yli puoli sekuntia. Edelleenkin tarvitaan lisää kombinaatioita!
Tehdään siis niin kuin tietoturva-asiantuntijat suosittelevat, eli lisätään yksi erikoismerkki. Erikoismerkkejä on 33, joten nyt merkkiavaruus on jo 95 merkkiä, mikä on jo huomattava parannus alkuperäiseen 26 merkkiin. Mahdollisia salasanoja on silloin jo noin 740 miljardia, joka venyttää murtamisajan 7,4 sekuntiin.
Vertailun vuoksi vielä:
Ensinnäkin hyökkäyksiä on kahta eri laatua. Verkossa tapahtuvissa hyökkäyksissä on useita tietoturvaa helpottavia tekijöitä. Ensinnäkin salasanojen arvaaminen verkon yli on huomattavasti hitaampaa. Lisäksi kaikki vakavasti otettavat palvelut pidentävät arvausten välistä aikaa eksponentiaalisesti tai lukitsevat tilin kokonaan liian monen väärän yrityksen jälkeen. Kolmanneksi käyttäjä pystyy vaihtamaan salasanansa kesken verkkohyökkäyksen.
Jos oletetaan, että käyttäjä vaivautuu vaihtamaan salasanansa edes kerran vuodessa ja että arvausten määrä rajoittuu tuhanteen arvaukseen sekunnissa (mikä on todennäköisesti ronskisti yläkanttiin) niin salasanan tulisi olla ainakin kuusi merkkiä pitkä. Tämä siis silloin kun käytetään 95 merkin merkkiavaruutta.
Paikallisissa hyökkäyksissä tilanne on murheellisempi. Hyökkääjällä on silloin esimerkiksi käyttäjän data kryptattuna paikallisella kovalevyllä. Silloin käyttäjä ei pääse vaihtamaan salasanaansa, ja hyökkääjä pääsee tekemään arvauksia miljoonia kertoja nopeammin. Silloin salasanan pituusvaatimus kasvaa huomattavasti.
Miten pitkä salasana on murtamaton?
Aluksi on todettava, että jokainen salasana on murrettavissa, jos aikaa on tarpeeksi. Jos murtamatomaksi määritellään salasana, jonka murtamiseen menee ihmisen elinikä (pyöreästi 100 vuotta), niin silloin voimme tehdä arvioita siitä, miten pitkä salasanan olisi oltava. Yritän muotoilla tässä pahimman mahdollisen tilanteen. Oletetaan, että joku valtiollinen tiedustelupalvelu on saanut datasi haltuunsa ja on päättänyt murtaa sen resursseja säästämättä. Oletetaan, että tuollaisella organisaatiolla on käytössä tuhatkertaiset prosessointiresurssit kotikäyttäjään nähden. Silloin arvioisin arvauksia tapahtuvan sata biljoonaa sekunnissa (10¹⁴).
Kun puhutaan aikavälistä, joka on vuosia, joudumme ottamaan huomioon saatavilla olevan laskentatehon kasvamisen. Rohkenen käyttää Mooren lakia tässä yhteydessä ennustamaan saatavilla olevan laskentatehon määrää tulevaisuudessa. Oletetaan siis, että laskentateho tuplaantuu kahden vuoden välein, ja että murtomies pystyy lennosta vaihtamaan tehokkaampaan laitteistoon. Ensimmäisen 2v aikana pystytään murtamaan siis 2 nykyvuosimurtotehon (edempänä NVMT) edestä. Sitä seuraavien kahden vuoden aikana 2*2 NVMT edestä, sitä seuraavana 2*2*2. Lasketaan siis montako vuotta nykyisillä tehoilla salasanan murtaminen pitäisi kestää.
Kuinka pitkä salasana tarvitaan, jos käytetään edellä käytettyä 95 merkin avaruutta, jotta NSA:n kaltaisella organisaatiolla menisi sata vuotta sen murtamiseen?
Vastaus: 19 merkkiä.
Tiedän mitä suurin osa teistä ajattelee. Eihän kukaan voi muistaa 19 merkkiä pitkää salasanaa! Kyllä voi, ja seuraavassa jutussa kerron miten se tehdään.
Korjaus: Väitin kombinaatioiden määrän olevan merkkiavaruuden koko potenssiin salasanan pituus. Se pitää paikkansa täsmälleen sen mittaisille salasanoille, mutta murtaja joutuu käymään ensin läpi myös mahdolliset lyhyemmät salasanat. Lyhyemmät salasanat on otettu huomioon kombinaatioiden kokonaismäärien laskelmissa.
Merkkiavaruuden vaikutus
Ensimmäinen asia salasanoista on se, että se ei missään nimessä saa olla oikea sana. Sanakirjahyökkäyksellä okeat sanat voidaa murtaa naurettavan helposti. Paris Hiltonin tili murrettiin, koska hän käytti salasanana lemmikkikoiransa nimeä, joka oli yleisesti tiedossa. Älä siis käytä oikeita sanoja tai nimiä.
Salasanalla on tietoturvan kannalta kaksi merkittävää ominaisuutta: pituus ja merkkiavaruuden koko. Mahdollisten kombinaatioiden määrä on merkkiavaruuden koko potenssiin salasanan pituus. Otetaan esimerkiksi kuusi merkkiä pitkä salasana, jossa on käytetty vain pieniä kirjaimia (ääkköset pois lukien). Silloin kombinaatioiden määrä on 26⁶, eli 321 272 406. Aika paljon, eikö? Ei. Tuollainen salasana murtuu kotikonsteinkin alle sekunnin sadasosassa, jos hyökkääjä on saanut ladattua salasanasi tarkistussumman omille koneillensa.
Entä jos salasanan yksi merkki on numero? Silloin merkkiavaruus kasvaa kymmenellä merkillä ja kuusimerkkiä kombinaatioita on jo 36⁶, eli noin 2,2 miljardia. Sen murtamiseen kotikonstein menee jo kaksi sekunnin sadasosaa, mutta vieläkään ei mistään pomminvarmasta ratkaisusta voida puhua.
Lisätään salasanaan vähintään yksi iso kirjain. Silloin merkkiavaruus kasvaa jälleen 26 merkillä. Kuusimerkkisiä kombinaatioita on 62⁶, joka on noin 58 miljardia. Nyt murtajalla menee aikaa jo yli puoli sekuntia. Edelleenkin tarvitaan lisää kombinaatioita!
Tehdään siis niin kuin tietoturva-asiantuntijat suosittelevat, eli lisätään yksi erikoismerkki. Erikoismerkkejä on 33, joten nyt merkkiavaruus on jo 95 merkkiä, mikä on jo huomattava parannus alkuperäiseen 26 merkkiin. Mahdollisia salasanoja on silloin jo noin 740 miljardia, joka venyttää murtamisajan 7,4 sekuntiin.
Vertailun vuoksi vielä:
Miten pitkä salasana riittää?
- pamela, löytyy sanakirjasta, murrettu nopeammin kuin kissa aivastaa
- pbmela, 321 272 406 kombinaatiota, murrettavissa 0,00321 sekunnissa
- pBmela, 20 158 268 676 kombinaatiota, murrettavissa 0,202 sekunnissa
- pBm3la, 57 731 386 986 kombinaatiota, murrettavissa 0,577 sekunnissa
- pBm3l@, 742 912 017 120 kombinaatiota, murrettavissa 7,43 sekunnissa
Ensinnäkin hyökkäyksiä on kahta eri laatua. Verkossa tapahtuvissa hyökkäyksissä on useita tietoturvaa helpottavia tekijöitä. Ensinnäkin salasanojen arvaaminen verkon yli on huomattavasti hitaampaa. Lisäksi kaikki vakavasti otettavat palvelut pidentävät arvausten välistä aikaa eksponentiaalisesti tai lukitsevat tilin kokonaan liian monen väärän yrityksen jälkeen. Kolmanneksi käyttäjä pystyy vaihtamaan salasanansa kesken verkkohyökkäyksen.
Jos oletetaan, että käyttäjä vaivautuu vaihtamaan salasanansa edes kerran vuodessa ja että arvausten määrä rajoittuu tuhanteen arvaukseen sekunnissa (mikä on todennäköisesti ronskisti yläkanttiin) niin salasanan tulisi olla ainakin kuusi merkkiä pitkä. Tämä siis silloin kun käytetään 95 merkin merkkiavaruutta.
Paikallisissa hyökkäyksissä tilanne on murheellisempi. Hyökkääjällä on silloin esimerkiksi käyttäjän data kryptattuna paikallisella kovalevyllä. Silloin käyttäjä ei pääse vaihtamaan salasanaansa, ja hyökkääjä pääsee tekemään arvauksia miljoonia kertoja nopeammin. Silloin salasanan pituusvaatimus kasvaa huomattavasti.
Miten pitkä salasana on murtamaton?
Aluksi on todettava, että jokainen salasana on murrettavissa, jos aikaa on tarpeeksi. Jos murtamatomaksi määritellään salasana, jonka murtamiseen menee ihmisen elinikä (pyöreästi 100 vuotta), niin silloin voimme tehdä arvioita siitä, miten pitkä salasanan olisi oltava. Yritän muotoilla tässä pahimman mahdollisen tilanteen. Oletetaan, että joku valtiollinen tiedustelupalvelu on saanut datasi haltuunsa ja on päättänyt murtaa sen resursseja säästämättä. Oletetaan, että tuollaisella organisaatiolla on käytössä tuhatkertaiset prosessointiresurssit kotikäyttäjään nähden. Silloin arvioisin arvauksia tapahtuvan sata biljoonaa sekunnissa (10¹⁴).
Kun puhutaan aikavälistä, joka on vuosia, joudumme ottamaan huomioon saatavilla olevan laskentatehon kasvamisen. Rohkenen käyttää Mooren lakia tässä yhteydessä ennustamaan saatavilla olevan laskentatehon määrää tulevaisuudessa. Oletetaan siis, että laskentateho tuplaantuu kahden vuoden välein, ja että murtomies pystyy lennosta vaihtamaan tehokkaampaan laitteistoon. Ensimmäisen 2v aikana pystytään murtamaan siis 2 nykyvuosimurtotehon (edempänä NVMT) edestä. Sitä seuraavien kahden vuoden aikana 2*2 NVMT edestä, sitä seuraavana 2*2*2. Lasketaan siis montako vuotta nykyisillä tehoilla salasanan murtaminen pitäisi kestää.
Kuinka pitkä salasana tarvitaan, jos käytetään edellä käytettyä 95 merkin avaruutta, jotta NSA:n kaltaisella organisaatiolla menisi sata vuotta sen murtamiseen?
Vastaus: 19 merkkiä.
Tiedän mitä suurin osa teistä ajattelee. Eihän kukaan voi muistaa 19 merkkiä pitkää salasanaa! Kyllä voi, ja seuraavassa jutussa kerron miten se tehdään.
Korjaus: Väitin kombinaatioiden määrän olevan merkkiavaruuden koko potenssiin salasanan pituus. Se pitää paikkansa täsmälleen sen mittaisille salasanoille, mutta murtaja joutuu käymään ensin läpi myös mahdolliset lyhyemmät salasanat. Lyhyemmät salasanat on otettu huomioon kombinaatioiden kokonaismäärien laskelmissa.
Yleensä se salasanojen murtaminen on pienin ongelma siinä vaiheessa, kun "hyökkääjä on saanut ladattua salasanasi tarkistussumman omille koneillensa", mikä tässä koko jutussa oli lähtökohtana. Silloin ko. järjestelmän tietoturva on jo pettänyt ihan muualla ja melko varmasti kaikki muutkin järjestelmään tallennetut tiedot on hyökkääjän käsissä. Paitsi jos ne tiedot on edelleen salattu sillä salasanalla, kuten salatulla kiintolevyllä, mutta tällaiset järjestelmät esimerkiksi webissä lienee aika harvassa. Tällöin myös sun salasanan murtamisesta koituva haitta on aika olematon, jos et käytä samaa salasanaa muualla, mikä ei ole järkevää vaikka kuinka olisikin 19 merkkiä pitkä salasana.
VastaaPoistaAjattelin tässä tilannetta, missä olet rekisteröitynyt verkkopalveluun X, joka joutuu tietomurron kohteeksi. Silloin hyökkääjät voivat saada käsiinsä salasanan tarkistussumman ja esimerkiksi sähköpostiosoitteesi. Monet käyttäjät käyttävät samaa salasanaa monessa paikassa, joten krakkereita kiinnostaa murtaa se ja sen jälkeen käyttää sitä murtautuessa muihin palveluihin sinun tunnuksilla.
VastaaPoistaLuulisi, että meillä on tämä kryptinen äidinkieli jo lähtökohtaisesti apuna ulkkareita vastaan. Sitten kun siihen paiskaa jonkun erikoismerkin, kuten "*Näyttelijä" niin sen kun hakkeroi niin siinähän sitten, ei varmaan ole passu se heikoin lenkk1.
VastaaPoista