TayTupas-pilotin tulokset
http://www.csc.fi/suomi/funet/middleware/
| Versio |
Päiväys |
Editoija |
Keskeiset muutokset |
| 0.1 |
03.12.2004 |
JS |
Ensimäinen raakaversio |
| 0.2 |
07.12.2004 |
JS |
Lisäyksiä, editointia |
| 0.3 |
20.12.2004 |
JS |
Lisäyksiä, korjauksia, muotoilua |
| 0.4 |
30.12.2004 |
JS |
-''- |
| 0.5 |
31.12.2004 |
JS |
-''- |
| 0.6 |
03.01.2005 |
JS |
Korjaus kohtaan 3.1. |
| 0.7 |
04.01.2005 |
JS |
Paketin tiedostot ja linkit |
| 1.0 |
05.01.2005 |
JS |
Abstract |
Sisällys
1. TIIVISTELMÄ
Pilottiprojektin tuotoksena on salasananvaihtopalvelu, jota käyttäen
asiakas voi vaihtaa WWW-selaimen avulla SSL-suojatun yhteyden yli
käyttäjätunnuksensa unohtuneen salasanan. Asiakas tunnistetaan Suomen
Pankkiyhdistyksen standardoimaa TUPAS2-järjestelmän tarjoamaa
kertakäyttösalasanapalvelua käyttäen. Salasananvaihtopalvelu on
avoinna 24/7 julkiseen internet:iin.
Toteutustekniikkana on Apache 2.0.* -www-palvelimen alla pyörivät Perl
5.8.2:lla toteutetut CGI-skriptit, jotka käyttävät
Tupas-autentikaatiorajapinnan tarjoavaa Tupas.pm-perlmoduuli.
Pilotin suunnittelu ja toteutus tehtiin Tampereen yliopiston
tietokonekeskuksen voimin. Avoin yliopisto oli mukana mm. viestinnässä
ja käyttäjäkyselyssä.
Pilotin tulos, Tampereen yliopiston
käyttäjätunnushallintajärjestelmään integroitu
TaYTupas-salasananvaihtojärjestelmä, on saanut myönteistä palautetta
ja se aiotaan pitää jatkossakin tuotannossa.
Pilotista tiedoitettiin aluksi uusille avoimen yliopiston
opiskelijoille, mutta kun järjestelmä todettiin toimivaksi parin
viikon tuotantokäytön jälkeen, siitä alettiin tiedoittamaan
unohtuneiden salasanojen yhteydessä kaikille käyttäjäinfon
asiakkaille.
121 käyttäjää on vaihtanut onnistuneesti salasanansa palvelun avulla
vuoden 2004 aikana.
2. DOKUMENTAATIO TOTEUTUKSESTA
2.1. Toteutuksen esivaatimukset
Käyttäjän tunnistaminen perustuu pankin palveluntarjoajalle
välittämään käyttäjän henkilötunnukseen. Palveluntarjoajalla tulee
siis olla käytettävissään ajantasalla oleva lista käyttäjien
käyttäjätunnuksista ja henkilötunnuksista. Käytännössä tämä edellyttää
toimivaa käyttäjätunnushallintajärjestelmää. Toteutuksessa tarjottu
rajapinta käyttää tekstitiedostoa, joka sisältää omalla rivillään
asiakkaan käyttäjätunnuksen ja henkilötunnuksen.
Toteutus ei tarjoa rajapintaa varsinaiseen salasanan vaihtamiseen,
vain käyttäjän tunnistamiseen Tupas-protokollan mukaisesti.
Salasananvaihtojärjestelmä pitää olla siis omasta takaa.
Palveluntarjoajan täytyy osata rakentaa palvelua julkiseen internetiin
tarjoava WWW-palvelin ja pitää se turvallisena jatkossa, sillä
henkilötiedot (käyttäjätunnus & hetu) sijaitsevat palvelimen
luettavissa.
2.2. Yksityiskohtainen dokumentaatio
Projektin määrittely- ja suunnitteludokumentit käsittelevät lähinnä
TaY:n omaa TaYTupas -järjestelmää, eikä niitä aiota liittää osaksi
jakelupakettia. Niihin liittyvistä asioista, poislukien Tampereen
yliopiston käyttäjätunnushallintajärjestelmän erityispiirteet, saa
toki kysyä. Projektin sisäisten dokumenttien sijaan julkaistaan
tekninen kuvaus.
Alla luetellaan libtupas-pakettiin liittyvät osat ja dokumentit.
- (1) Sisältää lähdekoodin, esimerkkikonfiguraatiotiedoston ja moduulin näyttämien WWW-sivujen pohjat (html templates).
2.3. Tupas.pm:n lisenssi
Copyright 2004-2005, University of Tampere, Computer Centre
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2.4. Toteutuksen työmäärä ja tarvittu osaaminen
Toteutukseen tarvitaan korkeakoulun käyttäjätunnushallintajärjestelmän
teknistä ja hallinnolista osaamista, käyttöjärjestelmäosaamista sekä
järjestelmäintegraation osaamista.
| Asia |
Tarvittava osaaminen |
Työmäärä pilotissa |
Arvio työmäärästä, kun apuna on tässä pilotissa tuotettu dokumentaatio |
| Tupas-palvelusopimusten tekeminen |
Hallintopäällikkö tai vastaava rooli palvelusopimusten solmimiseen |
5 htvrk |
5 htvrk. Paperisota, byrokratia, allekirjoitusten kierrättäminen ja Tupas-tunnisteiden ja -avaiminen saanti vie oman aikansa. (1) |
WWW-palvelimen asennus
|
WWW-palvelimen käyttöjärjestelmän asennus. Apache-palvelimen asennus ja konfigurointi. Varmenteiden generoiminen ja asennus. |
4 h |
4 h. Dokumentointi ei juurikaan nopeuta tätä rutiininomaista vaihetta. |
TaYTupas-palvelun integrointi Tampereen yliopiston käyttäjätunnushallintajärjestelmään
|
Tekninen käyttäjätunnushallintajärjestelmän osaaminen. Luottosuhteen rakentaminen WWW-palvelimen ja hallintajärjestelmän väliin. Liittymä salasanan vaihtoon. Palomuuriasetusten tekeminen. |
15 htvrk
|
Tapauskohtainen, mahdotonta arvioida. Arvio, mikäli käyttäjätiedot (käyttäjätunnus ja HeTu) ovat helposti saatavilla: 3 htvrk. |
| Tupas-autentikointipalvelun käyttöönotto |
WWW-sovellusohjelmointia (Perl, CGI). syslog:in säätö logitusta varten. |
15 htvrk
|
2 htvrk. Pilotissa tehty perl-moduuli on sellaisenaan muiden korkeakoulujen käytössä. (2) |
- (1)
Kokemuksia pankkien kanssa tehdyistä sopimuksista:
- Nordea -pankin kanssa tehtävät maksuspalvelusopimukset hyväksyy aina
valtiokonttori, paikallinen konttori auttoi sopimuspapereiden
täyttämisessä.
- Sampo -pankin yhteyshenkilö (Simo Hartikainen, p. 010 5136233) löytyi
helposti ja sopimuspaperit saatiin puhelinsoitolla.
- Osuuspankkiryhmässä sopimusosapuoli on se konttori, jossa yliopistolla
on tili, TaY:n tapauksessa OKO-pankki. Yhteyshenkilön löytäminen oli
vaikeaa. Paikallinen Osuuspankki avusti sitten sopimuspaperien
välittämisessä niin, että sopimuksen sai noutaa ja käydä maksamassa
siellä henkilökohtaisesti.
- (2) Käyttöönottoon ei kuulu salasananvaihtopalvelun rakentaminen.
Jos sama projekti pitäisi tehdä alusta alkaen uudestaan, siihen menisi aikaa 10 htvrk vähemmän, sillä liittymä käyttäjätunnushallintajärjestelmään olisi nyt valmiiksi mietittynä ja koodarikaan ei putoaisi uudestaan kaikkiin sudenkuoppiin.
2.5. Luettelo käytetyistä komponenteista
| Komponentti |
Mihin/kommentti |
Sun Netra T1
|
WWW-palvelimen laitteistoalusta
|
Solaris 9
|
käyttöjärjestelmäalusta
|
Apache ver 2.0.*
|
Palvelinohjelmisto
|
| Perl, versio 5.8.2 |
Sovelluksen toteutuskieli |
AppConfig
AppConfig::File
CGI
Digest::MD5
HTML::Template
POSIX
Sys::Syslog
|
Toteutuksen apuna käytetyt Perl-moduulit.
Saatavilla CPAN:ista, www.cpan.org |
Vaikka Tampereen yliopistolla tämä toteutettiinkin
Solaris-ympäristössä, sovellus ei ole käyttöjärjestelmäspesifinen.
Tupas.pm toiminee suunnilleen sellaisenaan esim. Linux-ympäristössä.
TaY:lla toteutusympäristönä oli Solaris tuotantopalvelinkriteereistä johtuen.
2.6. Käytetyt tietolähteet
3. DOKUMENTAATIO PILOTOINNISTA
Tässä luvussa käsitellään TaYTupas-salasananvaihtopalvelusta saatuja
kokemuksia.
3.1. Asiakkaiden kokemukset
Loppukäyttäjien/asiakkaiden kokemusten keräämistä varten järjestettiin
sekä paperisessa että sähköisessä muodossa oleva kysely n. 250 avoimen
yliopiston opiskelijoille. Kysely lähtetettiin joulupostin viikolla
51. Tätä dokumenttia kirjoitettaessa kyselyn tulokset eivät olleet
valmistuneet. Kyselyn tulosten odotetaan valmistuvan tammikuun 2005
loppuun mennessä. Tulokset julkaistaan tammi-helmikuun aikana.
3.2. Organisaation kokemukset
Pilottiprojektin katsotaan onnistuneen sen viemästä suunniteltua
suuremmasta työmäärästä riippumatta. Tampereen yliopisto sai
käyttöönsä salasananvaihtojärjestelmän, jota - tätä dokumenttia
kirjoitettaessa - on käyttänyt salasanan onnistuneeseen vaihtoon jo
yli 100 käyttäjää. Asiakkailta saatu palaute - tätä dokumenttia
kirjoitettaessa käyttökokemuskysely ei ollut ehtinyt valmistua - on
ollut positiivista ja ilahtunutta.
3.3. Tekniset kokemukset
- Tupas-toiminnallisuus toteutettiin Perl:illä, koska sen
ilmaisuvoiman ja ominaisuuksien katsottiin olevan tarpeeksi riittäviä
pilottiprojektin tarpeeseen. Java-pohjainen toteutus olisi kenties
vielä helpommin siirrettävissä eri ympäristöihin, mutta application
server:in päälle rakennetun toiminnallisuuden katsottiin olevan liian
raskaan operaatioon, joka on loppujen lopuksi näinkin helppo.
- Salasananvaihtojärjestelmän integroiminen
käyttäjätunnushallintajärjestelmään ei ollut loppujen lopuksi
vaikeata, kiitos toimivan tunnushallintainfrastruktuurin.
- Uuden salasanan päivittäminen tietojärjestelmiin osoittautui
haastavaksi, mutta siinäkin pärjättiin loppujen lopuksi käyttämällä
salasanan vaihtoon toteutettua rajapintaa, jossa kutsuttavalle
ohjelmalle annetaan käyttäjätunnus ja salasana, ja ohjelma palauttaa
paluuarvonaan salasananvaihdoksen onnistumisen/epäonnistumisen. Tämä
paluuarvo välitetään takaisin käyttäjälle.
- Järjestelmän vasteaika salasanaa vaihdettaessa on tyypillisesti
n. 3 sekuntia, harvoin kuitenkaan yli 5 sekuntia. Tämä on
osoittautunut hyväksyttäväksi viipeeksi. Pankkien järjestelmien
käsittelyviiveet autentikoinnissa voivat olla suurempia, mutta niihin
ei voi vaikuttaa.
- Pankkitunnusten käyttö muissakin palveluissa on herättänyt
kiinnostusta ja kysyntää. Tässä projektissa on kuitenkin toteutettu
vain autentikointi käyttäjätietokantaan vertailemalla ja salasanan
vaihtaminen. Tupas.pm -moduuli ei sellaisenaan sovellu mihinkään
sähköiseen kaupankäyntiin, eikä sitä ole siihen toki tarkoitettukaan.
- Erilaisten virhetilanteiden hallinta on ongelmallista. Tässäkin
päädyttiin käyttäjälle näytettävään geneeriseen, mitäänsanomattomaan
virheilmoitukseen, ja järjestelmän syslog:iin kirjoitettavaan
kuvaavampaan virheilmoitukseen.
- Palvelun lokalisointi useammalle kielelle on hankalaa. Pankit
tukevat "virallisesti" kolmea kieliversiota palvelusta: suomi,
englanti ja ruotsi. TaY:lla päätettiin rakentaa palvelulle vain
suomen- ja englanninkieliset WWW-sivut. Toteutukseen oli kaksi
vaihtoehtoa: kokonaan erilliset sivut eri kielille, tai sitten
kaksikieliset hybridisivut. TaYTupas-järjestelmä on toteutettu
hybridinä, libtupas:ia on alettu rakentamaan helpommin
lokalisoitavaksi, mutta sen viimeistely, samoin kuin palvelun
layout:in kustomointi, jätetään palvelua kehittävän tahon
harteille.
4. KORKEAKOULUN JATKOSUUNNITELMAT
TaYTupas-järjestelmä jätetään käyttöön ja sen jatkokehittämistä
harkitaan koskemaan opiskelija- tai peruspalvelutunnuksen
lisäksi muidenkin järjestelmien unohtuneiden salasanojen vaihtoa.
Tätä dokumenttia kirjoitettaessa jatkokehitykselle ei ole asetettu
aikataulua. Pilottiprojektin tiimoilta kuunnellaan myös uteliaina
muiden korkeakoulujen suunnitelmia jatkokehityksen suhteen.
ABSTRACT
Tupas.pm provides a TUPASv2 authentication interface for use in perl
CGI programs. Tupas authentication can be used, for example, in
situations where a user has forgotten his/her account's password, and
needs to authenticate to a password change service to set a new
password.
Tupas authentication works in the following way:
- Service provider forms a Tupas service agreement with
Tupas-enabled banks. In Finland, these include currently Nordea,
Osuuspankki, and Sampo Pankki.
- Service provider sets up the required web service
- Using a web browser, user enters provider's web service and
selects the bank whose customer he/she is. The service redirects user
to this bank's authentication service.
- User authenticates himself/herself in the bank's service using the
(one-time) keys and codes provided by the bank
- Upon successful bank authentication, the bank sends the user back
to provider's web service. The user brings Tupas authentication data
(user's Social Security Number (SSN)) to the web service with his/her
web browser.
- Provider's web service verifies the integrity of the Tupas
authentication data and then proceeds to authenticate the user based
on the SSN.
Tupas.pm is a perl module providing methods for Tupas authentication.
Upon successful authentication, it returns the username of the
authenticated user.
System requirements:
- Apache WWW server or similar environment for perl CGI scripts
- Perl + some CPAN modules
- User information database (file containing username and social security numbers of each user)
- (user account management system)
- Service agreement with Tupas-capable banks