Moderni tunnistautuminen verkossa ja salasanaton tulevaisuus

08.07.2025

Käyttäjien todentaminen palveluihin on ongelma, jota lukemattomat ohjelmistokehittäjät ja järjestelmien ylläpitäjät ovat yrittäneet ratkoa vuosikymmeniä. Kuinka siis voidaan varmistaa, että käyttäjä on oikeasti se, joka hän sanoo olevansa? Mitä ongelmia salasanat pitävät mukanaan ja kuinka voisimme parantaa käyttäjän todentamisen turvallisuutta sekä käyttäjäystävällisyyttä? Tässä blogikirjoituksessa käydään läpi ongelmia ja vaihtoehtoja salasanapohjaisille kirjautumistavoille. Kirjoitus sai inspiraationsa Codegardenissa kuullusta Eli Holdernessin luennosta "You Shall Not Password: Modern Authentication for Web Apps".

 

Mitä vikaa on salasanoissa?

Salasanan toimintaperiaate on yksinkertainen. Käyttäjä ja palvelin tietävät salaisen tiedon mitä kukaan muu ei tiedä. Sovittamalla käyttäjän antama tieto palvelimelta löytyvään tietoon voidaan todentaa, että käyttäjä on kuka hän kertoo olevansa. Tämä vaatii kuitenkin käyttäjältä paljon ollakseen turvallinen myös käytännössä.

Salasanan on oltava tarpeeksi pitkä ja sen pitää sisältää erikoismerkkejä sekä numeroita, jotta sen satunnainen arvaaminen olisi mahdollisimman hankalaa. Tällaisia salasanoja on kuitenkin hankala ihmisen muistaa. Ongelma kasvaa entisestään, kun jokaisessa palvelussa pitäisi käyttää uniikkia salasanaa. Tämä ei kuitenkaan aina tapahdu, mikä johtaa siihen, että käyttäjät käyttävät samoja salasanoja kaikkialla tai tekevät niistä liian yksinkertaisia.

Vaikka käyttäjä tekisi kaiken tämän ja muistaisi jokaisen erillisen salasanan, on silti riski, että häneltä viedään salasana esimerkiksi manipuloimalla hänet (social engineering). Tämä on mahdollista siksi, koska käyttäjä tietää salasanansa, jolloin se voidaan myös häneltä viedä. Salasanojen ongelmana on täten se, että vaikka salasana teoriassa onkin toimiva ja turvallinen, inhimilliset virheet ja rajoitukset tekevät niistä käytännössä aivan muuta.

 

Mitä vaihtoehtoja salasanoille on?

Käyttäjän tunnistautumisen voi hoitaa monella eri tavalla ilman perinteisiä salasanoja. Käyttäjän todentamiseen yleisimmin käytetään yhtä tai monta seuraavista käsitteistä:

  • Jotain mitä sinä tiedät (salasana)
  • Jotain mitä sinulla on (laite)
  • Tai jotain mitä olet (biometriset arvot)

Jotain mitä tiedät tarkoittaa esimerkiksi salasanaa tai muuta sinulle henkilökohtaista tietoa. Tämä on yleisin tapa todentaa käyttäjä. Se on suoraviivainen toteuttaa, sillä salasanan tarkistaminen vaatii vain yhden tarkastuksen, että annettu tieto on sama kuin tietokannassa. Tiedon tallessa pitäminen on kuitenkin monimutkaisempaa, sillä salasana pitää salata erittäin huolellisesti tietokantaan tallennettaessa. Salasana voi täten olla erittäin turvallinen todennustapa teoriassa, mutta se vaatii käyttäjältä ja sovelluskehittäjältä paljon ja sen voi helposti tehdä väärin. Ihmiset tekevät myös virheitä. Koska salasana on aina käyttäjän tiedossa, voidaan se myös häneltä viedä. Tätä kutsutaan kalastukseksi (phishing) tai sosiaaliseksi manipulaatioksi (social engineering).

Jotain mitä sinulla on viittaa puolestaan esimerkiksi käyttäjän omistamaan laitteeseen. Käytännössä tämä tarkoittaa usein todennussovellusta joka laitteeseen on asennettuna. Tämä tapa on salasanaa turvallisempi, sillä todennukseen käytetty koodi ei ole käyttäjällä tiedossa jatkuvasti. Puhelin voi kuitenkin hukkua, jolloin vahvistukset eivät enää onnistu, jos toista vahvistustapaa ei ole. Vaihtoehtoisena laitteena voi käyttää muun muassa USB-tikun tapaisia YubiKey-avaimia, jotka varmistavat erittäin turvallisen vahvistamiseen. Lue lisää YubiKeyn toiminnasta: How the YubiKey works? | Yubico. Näillä tavoilla on kuitenkin huomattavasti korkeampi aloitushinta, sillä niitä tukeva laite pitää ostaa.

Jotain mitä olet tarkoittaa biometrisiä arvoja, kuten sormenjälkiä tai naamantunnistusta. Tämä on erittäin turvallinen tapa todentaa käyttäjä, sillä biometriset tiedot eivät lähde käyttäjän laitteelta, eikä käyttäjän tarvitse tietää niistä. Selaimet tukevat näitä vahvistustapoja nykyään käyttämällä Web Authentication -rajapintaa (Web Authentication API | MDN). Tämä on usein turvallisin ja käyttäjäystävällisin todennustapa näistä kolmesta, mutta se ei ole vielä saatavilla kaikissa palveluissa ja vaatii suuria muutoksia todennusprosessiin kehittäjiltä.

 

Vaihtoehtoisien todennustapojen käyttö

Tunnetuin vaihtoehto salasanalle on monivaiheinen todennus eli Multifactor Authentication (MFA). Sillä tarkoitetaan, että salasanan lisäksi on todentamisessa käytössä myös toinen vaihe. Tällä tavalla otetaan käyttöön “jonkin tiedon” lisäksi myös toinen osa aikaisemmin mainittua todennuksen kolmea käsitettä. Toinen tapa voi olla esimerkiksi käyttäjän puhelin, eli jotain mitä hän omistaa. Toisen vaiheen avulla tilanteessa, jossa ulkopuolinen osapuoli saisikin salasanan tietoonsa, ei hän pääse todentautumaan ilman toisen tason vahvistusta. Tämä ei siis poista salasanan tarvetta tai vähennä käyttäjältä vaadittua työtä, vaan tekee sen väärinkäytöstä vaikeampaa. Microsoftin vuoden 2019 blogikirjoituksessa todettiin, että käyttämällä monivaiheista todennusta käyttäjät ovat noin 99.9 % epätodennäköisempiä vaarantamaan tilinsä. (Alex Weinert, 2019)

Single Sign-On tarkoittaa kertakirjautumista ulkoisen palveluntarjoajan kautta, kuten Googlen tai Facebookin. Se tekee kirjautumisesta helpomman loppukäyttäjälle, sillä hänen pitää muistaa vain valitun palveluntarjoajan salasana. Lopullinen palvelu ei tiedä tätä salasanaa, vaan sille riittää palveluntarjoajalta saatu vahvistusmerkki, jonka avulla saa sovellus tarvittavat tiedot. Ratkaisun huono puoli on se, että tilanteessa, jossa palveluntarjoaja joutuu tietovuodon alaiseksi, on kaikkien yhdistettyjen sovellusten kirjautumiset vaarassa. On kuitenkin muistettava, että kyseisillä palveluntarjoajilla on usein huomattavasti suuremmat kyberturvallisuusbudjetit, kuin normaaleilla yrityksillä. Esimerkkinä Googlen lupaus 10 miljardin investointiin kyberturvallisuuteen 5 vuoden aikana vuonna 2021 (Why we’re committing $10 billion to advance cybersecurity | Google).

Voisiko salasanan poistaa kokonaan? Tämän tapaisia toteutuksia kutsutaan luovasti salasanattomiksi kirjautumisiksi. Salasanaton toteutus voi tapahtua esimerkiksi ottamalla käyttöön Mideyen todennoussovelluksen, tai käyttämällä kertakäyttöisiä “Magic linkkejä” sähköpostin tai SMS:n välityksellä. Näissä tapauksissa käyttäjän tarvitsee kertoa vain tunnuksensa, jolloin hänelle lähetetään vahvistus, jonka avulla todennus viimeistellään. Salasanaton kirjautuminen parantaa huomattavasti turvallisuutta ja tekee käyttökokemuksesta yksinkertaisemman vähentämällä käyttäjälle kohdentunutta kognitiivista rasitusta. Riihisoft on toteuttanut salasanattoman kirjautumisen Sakon Umbraco-projektiin käyttämällä Mideyen tarjoamaa palvelua. Lue lisää siitä, miten ratkaisu toteutettiin aikaisemmasta blogistamme: Salasanattoman kirjautumisen toteuttaminen.

 

Tulevaisuuden suuntaukset

Salasanattomat ratkaisut kehittyvät nopeaa tahtia. Tärkeänä pilarina tälle kehitykselle on FIDO Alliancen FIDO2-standardi. Standardi takaa turvallisen toimintatavan salasanattomille todennustavoille. FIDO2-standardin mukaan salatut avaimet eivät ikinä lähde käyttäjän laitteelta, vaan niitä käytetään vain todennus tilanteessa paikallisesti. Esimerkki näistä todennustavoista on puhelimen sormenjälkitunnustus/PIN tai Microsoftin Hello-toiminta. (FIDO2 | FIDO Alliance)

Salasanaton kirjautuminen voidaan ottaa web-sovelluksissa käyttöön käyttämällä Webauthn-rajapintaa. Webauthn on FIDO2-standardin mukainen todennusrajapinta, joka mahdollistaa laitteen oman tai ulkoisen tunnistautumislaitteen käyttöä. On kuitenkin tärkeä varmistaa, että käyttäjäkuntasi voi käyttää tätä rajapintaa, sillä se on uusi ominaisuus, jonka tuki saattaa olla vajaa osasta selaimista. Can I use -sivuston mukaan tuki Webauthn-rajapinnalle on kuitenkin jo yli 94 %. (“webauthn” | Can I use)

Teknologian kehityksen merkittävien askeleiden takana on muun muassa suuret yritykset, kuten Google, Microsoft ja Apple. Nämä yritykset ovat sitoutuneet FIDO Alliance -standardien käyttöönottoon ja niiden kehittämiseen. Ne ovat kehittäneet myös valmiin pilvipalvelu-pohjaisen FIDO2-standardin mukaisen todennustavan nimellä Passkeys. Tämä on valmis todennustapa, jota on mahdollista käyttää jo nyt esimerkiksi Googlen ja Microsoftin tarjoamissa palveluissa. (What Are Passkeys? | passkeys.com)

Webauthn, Passkeys ja muut salasanattomat ratkaisut vievät meitä kohti tulevaisuutta ilman salasanoja. FIDO2-standardia jatkuva kehitys tekee tästä todellisemman – eikä syyttä, sillä se on turvallisempaa, käyttäjäystävällisempää ja helpompaa toteuttaa turvallisesti myös sovelluskehittäjille. Ei siis ole ihme, että suuret teknologiayritykset investoivat merkittävästi näiden ratkaisujen kehittämiseen ja käyttöönottoon.

Ota meihin yhteyttä, niin muutetaan ideasi ratkaisuiksi!


Liity uutislistallemme