Erinevus lehekülje "GnuPG kasutamine" redaktsioonide vahel

Allikas: Kuutõrvaja
(Võtme moodustamine)
(Võtme moodustamine)
80. rida: 80. rida:
 
   the command "--edit-key" to generate a subkey for this purpose.
 
   the command "--edit-key" to generate a subkey for this purpose.
  
Kasutaja võtmed asuvad nn võtmehoidjas (ingl. k. keyring), võtmehoidja sisu saab küsida öeldes
+
Kasutaja võtmed asuvad nn võtmehoidjas (ingl. k. keyring), võtmehoidja sisu saab küsida öeldes (-k abil näeb avalike võtmete vaadet)
  
 
   $ gpg -k       
 
   $ gpg -k       
86. rida: 86. rida:
 
   -----------------------------
 
   -----------------------------
 
   pub  1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
 
   pub  1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
 +
  uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>
 +
 +
-K võtme abil küsides näeb salajaste võtmete vaadet
 +
 +
  $ gpg -K
 +
  /home/mart/.gnupg/secring.gpg
 +
  -----------------------------
 +
  sec  1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
 
   uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>
 
   uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>
  

Redaktsioon: 22. mai 2009, kell 22:14

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õtme moodustamine

GnuPG kontekstis on kasutajal reeglina kasutada kolm võtmepaari

  • primaarne võtmepaar, mille salajast võtit kasutatakse ainult muude võtmete allkirjastamiseks
  • allkirjastamise võtmepaar, mida kasutatakse ainult allkirjastamiseks
  • krüptimise võtmepaar, mida kasutatakse ainult krüptimiseks

Kuna järgnevas tutvustataks OpenPGP kaardi kasutamist ja see lahendus oskab kasutada ainult 1024 bit RSA võtmeid, siis eranditult on kasutatud näidetes just selliseid võtmeid.

Primaarse võtme genereerimiseks tuleb öelda

 $ gpg --key-gen
 gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 Please select what kind of key you want:
    (1) DSA and Elgamal (default)
    (2) DSA (sign only)
    (5) RSA (sign only)
 Your selection? 5
 RSA keys may be between 1024 and 4096 bits long.
 What keysize do you want? (2048) 1024
 Requested keysize is 1024 bits
 Please specify how long the key should be valid.
        0 = key does not expire
     <n>  = key expires in n days
     <n>w = key expires in n weeks
     <n>m = key expires in n months
     <n>y = key expires in n years
 Key is valid for? (0) 10y
 Key expires at Mon May 20 22:04:42 2019 EEST
 Is this correct? (y/N) y
 
 You need a user ID to identify your key; the software constructs the user ID
 from the Real Name, Comment and Email Address in this form:
     "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
 
 Real name: Mart Kask
 Email address: mart.kask@loomaaed.tartu.ee
 Comment: Tartu Loomaaed
 You selected this USER-ID:
     "Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>"
 
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
 You need a Passphrase to protect your secret key.
 
 We need to generate a lot of random bytes. It is a good idea to perform
 some other action (type on the keyboard, move the mouse, utilize the
 disks) during the prime generation; this gives the random number
 generator a better chance to gain enough entropy.
 
 Not enough random bytes available.  Please do some other work to give
 the OS a chance to collect more entropy! (Need 268 more bytes)
 .......+++++
 .+++++
 gpg: /home/mart/.gnupg/trustdb.gpg: trustdb created
 gpg: key 6013CC32 marked as ultimately trusted
 public and secret key created and signed.
 
 gpg: checking the trustdb
 gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
 gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
 gpg: next trustdb check due at 2019-05-20
 pub   1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
       Key fingerprint = C510 B672 65EE 5C8D 5D61  1E96 8504 959C 6013 CC32
 uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>
 
 Note that this key cannot be used for encryption.  You may want to use
 the command "--edit-key" to generate a subkey for this purpose.

Kasutaja võtmed asuvad nn võtmehoidjas (ingl. k. keyring), võtmehoidja sisu saab küsida öeldes (-k abil näeb avalike võtmete vaadet)

 $ gpg -k       
 /home/mart/.gnupg/pubring.gpg
 -----------------------------
 pub   1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
 uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>

-K võtme abil küsides näeb salajaste võtmete vaadet

 $ gpg -K
 /home/mart/.gnupg/secring.gpg
 -----------------------------
 sec   1024R/6013CC32 2009-05-22 [expires: 2019-05-20]
 uid                  Mart Kask (Tartu Loomaaed) <mart.kask@loomaaed.tartu.ee>

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