**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
-----------------------

Ensimmäinen tietokoneen salasana otettiin käyttöön todennäköisesti vuonna 1961 MIT:n osituskäyttöjärjestelmässä CTSS (*Compatible Time-Sharing System*), jossa käyttäjä sai varata suuren keskustietokoneen omaan käyttöönsä tietyksi ajaksi, esimerkiksi neljäksi tunniksi viikossa. CTSS pyöri IBM:n 7090-sarjan tietokoneella, jota komennettiin kirjoituskonetta muistuttavilla päätteillä, joissa oli näppäimistö, mutta ei näyttöä vaan paperitela kuten kaukokirjoittimessa. Jokaisella käyttäjällä oli järjestelmään tallennettuna omat yksityiset tiedostonsa, jotka Fernando J. Corbatón työryhmä suojasi käyttäjätunnuksella ja salasanalla. Lista salasanoista tallennettiin järjestelmän muistiin täysin selkokielisenä. Siten maailman ensimmäinen tietomurto tapahtui pian ensimmäisen salasanan käyttöönoton jälkeen vuonna 1962, kun tutkija Allan Scherr keksi keinon tulostaa kaikkien käyttäjien salasanat. Niiden avulla hän pystyi käyttämään toisten käyttäjien laskenta-aikaa omaksi hyödykseen. Ensimmäiset salasanatiivisteet ja kryptaus otettiin käyttöön vasta 1970-luvulla.

Nykyiset järjestelmät eivät tyypillisesti tallenna salasanoja selväkielisinä, vaan syötetyistä salasanoista tallennetaan tiiviste. Käyttäjän kirjautuessa uudelleen sisään salasanasta lasketaan tiiviste, jota verrataan tallennettuun.
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). Varhainen salausmenetelmä simuloi M-209 -konetta.

Unixin standardi `crypt()`-salausfunktio on käyttänyt 56-bittistä avainta DES-algoritmilla, jolloin käytössä on ollut 13 ASCII-merkkiä pitkä tiiviste. Linux-järjestelmissä (glibc:n kautta) voidaan käyttää eri menetelmiä kuten MD5-, Blowfish-, SHA-256- ja SHA-512-tiivisteitä. 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. 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ä) 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ä.

Parhaat käytännöt salasanoille
------------------------------

Jotta salasanoista saa hyvän suojan olisi noudatettava muutamia käytäntöjä. Yksinkertainen salasana, joka on helposti arvattavissa, ei ole hyvä tapa suojata tärkeätä tietoa. Helposti arvattavia salasanoja ovat esimerkiksi 12345, syntymäpäivät, lemmikkien nimet tai muut tunnistamiseen käytetyt tiedot. Eri tunnuksille olisi käytettävä eri salasanoja.

Kolme tapaa tehdä salasanoista turvallisempia:

* tee niistä pitkiä, esimerkiksi 16 merkkiä pitkiä
* tee niistä satunnaisia, lisää joukkoon isoja ja pieniä kirjaimia sekä numeroita ja symboleita
* tee niistä yksilöllisiä, älä käytä eri tunnuksissa samaa salasanaa

Salasanojen kanssa on suositeltavaa käyttää kaksivaiheista tunnistautumista, jolloin pelkkä salasana ja käyttäjätunnus ei riitä hyökkääjälle. Kaksivaiheisessa tunnistautumisessa varmistat toisella menetelmällä että olet todella kirjautumassa sisään.

Salasanaa ei koskaan pidä kertoa kenellekään muulle. Kenenkään muun ei tarvitse niitä tietää.

Salasanoja ei kannata tallettaa tiedostoon, vaan tarkoitukseen tehtyyn salasananhallintaohjelmaan (*password manager*).

Katso myös
----------

* Salasanageneraattori

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

1. ↑  Harri Domonyi: Ensimmäinen salasana otettiin käyttöön vuonna 1961 *tekniikanmaailma.fi*.  2.5.2019. Viitattu 22.11.2023.
2. 1 2 3 4 5 6  Morris, Robert & Thompson, Ken: Password Security: A Case History (Postscript) *bell-labs.com*. Viitattu 2.10.2020. (englanniksi)
3. 1 2  crypt(3) — Linux manual page *man7.org*. Viitattu 2.10.2020. (englanniksi)
4. 1 2 3  Use Strong Passwords *cisa.gov*. Viitattu 20.2.2024. (englanniksi)
5. 1 2 3  These 7 tips will help make your digital life more secure. *it.ucsb.edu*. Viitattu 20.2.2024. (englanniksi)

Aiheesta muualla
----------------

* NIST Special Publication 800-63B Digital Identity Guidelines (englanniksi)