Käynnistän moniosaisen artikkelisarajan kertakirjautumisesta; mitä koen sen olevan ja miten se on kehittynyt. Aloitan ensimmäisessä artikkelissa kertakirjautumisen taustasta ja määritelmästä. Yritän otsikoida kokonaisuuden siten, että voit keskittyä osuuksiin, jotka kiinnostavat eniten.

Kertakirjautumiseen voi ajatella liittyvän paljon erilaisia asioita, vaikka koko tunnistamisen ja identiiteetinhallinnan alueet. Taustaani vasten keskityn kertakirjautumiseen vahvalla federoidun tunnistamisen juonteella.

Taustaa

Kertakirjautuminen (SSO – Single Sign on) ajoittuu edelliselle vuosituhannelle, kun yritysten tietokoneet ymmärrettiin kytkeä yritysten hakemistojärjestelmiin, jotta niiden hallinnointi olisi yrityksen tietohallinnolle vähemmän työllistävää, kuin jokaisen yksittäisen tietokoneen ylläpito erikseen. Käyttäjien kotihakemistot ja yhteisesti käytettävät resurssit saatiin koottua yhteen ja hallinnoitua yhdessä paikassa. Käyttäjillä oli käyttäjätunnus ja salasana, joilla kirjauduttiin paitsi omalle työasemalle, myös “yrityksen verkkoon”.

Käyttäjätunnuksia hallinnoitiin paikassa, jonka tunsimme nimellä Microsoft Active Directory (AD). Oli myös kilpailijoita, kuten Novell:n e-Directory, mutta koko maailmassa MS:n AD:sta tuli de facto -ratkaisu yritysten hakemistopalveluksi.

Yritysten liepeillä alkoi äkkiä olla hakemistopalvelun ulkopuolisia palveluja ja myös yrityksen verkkoon kiinteästi sidottuja sisäisiä palveluja, joihin työntekijöiden piti saada pääsy. Olisi esimerkiksi ollut kohtuutonta, jos joka kerran tulostaessa asiakirjan paperille olisi pitänyt syöttää erillinen salasana.

Kehityksessä oli tietysti monia vaiheita, mutta kertakirjautumisesta ei voi vakuuttavasti puhua mainitsematta Kerberos-protokollaa. Se oli vakavasti otettava nk. lipukkeisiin tai vaikkapa poletteihin, eli tokeneihin perustuva käytäntö, jolla voitiin luotettavasti siirtää ja vahvistaa käyttäjän istunto yhdellä tietokoneella toiseen palveluun. Kerberos laajeni kattavasti ja on käytössä edelleen.

Kerberos jo perustui luottosuhteeseen. Tunnistamiseen tukeutuva palvelu vaihtoi avaimia tunnistuspalvelun kanssa, jotta tunnistuspalvelun luovuttama token voitiin tunnistukseen tukeutuvassa palvelussa todentaa aidoksi. Tokenit ovat voimassa vain rajoitetun ajan ja niiden uudistamiseksi on mekanismi.

Kerberos-protokollassa on haasteita ja ei pelkästään skaalautumisen osalta. Se toimii hyvin yrityksen sisällä rajoitetussa laajuudessa. Kerberoksen rinnalle on tullut uusia paremmin nykyiseen globaaliin verkkoon soveltuvia tekniikoita. Kerberos ei silti vielä ole väistynyt, vaan sillä on edelleen vahva jalansija kertakirjautumisessa, etenkin alkupäässä. Eli edelleen Kerberos on vahvassa asemassa perinteisissä Windows-verkoissa.

Kertakirjautumisen määritelmä

Edellisen taustoituksen myötä voimme siis todeta, että kertakirjautumisella tarkoitetaan prosessia, jossa käyttäjä nykyiseen luotettavasti tunnistettuun istuntoonsa perustuen voi siirtää ja todentaa henkilöllisyytensä ja käyttöoikeutensa tai vain toisen näistä tunnistukseen tukeutuvaan palveluun, johon on ennalta muodostettu luottamuksellinen tapa vahvistaa välitettävien viestien aitous ja todenperäisyys.

Tiukasti ottaen monet näkevät kertakirjautumisen siten, että sen pitäisi tapahtua käyttäjälle läpinäkyvästi, eli että käyttäjän ei tarvitse toiseen palveluun siirtyessä käyttää erikseen tai uudelleen tunnistustekijöitään. Tarkoittaa käytännössä siis, että jos käyttäjä on kirjautunut toimikortillaan työasemalleen ja käyttää vaikkapa terveydenhuollon asiakasrekisteriä, asiakasrekisteriin pitää päästä siirtymään antamatta käyttäjätunnusta ja salasanaa sekä toimikortin pin-koodia uudelleen.

Kosketimme juuri kertakirjautumiseen liittyvää tärkeää piirrettä: tunnistuksen tukevuutta (Level of Assurance – LoA). Jos käyttäjä on kirjautunut työasemaansa pelkällä salasanalla, mutta asiakasrekisteri vaatii vahvan tunnistamisen, ei kertakirjautuminen saa tapahtua työasemakirjautumiseen perustuen, kun se oli vaatimusta heikompi, vain salasanaan perustuva.

Tunnistuksen tukevuuteen liittyy monia aspekteja, joita voidaan ilmaista vaikka vektorein. Jokainen vektori ilmaisee tunnistuksen tukevuuden yhtä osa-aluetta. Osa-alueita voivat olla tunnistustekijöiden vahvuus, identiteetin vahvuus (ensitunnistamisen menetelmä), tunnistusjärjestelmän tietosuojan ja tietoturvan tasot jne.

Perinteiset protokollat

Kerberos ei tosiaan sovellu laajassa skaalassa, jopa globaalissa mittakaavassa käytettäväksi. Aivan kuten kerberoksen osalta, moderneista protokollista ei voisi kertoa mainitsematta WS-Federationia, SPNegoa tai CAS-palvelua.

Aloitetaan SPNegosta, sillä se rakentaa Kerberoksen päälle. SPNego on HTTP:n ja WWW-selainten maailmaan viety Kerberos. Sekin on Microsoftin laajennos, joka toi tunnistamisen Internet Explorer -selaimeen ja siten paremmin Web:ssä käytettäväksi.

WS-Federation on laajemman yhteenliittymän sopima käytänne. Yhden määrityksen sijasta kyse on määrittelyperheestä, jolla määritetään kertakirjautumisen ohella turvallisista yhteyskäytänteistä, valtuuttamisesta, luottosuhteista, hallinnointikäytänteistä jne.

CAS on myöskin webiin tarkoitettu kertakirjautumisprotokolla, joka tukeutuu käyttäjän identiteetin todentamisessa muihin ratkaisuihin, kuten Kerberokseen, LDAP:iin tai AD:iin. Palvelussa käytetään myös tokeneita, joiden voimassaolon ja todenperäisyyden tunnistukseen tukeutuva palvelu tarkastaa tunnistuspalvelulta taustakanavakommunikaatiolla (backchannel).

Taustakanavakommunikaatio (backchannel communication) on terminä syytä huomioida ja palaamme siihen myöhemmin SAML:n ja myös OIDC:n yhteydessä.

Muut yhteyskäytänteet

Emme voi myöskään käsitellä kertakirjautumista mainitsematta Radius-protokollaa, sillä siitä saamme hyvän aasinsillan käytänteisiin, jotka vaikuttavat päivittäiseen elämäämme. Sivuutamme jatkuvasti seikan, että kertakirjautumista tapahtuu myös yllättävissä, mutta tarkemmin tarkastellen ilmeisissä käyttötapauksissa.

Radius on protokolla, jota huomattiin tarvittavan, kun ihmisten piti päästä kirjautumaan uuteen jännittävään maailman kattavaan verkkoon, jota kutsumme nykyään Internetiksi.

Radius määrittelee kättelytavan, kun käyttäjä soittaa päätepisteeseen yhteyden muodostamiseksi. Radius on yleinen kättelyprotokolla 802.1X:n yhteydessä, jota käytetään etenkin yrityksien langattomissa verkoissa (Wifi) tunnistettaessa käyttäjän oikeutta liittyä verkon käyttäjäksi ja mm. sen ratkaisemiseksi, mihin yrityksen Internet-verkoista eristetyistä verkkosegmenteistä käyttäjä sijoitetaan.

Vastaavasti PAP/CHAP -käytänteitä käytetään VPN-yhteyksiä avattaessa käyttäjän tunnistamisesta ja yhteyden ominaisuuksista neuvottelemiseksi yhteyspisteiden välillä. Ovat siis yleisiä PPP-yhteyksien kättelymekanismeja.

Radiuksessa ja PPP-yhteyksien kättelymekanismeissa yleistä on, että niissä käytetään yrityksen hakemistopalvelun tunnistustekijöitä. Käyttäjä pääsee siis kirjautumaan langattomaan verkkoon ja VPN-palveluun samalla käyttäjätunnus- ja salasanaparilla, kuin mitä hän käyttää työasemaan kirjautuessaan.

Tiukan määritelmän mukaan tämä ei ole kertakirjautumista, mutta monet ovat sitä mieltä, että samojen tunnistustekijöidän uudelleen hyödyntäminen tunnistukseen tukeutuvassa palvelussa on kertakirjautumista. Käyttäjän ei tarvitse muistaa useita erillisiä tunnistustekijöitä, vaan palvelujen käyttämistä helpotetaan tunnistuksen integraatioilla.

Kertakirjautuminen on kaikkialla

Jos emme suhtaudu kertakirjautumisen määritelmään liian tiukasti, huomaamme yhtäkkiä, että kertakirjautuminen on kaikkialla, ja otamme sen itsestään selvyytenä.

Jopa kotona vaikuttavan langattoman verkkomme kirjautuminen tapahtuu kertakirjautumiseen perustuen. Menetelmä ei ole järin vahva, mutta toimii siten, että päätelaitteeseen asetetaan yhdessä tukiaseman kanssa jaettu salaisuus. Jos päätelaite osaa vastata tukiaseman antamaan haasteeseen, jonka tarkiste perustuu jaettuun salaisuuteen, päätelaitteen annetaan liittyä verkkoon. Tämäkin on kertakirjautumista, joka perustuu jaettuun salaisuuteen, siihen, että osapuolet tietävät yhdessä jotakin, mitä oikeudettomat eivät tiedä.

Vastaavasti voisi argumentoida, että salasanaholvit, 1Password, Applen iCloude-Keychain jne ovat myöskin kertakirjautumistoteutuksia. Itseasiassa, edelleen on käytössä kertakirjautumisratkaisuja, jotka perustuvat siihen, että ratkaisun muistama käyttäjätunnus ja salasana kirjoitetaan taustalla käyttäjän huomaamatta tunnistukseen tukeutuvan palvelun perinteiselle kirjautumislomakkeelle. Eli kertakirjautuminen imitoi käyttäjän läsnäoloa ja tekee kirjautumisprosessin käyttäjälle läpinäkyväksi, mikä vastaa aiemmassa kappaleessa todettua kertakirjautumisen määritelmää.

Seuraavaksi

Tällä kertaa märittelimme, mitä kertakirjautuminen on taustoittaen asiaa kertakirjautumisen kehityksellä. Seuraavassa artikkelissa käsittelemme uudempia kertakirjautumisen käytänteitä.