Salasanojen valinta- ja käyttöohjeita

Kiinteiden salasanojen käyttöä kutsutaan myös heikoksi tai yksinkertaiseksi autentikoinniksi. Tässä yhteydessä jätetään huomiotta salasanaprotokollaan mahdollisesti liittyvät heikkoudet ja keskitytään salasanojen suurimpaan ongelmaan, siihen että salasanojen käyttäjät ovat ihmisiä. Heillä on taipumus

  • unohtaa. Tämä sinänsä ei ole turvaongelma muuten kuin saatavuuden kannalta.
  • unohtamisen välttämiseksi
      1. valita salasanoja, jotka on myös helppo arvata.
      2. pitää samaa salasanaa kauan, tai kierrättää muutamaa.
      3. käyttää samaa salasanaa useassa paikassa.
      4. kirjoittaa salasana johonkin, mistä hyökkääjäkin voi sen löytää.

Kohtien 1-4 vaarallisuuden vertailu riippuu tilanteesta, mutta yleisesti ottaen ensimmäinen on paljon vaarallisempaa kuin muut. Vastaavasti yleisesti vähiten vaarallista on toinen kohta, kunhan salasana vain on hyvä ja se pidetään hyvässä tallessa. Muistiin kirjoittaminen sinänsä ei myöskään ole vaarallista, kunhan paikka on turvallinen (myös oma tietokone voi olla sellainen; jotkin selainohjelmatkin tarjoavat salattua tallennusta; ks. monipuolinen keskustelu muistiinkirjoittamisesta, 2005--).

Edellä sanottua vähän täydentäen salasanan käytön ohjeet voisi tiivistää seuraaviin kieltoihin

  • älä näytä (näppäillessäsi)
  • älä kerro (vaikka kuka pyytäisi)
  • älä talleta (ellei paikka ole hyvä)
  • älä anna ikääntyä (suhteettoman vanhaksi)
  • älä käytä uudestaan (myöskään eri paikassa)

Elleivät ihmisten käytännöt olisi keskimäärin turhan lepsuja, tähän sopisi lisätä vielä: "Älä silti käytä liikaa vaivaa salasanatouhuun (suhteessa sen turvaamaan asiaan)". Tästä esitetään vielä muutama huomio jäljempänä.

Salasanan laadulla on kaksi ristiriitaista ulottuvuutta:

  • "entropialaatu": salasanassa pitää olla riittävästi entropiaa eli epävarmuutta -- sitä, että arvaaja tietää siitä mahdollisimman vähän. Kuudessatoista satunnaisessa bitissä on entropiaa 16 bittiä. Arvaamiseen tarvitaan keskimäärin 2^15 yritystä. Jos nuo bitit Ascii-koodaavat kaksi satunnaista pientä kirjainta, niissä on entropiaa vain vajaat 10 bittiä (pieniä kirjaimia on suomessa 29, eli melkein 32, joka on 2^5; kussakin on siis vajaat 5 bittiä, tarkemmin 4,86, joka on log229). Jos kirjaimet voivat esiintyä peräkkäin jossain sanassa, epämääräisyys vähenee muutamalla bitillä ja edelleen, jos ne tosiaan ovat osana jotain sanaa, sillä monet mahdolliset kirjainparit ovat hyvin harvinaisia. Englannin kielessä arvauksia tarvittaisiin enää keskimäärin luokkaa 46, sillä 46 yleisintä kirjainparia kattaa yli puolet kielestä. Koska 2^5,5 ~ 46, kirjainparissa on entropiaa jonkin verran enemmän kuin 5,5 bittiä, mutta ei paljon, alle 8,5 bittiä. (Tämä saadaan, jos kuvitellaan että 46 kirjainparia ovat keskenään ja loput keskenään yhtä todennäköisiä.)

  • käytettävyys: salasanan pitää olla muistettavissa, jotta sitä käsiteltäisiin turvallisesti. Jos salasana on entropian kannalta kovin hyvä, se on käytettävyydeltään huono ja silloin ihminen parantaa käytettävyyttä omilla keinoillaan siten, että turvallisuus on lopulta heikompi kuin entropialtaan huonomman salasanan tapauksessa.

Salasanan hyvä entropialaatu on sitä tärkeämpää,

  • mitä arvokkaampi tietojärjestelmä autentikoinnin takana on.
  • mitä useampi taho pääsee kokeilemaan (matkamikron kovalevyllä tai toimikortilla harva, web-mailissa kuka vain, sisäverkon työasemassa tältä väliltä).
  • mitä useamman arvauksen hyökkääjä voi tarkistaa, ylipäätään (ennen yhteyden sulkemista) tai tietyssä ajassa. Vaarallisin tapaus on se, että hyökkääjä voi saada haltuunsa salasanatiedoston. Selväkielinen tiedosto on tietysti oma onneton lukunsa. Tiivistettyinä talletettuja salasanoja voidaan tarkistaa sanakirjoja muunnellen läpikäyvillä arvaushyökkäyksillä esim. tuhansia sekunnissa. Sanakirjahyökkäykseen ('dictionary attack') on yleisesti saatavilla ohjelmia, esim. crack Unixiin ja L0phtcrack Windowsiin, vrt. Top 10 -luettelo.

Jos vertailukohdaksi otetaan jokin luonnollisen kielen sana, entropiaa saadaan kasvatetuksi valitsemalla merkkijono, joka

  • on pitempi
  • sisältää muitakin merkkejä kuin kirjaimia
  • ei ole likeinen muunnos mistään sanasta (esim. o,u-->0; i,l-->1; s,z-->2; e-->3; h-->4 jne)
  • ei ole muullakaan tavalla ilmeinen, ei määräydy suoraan mistään yleisestä ilmiöstä (kuten tunnetuista lyhenteistä, yhtyeiden nimistä tms.)

Verkosta löytyy salasanan valitsemiseen lukuisia ohjeita, joiden tavoitteina on saada ihmiset valitsemaan sekä entropialtaan että käytettävyydeltään hyviä salasanoja: esim. J. Korpelan ohje, jossa on myös muuta hyödyllistä tietoa.

Yksi tiivistetty ohje entrooppisen ja muistettavan salasanan luomisessa voisi olla seuraava: keksi jokin omaperäinen mekanismi, jolla yhdistelet ja muuntelet muutamaa itsellesi tuttua toisiinsa liittymätöntä käsitettä. Lisää joukkoon vielä jokin irrallinen merkki ja kirjoita tulos paperille. Jos se näyttää sekamelskalta, opettele se ja hävitä paperi kun olet tottunut sanaan. Huvittele tällä tavoin riittävän usein. Jos ja kun tarvitset salasanoja moneen paikkaan, voit salata/purkaa ne tällä pääsalasanallasi tai aina tarvittaessa johtaa ne siitä soveltamalla esim. tiivistefunktiota siihen ja käyttökohteen nimeen. Molempiin on runsaasti työkaluja. Esimerkki edellisistä on Strip ja jälkimmäisistä Nic Wolffin javascript.

Salasanojen muodostaminen ja hallinnointi ovat TTY:n kurssilla Tietoturva-arki harjoiteltavia asioita. Lopulta vain oma arki opettaa, miten voi hallinnoida useita salasanoja siten, että edellä käsitellyt turvatavoitteet täyttyvät.

-- Main.Jukka.Koskinen

SivuTiedotLaajennettu edit

Vaativuus Perus
Valmius Valmis
Tyyppi Ydin
Luokitus Krypto
Mitä Useita
Miltä Useita
Missä Useita
Kuka Tite-ammattilainen
Milloin Päivittäin
Miksi Hyvä tapa
Print version |  PDF  | History: r3 < r2 < r1 | 
Topic revision: r3 - 30 Dec 2010 - 17:21:15 - JukkaKoskinen
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback