Salasana
Salasana on keino todentaa käyttäjiä salaisen tiedon avulla. Salasana pidetään salassa niiltä, joille salattavan kohteen käyttö ei ole sallittua. Esimerkiksi sodissa on käytetty salasanoja sallimaan pääsy vartiopaikalle vain tietyille henkilöille. Tässä käytössä Suomen puolustusvoimissa puhutaan tunnussanasta.
Nykyään salasanoja käytetään suojaamaan esimerkiksi tietokonejärjestelmiä, matkapuhelimia, TV-vastaanottimen asetuksia, pankkiautomaatteja ja muita henkilökohtaisia asioita. Nimestään huolimatta salasanan ei tarvitse aina olla sana, vaan se voi myös olla kokonainen lause tai pelkistä numeroista koostuva PIN-koodi.
Salasanat tietokoneissa
Järjestelmät eivät tyypillisesti tallenna salasanoja selväkielisinä, vaan syötetyistä salasanoista tallennetaan tiiviste.[1] Käyttäjän kirjautuessa uudelleen sisään salasanasta lasketaan tiiviste, jota verrataan tallennettuun.[1] Tiiviste on kryptografisesti muodostettu määrämittainen merkkijono, joka on laskettu alkuperäisestä merkkijonosta. Näin järjestelmä tai sen ylläpitäjä ei tiedä alkuperäistä salasanaa eikä voi myöskään kertoa sitä.
Varhaisin tiivisteisiin perustuva menetelmä on kuvattu Maurice V. Wilkesin teoksessa Time-Sharing Computer Systems (1968).[1] Varhainen salausmenetelmä simuloi M-209 -konetta.[1]
Unixin standardi crypt()
-salausfunktio on käyttänyt 56-bittistä avainta DES-algoritmilla, jolloin käytössä on ollut 13 ASCII-merkkiä pitkä tiiviste.[2] Linux-järjestelmissä (glibc:n kautta) voidaan käyttää eri menetelmiä kuten MD5-, Blowfish-, SHA-256- ja SHA-512-tiivisteitä.[2] Verkkosivujen suojauksessa käytettävä .htpasswd käyttää samoja algoritmeja.
Pelkkien tiivisteiden käytössä on tiettyjä heikkouksia. Jos hyökkääjä saa haltuunsa salasanojen tiivisteet, niitä voidaan murtaa sanakirjahyökkäyksellä. Lisäksi hyökkääjällä voi olla valmiiksi muodostetut tiivisteet yleisimmistä salasanoista, joten salasanoja voidaan murtaa pelkästää tunnettuja tiivisteitä hakemalla (ns. engl. rainbow table attack).
Salasanoihin lisättävä salainen osuus (suola, engl. salt) tekee avainten etsimisestä hyökkääjälle vaikeampaa.[1] Suola on satunnainen merkkijono, joka lisätään sanasanaan ennen tiivisteen muodostamista. Tämä suolaus tallennetaan selväkielisenä ja lisätään käyttäjän syöttämään salasanaan ennen tiivisteen muodostamista. Lyhytkin suola (12-bittiä[1]) lisää merkittävästi sanakirjahyökkäykseen vaadittujen valmiiden tiivisteiden määrää ja tekee sen tehottomaksi.
Salasanan murtaminen
Yksinkertaisimmat salasanat voidaan pystyä arvaamaan, ja muut lyhyet salasanat voi mahdollisesti murtaa automaattisesti tietokoneella. Monet järjestelmät rajoittavat virheellisen salasanan syöttämisen määrää tai tiheyttä, jolloin salasanaa voi olla vaikea murtaa suoraan salasanaa pyytävän liittymän kautta.
Murtautuja saattaa kuitenkin saada haltuunsa järjestelmän käyttämän, salasanasta lasketun kryptografisen tiivisteen, jolloin hän saattaa pystyä murtamaan salasanan ilman liittymää laskemalla automaattisesti tiivisteitä eri merkkiyhdistelmille ja vertaamalla niitä alkuperäiseen tiivisteeseen. Riittävän pitkien salasanojen murtaminen ei kuitenkaan onnistu tietokoneellakaan, koska kokeiltavien merkkiyhdistelmien määrä kasvaa liian suureksi. Hyvä salasana onkin tarpeeksi pitkä, mielellään yli kahdeksan merkkiä, ja sisältää myös isoja kirjaimia, numeroita ja erikoismerkkejä.
Katso myös
Lähteet
- Vance, Ashlee: If Your Password Is 123456, Just Make It HackMe The New Work Times. 20.1.2010. (englanniksi)
- [Teema] Ylläpitäjä: Tiivistä ja suolaa salasanat 22.12.2014. Viestintävirasto.
Viitteet
- Morris, Robert & Thompson, Ken: Password Security: A Case History (Postscript) bell-labs.com. Viitattu 2.10.2020. (englanniksi)
- crypt(3) — Linux manual page man7.org. Viitattu 2.10.2020. (englanniksi)