Haka mobiilitunnistuspilotti 2.3.2016 Henri Mikkonen, CSC Tieteen Tietotekniikan Keskus Oy, henri.mikkonen@csc.fi
Sisällysluettelo 1. Projektin perustiedot... 3 2. Projektin lähtökohdat... 3 3. Tiivistelmä projektin toimenpiteistä ja etenemisestä... 5 4. Projektin tulokset... 6 4.1. Keskitetty mobiilivarmenne-palvelu... 7 4.2. Kirjautumispalvelimen mobiilivarmenne-laajennos... 8 5. Ehdotukset jatkotoimenpiteisiin liittyen... 10 6. Viitteet... 10 2
1. Projektin perustiedot Projektin nimi: Haka mobiilitunnistuspilotti Projektin vastuuorganisaationa ja teknisenä toteuttajana toimi CSC - Tieteen tietotekniikan keskus Oy, yhteyshenkilöinään Development Manager Manne Miettinen ja Applications Specialist Henri Mikkonen. Mobiilivarmenteen toimittajana toimi Elisa Oyj, yhteyshenkilönä Business Development Manager Perttu Hörkkö. Projektin kesto oli 1.6.2014 31.12.2015. Alkuperäisessä suunnitelmassa projektin oli tarkoitus päättyä vuoden 2014 lopussa, mutta projektia jatkettiin kahteen otteeseen: ensin korkeakoulujen kevätlukukauden 2015 loppuun ja lopulta kalenterivuoden 2015 loppuun saakka. Projektiin budjetoitiin 15 henkilötyöpäivää CSC:n asiantuntijapanosta. CSC tarjosi myös alustan ja resurssit, jossa kehitys- ja testiversiot projektissa kehitetyistä komponenteista ajettiin. Elisa tarjosi mobiilivarmenteiden veloituksettoman käytön Haka-organisaatioille koko projektin ajaksi. Myös testi-sim kortit ja mobiilivarmenteiden vaatimat palvelimet yhteyksineen tarjottiin veloituksetta. Projektin tuotokset julkaistiin avoimen lähdekoodin (Apache 2.0) lisenssillä osoitteessa: https://confluence.csc.fi/display/haka/shibboleth+idp+2.x%3a+mobiilivarmenne+plugin 2. Projektin lähtökohdat Haka-luottamusverkosto on Suomen käytetyin korkeakoulujen ja tutkimuslaitosten käyttäjätunnistusjärjestelmä. Haka-organisaatioiden jäsenet voivat käyttää oman kotiorganisaationsa käyttäjätunnuksia kirjautuessaan luottamusverkoston eri palveluihin. Käyttäjien tunnistus tapahtuu siis paikallisesti kotiorganisaatiossa ja perustuu tällä hetkellä organisaatioiden ylläpitämiin käyttäjätunnuksiin ja salasanoihin. Mobiilivarmenne [1] on Elisan, Soneran ja DNA:n Suomessa tarjoama vahva sähköinen tunnistusja allekirjoitusväline. Mobiilivarmenteen käyttäjä voi todistaa henkilöllisyytensä verkkopalveluissa tai esimerkiksi puhelun aikana. Käyttäjä vahvistaa tunnistus- ja allekirjoitustapahtumat itse valitsemallaan tunnusluvulla. Seuraavan sivun kuvassa esitetään eri toimijoiden välillä tapahtuvia toimenpiteitä ja viestinvaihtoja, kun käyttäjä kirjautuu mobiilivarmenteella palveluun (kuvassa Application Provider (AP) Palvelu X ). Palvelua voidaan käyttää millä tahansa laitteella, mutta osana tunnistusta käyttäjällä tulee olla matkapuhelin jonka liittymässä on aktiivinen mobiilivarmenne. Palvelu pyytää mobiilivarmenne-tunnistusta mobiilioperaattorin ylläpitämältä palvelulta (kuvassa Mobile Signature Service Provider (MSSP)), joka puolestaan kommunikoi käyttäjän matkapuhelinliittymän kanssa. Pähkinänkuoressa kirjautuminen alkaa käyttäjän annettua puhelinnumeronsa kirjautumissivulla, jonka jälkeen ko. numeroon tulee tunnistuspyyntö PIN-numeron kysymisellä. Oikean PIN-numeron antamisen jälkeen mobiilioperaattori toimittaa tunnistusta pyytäneelle palvelulle perustietoja tunnistetusta käyttäjästä. 3
Projektin tarkoitus oli vahvan mobiilivarmenne tunnistamisen mahdollistaminen ja pilotointi Haka-organisaatioissa. Vahvaa tunnistamista voitaisiin hyödyntää esimerkiksi ensitunnistamisessa, salasanojen resetoinnissa ja sensitiivisten tutkimusaineistojen käyttöoikeuksien hallinnassa. Vahvan sähköisen tunnistamisen ratkaisuilla mahdollistettaisiin esimerkiksi opiskelijoiden käyttöoikeuksien saaminen sähköisesti kasvotusten tapahtuvan tunnistamisen sijaan ja siten saumattomampi palveluketju niin loppukäyttäjän kuin palveluntarjoajankin näkökulmasta. Projektin teknisenä tuotoksena oli tarkoitus kehittää keskitetty palvelu, jonka avulla jokainen Haka-organisaatio voisi liittyä mobiilivarmenne-tunnistuksen piiriin mahdollisimman yksinkertaisesti. Keskitetyssä palvelussa nähtiin niin teknisiä kuin hallinnollisiakin etuja. Hakaorganisaatioiden tekniset ratkaisut ovat keskenään niin samankaltaisia, että yhden onnistuneen yhdistämisen jälkeen muiden organisaatioiden yhdistäminen on suoraviivaista. Keskitetyllä palvelulla vältettäisiin myös useat, keskenään samankaltaiset sopimukset mobiili-operaattorin ja Haka-organisaatioiden välillä. Tuotoksen ohjelmakoodi julkaistaisiin vapaasti avoimen lähdekoodin lisenssillä kaikkien käytettäväksi. Pilottiehdotuksen mukainen ratkaisu olisi monistettavissa kaikkiin Hakaorganisaatioihin ja myös virkamiehen kertakirjautumisratkaisuun (Virtu). Pilottin tekninen toteutus oli tarkoitus toteuttaa kesän 2014 aikana siten, että syksyn 2014 aikana voitaisiin käyttää toteutusta mobiilivarmenteen pilotoinnissa kiinnostuneissa Hakaorganisaatioissa. Pilotti suunniteltiin päättyväksi vuoden 2014 lopussa. Osittain samaan aikaan tämän projektin kanssa ajoittunut julkishallinnon tunnistuksen ohjauspalvelu projekti liittyi samaan tekniseen ympäristöön: siinä käytettiin teknisen ratkaisun pohjana samaa ohjelmistotuotetta (Shibboleth Identity Provider v2), jonka laajennokseksi myös tämän projektin tuotos oli tarkoitus toteuttaa. 4
3. Tiivistelmä projektin toimenpiteistä ja etenemisestä CSC esitteli pilottiehdotuksen Hakan ohjausryhmälle 26.5.2014, jossa Haka-organisaatioiden tietohallintojohdon valtuuttama edustus hyväksyi esityksen. Alustavasti mukaan pilottiin lupautuivat Helsingin Yliopisto ja Terveyden- ja Hyvinvoinnin Laitos. JulkICTLabiltä pyydettiin 15 henkilötyöpäivää asiantuntijapanosta pilotin tueksi, jolla oli tarkoitus toteuttaa Shibboleth Identity Provider v2 kirjautumispalvelimelle sopiva mobiilivarmenne-moduuli. Kyseistä kirjautumispalvelinta käyttää lähes kaikki Haka-organisaatiot. CSC suoritti mobiilivarmenne-moduulin kehitystyön kesällä 2014 sovitussa aikataulussa siten, että moduulin ensimmäistä versiota esiteltiin kesän lopuksi ensin Elisalle ja myöhemmin myös Helsingin Yliopistolle. Molemmat esittelytilaisuudet pidettiin elokuun 2014 aikana. Moduuli asennettiin myös onnistuneesti Helsingin Yliopiston testiympäristöön syyskuun 2014 aikana, siten että sitä pystyi käyttämään Elisan toimittamien esituotanto-ympäristön SIM-korttien kanssa. Näillä korteilla pystyttiin suorittamaan aidonkaltainen mobiilivarmenne-kirjautuminen, käyttämättä kuitenkaan oikeita sähköisiä identiteettejä. Projektissa kehitettyä moduulia esiteltiin korkeakoulujen IAM-tukiverkoston seminaarissa Kuopissa 30.9,-1.10.2014 yhdessä Elisan kanssa. Kuulijakunnassa oli toista kymmentä Hakaorganisaatioiden edustajaa. Samassa tilaisuudessa mainostettiin myös, että maksuton mobiilivarmenteen käyttö pilotin puitteissa on mahdollista koko kevätlukukauden 2015 loppuun saakka. Alkuperäisissä suunnitelmissa pilotin oli tarkoitus päättyä jo 2014 lopussa. Mobiilivarmenteen käytön kustannukset pilotin jälkeen eivät kuitenkaan olleet selvillä, sillä asiaa mutkisti samaan aikaan käynnissä ollut valmistelu vahvan sähköisen tunnistamisen laista. Tässä laissa oli tarkoitus määritellä ns. siirtohinnottelu eri tunnistajien välillä, joka asettaisi lakisääteisen maksimihinnan vahvasta sähköisestä tunnistamisesta. Ensimmäinen tuotanto-palvelimen kirjautuminen tapahtui lokakuun 2014 aikana, kun moduuli oli asennettu CSC:n tuotanto-kirjautumispalvelimelle. Tämä mahdollisti CSC:n Virtu-operaattorien mobiilivarmenne-kirjautumisen Virtu-luottamusverkoston hallintapalveluun. CSC:n työntekijät käyttivät kirjautumiseen työsuhde-liittymiä, jonka toimittaja oli Elisa. Teknisesti kirjautuminen olisi ollut mahdollista myös Soneran ja DNA:n mobiilivarmenteilla. Markkinointia jatkettiin tammikuussa 2015 IAM-tukiverkoston seminaarissa, jonka jälkeen ratkaisua esiteltiin erikseen ja yksityiskohtaisemmin Aalto Yliopistolle. Eri keskusteluissa alkoi selkiytyä kuva siitä, että vaikka vahvalle tunnistukselle nähdään sinällään selkeä tarve, mobiilivarmenne ei kuitenkaan tarjoa Suomessa riittävän suurta käyttäjämäärää: valtaosa suomalaisista käyttää pankkitunnuksiaan vahvaan tunnistautumiseen. Vahvan sähköisen tunnistamisen alueella elettiin myös tietynlaista murrosvaihetta uudistuvan lainsäädännön ja sitä myöten muodustuvan vahvojen tunnistajien luottamusverkoston myötä. Tämän aistittiin vaikuttavan myös mobiilivarmenteiden käytön hinnoitteluun jatkossa, mikä lisäsi epätietoisuutta ja varmuutta vahvan tunnistuksen käyttökustannuksista Haka-organisaatioille. Mobiilivarmenne-kirjautumista mainostettiin vielä maaliskuussa 2015 vuotuisessa Hakaseminaarissa. Tässä yhteydessä Elisa lupasi vielä ilmaisen käyttöjakson jatkumisen vuoden 2015 loppuun saakka. Vaikka Haka-organisaatioilta vaadittavan konfiguraatiotyön määräksi arvioitiin 5
vain yksittäinen henkilötyöpäivä organisaatiota kohden, yksikään Haka-organisaatio CSC:n lisäksi ei lopulta liittänyt tuotantopalvelintaan maksutta tarjoamamme mobiilitunnistuspalvelun piiriin. Projektin tuloksien hyödyntäjiin löytyi kuitenkin toimija Haka-luottamusverkoston ulkopuolelta. Väestörekisterikeskuksen Kansallinen Tunnistuspalvelu hanke käytti CSC:n ylläpitämää, ja Elisan esituotantoympäristöön yhdistettyä mobiilitunnistuspalvelua oman kehitystyönsä tukena vuoden 2015 alkupuolelta alkaen. Loppuvuodesta palvelu yhdistettiin myös osaksi beta.suomi.fi sivustoa, joka on kehitysversio uudistuvasta Suomi.fi verkkopalvelusta. Vaikka kyseessä on kehitysversio, ympäristössä kansalaiset voivat käyttää oikeita sähköisiä identiteettejään: näistä mobiilivarmenne tunnistustapa hyödyntää CSC:n ylläpitämää palvelua. Teknisesti CSC:n ylläpitämä palvelu on rakennettu nimenomaan tässä Haka mobiilitunnistuspilotissa kehitettyjen komponenttien ja seuraavassa kappaleessa kuvattujen komponenttien ympärille. 4. Projektin tulokset Allaoleva kuva esittää projektin tuotoksen teknistä ympäristöä. Kuvassa on esillä seuraavat komponentit: - Identity Management (IdM) System: Haka-organisaation käyttäjänhallintajärjestelmä, jolla ylläpidetään organisaation käyttäjätietoja. - Shibboleth Identity Provider (IdP) v2: Haka-organisaation ylläpitämä Hakakirjautumispalvelin. Tämä kirjautumispalvelin oli projektin aikaan käytössä lähes kaikissa Haka-organisaatioissa. o Mobiilivarmenne plugin: Shibboleth IdP v2 laajennos, jolla Haka-organisaatio voi kytkeä kirjautumispalvelimensa tässä projektissa kehitettyyn keskitettyyn mobiilivarmenne-palveluun. - Service Provider (SP): Haka-luottamusverkostoon liitetty palvelu. - Federation Mobile Authn Service: Tässä projektissa kehitetty keskitetty mobiilivarmennepalvelu, joka toimii yhdyskäytävänä mobiilioperaattorin ylläpitämään mobiilivarmennepalveluun. - Mobile Signature Service Provider (MSSP): Mobiilioperaattorin (tässä projektissa Elisa Oyj) ylläpitämä mobiilivarmenne-palvelu. 6
Tässä projektissa kehitettiin mobiilivarmenne plugin sekä keskitetty mobiilivarmenne-palvelu. Kehitetty ohjelmakoodi julkaistiin avoimen lähdekoodin lisenssillä (Apache 2 [2]) Hakaluottamusverkoston Wiki-sivuilla [3]. 4.1. Keskitetty mobiilivarmenne-palvelu Keskitetyn palvelun tarkoitus oli tarjota Haka-organisaatioille mahdollisimman suoraviivainen tapa liittää kirjautumispalvelin mobiilivarmenne-kirjautumisen piiriin. Yksinkertaisimmaksi tiedonvaihtotekniikaksi tunnistettiin REST-protokolla, jolla kirjautumispalvelin toimittaisi käyttäjältä kysytyn puhelinnumeron sekä valintaisen häirinnän estokoodin. Keskitetty palvelu toimisi siten yhdyskäytävänä mobiilioperaattorin MSSP-palvelulle, jonka kanssa kommunikointiin tarkoitettu ETSI-204 protokolla todettiin huomattavasti REST-protokollaa raskaammaksi vaihtoehdoksi toteuttaa kirjautumispalveluiden näkökulmasta. Valittu kevyt REST-protokolla mahdollistaa myös huomattavasti suoraviivaisemmat integraatiot muihinkin palveluihin tai ohjelmistoihin, kuin seuraavassa kappaleessa esiteltävän kirjautumispalvelimen laajennoksen lisäksi. Näin mobiilivarmenne-tunnistusta voitaisiin ainakin teoriassa integroida helpommin osaksi esimerkiksi käyttäjähallinnon ja asiakaspalvelun prosesseja, niissä käytetyistä ohjelmistojärjestelmistä riippumatta. Kevyemmän teknisen integraation lisäksi keskitetystä palvelusta havaittiin myös hallinnollisia hyötyjä. Koska keskitetty palvelu olisi mobiilioperaattoreiden näkökulmasta Hakaluottamusverkoston ainoa asiakas, yksi sopimus kattaisi kaikki Haka-organisaatiot sen sijaan, että jokainen joutuisi tekemään omia, keskenään samankaltaisia sopimuksia. Haka-ympäristölle tunnistettiin myös mahdollisuus rikastaa tunnistustietoa esimerkiksi tutkimuspuoleen liittyvillä lisä-attribuuteilla, joita mobiilioperaattorit eivät voi välttämättä tarjota niin sujuvasti kuin luottamusverkoston operaattori. Teknisesti keskitetty mobiilivarmenne-palvelu toteutettiin Java-ohjelmointikielellä hyödyntäen laajasti erilaisia avoimen lähdekoodin kirjastoja. Näistä keskeisimpiä oli myös Shibboleth Identity 7
Provider ohjelmiston käyttämä Spring Framework sekä ETSI-204 protokollan toteuttava Lavercakirjasto. 4.2. Kirjautumispalvelimen mobiilivarmenne-laajennos Kirjautumispalvelimelle asennettavan mobiilivarmenne-laajennoksen tarkoitus oli tarjota mahdollisimman suoraviivainen tapa liittää Haka-organisaation kirjautumispalvelin edellisessä kappaleessa kuvatun keskitetyn mobiilivarmenne-palvelun asiakkaaksi. Kirjautumispalvelimelle toimitetaan seuraavat käyttäjäattribuutit onnistuneesti mobiilivarmenteella tunnistetusta käyttäjästä: - Tunnistukseen käytetty puhelinnumero - Henkilön etu- ja sukunimi - Henkilön ikä - Henkilön sosiaaliturvatunnus (sotu) - Henkilön sähköinen asiointitunnus (satu) Ideaalitilanteessa, mikäli sähköinen asiointitunnus on tallennettu organisaation IdM-järjestelmään, henkilön satu:a kannustetaan käytettäväksi kun halutaan yhdistää tunnistettu käyttäjä organisaation IdM-järjestelmästä jo löytyvään käyttäjään. Tämän todettiin kuitenkin olevan harvinaista Haka-organisaatiossa, jolloin seuraavaksi paras vaihtoehto on sosiaaliturvatunnuksen käyttäminen yhdistämiseen. Tämä tieto myös löytyy lähes kaikkien Haka-organisaatioiden IdMjärjestelmistä. Kolmas vaihtoehto on puhelinnumeron käyttäminen yhdistämiseen, mutta tämä todettiin huonoimmaksi jo siitäkin syystä, että puhelinnumero voi usein muuttua ja vaihtaa omistajaa, ja toisaalta yhdellä henkilöllä voi olla useita puhelinnumeroita joiden kaikkien liittymissä on aktiivinen mobiilivarmenne. Teknisesti kirjautumispalvelimen mobiilivarmenne-laajennos toteutettiin Shibboleth Identity Provider v2 tavoin Java-ohjelmointikielellä. Toteutuksessa hyödynnettiin laajasti Shibbolethtuotteen itsensäkin käyttämiä avoimen lähdekoodin kirjastoja. Kirjautumispalvelimelle vaadittiin asennettavaksi käännetty ohjelmakoodi, sen konfiguraatiotiedostot sekä mobiili-kirjautumissivu, jossa käyttäjältä kysytään hänen puhelinnumeroaan sekä häirinnän estokoodia. Beta.suomi.fi palvelun mobiilivarmenne kirjautumistapa perustuu tähän mobiilivarmennelaajennoksen käyttöön. Allaolevassa ensimmäisessä kuvakaappauksessa näkyy beta.suomi.fi palvelun kirjautumisvälineen valintasivu, jonka Mobiilivarmenne valinta ohjaa käyttäjän CSC:n ylläpitämälle Shibboleth IdP v2 palvelimelle, jonne mobiilivarmenne-laajennos on asennettu. Alempi kuvakaappaus esittää käyttöliittymän, jossa pyydetään käyttäjän matkapuhelinnumeroa sekä häirinnän estokoodia. Tämä kirjautumispalvelin on puolestaan kytketty edelleen CSC:n ylläpitämään instanssiin aiemmin kuvatusta keskitetystä mobiilivarmenne-palvelusta. 8
9
5. Ehdotukset jatkotoimenpiteisiin liittyen Joulukuussa 2014 Shibboleth IdP kirjautumispalvelimesta julkaistiin uusi versio 3.0. Tässä projektissa kehitetyt komponentin olivat suunniteltu versiolla 2.x, koska projektin aloittamisajankohtana IdP v3 aikataulu ei ollut vielä konkretisoitunut. Vuoden 2015 keväällä Shibboleth Consortium julkaisu aikataulun, jonka mukaan version 2 tuki lopetetaan kesällä 2016. Tästä johtuen vanhaa versiota käyttävät siirtyvät hiljalleen käyttämään uutta versiota, jolloin myös tämän projektin mobiilivarmenne-laajennokselle tarvitaan päivitystä. CSC:n on tarkoitus toimittaa Väestörekisterikeskukselle Shibboleth IdP v3 yhteensopiva mobiilivarmenne-laajennos kevään 2016 aikana. Tämä mahdollistaa mobiilivarmenteen käytön sujuvammin osana kansalaisen sähköistä tunnistusta suomi.fi palvelukokonaisuuteen. Tämä päivitys ja jatkokehitys on Haka-mobiilitunnistuspilotissa saatujen kokemusten myötä varsin suoraviivaista. 6. Viitteet [1] Mobiilivarmenne: http://mobiilivarmenne.fi/fi/ [2] The Apache Software Foundation, Apache 2.0 license (January 2004): http://www.apache.org/licenses/license-2.0 [3] Haka luottamusverkosto, Shibboleth IdP v2 mobiilivarmenne-plugin: https://confluence.csc.fi/display/haka/shibboleth+idp+2.x%3a+mobiilivarmenne+plugin 10