GnuPG kasutamine
Sisukord
Sissejuhatus
GnuPG (Gnu Privacy Guard) on OpenPGP vaba implementatsioon, kusjuures 2009 aastal levitatakse kahte stabiilset versiooni
- GnuPG-1 (v. 1.4.x) - klassikaline lahendus
- GnuPG-2 (v. 2.0.x) - kaasaegsem modulaarne lahendus, sisaldab nt OpenPGP protsessorkaardi kasutamise tuge, pgp-agent teeb kasutamise töökohaarvutis mugavaks
Mõlemat versiooni saab kasutada paralleelselt samade nö andmetega (võtmetega).
Võtmeserverite kasutamine
Võtmete otsimiseks sobib öelda
$ gpg2 --keyserver hkp://pgp.mit.edu:11371 --search-keys "Priit Kask"
OpenPGP kaart
OpenPGP kaart http://www.g10code.com/p-card.html selliste omadustega protsessorkaart (alltoodud loetelu ei ole lõplik)
- kaardil saab asuda 3 üksteisest sõltumatut 1024 bit RSA võtit (allkirjastamine, krüptimine ja autentimine (ingl. k. signing, encryption, authentication)
- võtmete genereerimine kaardil või olemasolevate võtmete kaardile kopeerimine
- kaardil asuva võtme abil moodustatud allkirjade loendur
- saab kasutada Debian Lenny operatsioonisüsteemi standardse paketihalduse tarkvara abil (GnuPG-1)
- ISO 7816-4,-8 standarditega ühilduv
Muu seas soosib Fellowship of Free Software Foundation selle kaardi kasutamist oma liiklmete seas, kaardi kasutumisega saab tutvuda aadressil http://wiki.fsfe.org/Crypto_Card olevas wikis.
OpenPGP kaardi kasutamise ettevalmistamine
Selleks, et arvutiga saaks OpenPGP kaardi kasutada tuleb praktiliselt sooritada sarnased ettevalmistused nagu Eesti ID-kaardi kasutamiseks, http://kuutorvaja.eenet.ee/wiki/Eesti_ID-kaardi_kasutamine_Debianiga#Kaardilugeja_.C3.BChendamine_operatsioonis.C3.BCsteemiga
Lisaks peab olema paigaldatud gnupg pakett (GnuPG-1 tarkvara), Lenny puhul on tarkvara versioon 1.4.9
# apt-get install gnupg
Sellest, et kaardilugeja riistvara on korrektselt paigaldatud ning gpg programm suhtleb kaardiga edukalt annab tunnistust sarnane väljund
# gpg --card-status gpg: detected reader `SCM SCR 331 00 00 Application ID ...: D2760001240101010001000016000000 Version ..........: 1.1 Manufacturer .....: PPC Card Systems Serial number ....: 00001600 Name of cardholder: [not set] Language prefs ...: de Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Private DO 1 .....: [not set] Private DO 2 .....: [not set] Signature PIN ....: forced Max. PIN lengths .: 254 254 254 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: [not set] Encryption key....: [not set] Authentication key: [not set] General key info..: [none]
Tegu on nn initsialiseerimata olekus uue OpenPGP kaardiga.
Kaardi edasiseks kasutamiseks tuleb teha otsus
- võtmed genereeritakse kaardil
- võtmed genereeritakse arvutis ja kopeeritakse kaardile
Järgnevas kirjeldame teist kasutusjuhtumit sellistel põhjustel
- arvuti abil on parem kontrollida võtmete moodustamise protseduuri, arusaadavalt peab olema tegu turvalise arvutiga, nt arvutiga, mis kunagi ei lülitata otseselt avalikku võrku
- põhimõtteliselt võiks kaardile paigutada ainult signeerimise ja krüptimise subkey'isid, kasutaja primaarset võtit ei hoita kaardil
- Debian Lenny, SCR331 USB kaardilugeja ning OpenPGP kaardilugejaga reeglina õnnestus subkey'ide kaardil genereerimine
Sellisel puhul on eelduseks, et enne kaardiga tegelemist on subkey'id arvutis moodustatud ning nende kaardile paigutamiseks tuleb öelda
$ gpg --edit-key mart
GnuPG kasutamine epostikliendiga
Probleemid
- mida kasutada, kas PGP/MIME või S/MIME
- kõik kliendid ei pruugi mõista
- krüptitud sõnumeid ei töötle kasutaja võrguperimeetril töötav sisu-põhine antiviiruse ja antispämmi tarkvara
Eesti ID-kaardi kasutamine GnuPG-2 tarkvaraga
Paigaldada lisaks gnupg2 paketile gnupg-pkcs11-scd ja gpg-agent
# apt-get install gnupg-pkcs11-scd gpg-agent
Moodustada gnupg-pkcs11-scd jaoks seadistusfail
# egrep -v "^#|^$" /root/.gnupg/gnupg-pkcs11-scd.conf log-file /tmp/gnupg-pkcs11-scd.log verbose debug-all providers p1 provider-p1-library /usr/lib/opensc-pkcs11.so emulate-openpgpg
Ning gpg-agenti seadistusfail /root/.gnupg/gpg-agent.conf
# cat /root/.gnupg/gpg-agent.conf scdaemon-program /usr/bin/gnupg-pkcs11-scd pinentry-program /usr/bin/pinentry
Seejärel küsime kaardilt sertifikaatide andmed
# gpg-agent --server --no-use-standard-socket OK Pleased to meet you scd learn S SERIALNO D2760001240111111111111111111111 0 S APPTYPE PKCS11 S KEY-FRIEDNLY 328DD8D1643FAABF3AEC6362E2F8EB7FF2870309 /C=EE/O=ESTEID/OU=authentication\ /CN=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713 on ID-kaart (PIN1, Isikutuvastus) S KEYPAIRINFO 328DD8D1643FAABF3AEC6362E2F8EB7FF2870309 AS\x20Sertifitseerimiskeskus\ /PKCS\x20\x2315\x20SCard/A0055728/ID\x2Dkaart\x20\x28PIN1\x2C\x20Isikutuvastus\x29/01 S KEY-FRIEDNLY 6D60BFD83CDBF9227C1446EBBCE14EDBCEA17380 /C=EE/O=ESTEID/OU=digital signature\ /CN=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713 on ID-kaart (PIN2, Allkirjastamine) S KEYPAIRINFO 6D60BFD83CDBF9227C1446EBBCE14EDBCEA17380 AS\x20Sertifitseerimiskeskus\ /PKCS\x20\x2315\x20SCard/A0055728/ID\x2Dkaart\x20\x28PIN2\x2C\x20Allkirjastamine\x29/02 OK
Lisame saadud andmed kasutaja seadistusfaili /root/.gnupg/gnupg-pkcs11-scd.conf, kokku on faili sisu selline
log-file /tmp/gnupg-pkcs11-scd.log verbose debug-all providers p1 provider-p1-library /usr/lib/opensc-pkcs11.so emulate-openpgpg openpgp-auth 328DD8D1643FAABF3AEC6362E2F8EB7FF2870309 openpgp-sign 328DD8D1643FAABF3AEC6362E2F8EB7FF2870309 openpgp-encr 6D60BFD83CDBF9227C1446EBBCE14EDBCEA17380
Nüüd on võimalik kasutada gpg2 programmiga id kaarti, nt küsida, näidates esmalt gpg-agenti soketi, PID'i ning konstant ühe
# export GPG_AGENT_INFO="/tmp/gnupg-pkcs11-scd.pxRBik/agent.S:26245:1" # gpg2 --card-status Application ID ...: D2760001240111111111111111111111 Version ..........: 11.11 Manufacturer .....: unknown Serial number ....: 11111111 Name of cardholder: [not set] Language prefs ...: [not set] Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Signature PIN ....: forced Max. PIN lengths .: 0 0 0 PIN retry counter : 0 0 0 Signature counter : 0 Signature key ....: [none] Encryption key....: 6D60 BFD8 3CDB F922 7C14 46EB BCE1 4EDB CEA1 7380 Authentication key: 328D D8D1 643F AABF 3AEC 6362 E2F8 EB7F F287 0309 General key info..: [none]
Kahjuks aga ei õnnestu GnuPG-2'ga seostada kaardi võtmeid, et neid praktiliselt kasutama hakata
# gpg2 --card-edit Application ID ...: D2760001240111111111111111111111 Version ..........: 11.11 ... General key info..: [none] Command> admin Admin commands are allowed Command> generate gpg: key operation not possible: Unknown IPC comman
Kasulikud lisamaterjalid
- http://alpha.uwb.edu.pl/map/eToken_gpg_howto.shtml
- http://gnupg-pkcs11.sourceforge.net/index.html
- http://www.gnupg.org/documentation/manuals/gnupg/
- http://www.etokenonlinux.org/et/HowTos/eToken_and_GPG
- http://www.g10code.com/main.html
- http://www.gnupg.org/howtos/card-howto/en/smartcard-howto.html
- http://kuutorvaja.eenet.ee/wiki/Eesti_ID-kaardi_kasutamine_Debianiga
- http://wiki.debian.org/Smartcards/OpenPGP