Salasana

numero- tai kirjainyhdistelmä tiedon suojaamiseksi

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.

Salasana pitää vaihtaa jos tiedetään tai epäillään salasanan joutuneen vääriin käsiin.[1] Lisäksi jos samaa salasanaa on käytetty eri paikoissa myös niissä salasana on vaihdettava.[2]

Salasanat tietokoneissa muokkaa

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.[3]

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

Unixin standardi crypt()-salausfunktio on käyttänyt 56-bittistä avainta DES-algoritmilla, jolloin käytössä on ollut 13 ASCII-merkkiä pitkä tiiviste.[5] Linux-järjestelmissä (glibc:n kautta) voidaan käyttää eri menetelmiä kuten MD5-, Blowfish-, SHA-256- ja SHA-512-tiivisteitä.[5] Verkkosivujen suojauksessa käytettävä .htpasswd käyttää samoja algoritmeja.

Salasanoihin lisättävä salainen osuus suola (engl. salt) tekee avainten etsimisestä hyökkääjälle vaikeampaa.[4] 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ä[4]) lisää merkittävästi hyökkäyksen vaikeusastetta.

Parhaat käytännöt salasanoille muokkaa

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.[6]

Kolme tapaa tehdä salasanoista turvallisempia:[6]

  • 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.[7]

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

Salasanoja ei kannata tallettaa tiedostoon, vaan tarkoitukseen tehtyyn salasananhallintaohjelmaan (password manager).[6][7]

Järjestelmien ylläpitoon on tietoturvan ylläpitämiseksi joukko parhaita käytäntöjä. Salasanoja ei nykyään vaadita muutettavaksi tietyin väliajoin, koska se kuormittaa käyttäjiä ja käyttäjät usein vain tekevät pieniä muutoksia salasanaan jos sitä pitää vaihtaa usein. Tietyt usein käytetyt sanat voidaan kieltää salasanoista.[1][8] Salasanoja ei pidä lähettää sähköpostissa, edes väliaikaista salasanaa. Yhden kerran käytettävä linkki on suositeltavampi tapa.[9]

Salasanojen tallentaminen muokkaa

Salasanojen tallentamiseen olisi käytettävä vain yksisuuntaista tiivistealgoritmia eikä kaksisuuntaista salausta, koska salaus voidaan myös purkaa.[10] Eräistä tiivistealgoritmeista kuten MD5 on löydetty heikkouksia eikä niitä enää voida pitää turvallisena salasanojen tallentamisessa. Salasanoja varten on kehitetty niille tarkoitettuja menetelmiä kuten bcrypt, scrypt ja PBKDF2, joita voi käyttää sopivanpituisen suolauksen kanssa.[9][10] Suolauksen lisäksi palvelimet voivat käyttää pippurointia, jota ei saa tallentaa suolan kanssa vaan pidetään erillään. Salasanat tallennetaan suolauksen, pippuroinnin ja tiivisteen laskennan jälkeen.[11][12] Yksinkertainenkin suolaus lisää tarvittavan hyökkäysmenetelmän vaikeutta: kahdeksan bittisen suolauksen kanssa hyökkääjä tarvitsee 256 sateenkaaritaulua yhden sijaan ja 12 bittisellä suolauksella hyökkääjä tarvitsee 4 096 taulua.[13]

Käyttäjät voivat käyttää salasananhallintaohjelmaa käyttämiensä salasanojen hallintaan.[6][7]

Salasanan murtaminen muokkaa

Yksinkertaisimmat salasanat voidaan pystyä arvaamaan sanastohyökkäyksellä. Menetelmä on heikkotehoinen, mutta onnistuu usein, koska käyttäjät valitsevat helposti arvattavia salasanoje.[14] 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. Tästä syystä hyökkääjät käyttävät algoritmien heikkouksia salasanan arvaamiseen. Salasanan suojaamiseen käytettävää algoritmia on vaihdettava mikäli se onnistutaan murtamaan.

Hyökkääjällä voi olla valmiiksi muodostetut tiivisteet yleisimmistä salasanoista, joten salasanoja voidaan murtaa pelkästään tunnettuja tiivisteitä hakemalla eli sateenkaaritaulujen avulla (engl. rainbow table attack). Tätä vastaan käytetään salasanojen suolausta ja pippurointia, jolloin hyökkääjän on laskettava tiivisteet uudestaan.[15]

Katso myös muokkaa

Lähteet muokkaa

Viitteet muokkaa

  1. a b Password policy: updating your approach ncsc.gov.uk. Viitattu 9.5.2024. (englanniksi)
  2. Luciano Mondragon: What steps should you take when your email has been pwned? blog.f-secure.com. 28.9.2022. Viitattu 9.5.2024. (englanniksi)
  3. Harri Domonyi: Ensimmäinen salasana otettiin käyttöön vuonna 1961 tekniikanmaailma.fi. 2.5.2019. Viitattu 22.11.2023.
  4. a b c d e f Morris, Robert & Thompson, Ken: Password Security: A Case History (Postscript) bell-labs.com. Viitattu 2.10.2020. (englanniksi) 
  5. a b crypt(3) — Linux manual page man7.org. Viitattu 2.10.2020. (englanniksi) 
  6. a b c d Use Strong Passwords cisa.gov. Viitattu 20.2.2024. (englanniksi)
  7. a b c d These 7 tips will help make your digital life more secure. it.ucsb.edu. Viitattu 20.2.2024. (englanniksi)
  8. The problems with forcing regular password expiry ncsc.gov.uk. Viitattu 9.5.2024. (englanniksi)
  9. a b Passwords in online services ico.org.uk. Viitattu 9.5.2024. (englanniksi)
  10. a b Password Storage Cheat Sheet cheatsheetseries.owasp.org. Viitattu 9.5.2024. (englanniksi)
  11. 4.2. Storage ietf.org. Viitattu 9.5.2024. (englanniksi)
  12. Tobias Eggendorfer: Hashes, salt, and pepper linux-magazine.com. 2016. Viitattu 9.5.2024. (englanniksi)
  13. Tobias Eggendorfer: Hashes, salt, and pepper (sivu 2) linux-magazine.com. 2016. Viitattu 9.5.2024. (englanniksi)
  14. Dictionary Attack beyondidentity.com. Viitattu 9.5.2024. (englanniksi)
  15. Rainbow Table Attack beyondidentity.com. Viitattu 9.5.2024. (englanniksi)

Aiheesta muualla muokkaa