• Suscríbete al Feed Espacio Linux
  • Suscríbete al Feed por Email
  • Sigue a Espacio Linux en Identi.ca
  • Espacio Linux también en Facebook
  • Sigue a Espacio Linux en Twitter
  • Sigue a Espacio Linux en Google +
          Iniciar sesión | Registrarse

Tutorial de GnuPG

Resumen.
Este documento esquemático sirve como guía para construir el par de llaves pública-secreta, utilizarlas en el correo electrónico y hacer accesible la llave pública de uno mismo.
Nota: Documento aún en construcción.

1 En qué consiste GnuPG

Como este tutorial pretende ser muy sencillo, seré breve. La idea
que existe detrás de GnuPG es la de proporcionar un sistema eficaz
de confianza y privacidad (al igual que PGP, sólo que GnuPG es software
libre y ofrece mayor tranquilidad a los usuarios). GnuPG es un reemplazo
libre al sistema PGP (Pretty Good Privacy) que hace tiempo cerró al
público su desarrollo y del que se descubrió hace no mucho una puerta
trasera
en una de sus últimas versiones que permitía romper cualquier
clave. GnuPG es casi totalmente compatible con PGP.

Cada persona dispone de dos llaves (también llamadas claves)
llamadas secreta (o privada) y pública. Estas dos
llaves son, al fin y al cabo, dos ficheros de ordenador (que llamaremos

secreta.key y publica.key). Podemos entender estas dos
llaves de la forma siguiente: la llave pública es nuestro
buzón de correo postal (el de toda la vida) y la llave secreta
es la llavecita de ese buzón. Nos interesará que la mayor cantidad
de gente disponga de nuestra dirección (buzón/llave pública) pero
la llavecita (llave secreta) la guardaremos para nosotros. Para completar
el símil, supongamos un mundo en el que sólo se envían postales. Entendemos
que, en general, los empleados y carteros de Correos actúan de buena
fe y no se dedican a leerlas o copiar las direcciones de remitentes
y escribir más tarde suplantando identidades.

Pero todos sabemos que siempre habrá gente que se aproveche de la
facilidad que ofrece este sistema y que intentará por todos los medios
conocer la correspondencia de sus vecinos. Las razones para espiar
de esta forma van desde motivos industriales/comerciales hasta el
clásico intrusismo.

Este mundo imaginario representa Internet en el apartado de los correos
electrónicos y la transmisión de la información en general. En la
mayoría de los casos, los datos circulan sin protección de ningún
tipo y cualquier persona que tenga conocimientos y tiempo necesario
puede dedicarse a espiar la correspondencia pública de los
ciudadanos. Es más, por si eso fuera poco, es trivial suplantar la
identidad de otra persona. Mi experiencia personal es bastante dura
en este aspecto pues he sufrido ambos problemas.

Hoy en día es cada vez más sencillo interceptar las comunicaciones
entre varias partes sin que éstas se den cuenta. Esto es debido a
la reproducibilidad sin pérdida de los datos digitales ya que copiar
una transmisión mientras ésta se está realizando puede resultar inadvertida
para los implicados en la comunicación. Quizá en un futuro podamos
emplear la criptografía cuántica basada en la rama homónima de la
Física que defiende la imposibilidad de ver un sistema cuántico
sin dejar marcas delatoras. De esta forma, el destinatario
sabría si alguien ha intentado espiar la transmisión porque el estado
cuántico de un sistema adjunto al mensaje revelaría esto mismo. Saber
si le están espiando a uno es muy importante a la hora de escoger
un canal seguro de comunicación.

Para evitar esta situación de desamparo existe desde hace tiempo un
nuevo sistema de envío de mensajes, que en nuestro mundo imaginario
podría tomar la forma de ‘postal dentro de sobre’, de manera que sólo
el receptor tiene acceso al envío efectuado debido a que la única
llave disponible del buzón la conserva él además de gozar de la intimidad
que asegura el sobre que contiene a la postal (supongamos un sobre
caja fuerte). Y para asegurarse de que realmente la carta la
envía la persona que aparece en el remite, al final del texto hay
siempre una suerte de frase escrita, en color verde y con letras góticas
-por ejemplo-, y que sólo el remitente sería capaz de escribir.

Aunque hay personas que acusan a los que utilizan la criptografía
de conspi-paranoicos lo cierto es que ya hay pruebas de sistemas
de espionaje a escala mundial.

Mi consejo es escribir siempre esa extraña frase verde que
nos identifica claramente (nadie hace los ribetes de la G gótica como
nosotros, por poner un ejemplo) -esto es la firma- y meter la postal
en un sobre sólo si se trata de información confidencial -esto es
la encriptación-.

2 Pasos para tener nuestro par de llaves secreta/pública

  1. Instale GnuPG. Prácticamente todas las distribuciones modernas de
    GNU/Linux lo incorporan. En caso contrario visite http://www.gnupg.org
    y descargue la versión apropiada para su sistema.
  2. Ejecute desde su usario normal $ gpg --gen-key

    Nota: la primera vez que se ejecuta un comando con gpg se crea el
    directorio /.gnupg y no se hace nada más así
    que si es su caso tendrá que volver a ejecutar

    $ gpg --gen-key

    para confirmar la acción.

  3. en la primera pregunta seleccione la opción 1) (Posibilidad de firmar
    y encriptar)

    1. en la segunda pregunta seleccione 1024 bits (robustez de la encriptación)

      Nota: cuanto mayor sea el nº de bits, más fuerte será la encriptación
      pero mayor será el tamaño de la clave pública y los productos derivados
      (la relación no es lineal)

    2. en la tercera pregunta cada uno elegirá lo que le convenga. Si es
      la primera llave que fabrica, es mejor poner un año de límite, si
      planea hacerlo en serio, elija 0 (nunca caduca)
    3. confirme que todo es correcto
    4. Nombre y Apellidos: Felipe Pérez López
    5. E-mail: felipeperezlopez@midominio.org
    6. Comentario: opcional. La gente suele poner un pseudónimo o algo parecido.
      Yo puse la dirección de mi página web.
    7. confirmación
    8. la clave es lo más importante. Se recomienda una frase de una seis
      palabras o más. No es realmente necesario meter caracteres raros porque
      la dificultad de romper, utilizando la fuerza bruta, un código del
      que no sabemos su longitud y que puede llegar a varias frases es enorme
      no importa el tipo de caracteres.
    9. empieza la construcción de las claves. Se recomienda generar ‘entropía’
      mediante el uso del ratón o el teclado. Tras unos segundos se ha generado
      el par de llaves.
  4. Generación de la llave pública en formato ASCII para su libre distribución:

    Escriba $ gpg -a --export dato > publica.key

    donde dato es el nombre de pila de usted, un apellido o su
    dirección de correo electrónico (recuerde lo que escribió mientras
    fabricaba las claves)

    Nota: este fichero es lo que puede distribuir a los cuatro vientos.
    Póngala en su página web o un servidor de llaves públicas como http://www.keyserver.net.

    Nota 2: el parámetro -a sirve para que la salida se realice en formato
    ASCII, si prefiere distribuir su llave pública en binario no añada
    este parámetro.

    Mi llave pública puede encontrarse en http://elenya.net/pabloruiz.gpg

  5. Importar una llave pública de otra persona:

    Consiga el fichero de la llave pública de esa persona y escriba:

    $ gpg --import otrapublica.key

3 Tabla de usos de GnuPG

Sólo firmar Sólo encriptar Ambos
Requisitos el destinatario tiene la llave pública del remitente. el remitente tiene la llave pública del destinatario. Sólo firmar + Sólo encriptar
Objetivo el destinatario confirma que el correo procede de la persona
que dice ser.
que sólo el destinatario pueda leer el correo. Sólo firmar + Sólo encriptar
Comentarios El cliente de correo del destinatario puede mostrar esta
confirmación en forma de ventana
popup o mensajito
de color. Si el destinatario no tiene la llave pública del remitente,
el cliente de correo mostrará un mensaje especial del tipo ‘firma
no confirmada’ o ‘llave pública correspondiente no encontrada’. Si
la firma no concuerda con la llave pública supuestamente asociada,
el cliente de correo avisará de esto claramente.
Si uno desea recibir correos encriptados ha de facilitar que
la gente tenga su llave pública.

No es recomendable mandar la llave pública siempre pegada
a los correos (en aras de su difusión) porque los engorda de forma
molesta. Lo mejor es ponerla en una web e informar de su localización
en la firma del mensaje de correo.

Importante: Una vez que el mensaje queda encriptado ni
siquiera el remitente puede abrir el correo
. Esto es muy
importante porque de lo contrario existirían dos copias, una encriptada
y otra sin encriptar, del mismo mensaje.

Es la seguridad y confianza total. El mensaje va encriptado
de forma que sólo el destinatario puede leerlo y además el destinatario
se asegura de que el correo es de quién dice enviarlo.

4 Información adicional

Siempre que se nos pida una contraseña (al firmar un correo saliente
o leer un correo encriptado para nosotros), ésta será la famosa frase
de cuando creamos el par de llaves. Es importante que no se nos olvide
esta clave, de lo contrario tendremos que fabricarnos otro par de
llaves y asegurarnos de que la gente actualiza nuestra llave
pública en sus ordenadores (Aquí no hay nada para averiguar la frase
del estilo ‘dime el nombre de tu madre y te enviaremos la clave a
tu correo’). Dependiendo del cliente de correo que utilicemos, podremos
configurar más o menos detalladamente aspectos de la interacción de
éste con GnuPG.

4.1 Firma de otras claves públicas. Anillos de confianza

Yo puedo generar un par de llaves secreta/pública haciéndome pasar
por otra persona y ofrecer una seguridad ficticia a los conocidos
de esa otra persona (recordemos que suplantar la dirección de correo
es tan fácil como editar las preferencias de nuestro cliente de correo).

Por ello, es bueno ‘premiar’ aquellas llaves públicas que son claramente
fidedignas. Este acto de premiar se conoce como ‘firmar la llave pública
con la llave privada/secreta de uno mismo’ (no confundir con firmar
un correo). Cuando firmamos un correo estamos diciendo ‘este
correo es mío’. Cuando firmamos una llave pública estamos diciendo
‘yo de esta llave pública me fío’. Naturalmente, si yo recibo una
clave pública (un fichero) firmada por gente desconocida para mí,
seguirá estando marcada como ‘UNTRUSTED’. No es digna de confianza
ni la llave pública ni los correos firmados por la llave secreta asociada
(aunque ya tenemos más que antes) porque yo no he dado ninguna confianza
a esas otras personas y en este sentido la transitiva es vital.
Pero si yo he firmado las llaves públicas de las personas que, a su
vez, han firmado otra llave pública de un n-personaje, la llave pública
de ese n-personaje tendrá cierta confianza por mi parte. Cuando firmamos
una llave pública se nos ofrecen varias opciones.

  • Podemos decir que ‘creemos’ que esa llave pública es de la persona
    correcta pero no hemos hecho ninguna comprobación.
  • Podemos decir que ‘seguramente’ sea fiable porque hemos realizado
    alguna comprobación.
  • podemos decir que ‘sin lugar a dudas’ ya que nos hemos asegurado totalmente.

Ahora bien, sólo en el caso de que nos hayamos visto personalmente
y letra por letra me haya dictado el contenido de su llave pública,
nunca deberemos otorgar nuestra plena confianza a una llave pública.
Aquí radica toda la fuerza de este sistema; en la confianza.
Si yo soy un incauto y voy firmando llaves públicas ajenas con mi
llave secreta sin previa comprobación (aunque sea mínima) puedo actuar
como un virus si otras personas confían en mí y aceptan como válidas
y dignas de confianza las llaves públicas que yo he firmado sin ton
ni son.

Existen organismos en internet (o empresas privadas) que se encargan
de firmar llaves públicas de empresas, colectivos y particulares.
El objetivo es proporcionar seguridad y confianza en las transacciones
electrónicas. Una persona pensará ‘si Verisign ha firmado esta llave
pública, será que es fiable y por tanto, estoy mandando dinero a la
persona correcta’. Lo cierto es que todo depende de la confianza que
tengas en una empresa privada.

Si desea firmar una llave pública con su llave privada ejecute:

$ gpg --sign-key dato

donde ”dato” es el nombre de pila, un apellido, el comentario
o la dirección de correo electrónico (lo más recomendable) de la llave
pública. Tras ejecutar este comando, se le harán unas preguntas para
concretar la confianza que desea otorgar a esa llave pública.

Si tiene dudas sobre los datos de las llaves públicas almacenadas,
pruebe a ejecutar (prepárese para un volcado enorme de información
con una tubería y un paginador):

$ gpg --list-public-keys

Una vez firmada con su llave secreta, esta llave pública, si es distribuida
por Internet (puede generar el fichero correspondiente ejecutando
$ gpg -a -export dato > publica.key), gozará de mejor
imagen que la misma llave pública sin firmar. Por supuesto, una persona
puede generar miles de pares de llaves pública/privada y firmar con
todas ellas la firma que él quiere usar. Esta maniobra sólo funcionará
si una persona que reciba esa llave pública sobada se cree
que todas esas personas (en realidad ficticias) realmente firmaron
esa llave. Como es probable que no reconozca dentro de su anillo de
confianza a ninguna de ellas, su sistema GnuPG no le otorgará mayor
confianza que una llave pública sin firmar.

4.2 Huella dactilar o Key fingerprint (completar)

La Huella dactilar o Key fingerprint es un resumen de la llave
pública de uno mismo. Su utilidad es variada. Por ejemplo, sirve para
identificar unívocamente una llave pública.

4.3 Programas útiles (completar)

Recomiendo el uso de algún ‘gestor de claves’ que evita el tener que
utilizar la línea de comandos y acceder a funciones un poco escondidas.
En mi caso, me gusta mucho The GNU Privacy Assistant (gpa).

Este documento puede distribuirse libremente siempre que sea de forma literal y esta nota se mantenga.

Autor: Pablo Ruiz Múzquiz
URL: http://elenya.net
Fecha de creación: 14 de Septiembre de 2002


Temas:
Documentación, Seguridad


Etiquetas:
,

Feed Espacio LinuxSi este artículo ha sido de tu interés, considera hacer un comentario o suscribirte al feed para que te enteres de nuevos artículos a través de tu lector de noticias o email.

Acerca del autor

Un comentario para “Tutorial de GnuPG”

  1. […] Gnupg. Aquí lo que haremos será primero ejecutar este tutorial (gnupg en principio está instalado por defecto tanto en debian como en ubuntu). Atención que este […]

Publica un comentario

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>