GnuPG kasutamine

Allikas: Kuutõrvaja
Redaktsioon seisuga 22. mai 2009, kell 22:03 kasutajalt Imre (arutelu | kaastöö) (OpenPGP kaardi kasutamise ettevalmistamine)

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