Logo Espacio Linux       
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Taller Linux
 Estación de Trabajo en Audio
 HOWTO: Configuración básica de Ratpoison
 Guía de remasterización de Knoppix
 HOWTO: Nano, mi editor favorito
 HOWTO: Configuración Básica de IceWM


Sitios amigos

Tutorial de GnuPG
Guía práctica para GNU/Linux

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
Fecha: 2003-12-14
(6079 Lecturas)



Copyright © 2003 por Espacio Linux


[ Volver Atrás ]
Content ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog