Next Previous Contents

6. GnuPG + PGP

En ser PGP un programa més antic que GnuPG, és normal que un usuari nou de GnuPG tingui ja instal·lada alguna versió de PGP al seu sistema, i que desitgi mantenir les seves claus velles després d'actualitzar-se a GnuPG. Doncs bé, no només és possible importar el contingut dels anells de claus, sinó que, alternativament, és possible que GnuPG gestioni els anells de claus de PGP 2.6.3 i PGP 5.0.

Hi ha altres «problemes» de compatibilitat que també tractarem en aquest capítol, com són les signatures de tipus V4 generades per GnuPG, o de l'ús per part de PGP dels algoritmes propietaris RSA o IDEA. Començarem per aquesta darrera qüestió.

6.1 Ús d'algoritmes no lliures

L'ús d'algoritmes amb patents restrictives per part de PGP representa un problema donat que la filosofia al voltant de GnuPG és la d'implementar un sistema criptogràfic lliure. Així doncs, les patents sobre aquests algoritmes n'impossibiliten una implementació total. Però GnuPG també pretén cumplir amb les normes dels «estàndards» d' OpenPGP.

Existeixen unes extensions per a RSA i IDEA que poden ser instal·lades i permeten un cert ús d'aquests algoritmes. Les claus generades per PGP 2.6.x són del tipus RSA, i l'algoritme de xifratge emprat és IDEA (també pot ser emprat per PGP 5.x). És possible conseguir el codi font d'aquests algoritmes als fitxers rsa.c i idea.c.

També existeixen els binaris instal·lables d'aquestes extensions per algunes distribucions de Linux , com per exemple Debian (comproveu-ho per a d'altres distribucions).

6.2 Signatura digital amb GnuPG

GnuPG és l'únic sistema capaç d'implementar signatures digitals V4 (segons OpenPGP) i aquesta n'és l'opció per defecte, però en aquest cas PGP no és capaç de verificar-les. És possible obligar a GnuPG a emprar V3, de dues maneres:


force-v3-sigs


$ gpg <opció> --force-v3-sigs [fitxer]

6.3 Importar anells de claus de PGP a GnuPG

Intentarem explicar com exportar les claus públiques i privades des dels nostres anells de claus PGP als anells de claus GnuPG.

NOTA: aquest mètode s'ha extret del PGP2GnuPG Howto de Caskey L. Dickson i no l'he provat personalment. L'última actualització del «PGP2GnuPG Howto» data del desembre de 1998. Per aquesta raó, i per poder integrar PGP amb GnuPG, recomano l'ús del mètode que s'explica a la secció següent, ja que és més senzill i fiable.

Suposant que tingueu instal·lades dues versions de PGP per a Unix/Linux, tenim els seus respectius anells de claus públiques i privades a $HOME/.pgp/:

A continuació utilitzaríem les ordres que corresponguin a cada verió per tal d'extreure les claus que desitgem.

Així, per extreure una clau de PGP 2.6.x:


$ pgp -kx UID fitxer anell

per exemple:


$ pgp -kx Pepe clavepepe2 ~/.pgp/pubring.pgp

Aquesta operació ens donaria el fitxer clavepepe2.pgp. Per extreure'n la nostra clau privada, no hauríem de fer cap altra cosa que indicar el nostre UID i el fitxer de les claus privades ~/.pgp/secring.pgp. No em consta que hi hagi cap manera d'indicar més d'un UID amb PGP 2.6.3, si en sabeu alguna, si us plau envieu-me un mensaje (NT: adreça de correu de l'autor d'aquesta secció i de la traducció a la versió castellana del document).

Una vegada s'ha extret la clau només s'ha d'importar al fitxer de GnuPG:


$ gpg --import clavepepe2

Per extreure una clau de PGP 5.0:


$ pgpk -x UID -o fitxer

per exemple:


$ pgpk -x Pepe -o clavepepe5

En aquest cas, el fitxer per defecte és el de claus públiques, i obtindríem el fitxer clavepepe5 tal i com hem indicat.

Una vegada més, només ens queda importar la clau:


$ gpg --import clavepepe5

Ja que PGP 5.0 no ens permet indicar el fitxer sobre el que volem operar, la extracció de la clau privada es complica una miqueta. La solució ve donada per un sistema superior com el de GnuPG:

Aquest procediment posa en risc la clau privada durant un breu període de temps, així que no hauria de ser emprat en un sistema multiusuari o públic. Els passos a seguir són:


$ pgpk -e UID

per exemple:

$ pgpk -e 0x614DB9FA

sec  1024 0x614DB9FA 1998-03-22 ---------- DSS        Sign & Encrypt

sub  1024 0x2B9E0571 1998-03-22 ---------- Diffie-Hellman

uid  Horacio <homega@vlc.servicom.es>

uid  Horacio <homega@correo.com>


1024 bits, Key ID 0x614DB9FA, created 1998-03-22

"Horacio <homega@vlc.servicom.es>"

"Horacio <homega@correo.com>"

Do you want to unset this key as axiomatic [y/N]? N

Do you want to unset this key as axiomatic [y/N]? N

Do you want to add a new user ID [y/N]? N

Do you want to change your pass phrase (y/N)? Y
Need old passphrase. Enter pass phrase: <introduïu la contrasenya>
Need new passphrase. Enter pass phrase: <deixeu-ho buit>
Enter it a second time. Enter pass phrase: <deixeu-ho buit>
Changing master key passphrase...

Changing subkey passphrase...

Do want to set this as your default key [y/N]? N

Keyrings updated.


$ gpg --export-secret-keys --secret-key-ring ~/.pgp/secring.skr 0x614DB9FA > lamevaclau

Tot això en una sola línia, i es crearà el fitxer lamevaclau.


$ gpg --import < lamevaclau

Swguidament torneu a introduir una contrasenya a la clau des de GnuPG.

6.4 Emprar anells de claus de PGP amb GnuPG

És possible evitar tota aquesta operació anterior, mantenint instal·lades les diferents versions de PGP al mateix temps que la de GnuPG. Essent GnuPG un sistema superior i més nou, pot reconéixer els anells de claus de PGP com a propis.

En el cas de PGP 5.0, n'hi ha prou amb afegir la ruta d'accés completa als fitxers de claus de PGP 5.0, precedit per keyring o secret-keyring, al final del fitxer ~/.gnupg/options segons correspongui:


keyring ~/.pgp/pubring.pkr
secret-keyring ~/.pgp/secring.skr

Els fitxers de claus de PGP 2.6.3 són reconeguts per GnuPG per defecto. Si això no fos així, només caldria repetir la mateixa operació anterior adaptant-la a les circumstàncies:


keyring ~/.pgp/pubring.pgp
secret-keyring ~/.pgp/secring.pgp

Si a continuació feu un llistat de les claus públiques amb GnuPG, observareu que llegeix els tres fitxers, ~/.gnupg/pubring.gpg, ~/.pgp/pubring.pkr, y ~/pubring.pgp:

$ gpg --list-keys

     /home/usuario/.gnupg/pubring.gpg
     --------------------------------
     pub 1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig)
     <dd9jn@gnu.org>
     pub 1024D/A95AF46C 1998-11-29 Brenno J.S.A.A.F. de Winter
     <brenno@dewinter.com>
     sub 3072g/A3CA62A0 1998-11-29

   (... y demás claves públicas DSA/ElGamal...)

     /home/usuario/.pgp/pubring.pkr
     ------------------------------
     pub 1024D/FAEBD5FC 1997-04-07 Philip R. Zimmermann <prz@pgp.com>
     sub 2048g/42F0A0A0 1997-04-07

   (... etc DSS/Diffie-Helman...)

     /home/usuario/.pgp/pubring.pgp
     ------------------------------
     pub 1024R/88A17FF5 1995-09-11 IRIS-CERT, Spain

   (... etc RSA...)

El mateix succeïria amb les claus privades:

$ gpg --list-secret-keys

     /home/horacio/.gnupg/secring.gpg
     --------------------------------
     sec 1024D/42337AE6 1999-03-14 Horacio (comentari)
     <homega@vlc.servicom.es>
     ssb 2048g/1F177864 1999-03-14

     /home/horacio/.pgp/secring.skr
     ------------------------------
     sec 1024D/7992AB40 1998-05-04 Horacio <homega@vlc.servicom.es>
     uid Horacio <homega@correo.com>
     ssb 2048g/917366AE 1998-05-04

     /home/horacio/.pgp/secring.pgp
     ------------------------------
     sec 1024R/32D4A925 1997-09-23 Horacio <homega@vlc.servicom.es>


Next Previous Contents