Millainen on hyvä salasana – ja miksi?

Hyvä salasana on pitkä ja sisältää
mitä erilaisimpia näppäimistön
anteja.

Kuva: Keyboard, cafenut,
CC-BY-NC-SA-2.0

Viestintäviraston tietoturvaan keskittynyt CERT-FI -osasto julkaisi – viimeaikaisiin tietomurtoihin liittyen – jokin aika sitten ohjeen hyvästä salasanasta. Kuinka sitten keksiä sopiva salasana, kun joka palveluun tarvittaisiin oma, vähintään 15 kirjainta, numeroa ja muuta merkkiä sisältävä rimpsu, jota ei saisi kirjoittaa paperillekaan?

Lähdetään liikkeelle siitä, miten salasanat oikeastaan murretaan. Oion tässä yksikertaisuuden nimissä: esimerkiksi suolausta ei ole otettu huomioon, kuten ei myöskään sitä, että jotkut verkkosivut tallentavat salasanat selväkielisinä, kuten vastikään murtunut Netcar.fi.

Hyökkääjä-Heikki, korkattuaan käyttäjätietokannan ja saatuaan salasanatiivisteet käyttöönsä, voi nykyaikaisella tietokoneella laskea satojatuhansia tiivisteitä sekunnissa ja vertailla niitä salasanatiivisteitä vastaan: tässä kirjoituksessa on lähdetty siitä, että hyökkääjä laskee 500 000 tiivistettä sekunnissa. Tämä tarkoittaa sitä, että hyökkääjä voi käydä kaikki ne salasanat, joissa on 6 pientä kirjainta, läpi alle kahdessakymmenessä minuutissa. Koska erilaisten salasanojen määrä voidaan laskea kaavalla salasanat=merkkivalikoimapituus, on jo kahdeksankirjaimista salasanaa huomattavasti vaikeampi murtaa: 298≈5,002×1011.

Heikki ei kuitenkaan ole rajoittunut vain tuollaiseen brute-force -hyökkäykseen. Hän todennäköisesti alottaisi sateenkaaritaulukolla vertaillen valmiiksi laskettuja tiivisteitä rikollisesti hankittuja salasanatiivisteitä vastaan. Kun siitä on selvitty, siirtyisi hän sanakirjahyökkäykseen: kokeillen yleisiä salasanoja, sanakirjasanoja sekä sanojen ja numeroiden yhdistelmiä. Tässä vaiheessa jo hyvin moni salasana olisi auennut, sillä Heikin ei tarvitse murtaa salasanaa kerrallaan, vaan hän voi kokeilla saatuja tiivisteitä kaikkien salasanojen tiivisteitä vasten yhtä aikaa. Viimeisenä keinona hän sitten kokeilisi brute forcea, joka on tehokas lähinnä 1-8 merkkiä pitkien salasanojen murtamiseen.

Jos murtomies pääsee käsiksi käyttäjätietoi-
hin, on hänellä monia keinoja salasanan sel-
vittämiseksi.

Kuva: Davide Restivo: A Modern Hacker #1
CC-By-SA 2.0

Kun Heikillä on kasa käyttäjätunnuksia ja mahdollisesti muita henkilötietoja salasanoineen, hän voi käyttää hyväksi sitä, että monet käyttävät samaa salasanaa eri paikoissa, ennen kaikkea sähköpostissa. Jos Heikki pääsee saamallaan salasanalla käsiksi myös uhrin sähköpostitiliin (tai jos hyökkäys kohdistui siihen), voi hän vallata uhrin muita käyttäjätilejä palveluiden ”Unohdin salasanani” -toiminnoilla, jotka tavallisesti lähettävät uuden salasanan tai linkin sen luontiin sähköpostina.

Nyt, kun tiedetään miten salasanoja murretaan ja mitä niiden avulla voidaan tehdä, voidaan lähteä miettimään tehokasta vastatoimea. Unohdetaan saman salasanan käyttäminen useissa paikoissa, ja valitaan sellaisia salasanoja, joita ei kenellekään muulle tulisi mieleenkään. Internet on pullollaan palveluita, jotka kehittävät pyydetynpituisia ja -tyyppisiä salasanoja (kuten Wolfram Alpha), mutta nämä ovat usein hankalasti muistettavia.

Kuvitellaan salasana vaikka musiikkiaiheiselle keskustelufoorumille: otetaan sen päässä jatkuvasti soivan lempikappaleen kertosäe, ja käytetään sitä salasanan muistisääntönä. Kertosäkeestä voi sitten oman maun mukaan poimia kirjaimia, numeroita ja muita merkkejä, kunnes pituus on 15 merkkiä. Sellaisenaan kertosäettä ei kannata käyttää, sillä nokkela hyökkääjä keksii kokeilla myös sitä. Samalla tapaa voidaan luoda yksilöllisiä salasanoja, joihin on olemassa aina sopiva muistisääntö, ja jotka eivät teemansa takia sekoitu toisiinsa.

Hyvä salasana ei kuitenkaan vielä täysin ratkaise ongelmaa. Palveluissa on usein salasanan palauttamiseksi valittavissa myös salainen kysymys -vaihtoehto. Jos mahdollista, tällaiset kysymykset kannattaa poistaa käytöstä, tai vastata kysymykseen pupulla. Ventovieraskin hyökkääjä voi nimittäin esimerkiksi sosiaalisen median, kuten Facebookin, avulla saada selville äidin tyttönimen tai lempiruoan. Jos hyökkääjä tuntee uhrin entuudestaan, on tietojen selvittäminen vielä helpompaa.

Lisäksi kannattaa tarkkaan miettiä, kannattaako palveluun todella rekisteröityä. Jokainen palveluun rekisteröityminen lisää riskiä sille, että käyttäjätietojasi – muutakin kuin salasanasi – joutuu vääriin käsiin. Pohdintaansa voi alustaa vaikka sillä ajatuksella, että mitä palveluun syöttämillä tiedoilla voitaisiin tehdä niiden joutuessa vääriin käsiin.

Salasana kannattaa myös vaihtaa aika ajoin, vaikkapa vuosittain. Tällöinkään salasanoja ei pidä kierrättää, vaan keksiä uusia. Ja jos uusi salasana ei muuten uppoa päähän, voi sen hetkeksi kirjoittaa esimerkiksi paperille, ja pitää paperin visusti tallessa. Jos palveluun kirjautuu monia kertoja, jossain vaiheessa pidempikin salasana jää päähän. Jos toisaalta kirjautumiskertoja on kovin vähän, kannattaa miettiä, onko käyttäjätili kyseisessä palvelussa kovin tarpeellinen muutenkaan.

Selaimen salasananmuistamis-
toimintoa kannattaa käyttää, jos
salasanat eivät muuten pysy mie-
lessä.
Kuva: Kuvakaappaus Firefox 7:sta.

CERT-FI neuvoo ohjeessaan käyttämään tarvittaessa apuohjelmia salasanojen muistamiseen, mutta pitäisin itse sitä viimesijaisena keinona. Selainten oma Muista salasana -toiminto on yleensä kaikki, mitä tarvitaan. Nämä tiedot kannattaa tietenkin varmuuskopioida offline-medialle (kuten CD- tai DVD-levylle, tai muistitikulle), eikä esimerkiksi sähköpostin tai PayPalin kirjautumistietoja kannata tallentaa edes sinne: ne on turvallisinta opetella sovinnolla ulkoa.

Lopuksi pari linkkiä. Splashdata julkaisi vuosittaisen 25 huonointa salasanaa -listansa, josta salasanojaan ei välttämättä kannata poimia. Toisena linkkinä tarjoan mahdollisuutta tekemässäni palvelussa tarkistaa, onko viimeaikaisilla nettiin vuodetuilla listoilla sinun tietojasi. Sertifikaatti on itseallekirjoitettu, ja sen MD5-summa on 634CE8C0950751A7E3C7FE71FFFE8D3C.

Sananen XSS:stä

Viime päivinä on Sampo pankin verkkosivu-uudistuksen takia tai ansiosta näkynyt paljon löydettyjä XSS- eli Cross-site scripting-haavoittuvuuksia verkkosivuilla. Tämä siksi, että hakkerit ovat kiinnostuneet ottamaan aiheen asiakseen ja kokeilemaan.

Mainittakoon tähän väliin se, että termillä hakkeri tarkoitan tietotekniikasta kiinnostunutta henkilöä, jota kiinnostaa tietää miten tietojärjestelmiä käytetään niinkuin niitä ei ole suunniteltu. Ja kokeilemallahan se parhaiten selviää. Hakkerilla ei ole tarkoituksena tuottaa vahinkoa kohteelleen, vaan ainoastaan tutustua asiaan siksi koska se on mahdollista. Hakkereilla on usein moraali, ja he noudattavat tiettyjä sanattomia käytössääntöjä, joihin palaan myöhemmin.

Mediat ja maallikot valitettavan usein kuitenkin mieltävät hakkerit krakkereiksi, jotka taas ovat ihan oma porukkansa. Nämä haluavat aiheuttaa vahinkoa, varastaa tietoja ja myydä niitä esim. kilpailijayrityksille. Krakkerit ovat IT-maailman murhaajia ja varkaita, ja itse en ainakaan moista menoa tue.

Mutta XSS:ään palatakseni kerron senkin, että haavoittuvuuksien keräämiseen on olemassa jo oma verkkosivustonsa, josta löytyy lista olemassaolevista ja korjatuista haavoittuvuuksista sekä muutenkin tietoa XSS:stä. Listalta löytyy myös oma kontribuutioni, SFS:n sivuilta löytynyt haavoittuvuus (näyttäisi olevan nyt korjattu).

Mutta aukkolistan alussa on tärkeä ohje, jota muutenkin haavoittuvuuksia löydettäessä tulisi pitää arvossaan: asiasta tulee ilmoittaa aina asianomaiselle. Itse ilmoitin SFS:lle eilisiltana ja nyt, alle vuorokautta myöhemmin, aukko on jo korjattu.

Tämä oli ihan oikea vastaus, mutta tiedän eräänkin verkkosivuston ylläpitäjän, jonka kanssa juttelin samalla vilkaisten heidän sivustonsa PHP-lähdekoodia. Sivusto luottaa käyttäjän syötteeseen sataprosenttisesti, ja toimintaperiaate sivujen näyttämiseen on include($_GET[’sivu’]); . Jos et tajunnut, ei se mitään.

Kerroin tietenkin tälle ylläpitäjälle asiasta. Hän ei ilmeisesti aikaisemmin ollut kuullut XSS:stä, joten selitin asian pähkinänkuoressa jotakuinkin näin: ”Tämä haavoittuvuus mahdollistaa sen, että pahantahtoisella kolmannella osapuolella on mahdollisuus käyttää sivustoa väärin, saada luottamuksellisia tietoja jne”. Tähän tämä admin totesi että ”Hakkerithan pääsee minne tahansa tekemään mitä tahansa kuitenkin”.

Tyrmistyin tämän kuullessani ja totesin edes alkeellisen suojaamisen olevan hyväksi maineen ja tietoturvan kannalta, johon sain kuulla tiukkaan sävyyn: ”sinua ei ole pyydetty neuvomaan tässä asiassa eikä se sinulle kuulu, enkä usko että ketään tämä asia kiinnostaakaan.”. No, onneksi minun tietojani ei ole tuossa järjestelmässä – eikä tule olemaankaan.

Mietinpähän vaan että kuinka monta nettisivuja pitävää PK-yritystä Suomenkin rajojen sisältä mahtaa löytyä joilla asenne tietoturvaan on lähinnä tuollainen EV(V)VK. Siltikin kannustan jokaista kynnelle kykenevää etsimään haavoittuvuuksia verkkosivuista ja muistamaan tärkeysjärjestyksen:

  1. Löydä aukko
  2. Ilmoita aukosta asianomaiselle
  3. Ilmoita aukosta Cert.fi:lle
  4. Naureskele aukolle ja ota kuvakaappauksia tyhmistä sivuista upotettuna tähän uhrisivustoon
  5. ?????
  6. PROFIT!

Mutta siinä kaikki tältä kertaa. Ja niin, jos KServeriltä löytyy noita aukkoja niin sopii ilmoitella vaikkapa sähköpostitse.