Buscar en los contenidos del blog

La generación de una pareja de claves pública y privada (también llamadas claves asimétricas) se puede realizar con la herramienta gpg indicando la opción --gen-key:

{code class="brush:plain;gutter:false"}

gpg --gen-key

{/code}

Durante el proceso se solicitan varios datos como se puede comprobar a continuación. En este ejemplo se han dejado las opciones por defecto (tipo de clave: RSA, tamaño 2048, nunca caduca): 

{code class="brush:plain; highlight:[1,11,13,21,30,31,32,37,39,46,47]"}

usuario@Ubuntu:~/Documentos$ gpg --gen-key
gpg (GnuPG) 1.4.11; Copyright (C) 2010 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.

Por favor seleccione tipo de clave deseado:
   (1) RSA y RSA (predeterminado)
   (2) DSA y Elgamal
   (3) DSA (sólo firmar)
   (4) RSA (sólo firmar)
¿Su selección?: 
las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
¿De qué tamaño quiere la clave? (2048) 
El tamaño requerido es de 2048 bits
Por favor, especifique el período de validez de la clave.
         0 = la clave nunca caduca
        = la clave caduca en n días
      w = la clave caduca en n semanas
      m = la clave caduca en n meses
      y = la clave caduca en n años
¿Validez de la clave (0)? 
La clave nunca caduca
¿Es correcto? (s/n) s

Necesita un identificador de usuario para identificar su clave. El programa
construye el identificador a partir del Nombre Real, Comentario y Dirección
de Correo electrónico de esta forma:
    "Heinrich Heine (Der Dichter) "

Nombre y apellidos: Javier García
Dirección de correo electrónico: a12914057(arroba)nepwk.com
Comentario: Clave de ejemplo
Está usando el juego de caracteres `utf-8'.
Ha seleccionado este ID de usuario:
    «Javier García (Clave de ejemplo) »

¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? v
Necesita una frase contraseña para proteger su clave secreta.

Es necesario generar muchos bytes aleatorios. Es una buena idea realizar
alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar
la red y los discos) durante la generación de números primos. Esto da al
generador de números aleatorios mayor oportunidad de recoger suficiente
entropía.

No hay suficientes bytes aleatorios disponibles. Por favor, haga algún
otro trabajo para que el sistema pueda recolectar más entropía
(se necesitan 278 bytes más).
.......+++++
.....+++++
..+++++
+++++
gpg: clave 8ED627DC marcada como de confianza absoluta
claves pública y secreta creadas y firmadas.

gpg: comprobando base de datos de confianza
gpg: 3 dudosa(s) necesarias, 1 completa(s) necesarias,
modelo de confianza PGP
gpg: nivel: 0  validez:   1  firmada:   0  confianza: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/8ED627DC 2011-12-01
      Huella de clave = 9FB9 1D1E 732E 5DFF DA10  36F8 B284 727A 8ED6 27DC
uid                  Javier García (Clave de ejemplo) 
sub   2048R/1DD43FDA 2011-12-01

usuario@Ubuntu:~/Documentos$

{/code}

Listado de las claves existentes

Con la opción -k puedes comprobar las claves públicas que tienes generadas:

Si quieres consultar tus claves privadas, puedes usar la opción -K (mayúscula)

Exportación de clave pública

Si deseas que otras personas te puedan enviar archivos cifrados de manera que sólo tú puedas descifralos, debes hacerles llegar tu clave pública. Con esa clave pública, las otras personas podrán cifrar sus archivos originales y, al enviártelos, sólo tú podras descifrarlos con tu clave privada. Si alguien intercepta los archivos no podrán ser su contenido. Sólo tienen acceso a él la persona que tiene el archivo original, y tú que podrás descifrar la copia cifrada que te envía.

Para poder enviar la clave pública antes debes exportarla de forma que se cree un archivo que contendrá dicha clave pública. Para ello debes usar la opción --export, junto con -o (--output) para indicar el nombre del archivo que la contendrá:

{code class="brush:plain;gutter:false"}

gpg -o nombreArchivoClavePublica --export nombreUsuarioClave

{/code}

Donde nombreArchivoClavePublica será el nombre del archivo que contendrá la clave pública exportada (puede tener cualquier extensión, pero se suele usar .gpg), y nombreUsuarioClave es el nombre, correo o comentario que haga referencia a la clave que se desea exportar.

Por ejemplo:

gpg --output clavePublica.gpg --export Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Ese archivo generado es el que debes enviar a las personas que deban enviarte archivos cifrados.

Si se prefiere que el archivo generado con la clave pública pueda visualizarse como caracteres, debe usarse la opción -a (--armor).

Importación de clave pública

Si otra persona desesa que le envíes algún archivo cifrado con su clave pública, antes debe enviarte esa clave que habrá generado en un archivo con la opción de exportación anterior. Cuando tengas el archivo con la clave pública, deberás importarla a tu anillo de claves (lista de claves públicas y privadas que hay guardadas en tu ordenador).

Para importar la clave del archivo con gpg debes usar la opción --import:

{code class="brush:plain;gutter:false"}

gpg --import nombreArchivoClavePublica

{/code}

Borrado de claves privada y pública

Es posible eliminar las claves que han sido generadas previamente. Para poder borrar la clave pública, primero debe borrarse la clave privada usando la opción --delete-secret-key seguido del nombre y apellidos (si has usado espacios recuerda usar comillas) asignado en la clave, también puedes usar el comentario (o parte incluso parte de él), o bien del correo electrónico que se había indicado:

{code class="brush:plain;gutter:false"}

gpg --delete-secret-key "Nombre Apellidos"
gpg --delete-secret-key correo@electronico
gpg --delete-secret-key comentario

{/code}

Una vez eliminada la clave privada (también llamada clave secreta), ya puedes eliminar la clave pública con la opción --delete-key, usando también alguna de estas opciones:

{code class="brush:plain;gutter:false"}

gpg --delete-key "Nombre Apellidos"
gpg --delete-key correo@electronico
gpg --delete-key comentario

{/code}