EID email jms

Allikas: eid.eesti.ee

E-mail, privaatvõrgud ja arvutisse sisselogimine

Töölauarakendused

ID-kaardi baastarkvara pakub PKCS#11 liidest ID-kaardile ning Digi-ID-le, tänu mille saab neid kasutada kõigis rakendustes, mis oskavad läbi selle liidese suhelda. Mõnes olukorras piisab rakendusele ID-kaardi toe lisamiseks sellest, et see konfigureeritakse olemasoleva krüptoiseadme mooduli asemel või lisaks kasutama ka ID-kaardi moodulit. Siin saab analoogseks näiteks tuua avaldusi töötleva teenuse näiterakenduse, kus DigiDoc-teegis piisas PKCS#11 mooduli asukoha muutmisest, et ID-kaardi asemel kasutada krüptopulka.

Windowsi all pakub ID-kaardi baastarkvara ka Cryptographic Application Programming Interface[1][2] ehk CryptoAPI või lihtsalt CAPI liidest. Kuna tegu on Microsofti enda loodud ning toetatud liidesega, siis on mõned asjad selle all mugavamad (näiteks süsteemse sertifikaadihoidlaga suhtlemine) ning ainult Windowsi rakendust arendades võib olla selle kasutamine lihtsam ning pakkuda rohkem võimalusi. Ka siin on olukord, et kui on rakendus räägib juba CAPI provider'iga, siis piisab selle ümber seadistamisest, et kasutada hoopis ID-kaarti.

Nagu eespool vihjatud, siis ka krüptopulga tootja poolt pakutud SafeNet Authentication Client tarkvara sisaldab PKCS#11 ning CAPI liideseid, tänu mille saab krüptopulka täpselt samamoodi kasutada.

Siin on ka tarvilikkuse nõue ehk kui töölauarakendus ei toeta PKCS#11 või CAPI liideseid, siis on nendes eID-dokumentide kasutamine tõenäoliselt väga keeruline ning vajab rakenduse täiendamist.

Märkus: Siin tuleb meeles pidada, et ID-kaart ning krüptopulk ise tegelevad siiski vaid räside allkirjastamisega ning andmete dekrüpteerimisega. Muu funktsionaalsusega, nagu näiteks DDOC-vormingus konteineri loomine, tegeleb siiski DigiDoc-teek või mõni muu tarkvara. Ehk siis nende krüptoseadmetega saab teha täpselt neid toiminguid, mida liidesed pakuvad, ning suurema funktsionaalsuse jaoks tuleb töölauarakendust täiendada.

Meiliprogrammid

Üks grupp programme, mis PKCS#11 liidese kasutamist hästi demonstreerivad, on meilikliendid, kus saab kirju krüpteerida ning allkirjastada. ID-kaardi kasutamine levinud meiliprogrammides (Outlook, Thunderbird) on veebis laialt käsitletud teema (ning seotud rohkem lõppkasutajate kui arendajatega), mistõttu anname üksnes viidad konfigureerimisjuhistele.

Virtuaalsed privaatvõrgud

Samuti on eID dokumente hea kasutada virtuaalsetesse privaatvõrkudesse (VPN) autentimiseks. Kuna VPN lahendusi on mitmeid ning nende seadistamise kohta on palju juhendeid, siis taaskord anname vaid mõned viidad konfigureerimisjuhistele.

Kehtivuskinnituse küsimine

Mitmed töölauarakendused toetavad eID dokumentidelt loetud sertifikaatidele kehtivuskinnituse küsimist. AS Sertifitseerimiskeskuse OCSP-responderiga on siin aga paar konksu:

  • Kui SK-ga pole tehtud eraldi lepet, et lubada ligipääs kindlalt IP-lt, siis tuleb kehtivuskinnituse päringud allkirjastada SK poolt antud juurdepääsutõendiga. Kui töölauarakendus aga ei toeta päringute allkirjastamist, siis ei saa neid ka esitada.
  • Vastusesse OCSP-responderi sertifikaadi lisamine on valikuline ning SK responder seda ei tee. Mitmed rakendused aga (nt Apache httpd ning Microsoft IIS veebiserverid) ei toeta ilma sertifikaadita vastuseid ning seega ei saa nad kehtivuskinnitust küsida.

Kui töölauarakendus toetab nii päringute allkirjastamist kui ka sertifikaadita vastuseid, siis saab sellega teha kehtivuskinnituse päringuid eID dokumentide sertifikaatidele.

Hulgaliselt tehnilisemale Linuxikasutajale suunatud teavet leiab ka lehelt Eesti ID-kaardi kasutamine Debianiga.

ID-kaardiga sisselogimine Windowsisse

Domeeni sisselogimine

Domeeni logimine on ID-kaardi baastarkvaras toetatud alates versioonist 3.5 ning oma domeeni seadistamiseks lisakomponente installeerida ei ole vaja. Küll aga pakub SK süsteemiülematele juhendit ja skripti, mis võimaldavad sertifikaatide kergemat haldust Windows Vista, Windows 7 ja Windows Server 2008 käitavates klientarvutites.

Domeeni logimist soovitatakse kasutada koos autentimissertifikaatide kehtivusinfot väljastava kehtivuskinnitusteenusega, mille kohta saab lisainfot SK kehtivuskinnitusteenus lehelt.

Alternatiivse lahendusena on võimalik kasutada IDLogin komponenti, mida pakub litsentsitasu eest JaJa Arendus

Eraldiseisvasse arvutisse sisselogimine

Windowsisse kiipkaardiga sisselogimise tugi on vaikimisi võimalik ainult domeeni ühendatud arvutites; autonoomsetes arvutites see puudub. Selle funktsionaalsuse lisamiseks autonoomsesse arvutisse tuleks kasutada EIDAuthenticate rakendust:

  1. Laadi alla paigalduspakk aadressilt http://www.mysmartlogon.com/products/eidauthenticate.html ja käivita see;
  2. Windowsi juhtpaneelist käivita sinna lisandunud valik "Smart Card Logon"
    • Soovi korral klõpsa ka nuppu "Check online database for known incompatibilities", et veenduda, kas käesolev kaart toimib rakendusega. Sobima peaksid kõik Eesti ID-kaardid.
  3. Klõpsa "Use preconfigured card", kuna ID-kaartidel on juba vajalikud sertifikaadid olemas.
  4. Kahest pakutavast sertifikaadist vali esimene, isikutuvastussertifikaat. Õige sertifikaadi valikut kinnitab see, kui jaotistes "Crypto" ning "Encryption" on kõik korras (kui kogemata valida allkirjastamissertifikaat, kuvatakse mõlemas veateated).
    • Kuna isikutuvastussertifikaadil puuduvad rakenduse soovitud Extended Key Usage bitid, siis kuvatakse jaotises "Trust" veateade. Sellest möödasaamiseks tuleb vastav kontroll välja lülitada, klõpsates "Don't check EKU".
    • Kui kuvatakse veateade, et sertifikaat pole usaldatud, siis peab veenduma, et ID-kaardi väljaandja sertifikaadid oleks arvutisse paigaldatud (eriti kehtib see testkaartide korral, mille väljaandja sertifikaate ei paigaldata koos baastarkvaraga).
  5. Pärast järgmisele lehele liikumist küsitakse kasutajakonto parooli, mida on vaja kasutaja sisselogimiseks. Soovitatav on valida "Launch a test after the completion of this wizard", et veenduda seadistuste korrektsuses.
    • Kuigi rakendus töötab ka juhul, kui kasutajal pole parooli, ei oma see eriti mõtet, kuna siis saab sama hästi ka ilma ID-kaardita sisse logida.
  6. Pärast järgmisele lehele liikumist küsitakse kasutajalt testimiseesmärgil ID-kaardi PIN1. Kui kõik õnnestus, siis on seadistamine sellega lõpetatud.

Kui edaspidi arvuti sisselogimisekraanil sisestada rakendusele tuttav ID-kaart, siis tekib lisavalik "Smart card credential", millega saab pärast PIN1 sisestamist kaardiga seotud kontosse sisse logida.

NB! EIDAuthenticate kontrollib sisselogimiseks kasutatud sertifikaadi kehtivust ainult sellel oleva algus- ning lõpukuupäeva järgi, s.t ei vaadata tühistusnimekirju ega küsita kehtivuskinnitust.

ID-kaardiga sisselogimine Linuxisse

ID-kaardiga sisselogimist Linuxis on võimalik teha kasutades OpenSC projekti PKCS#11 PAM autentimismoodulit.[3]

Lisainfot saab ametlikust dokumentatsioonist, millel ka järgnev põhineb.

Paigaldamine

Debiani-põhistel distributsioonidel saab vajaliku mooduli libpam-pkcs11 pakist. Teistes distributsioonides võib see moodul samuti pakihalduriga kättesaadav olla.

Kui valmisehitatud pakki aga ei leidu, siis tuleb moodul ehitada lähtekoodist. Kood on kättesaadav ametlikult kodulehelt ning ehitamine ja paigaldamine käib "tavaliselt":[4]

$ ./configure
$ make
# make install

Seadistamine

Paki seadistamine:[4][5]

  1. Luua kaust /etc/pam_pkcs11/ seadistuste jaoks.
  2. Kopeerida näitekonfiguratsioon sinna kausta ning panna nimeks pam_pkcs11.conf. Debiani-põhistel distributsioonidel asub näide /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz (sel juhul tuleb ta kindlasti ka enne lahti pakkida). Lähtekoodis asub see etc/ kaustas.
  3. Luua kaust /etc/pam_pkcs11/cacerts/ ning sinna laadida sisselogimiseks kasutatavate sertifikaatide väljaandjate sertifikaadid. Eesti ID-kaartide puhul on väljaandjaks SK ning sertifikaadid kättesaadavad nende kodulehelt.
  4. Pakiga on kaasas utiliit pkcs11_make_hash_link (lähtekoodis asub see kaustas tools/), millega saab lihtsalt luua viitu sertifikaatidele kasutades nende räsisid. See on vajalik selleks, et leida õige sertifikaat kiirelt tema räsi järgi, ent siiski säilitada inimloetavad nimed.
    # pkcs11_make_hash_link /etc/pam_pkcs11/cacerts/
    • Näiteks kahe eespool välja toodud testsertifikaadi puhul on viidad vastavalt 600c2b9f.0 ja ecc5099c.0.
    • NB! pkcs11_make_hash_link on vigane ning ei pane sertifikaatide failinimesid jutumärkidesse. Seetõttu ei tohi /etc/pam_pkcs11/cacerts/ kaustas olevad sertifikaadid sisaldada tühikuid ega muid erisümboleid.
  5. (Valikuline) Kui ei ole soovi iga kord sisselogides käia internetist sertifikaatide tühistusnimekirja küsimas, siis võib need kohalikku arvutisse alla laadida. Sellisel juhul tuleb aga ise vastutada nende uuendamise eest!
    1. Luua kaust /etc/pam_pkcs11/crls/ ning sinna laadida sertifikaatide tühistusnimekirjad. SK omad on taaskord kättesaadavad nende kodulehelt.
    2. Kasutada pkcs11_make_hash_link tööriista, et luua viidad. Ka tühistusnimekirjade failinimed ei tohi sisaldada tühikuid ega muid erisümboleid.
  6. Seadistada /etc/pam_pkcs11/pam_pkcs11.conf. Üldiselt on ta hästi dokumenteeritud ning tänu selle lihtsasti muudetav. Kindlasti soovitaks kasutatava PKCS#11 mooduli cert_policy väärtuseks panna "ca,signature,crl_auto". See tagab, et kontrollitakse sertifikaadi väljaandjat, PIN'i ning ka tühistusnimekirju. Kui internetist ei soovita tühistusnimekirju alla laadida, siis viimaseks väärtuseks panna crl_offline.

ID-kaardi sidumine kasutajakontoga

Kuna ID-kaardil oleva info põhjal ei saa teada, millisele infosüsteemi kasutajale see kuulub, tuleb kaardid siduda kasutajakontodega. Selliseks kaardistamiseks (mapping) on mitmeid võimalusi ning neid on võimalik ka ise juurde luua.[6]

Pakkide ja lähtekoodiga on kaasas ka mõned näitekonfiguratsioonid sertifikaadi omaniku, selle räsi või sellel oleva e-maili aadressi põhjal kasutaja leidmiseks.

Allolevas näites on kasutatud kasutaja tuvastamist sertifikaadi omaniku põhjal. Selline lahendus ei vaja uuendamist, kui kasutaja sertifikaat (ning seega ka selle räsi) muutub ning on parem kui ainult e-maili kasutamine. Mooduliga on kaasas ka mitmed teised, võimsamad kaardistamismoodulid (eriti võib huvi pakkuda LDAP-moodul), ent lihtsuse mõttes me neid ei demonstreeri.

  1. Seadistada /etc/pam_pkcs11/pam_pkcs11.conf:
    1. Määrata use_mappers väärtuseks subject, null. Siia võib lisada ka teisi mooduleid, ent näite jaoks on see minimaalne väärtus. Moodul null peab alati olema viimane.
    2. Seadistada mapper subject plokk. Vaikeväärtused peaksid sobima, ent need tasub siiski üle vaadata.
    3. Seadistada mapper null plokk. See moodul kas alati keelab sisselogimise või alati õnnestub ning tagastab vaikekasutaja (nt nobody). Taas peaksid sobima vaikeväärtused.
  2. Luua kaardistus:
    1. Sisestada sisselogimiseks kasutatav ID-kaart ning käivitada PAM-mooduliga kaasasolev pkcs11_inspect rakendus, mis kuvab kaardistuse jaoks vajaliku info. Loomulikult võib selle info ka ise välja uurida, ent nii kuvatakse see täpselt sellisel kujul nagu kaardistamiseks vaja.
    2. Luua mapper subject plokis viidatud mapfile, näiteks /etc/pam_pkcs11/subject_mapping. Sinna lisada rida kujul ... -> <kasutaja>, kus "..." on pkcs11_inspect poolt antud info ning "<kasutaja>" kaardiomaniku kasutajanimi.
      • NB! Tühikud kahel pool "->" on vajalikud ning neid ei tohi ära jätta.
    3. Käivitada PAM-mooduliga kaasas olev pklogin_finder rakendus. See kuvab sisestatud kaardile vastava kasutajanime ning aitab veenduda, et kaardistamine õnnestus.

Näiteks test-ID-kaardiga näeks subject_mapping välja järgmiselt:

# Mapping file for Certificate Subject
# format: Certificate Subject -> login
/C=EE/O=ESTEID/OU=authentication/CN=M\xC3\x84NNIK,MARI-LIIS,47101010033/SN=M\xC3\x84NNIK/GN=MARI-LIIS/serialNumber=47101010033 -> mariliis

Lisaabi kaardistuste loomiseks leiab sellest juhendist.

PAMi seadistamine

Et moodul kasutusele võtta, tuleb ta PAM-is (Pluggable Authentication Module) ära seadistada. Selle lihtsustamiseks pakub vahendeid pam-auth-update.[7][8]

Esiteks tuleb lisada kausta /usr/share/pam-configs/ uus fail (nimi pole oluline, võib olla näitaks "pkcs11") järgmise sisuga:

Name: PKCS#11 authentication
Default: no
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_pkcs11.so
  • Name - mooduli nimi
  • Default - kas moodul on vaikimisi kasutusel
  • Priority - kasutatakse moodulite järjestamiseks
  • Auth-Type - mooduli tüüp
  • Auth - rida, mis lisatakse PAM-autentimismoodulite konfiguratsioonifaili

NB! Et vältida enda arvutist väljalukustamist, tuleb enne jätkamist mõnes teises terminalis juurkasutajana sisse logida. Kui seejärel midagi valesti läheb, siis saab seda terminali kasutada vea kõrvaldamiseks või süsteemi taastamiseks.

Järgmisena tuleb juurkasutaja õigustes käivitada käsk pam-auth-update. Seepeale kuvatakse dialoog, kust saab PKCS#11 mooduli aktiveerida (kui see pole juba vaikimisi aktiveeritud). Valides "OK" rakendatakse muudatused, misjärel peaks saama kasutada ID-kaarti arvutisse sisselogimiseks. Seda saab kohe katsetada su või sudo käsuga.

Kui midagi läks valesti, siis tuleb kasutada varasemalt avatud varuterminali -- sellega saab pam-auth-update uuesti käivitada, et vigane moodul keelata.

Allikaviited

  1. http://msdn.microsoft.com/en-us/library/ms867086.aspx
  2. http://msdn.microsoft.com/en-us/library/windows/desktop/aa380255%28v=vs.85%29.aspx
  3. http://www.opensc-project.org/pam_pkcs11/
  4. 4,0 4,1 http://www.opensc-project.org/doc/pam_pkcs11/pam_pkcs11.html#install
  5. http://www.opensc-project.org/doc/pam_pkcs11/pam_pkcs11.html#HOWTO
  6. http://www.opensc-project.org/doc/pam_pkcs11/pam_pkcs11.html#mappers
  7. pam-auth-update(8) manpage Hurricane Electric lehel. http://man.he.net/man8/pam-auth-update
  8. http://www.gooze.eu/howto/gnu-linux-smartcard-logon-using-pam-pkcs11/configuring-pam-pkcs11