Ero sivun ”HST” versioiden välillä
Jem (keskustelu | muokkaukset) |
Jem (keskustelu | muokkaukset) (Johdantoa muokattu.) |
||
Rivi 1: | Rivi 1: | ||
Väestörekisterikeskus tarjoaa Suomessa henkilön [http://www.vaestorekisterikeskus.fi/vrk/home.nsf/www/sahkoinenhenkilollisyys sähköisen tunnistamisen] (HST) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteita on [http://www.fineid.fi/vrk/fineid/home.nsf/pages/4DC96862A6BFA292C2256FFF00379DE9 kansalaisille] ja myös [http://www.fineid.fi/vrk/fineid/home.nsf/pages/592117F7739364D5C2256FFF00386FA6 organisaatiovarmenne] yrityksille, yhteisöille sekä näiden henkilöstölle. Varmenteen avulla voi tunnistautua verkkopalveluihin, allekirjoittaa ja salata sähköpostia. | Väestörekisterikeskus tarjoaa Suomessa henkilön [http://www.vaestorekisterikeskus.fi/vrk/home.nsf/www/sahkoinenhenkilollisyys sähköisen tunnistamisen] (HST) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteita on [http://www.fineid.fi/vrk/fineid/home.nsf/pages/4DC96862A6BFA292C2256FFF00379DE9 kansalaisille] ja myös [http://www.fineid.fi/vrk/fineid/home.nsf/pages/592117F7739364D5C2256FFF00386FA6 organisaatiovarmenne] yrityksille, yhteisöille sekä näiden henkilöstölle. Varmenteen avulla voi tunnistautua verkkopalveluihin, allekirjoittaa ja salata sähköpostia. | ||
Sähköinen henkilökortti toimii myös Linuxissa. | Sähköinen henkilökortti toimii myös Linuxissa. Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi vaihtoehtoa: | ||
* Fujitsu Services Oy:n ''mPollux Digisign Client'' | |||
* ''OpenSC'' sekä siihen liittyvät middleware- ja ajuri-ohjelmistot | |||
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n ''mPollux Digisign Client'' -kortinlukijaohjelmiston sähköistä kansalaisvarmennetta (esim. sähköinen henkilökortti) käyttäville. [http://www.fineid.fi/vrk/fineid/home.nsf/pages/CB47E5DD1C07BC25C2256FFF00393AFE Väestörekisterikeskuksen www-sivuilta] on mahdollista ladata ohjelmisto [[RHEL]]ille, [[Suse]]lle ja [[Ubuntu]]lle. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa. mPollux Digisign Client -ohjelmistoa ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta. | |||
Vaihtoehtona mPollux-ohjelmistolle on olemassa vapaat [http://www.opensc-project.org/ OpenSC]- ja [http://www.opensc-project.org/openct/ OpenCT] sekä [http://pcsclite.alioth.debian.org/ PCSC-lite] -ohjelmistot. Nämä ohjelmat on saatavilla useimpien Linux-jakeluiden paketinhallinnasta. Joissakin Linux-jakelussa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, jossa jakelun tekijä on valinnut sopivan yhdistelmän ohjelmia, jotka konfiguroidaan valmiiksi asennuksen yhteydessä. | |||
==Yleistä HST-kortista== | ==Yleistä HST-kortista== | ||
Rivi 17: | Rivi 19: | ||
==Laitteet ja ohjelmistot== | ==Laitteet ja ohjelmistot== | ||
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä, ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Kun on hankkimassa ulkoista lukijaa, kannattaa valita ns. | Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä, ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Kun on hankkimassa ulkoista lukijaa, kannattaa valita ns. ''CCID'' (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. Ennen CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin. Esimerkkejä CCID-protokollan mukaisista lukijoista ovat: | ||
* [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, ym. | * [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, ym. | ||
* [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310] | * [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310] | ||
* Dellin tiettyjen USB-näppäimistömallien integroidut lukijat | * Dellin tiettyjen USB-näppäimistömallien integroidut lukijat | ||
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä | Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä ''[http://www.cryptsoft.com/pkcs11doc/v230/ PKCS#11]''. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä ''Cryptoki'' (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. jaettuna kirjastona (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so. | ||
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: '' | PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: ''PCSC-lite'' ja ''OpenCT''. ''PC/SC'' (Personal Computer/Smart Card) on alunperin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina. | ||
OpenCT on OpenSC:n kehittäjien kehittämä "liima" ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC ( | OpenCT on OpenSC:n kehittäjien kehittämä "liima" ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään ''CCID''-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa. | ||
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa: | Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa: | ||
Rivi 58: | Rivi 60: | ||
===SSH=== | ===SSH=== | ||
OpenSSH tukee HST-kortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin | OpenSSH tukee HST-kortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin | ||
julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia apuohjelmia | julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia apuohjelmia ''ssh-agent'' ja ''ssh-add''. | ||
* Varmista, että ssh-agent käynnistyy esim. X11-session alussa; Miten tämä tapahtuu riippuu Linux-distrosta, X11-ympäristöstä, ym. | * Varmista, että ssh-agent käynnistyy esim. X11-session alussa; Miten tämä tapahtuu riippuu Linux-distrosta, X11-ympäristöstä, ym. | ||
** On hyvin mahdollista, että ssh-agent-ohjelman käynnistyksestä on huolehdittu omassa Linux-distrossasi — katso dokumentaatiosta tai ps-komennolla | ** On hyvin mahdollista, että ssh-agent-ohjelman käynnistyksestä on huolehdittu omassa Linux-distrossasi — katso dokumentaatiosta tai ps-komennolla |
Versio 3. toukokuuta 2011 kello 09.40
Väestörekisterikeskus tarjoaa Suomessa henkilön sähköisen tunnistamisen (HST) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on julkisen avaimen menetelmään perustuva laatuvarmenne. Varmenteita on kansalaisille ja myös organisaatiovarmenne yrityksille, yhteisöille sekä näiden henkilöstölle. Varmenteen avulla voi tunnistautua verkkopalveluihin, allekirjoittaa ja salata sähköpostia.
Sähköinen henkilökortti toimii myös Linuxissa. Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi vaihtoehtoa:
- Fujitsu Services Oy:n mPollux Digisign Client
- OpenSC sekä siihen liittyvät middleware- ja ajuri-ohjelmistot
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n mPollux Digisign Client -kortinlukijaohjelmiston sähköistä kansalaisvarmennetta (esim. sähköinen henkilökortti) käyttäville. Väestörekisterikeskuksen www-sivuilta on mahdollista ladata ohjelmisto RHELille, Suselle ja Ubuntulle. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa. mPollux Digisign Client -ohjelmistoa ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta.
Vaihtoehtona mPollux-ohjelmistolle on olemassa vapaat OpenSC- ja OpenCT sekä PCSC-lite -ohjelmistot. Nämä ohjelmat on saatavilla useimpien Linux-jakeluiden paketinhallinnasta. Joissakin Linux-jakelussa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, jossa jakelun tekijä on valinnut sopivan yhdistelmän ohjelmia, jotka konfiguroidaan valmiiksi asennuksen yhteydessä.
Yleistä HST-kortista
HST-kortti on yksi osa Väestörekisterikeskuksen PKI-järjestelmää. HST-kortin tarkoituksena on toimia henkilökorttina sähköisessä asioinnissa vastaavalla tavalla kuin kortti toimii perinteisenä henkilötodistuksena asioitaessa kasvokkain. Kortin toiminta perustuu ns. julkisen avaimen salausjärjestelmään: kortilla on tuotettu avainpari, joka koostuu julkisesta ja salaisesta avaimesta. Julkinen avain on sisällytetty varmenteeseen, joka avaimen lisäksi sisältää suppeat henkilötiedot: kortinhaltijan nimi ja sähköinen asiointitunnus. Varmenne on Väestörekisterikeskuksen digitaalisesti allekirjoittama.
Varmennetta ja salaista avainta voidaan verrata käyttäjätunnus/salasanapariin. Perinteisessä autentikoinnissa käyttäjä esittäytyy antamalla käyttäjätunnuksen ja todistaa olevansa käyttäjätunnuksen haltija esittämällä tunnusta vastaavan salasanan. Vastaavasti PKI-maailmassa henkilö esittytyy lähettämällä vastapuolelle varmenteensa, ja osoittaa olevansa varmenteen haltija todistamalla, että hänellä on hallussaan julkista avainta vastaava salainen avain. Mutta, päinvastoin kuin salasanan tapauksessa, salaisen avaimen hallussapito voidaan todistaa paljastamatta sitä kenellekään.
Julkisen avaimen salausjärjestelmän voi toki toteuttaa ilman älykorttiakin, mutta tällöin usein ongelmaksi muodostuu salaisten avainten hallinta. PKI-älykortin varsinainen idea onkin, että se on rakennettu pitämään salaiset avaimet suojassa muistissaan ja laskemaan niillä ilman tarvetta lukea niitä kortilta. Itse asiassa HST-kortti ei edes salli salaisten avainten siirtoa kortin ulkopuolelle.
Laitteet ja ohjelmistot
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä, ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Kun on hankkimassa ulkoista lukijaa, kannattaa valita ns. CCID (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. Ennen CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin. Esimerkkejä CCID-protokollan mukaisista lukijoista ovat:
- Omnikey 1021, 3021, 3121, ym.
- SCM SCR 3310
- Dellin tiettyjen USB-näppäimistömallien integroidut lukijat
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä PKCS#11. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä Cryptoki (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. jaettuna kirjastona (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so.
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: PCSC-lite ja OpenCT. PC/SC (Personal Computer/Smart Card) on alunperin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina.
OpenCT on OpenSC:n kehittäjien kehittämä "liima" ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään CCID-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa.
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa:
Ohjelma- ja jakelukohtaisia ohjeita
Firefox
- valitse Muokkaa → Asetukset → Lisäasetukset → Salaus → Turvallisuuslaitteet
- paina Lataa
- lisää: /usr/lib/opensc-pkcs11.so
tai
- valitse Edit → Preferences → Advanced → Encryption → Security Devices
- paina Load
- lisää: /usr/lib/opensc-pkcs11.so
Thunderbird
- valitse Muokkaa → Asetukset → Lisäasetukset → Varmenteet → Turvallisuuslaitteet
- paina Lataa
- lisää: /usr/lib/opensc-pkcs11.so
- edelleen lisäasetuksista valitse Näytä varmenteet
- valitse Varmentajat-välilehdeltä omat Väestörekisterikeskus CA:n alla olevat Varmenteet ja Muokkaa
- lisää valinnat: "Tämä varmenne voi todentaa WWW-sivustoja" ja "Tämä varmenne voi todentaa sähköpostittajia"
- valitse Muokkaa → Tilien asetukset
- halutun tilin Turvallisuus-valikosta valitse kortin todentamis- ja salausvarmenne
SSH
OpenSSH tukee HST-kortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia apuohjelmia ssh-agent ja ssh-add.
- Varmista, että ssh-agent käynnistyy esim. X11-session alussa; Miten tämä tapahtuu riippuu Linux-distrosta, X11-ympäristöstä, ym.
- On hyvin mahdollista, että ssh-agent-ohjelman käynnistyksestä on huolehdittu omassa Linux-distrossasi — katso dokumentaatiosta tai ps-komennolla
- Joissakin tapauksissa pitää itse huolehtia ohjelman käyttöönotosta; esimerkiksi Gentoo Linuxissa KDE-ympäristöllä pitää poistaa kommenteista ssh-agentin käynnistyskomennot tiedostossa
/etc/kde/startup/agent-startup.sh
- ssh-agent on ohjelma, joka säilöö ohjelman ajon ajaksi privaatteja salausavaimia ssh-ohjelman käyttöön, mutta se pystyy myös käyttämään PKCS#11-kirjastoa
- Avaimia lisätään ssh-agent -ohjelman muistiin ssh-add -ohjelmalla; älykorttien yhteydessä käytetään -s-optiota, jolla kerrotaan PKCS#11-kirjaston polku — tässä tapauksessa avainta ei siirretä ssh-agent -ohjelman muistiin vaan kortilla olevaa avainta käsitellään kirjaston rajapinnan kautta
- Kortin avaimeen liittyvä PIN kysytään
ssh-add
-komennon yhteydessä, ja se jää ssh-agent prosessin muistiin - Esim.
ssh-add -s /usr/lib/opensc-pkcs11.so
- Kortin on oltava lukijassa kun ssh-add -komento annetaan
- Avainparin julkinen avain on siirrettävä vastapuolen (= serverin)
~/.ssh/authorized_keys
-tiedostoon; avaimen saa tulostettua ssh-add -L -komennolla:
$ ssh-add -L ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCrFmt4STTrjGROHuP7uPrl6MRxqZ/hBKqHtIcvetXV3j9wIrle+Mk9laRRowWoo9x2DqL4IIhP6SFO4NUup0/kRZkIP9Bavm0PkkboRpILysu5G5fKYYL2sTrcNGmzKsF2ItLoTotK6rD9azX+ZvYly9irAfVAkWbd0lYyWrg78Q== /usr/lib64/opensc-pkcs11.so
Ubuntu
- Asenna paketit opensc, mozilla-opensc ja pcscd
- Liitä tietokoneeseen älykortin lukija.