Eesti ID-kaardi kasutamine Debianiga

Allikas: Kuutõrvaja
Redaktsioon seisuga 16. oktoober 2008, kell 11:37 kasutajalt Imre (arutelu | kaastöö) (Sertifitseerimiskeskuse teenuste kasutamine)

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

Ü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):
 ..

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

 $ 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]:Tartu
 Locality Name (eg, city) []:Tartu
 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 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.

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