Salasanat

Salasanojen tarkoitus tietoturvassa on suojata tietoja ja mahdollistaa oikean henkilön pääsy suojattuun tietoon. Käyttäjänimet identifioivat käyttäjän, ja salasanat todistavat käyttäjän identiteetin oikeaksi. Siten salasanat varmistavat yksityisyyttä pitämällä arkaluontoiset tiedot salassa ulkopuolisilta.

Ihmisluonto on sellainen, että emme pelkää uhkia, joita emme havaitse. Toisinaan on vaikea kuvitella, miksi joku haluaisi päästä sähköpostitiliimme tai mitä hyötyä kenellekään olisi päästä käsiksi tietoihimme, joita emme itse pidä kovinkaan arvokkaina. Tietoturvan tarpeen ja salasanojen tärkeyden aliarvioiminen onkin eräs suurimpia käyttäjän itsensä tekemiä virheitä. Eräs syy salasanojen murtamiselle saattaa olla hyökkääjän omien jälkien peittäminen tai naamioituminen toiseksi henkilöksi esimerkiksi roskapostin lähettämistä varten. Toisaalta hyökkäys voi olla vain yksi vaihe isommasta prosessista, jossa päämääränä on jokin arvokkaampi kohde. Se voi olla myös keino suorittaa kyseenalaisia liiketoimia, joissa päämääränä on huijata toisia tai päästä käyttäjän rekisteröitymiin maksullisiin palveluihin. Tosiasia on, että murrettujen salasanojen hyödyllisyyttä muille on toisinaan vaikea ymmärtää, mutta syitä suojaamiselle on.

Salasanojen selvittämiseen on useita tekniikoita, mutta niistä on hyvä tiedostaa yleisimmät, jotta voi suojautua niiden varalta. Helpoin tapa saada salasana selville on yksinkertaisesti arvata se. Vaivattominta on arvata ensin oletusarvoisina olevat, yleisimmät ja käyttäjän henkilökohtaisiin tietoihin perustuvat salasanat, koska valitettavan usein käyttäjät eivät vaihda oletussalasanojaan tai käyttävät yksinkertaisia ja helposti arvattavia salasanoja. Erittäin huonoja salasanoja ovat myös lemmikkieläinten tai omien lasten nimet, jotka hyökkääjä voi nopeasti selvittää esimerkiksi sosiaalisen median kautta. Salasanojen arvaamista voidaan lisäksi nopeuttaa käyttämällä sanakirjahyökkäystä (engl. dictionary attack), jossa salasananmurto-ohjelmalla käydään läpi erilaisia sanalistoja. Monet salasanojen murtamiseen tarkoitetut ohjelmat pystyvät lisäksi yhdistelemään sanalistojen sanoja sekä kokeilemaan sanat myös takaperin. Hyökkääjä voi luoda itse sanalistoja esimerkiksi käyttäjän henkilökohtaisten tietojen perusteella tai ladata valmiin listan Internetistä. Sanalistoja löytyy Internetistä useasta paikasta, esimerkiksi Kotimaisten kielten keskus tarjoaa 94 110 sanatietuetta sisältävän nykysuomen sanalistan kotisivuillaan.

Sateenkaaritaulut (engl. rainbow tables) ovat ennalta laskettuja tauluja, jotka sisältävät tiivisteitä eli hajautusarvoja (engl. hash) miljardeista mahdollisista salasanoista. Näiden taulujen rakentaminen vie paljon aikaa, mutta valmiiden taulujen avulla hyökkääjä voi saada murrettua suuren määrän salasanoja muutamissa sekunneissa. Sateenkaaritaulut ovat tärkeitä murtamisessa, sillä niiden avulla kaikki alle 15 merkkiä sisältävät salasanat ovat haavoittuvia.

Tehokkain keino salasanojen murtamiseksi on väsytysmenetelmä (engl. brute force), jossa käydään systemaattisesti läpi kaikki vaihtoehdot merkki merkiltä. Tekniikka on usein paljon aikaa vievä, joten sitä käytetään yleensä vasta viimeisenä keinona muiden tapojen jälkeen. Tarpeeksi pitkä ja erikoismerkkejä sisältävä salasana antaa yleensä hyvän suojan tällaiselle hyökkäykselle, koska purkamiseen menisi tällöin nykyisellä laskentateholla suhteettoman kauan aikaa.

Salasanojen pituuden ja merkkiavaruuden suuruuden vaikutusta niiden turvallisuuteen voidaan tarkastella matemaattisten permutaatioiden avulla. Permutaatioita voidaan muodostaa esimerkiksi tietokoneen näppäimistöstä. Suomalaisessa näppäimistössä on 29 kirjainta, 10 numeraalista merkkiä sekä 39 kuvavihjeillä olevaa, suhteellisen helposti kirjoitettavaa erikoismerkkiä.

Salasanan erilaisten vaihtoehtojen määrä saadaan kaavalla an, jossa a on merkkiavaruuden suuruus ja n on salasanan pituus. Esimerkiksi jos salasanan pituus olisi viisi merkkiä ja se koostuisi pienistä ja isoista kirjaimista (58) sekä numeroista (10), olisi laskukaava 68*68*68*68*68 eli 685. Näin ollen salasanan murtajan olisi käytävä läpi enintään 1 453 933 568 merkkiä. Vaikka puolitoista miljardia kuulostaa isolta luvulta, jopa nykyiset kuluttajaluokan tietokoneet pystyvät käymään läpi satoja miljoonia salasanoja sekunnissa hyödyntämällä mm. näytönohjainten laskentatehoa. Toisekseen on hyvin epätodennäköistä, että salasana löytyisi vasta viimeisenä vaihtoehtona.

Alla olevassa taulukossa on laskettu kuinka salasanan merkkien määrä ja käytetyt merkit vaikeuttavat murtamista. Siitä voidaan nähdä, että 10-merkkinen salasana, joka sisältää ainoastaan pieniä kirjaimia, onkin paljon tehokkaampi kuin seitsemänmerkkinen salasana, joka sisältää kaikkia suomalaisessa näppäimistössä näkyviä merkkejä. Käytännössä tämä tarkoittaa sitä, että vahvalta kuulostava Y$äq~3P onkin heikompi salasana väsytysmenetelmähyökkäykselle kuin esimerkiksi ysokeepial. Samalla tavalla kahdeksanmerkkinen erikoismerkkejä ja numeroita sisältävä salasana on huomattavasti heikompi kuin 12-merkkinen salasana, joka sisältää pelkkiä pieniä kirjaimia.

Hyökkääjä voi saada salasanan haltuunsa useilla eri tavoilla myös ilman varsinaista salasanan murtamista. Tämä onnistuu esimerkiksi käyttämällä näppäilyn tallentajaa (engl. key logger) tai snifferiä (engl. sniffer). Hyökkääjä voi myös hyödyntää selainten haavoittuvuuksia kaapatakseen salasanoja sisältäviä keksitiedostoja tai käyttää sosiaalisen manipuloinnin (engl. social engineering) keinoja. Näppäilyn tallentaja on vakoiluohjelma, joka tallentaa tietokoneen näppäimistön painallukset ja lähettää ne hyökkääjälle. Snifferi on puolestaan vakoiluohjelma, joka seuraa verkkoyhteyttä ja lähettää salaamattomat käyttäjätunnukset ja salasanat hyökkääjälle. Selaimista löydetään jatkuvasti uusia haavoittuvuuksia, joita hyökkääjä voi hyödyntää muun muassa varastamalla verkkosivujen tallentamia evästeitä. Näiden lisäksi pahantahtoinen hyökkääjä voi käyttää sosiaalisen manipuloinnin keinoja eli esimerkiksi lähettää sähköpostin verkkopankin tai muun organisaation nimissä ja yksinkertaisesti pyytää salasanaa käyttäjältä.

Salasanan valinnassa kannattaa pitää mielessä edellä mainitut murtamistavat. Salasanan ei tulisi löytyä mistään valmiista sanalistoista, sanakirjoista tai niiden yhdistelmistä. Toistamista sekä henkilökohtaisiin tietoihin perustuvia sanoja tulisi myös välttää. Salasanan pituus olisi hyvä olla vähintään 16 merkkiä, joihin kuuluu sekä isoja että pieniä kirjaimia, numeroita ja erikoismerkkejä, jotta hyökkäysmenetelmistä saataisiin mahdollisimman tehottomia. Pääsääntönä on, että mitä pitempi ja laajempaan merkistöön perustuva salasana on, sen vaikeampi se on murtaa. Tekniikan edistyessä voidaan olettaa, että salasanojen pituutta joudutaan entisestään kasvattamaan, jotta niiden turvallisuus voidaan taata.

Salasanoja ja niitä sisältäviä palvelimia murretaan päivittäin, minkä vuoksi salasanojen säännöllinen vaihtaminen on myös erityisen tärkeää. Samaa salasanaa ei ole järkevää käyttää useassa paikassa, koska jos joku palvelu murretaan, pääsee hyökkääjä samalla kertaa muihinkin tietoihin käsiksi. Salasanoja ei tule koskaan luovuttaa sähköpostilla tai sosiaalisen median kautta tulleilla kyselyillä. Ajantasaisen virusturvan ja palomuurin käyttäminen on tärkeää, jotta haittaohjelmien ja näppäinten tallentajien uhat pienenevät. Haittaohjelmien ja tietoturva-aukkojen estämiseksi myös käyttöjärjestelmän, selainten sekä selainliitännäisten ja -laajennusten päivityksistä on syytä pitää huolta.

Näppäilyn tallentajia voidaan estää myös käyttämällä erillisiä ohjelmia tai selainlaajennuksia, jotka käyttävät virtuaalista näppäimistöä, jolloin haittaohjelmat eivät saa tärkeitä tietoja tallennettua. Esimerkiksi ilmainen, Windows-käyttöjärjestelmillä toimiva Neo’s SafeKeys -ohjelma tarjoaa käyttäjälle virtuaalisen näppäimistön, jolta tieto voidaan siirtää raahaamalla se haluttuun paikkaan ilman leikepöydälle tallentamista. Tällöin näppäilyn tallentaja -ohjelma ei voi kaapata salasanaa näppäimistöstä tai leikepöydältä. Tämän lisäksi ohjelma poistaa päällä ollessaan myös kuvakaappauksen eli näytön näkymän tallentamisen käytöstä. Näppäilyn tallentajia vastaan on olemassa myös tehokkaampia ja automaattisesti taustalla toimivia sovelluksia. Windows-käyttöjärjestelmillä toimivia ovat esimerkiksi QFX Software KeyScrambler, Zemana AntiLogger ja SpyShelter Stop-logger. Nämä kaupalliset, mutta ilmaisenakin toimivat ohjelmat, tarjoavat mm. näppäilyn salaamista tunnetuilla salausalgoritmeilla, leikepöydän turvaamista, ruudunkaappausten estämistä ja webkameroiden tallentamisen suojausta. Edellä mainittujen ohjelmien käyttö on suositeltavaa varsinkin julkisissa tietokoneissa, joiden suojauksesta ei ole mitään takeita.

Käyttäjätilien murtaminen saadaan huomattavasti vaikeammaksi, jos käytetään kaksiosaista tai kolmiosaista todentamismenetelmää (engl. two-factor authentication, three-factor authentication). Menetelmistä käytetään myös nimitystä vahva tunnistaminen (engl. strong authentication) ja ne perustuvat siihen, että käyttäjällä on käytössään seuraavista kaksi tai useampi todiste itsensä identifioimiseen: 1) jotain, minkä vain käyttäjä tietää, kuten salasana, 2) jotain, minkä vain käyttäjä omistaa, kuten matkapuhelin tai avaintiedosto, 3) jotain uniikkia tietoa käyttäjästä, kuten esimerkiksi sormenjälki. Osa verkkopalveluista (mm. Google ja Dropbox) onkin jo ottanut kyseistä tekniikkaa käyttöönsä.

Salasanojen turvallinen rakentaminen ja niiden muistaminen käy kuitenkin lähes mahdottomaksi tehtäväksi, kun eri palveluihin tarvittavien salasanojen määrä kasvaa. Salasanojen satunnaista luomista, niiden listaamista sekä tehokasta ja helppoa käyttöä varten on siksi rakennettu useita ohjelmia ja palveluita. Näistä salasanojen hallintasovelluksista mainitsemisen arvoisia ovat avoimeen lähdekoodiin perustuvat Master Password, Password safe-, Pass: The standard Unix password manager, Encryptr, KeePass- ja KeePassX-ohjelmat sekä kaupalliset LastPass- ja 1Password-verkkopalvelut. Tällöin muistettavana on enää yksi salasana, jonka avulla pääsee käsiksi muihin salasanoihin. Salasanan lisäksi käyttäjä voi ottaa vahvan tunnistamisen menetelmän käyttöönsä ja hyödyntää varmennuksessa esimerkiksi muistitikulla pidettävää avaintiedostoa, jolloin turvallisuustaso paranee.