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ó.
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).
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:
$HOME/.gnupg/options
afegint la línia:
force-v3-sigs
$ gpg <opció> --force-v3-sigs [fitxer]
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/
:
PGP 2.6.x
PGP 2.6.x
PGP 5.x
PGP 5.x
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:
GnuPG
.
$ 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.
PGP 5.0
és incapaç de fer-ho, així que emprarem GnuPG
:
$ 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
.
É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>