Erinevus lehekülje "Eesti ID-kaardi kasutamine Debianiga" redaktsioonide vahel

Allikas: Kuutõrvaja
P (Thunderbird kasutamine eposti krüptimiseks)
(Thunderbird kasutamine eposti krüptimiseks)
227. rida: 227. rida:
  
 
[[Pilt:Id-sign-5.gif]]
 
[[Pilt:Id-sign-5.gif]]
 +
 +
Võimalik on samaaegselt ka kirja signeerida ning krüptida.
  
 
===Sertifitseerimiskeskuse teenuste kasutamine===
 
===Sertifitseerimiskeskuse teenuste kasutamine===

Redaktsioon: 7. märts 2009, kell 16:35

Sissejuhatus

Eesti ID-kaart on nn protsessorkaart, mis võimaldab autentimist ja allkirjastamist.

Tööleseadmine

Esmalt tuleb omandada ID-kaart ning ID-kaardilugeja, nt sobib mudel SRC-331, ehk kõige parem kui kaardilugeja ühendub arvutiga USB abil. Debian Etch ja Lenny sisaldavad paketihalduses ID-kaardi kasutamiseks sobivat tarkvara, mille koduleht asub aadressil http://ideelabor.ee/.

USB kaudu ühendatud ID-kaardilugeja kasutamise eelduseks on, et operatsioonisüsteem toetab USB seadmete kasutamist, sellest annab tunnistus peale kaardilugeja ühendamist lsusb sarnane väljund, kus on muu seas näha SCR331 seadmele vastav rida

 # lsusb
 Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 003 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
 Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 002 Device 006: ID 04e6:e001 SCM Microsystems, Inc. SCR331 SmartCard Reader
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ID-kaardiga suhtlemiseks vajaliku tarkvara paigaldamiseks tuleb öelda

 # apt-get install opensc pcscd libccid

Seejärel tuleb redigeerida kahte faili

  • Näitena jagatavas /etc/opensc/opensc.conf failis tuleb teha kolm muudatust
 # zcat /usr/share/doc/libopensc2/examples/opensc.conf.gz > /etc/opensc/opensc.conf

Leidke failist üles need parameetrid ning muutke nende väärtused sellisteks

 try_emulation_first = yes;
 lock_login = false;
 reader_drivers = pcsc, ctapi;
  • Failis /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist peavad sisalduma sellised read, leidke ja muutke olemasolevaid
 <key>ifdDriverOptions</key>
 <string>0x0004</string>

Seejärel seisake ja käivitage pcscd deemon

 # /etc/init.d/pcscd restart

Kontrollimaks, et tarkvara sai korrektselt paigaldatud küsime süsteemi ühendatud kaardilugejate nimekirja

 # opensc-tool -l
 Readers known about:
 Nr.    Driver     Name
 0      pcsc       SCM SCR 331 00 00

Ning küsime ID-kaardile kantud sertifikaatide nimekirja

 # pkcs15-tool -c
 X.509 Certificate [Isikutuvastus]
       Flags    : 0
       Authority: no
       Path     : 3f00eeeeaace
       ID       : 01
 
 X.509 Certificate [Allkirjastamine]
       Flags    : 0
       Authority: no
       Path     : 3f00eeeeddce
       ID       : 02

ID-kaardi kasutamine

pkcs15-tool utiliidi kasutamine

Üks lihtne ID-kaardi kasutusala oleks sertifikaadi kopeerimine ID-kaardilt, sedasi

 # pkcs15-tool -r 01
 -----BEGIN CERTIFICATE-----
 MIIEGjCCAwKgAwIBAgIESIQxaDANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQGEwJF
 RTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEPMA0GA1UECxMG
 RVNURUlEMRcwFQYDVQQDEw5FU1RFSUQtU0sgMjAwNzAeFw0wODA3MjEwNjQ5MTJa
 Fw0xMjA5MTEyMTAwMDBaMIGRMQswCQYDVQQGEwJFRTEPMA0GA1UEChMGRVNURUlE
 MRcwFQYDVQQLEw5hdXRoZW50aWNhdGlvbjEhMB8GA1UEAxMYT09MQkVSRyxJTVJF
 LDM3MDAzMjEyNzEzMRAwDgYDVQQEEwdPT0xCRVJHMQ0wCwYDVQQqEwRJTVJFMRQw
 EgYDVQQFEwszNzAwMzIxMjcxMzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
 3FR0AP2oX5NCs8+u/hNpnYWyB2eNrnWyG3JXsiqCo14uAaOVmMb82g73SRLPEnAG
 yxU/GtRuKT7iOg4f+HTy9bGBaJp6/N9uH8MNtkOzoDppMn909Rm+OqIaHMQkskFC
 Kd8X3deAtEwI/YektKKnPbFEZFfLxLKbxvB4WNhFbYECA1W7daOCATEwggEtMA4G
 A1UdDwEB/wQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwPAYD
 VR0fBDUwMzAxoC+gLYYraHR0cDovL3d3dy5zay5lZS9jcmxzL2VzdGVpZC9lc3Rl
 aWQyMDA3LmNybDAgBgNVHREEGTAXgRVpbXJlLm9vbGJlcmdAZWVzdGkuZWUwUQYD
 VR0gBEowSDBGBgsrBgEEAc4fAQEBATA3MBIGCCsGAQUFBwICMAYaBG5vbmUwIQYI
 KwYBBQUHAgEWFWh0dHA6Ly93d3cuc2suZWUvY3BzLzAfBgNVHSMEGDAWgBRIBt6+
 jIdXlYB4Y/qcIysroDoYdTAdBgNVHQ4EFgQUvIL+20MDRof3J9Avt6Z3d1obuAUw
 CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAajU/cJ7zVocAkJDgIrV8gXn3
 hZ9CM5k1/W3GVEEXqkdTHU/clW5D14PmC+f2a7rN2FxJ3bQuxU/xB6W4xKDZ9fys
 Y31lGxpPHIsHwqaPl93l1u3iaMo9835yMVfiZOi0Iq2y0ZlnPwVAOjWNUzMwikdj
 1ElhnHacFc4NrevOqgaOZIN2A1DIDgxMXLiR8PAHlPSnK8cXnClRXgcIT3p4OPYy
 rH6z7z5vZN4059dNaqZqVg5rlVrLS5/T+sK8PHxYcO+SKDZYobddJIv6i2XlpVAQ
 LgkChEiXI2Bd3AMfpwfVbAjDsHXasblBtut7k1MItT3YLaNZ/xq9BY/B7afXqg==
 -----END CERTIFICATE-----

Selle sertifikaadi sisu arusaadavamale kujule viimiseks tuleb öelda

 # pkcs15-tool -r 01 > /tmp/imre.pub
 # openssl x509 -in /tmp/imre.pub -noout -text
 Certificate:
   Data:
       Version: 3 (0x2)
       Serial Number: 1216622952 (0x48843168)
       Signature Algorithm: sha1WithRSAEncryption
       Issuer: C=EE, O=AS Sertifitseerimiskeskus, OU=ESTEID, CN=ESTEID-SK 2007
       Validity
           Not Before: Jul 21 06:49:12 2008 GMT
           Not After : Sep 11 21:00:00 2012 GMT
       Subject: C=EE, O=ESTEID, OU=authentication, CN=OOLBERG,IMRE,37003212713, SN=OOLBERG, GN=IMRE/serialNumber=37003212713
       Subject Public Key Info:
           Public Key Algorithm: rsaEncryption
           RSA Public Key: (1024 bit)
               Modulus (1024 bit):
 ..

Mozilla brauseri kasutamine autentimiseks

Nn Mozilla päritolu brauseri kasutamisel, nt Iceweasel puhul tuleb avada

 Edit -> Preferences -> Advanced -> Encryption -> Secutiry Devices -> Load

Ning avanenud dialoogis täita lahtrid nt selliselt

 Module Name: esteid
 Module filename: /usr/lib/onepin-opensc-pkcs11.so

Seejärel saab näiteks logida sisse riigiportaali, küsitakse PIN1 koodi

Id-auth-java-pin1.gif

Mozilla brauseri kasutamine allkirjastamiseks

Nt SEB pangas makset sooritades või https://digidoc.sk.ee/ portaali kasutamisel saab anda digitaalset allkirja. Selleks peab olema paigaldatud mozilla java plugini tarkvara pakett (millega koos paigaldatakse vajadusel ka JVM)

 # apt-get install sun-java5-plugin

Ning lisaks kopeerida teek

 # mkdir /tmp/teek && cd /tmp/teek
 # wget http://ideelabor.ee/downloads/pkcs11wrapper-linux.tar.gz
 # tar zxf http://ideelabor.ee/downloads/pkcs11wrapper-linux.tar.gz
 # find . -type f -ls
 442489  104 -rwxr-xr-x   1 501      501         99004 Apr 23  2004 ./libpkcs11wrapper.so

Seejärel tuleb otsida üles arvutist JVM kataloog

 # find /usr -type f -name java -ls
 173534   68 -rwxr-xr-x   1 root     root        65116 May 28  2008 /usr/lib/jvm/java-1.5.0-sun-1.5.0.16/jre/bin/java

mis tähendab, et

 JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16

Lõpuks tuleb kopeerida lahtipakitud teek kataloogi ${JAVA_HOME}/jre/lib/i386

 # cp libpkcs11wrapper.so /usr/lib/jvm/java-1.5.0-sun-1.5.0.16/jre/lib/i386

Lisaks peavad olema lingid, esimene on vajalik digidoc portaali kasutamiseks ja teine SEB pangas

 # ln -s /usr/lib/opensc-pkcs11.so /usr/lib/libopensc-pkcs11.so
 # ln -s /usr/lib/opensc-pkcs11.so /usr/lib/libesteid-pkcs11.so

Peale brauseri uuesti käivitamist esitatakse allkirja andmise juurde minemisel pisut eksitav tühi aken, kus tuleb valida Cancel

Id-allkiri-java-pin3.gif

ning seejärel valides Allkirjasta öeldakse, et loetakse andmeid kiipkaardilt ning küsitakse PIN2 koodi

Id-allkiri-java-pin2.gif

NB! Java tarkvara uuendamisel mõnel juhul muutub ka versiooni number nii, et muutub java asukoht failisüsteemis, nt

 /usr/lib/jvm/java-1.5.0-sun-1.5.0.16 -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.17

Sel juhul tuleb libpkcs11wrapper.so kopeerida samasse alamkataloogi kuhu ennegi uue java kataloogi sisse.

Thunderbird kasutamine eposti signeerimiseks

Eposti signeerimine toimub kasutaja enda eesti id kaardi autentimise salajase võtmega ning signatuur kinnitab, et kirja saatja valdab sertifikaadis olevale avalikule võtmele vastavat salajast võtit. Thunderbirdi ettevalmistamine signeerimiseks toimub vastava turvaseadme (ingl. k. security device) kirjeldamisega, sarnaselt Mozilla brauserile. Avada

 Edit -> Preferences -> Advanced -> Certificates -> Security devices -> Load

ning lisada

 Module Name: esteid
 Module filename: /usr/lib/onepin-opensc-pkcs11.so

Lisaks tuleb laadida Thunderbirdi SK juursertifikaat ning ESTEID-SK ja ESTEID-SK 2007 sertifikaadid, mida saab kopeerida www.sk.ee veebikohast

 Edit -> Preferences -> Advanced -> Certificates -> View Certificates -> Authorities -> Import

Kusjuures tuleb kindlasti vastata jaatavalt küsimusele, et neid usaldatakse eposti jaoks kasutamiseks

Id-sign-0.gif

Seejärel tuleb kirjeldada Thunderbirdis kasutajakonto seoses nn @eesti.ee aadressiga, nt imre.oolberg@eesti.ee, ning näidata, milliseid sertifikaate kasutatakse eposti allkirjastamise ning krüptimise juures, valida ülemine Select (Digital Signing)

Id-sign-1.gif

Peale PIN1 koodi sisestamist esitab arvuti valitud sertifikaadi andmed

Id-sign-2.gif

Valides järgmisena Encryption juures Select küsib arvuti, kas ma soovin kasutada sama sertifikaati (õigemini sama sertifikaadiga seotud salajast võtit) teiste kasutajate poolt mulle saadetud krüptitud kirjade (mis on krüptitud minu avaliku võtmega) lahtikürptimiseks, sobib vastata jaatavalt.

Kirja saatmine toimub tavapäraselt ainukese erinevusega, et enne kirja saatmist tuleb valida Security alt

 Digitally Sign This Message

Id-sign-3.gif

Kirja saajal peab olema postiprogrammi laaditud vähemalt SK juursertifikaat ning kiri pasitab sellisena

Id-sign-4.gif

Messsage Security aken avaneb vajutades programmiakna paremas servas asuvale kollane-punane värvi ümbriku kujutisele ja ütleb, et vaatlusalune kiri on signeeritud ning signatuur on kehtiv.

Thunderbird kasutamine eposti krüptimiseks

Eposti krüptimine toimub adressaadi nn autentimise avaliku võtmega, mis tähendab, et keegi teine peale vastava salajase võtme valdaja ei saa sõnumi teksti sisuga tutvuda. Thunderbirdi ettevalmistused on samad, mis on vajalikud signeerimiseks. Kirja saatmisel tuleb valida

 Security -> Encrypt This Message

Kirja lugemisel peab olema võimalik kasutada id kaarti ning tulemus võiks paista sarnane, tõsi antud juhul on lihtsalt saadetud kiri iseendale

Id-sign-5.gif

Võimalik on samaaegselt ka kirja signeerida ning krüptida.

Sertifitseerimiskeskuse teenuste kasutamine

Sertifitseerimiskeskus http://www.sk.ee/ pakub mitmesuguseid teenused.

Sertifikaadi kehtivuse kontrollimine

 $ openssl ocsp -issuer esteid.pem -cert idkaardiltsert.pem -url http://ocsp.sk.ee -noverify -text
 OCSP Request Data:
   Version: 1 (0x0)
   Requestor List:
       Certificate ID:
         Hash Algorithm: sha1
         Issuer Name Hash: 4508A41C355C0A72485FE2DF7B6A6788C6A55022
         Issuer Key Hash: 4806DEBE8C875795807863FA9C232B2BA03A1875
         Serial Number: 48843168
   Request Extensions:
       OCSP Nonce: 
           0410090A1FA4F0555E82C1DFB4722FC61696
 OCSP Response Data:
   OCSP Response Status: successful (0x0)
   Response Type: Basic OCSP Response
   Version: 1 (0x0)
   Responder Id: C = EE, O = ESTEID, OU = OCSP, CN = ESTEID-SK 2007 OCSP RESPONDER, emailAddress = pki@sk.ee
   Produced At: Oct  7 22:15:36 2008 GMT
   Responses:
   Certificate ID:
     Hash Algorithm: sha1
     Issuer Name Hash: 4508A41C355C0A72485FE2DF7B6A6788C6A55022
     Issuer Key Hash: 4806DEBE8C875795807863FA9C232B2BA03A1875
     Serial Number: 48843168
   Cert Status: good
   This Update: Oct  7 22:15:36 2008 GMT
 
   Response Extensions:
       OCSP Nonce: 
           0410090A1FA4F0555E82C1DFB4722FC61696
 cert.pem: good
       This Update: Oct  7 22:15:36 2008 GMT

Kus esteid.pem sertifikaadi saab kopeerida SK veebikohast.

LDAP serverist sertifikaatide kopeerimine

Sertifiseerimiskeskuse ldap serverist saab kopeerida kasutaja sertifikaadid (mis sisaldavad avalikke võtmeid) teades tema isikukoodi, nt

 $ ldapsearch -LLL -H ldap://ldap.sk.ee -x -b "c=EE" "(serialNumber=37003212713)"
 dn: cn=OOLBERG\2CIMRE\2C37003212713,ou=Authentication,o=ESTEID,c=EE
 objectClass: top
 objectClass: person
 objectClass: organizationalPerson
 objectClass: inetOrgPerson
 cn: OOLBERG,IMRE,37003212713
 serialNumber: 37003212713
 userCertificate;binary:: MIIEGjCCAwKgAwIBAgIESIQxaDANBgkqhkiG9w0BAQUFADBbMQswC
 QYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEPMA0GA1UECxMGRV
 ...
 z5vZN4059dNaqZqVg5rlVrLS5/T+sK8PHxYcO+SKDZYobddJIv6i2XlpVAQLgkChEiXI2Bd3AMfpw
 fVbAjDsHXasblBtut7k1MItT3YLaNZ/xq9BY/B7afXqg==
 
 dn: cn=OOLBERG\2CIMRE\2C37003212713,ou=Digital Signature,o=ESTEID,c=EE
 objectClass: top
 objectClass: person
 objectClass: organizationalPerson
 objectClass: inetOrgPerson
 cn: OOLBERG,IMRE,37003212713
 serialNumber: 37003212713
 userCertificate;binary:: MIID2jCCAsKgAwIBAgIESIQxaTANBgkqhkiG9w0BAQUFADBbMQswC
 QYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEPMA0GA1UECxMGRV
 ..

Sertifikaadipäringu tekitamine

Sertifikaadipäringu tekitamine võiks toimuda nt selliselt, sertifikaadipäringu alusel väljastab SK sertifikaate oma JUUR-SK -> KLASS3-SK sertifikaatide suhtes

 $ openssl req -nodes -new -newkey rsa:1024 > www.loomaaed.tartu.ee.csr
 ...
 Country Name (2 letter code) [AU]:EE
 State or Province Name (full name) [Some-State]:Harju
 Locality Name (eg, city) []:Tallinn
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: Tartu Loomaaed
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:www.loomaaed.tartu.ee
 Email Address []:

ID kaardi kasutamine chroot keskkonnast

Üks praktiline vajadus kasutada ID kaarti chroot programmiga moodustatud chroot keskkonnast oleks 64 bit Debiani operatsioonisüsteemis kasutada 32 bit Iceweaselit'i. Põhjusel, et 32 bit arhitektuurile on olemas Iceweaseli java plugin (pakett sun-java6-plugin), aga 64 bitile seda 2008 aastal pole. Omakorda on java vajalik, et saaks nt SEB pangas allkirjastada st sooritada ülekannet.

Tundub, et kui arvutile külge ühendatud ID kaarti on tarvis kasutada chroot käsu abil moodustatud chroot keskkonnast, siis tuleb öelda (pcscd deemon töötab nn absoluutses arvutis)

 # mount --bind /var/run/pcscd /srv/arvuti-32/var/run/pcscd

ning seejärel tuleb käivitada iceweasel nt selliselt läbi sudo

 $ sudo /usr/sbin/chroot /srv/arvuti-32 iceweasel

Selleks, et chroot keskkonnas käivitatud iceweasel saaks näidata oma pilti X serverile tuleb xhost käsuga kaasa aidata, nt öelda

 $ xhost +

Kirjeldatud asjakorralduse puhul ei ole tarvis chroot keskkonda ühendada külge mingeid muid failisüsteeme (nt /proc, /sys) ega käivitada seal deemoneid pcscd vms.

Sudo töötamiseks on vajalik omakorda sellist sisu /etc/sudoers faili

 User_Alias CHROOT_USERS = mart
 Cmnd_Alias CHROOT_CMD = /usr/sbin/chroot
 Host_Alias MORAAL = arvuti
 CHROOT_USERS MORAAL = (root) NOPASSWD: CHROOT_CMD

Milliseid turvariske selline asjakorraldus tema jaoks toob peab iga kasutaja ise hindama.

Kasulikud lisamaterjalid