Substituir PGP 2.x por GnuPG
Anterior |  | Siguiente

# Usar claves PGP 2.x

Una clave pública importada se puede usar para cifrar documentos para un usuario de PGP 2.x y para verificar firmas que hayan sido generadas con una clave privada PGP 2.x Es importante comprender que no es posible usar una nueva clave OpenPGP para comunicarse con un usuario PGP 2.x, por tanto es necesario importar una clave vieja PGP 2.x para esta tarea.

## Cifrar un documento para un usuario de PGP 2.x

Para cifrar un documento se usan varias opciones en la línea de órdenes, y el documento que se va a cifrar debe ser especificado como un fichero.

    alice% gpg --rfc1991 --cipher-algo idea --compress-algo 1 --encrypt --recipient alice secret
    gpg:
    RSA keys are deprecated; please consider creating a new key and use this key in the future
    gpg: this cipher algorithm is depreciated; please use a more standard one!

Cada una de las opciones en la línea de órdenes son necesarias.

- La opción `rfc1991` se usa para forzar GnuPG a que sea más conforme con RFC 1991, que es la antigua especificación PGP implementada en PGP 2.x. Si se omite esta opción, la salida de GnuPG estará malformada e inutilizable por PGP 2.x.

- La opción `cipher-algo` especifica el algoritmo de cifrado simétrico con el que el documento será cifrado. En el caso especial de cifrar un documento para una clave pública de PGP 2.x, el algoritmo de cifrado que se especifique debe ser IDEA. Si se omitiera esta opción, el documento se cifrará generalmente con 3DES, un algoritmo que no está implementado en PGP 2.x.

- El algoritmo de compresión indica cómo se formará el resto de la orden. La opción `compress-algo` especifica a GnuPG que debe usar el viejo algoritmo de compresión zlib, que es el usado por PGP 2.x. A pesar de esto, GnuPG usa cabeceras de longitud parcial cuando cifra una cadena de tamaño desconocido, y esto no está implementado en PGP 2.x. El documento que se vaya a cifrar debe estar por lo tanto, en un fichero de modo que GnuPG sepa el tamaño total del documento a cifrar antes de comenzar. Por consiguiente, no es posible usar tuberías al utilizar claves PGP 2.x.

## Firmar un documento para un usuario de PGP 2.x

Firmar un documento con una clave vieja no es diferente a hacerlo con una clave nueva.

    alice% gpg --local-user 0x24E2C409 --sign document
    You need a passphrase to unlock the secret key for
    user: "Alice <alice@cyb.com>"
    1024-bit RSA key, ID 24E2C409, created 1999-09-18

    gpg: RSA keys are deprecated; please consider creating a new key and use this
    key in the future

En este ejemplo, la opción `local-user` se usa para especificar qué clave privada se utilizará para firmar. El fichero de salida es de la forma `document.gpg`. Si la firma va a ser verificada usando PGP 2.x, se debe renombrar a un nombre de fichero con la extensión `.pgp`.

## Firmar y cifrar un documento para un usuario de PGP 2.x

GnuPG no posee una implementación nativa para firmar un documento con una clave RSA y al mismo tiempo cifrarlo con una clave RSA. Sin embargo es posible usar una solución que requiere que se lleven a cabo unos cuantos pasos anteriormente. El proceso implica la creación de una firma acompañante y a continuación el uso de ésta para crear un fichero cifrado que pueda ser descifrado y verificado usando PGP 2.x.

Hay cuatro pasos. El primer paso genera una firma acompañante.

    alice% gpg --detach-signature --recipient alice --local-user 0x24E2C409 document

    You need a passphrase to unlock the secret key for
    user: "Alice <alice@cyb.com>"
    1024-bit RSA key, ID 24E2C409, created 1999-09-18

    gpg: RSA keys are deprecated; please consider creating a new key and use this
    key in the future

El segundo paso convierte el documento a un formato interno, literal, que va descifrado.

    alice% gpg --store -z 0 --output document.lit document

El tercer paso combina la firma acompañante con el documento literal. Es esto lo que PGP 2.x usa para verificar la firma después de descifrarlo.

    alice% cat Notes.sig Notes.lit | gpg --no-options --no-literal --store --compress-algo 1 --output document.z
    gpg: NOTE: --no-literal is not for normal use!

El cuarto y último paso implica el uso de GnuPG para descifrar el texto plano y la firma con el objeto de producir un documento firmado y cifrado que pueda ser descifrado y verificado por PGP 2.x.

    alice% gpg --rfc1991 --cipher-algo idea --no-literal --encrypt --recipient alice --output document.pgp document.z
    gpg: NOTE: --no-literal is not for normal use!
    gpg: RSA keys are deprecated; please consider creating a new key and use this
    key in the future
    gpg: this cipher algorithm is depreciated; please use a more standard one!

El documento firmado y cifrado también puede ir en armadura ASCII mediante el uso de las opciones de rigor.

    alice% gpg --rfc1991 --cipher-algo idea --no-literal --encrypt --recipient alice --output document.asc --armor document.z
    gpg: NOTE: --no-literal is not for normal use!
    gpg: RSA keys are deprecated; please consider creating a new key and use this
    key in the future
    gpg: this cipher algorithm is depreciated; please use a more standard one!

## Descifrar un documento gpg

Una clave privada importada se puede usar para descifrar documentos cifrados para esa clave, así como generar firmas mediante el uso de esa clave. Descifrar un mensaje no es, en este caso, más difícil que cuando se usa cualquier otra clave.

    alice% gpg secret.pgp

    You need a passphrase to unlock the secret key for
    user: "Alice <alice@cyb.org>"
    1024-bit RSA key, ID 24E2C409, created 1999-09-18

    gpg: NOTE: cipher algorithm 1 not found in preferences
    gpg: secret.pgp: unknown suffix
    Enter new filename [secret]:

De nuevo, en este caso, se puede evitar el aviso de error renombrando el fichero de entrada con una extensión `.gpg`. Si se ve un aviso de GnuPG del tipo ``cipher algorithm 1 not found in preferences'', se puede ignorar sin problemas.

## Verificar una firma de PGP 2.x

Verificar una firma usando generada con una clave PGP 2.x es sencillo.

    alice% gpg document.pgp
    gpg: document.pgp: unknown suffix
    Enter new filename [document]:
    File `document' exists. Overwrite (y/N)? y
    gpg: old style (PGP 2.x) signature
    gpg: Signature made Sat Sep 18 17:55:30 1999 EST using RSA key ID 24E2C409
    gpg: Good signature from "Alice <alice@cyb.org>"

El diálogo para renombrar el fichero puede ser evitado si el documento que se quiere verificar ha sido renombrado con una extensión `.gpg` antes de invocar gpg.

Anterior | Inicio | Siguiente
Importar claves PGP 2.x |  | Trabajar con firmas sobre texto