Evolution y GnuPG

Recientemente he empezado a utilizar el cliente de correo Evolution con sus caracteristicas de firma digital utilizando GnuPG. Voy a explicar cuales fueron los pasos que segui en general 😉

Evolution es un cliente de correo para las X muy atractivo, una pasada vamos 😉 Lo llevo utilizando desde hace bastante tiempo y me tiene bastante contento, os lo recomiendo a todos. La cuestión es que no hace mucho en clase de Sistemas Abiertos, el profe toco el tema de la seguridad y nombro a PGP y GnuPG, son herramientas de encriptación asimétrica, es decir, hay 1 clave pública y otra privada. A la pública debe tener acceso todo el mundo de forma que cuando quieran enviarte algo encriptado, lo encriptaran usando esa llave, en cambio la privada solo la debe tener su propietario, esta clave permite desencriptar todo lo que le hayan enviado encriptado con la llave pública. No se si me explico bien, espero que si 😉 Además de encriptar, con tu llave privada puedes firmar mensajes de forma que quien lo recibe puede comprobar que el mensaje no ha sido alterado y que realmente procede de ti con tu clave pública.

No se si sois conscientes del hecho de que actualmente, cualquier mail que enviéis es susceptible de ser interceptado, bloqueado o incluso que falsifiquen fácilmente mails haciendo creer que los habéis enviado vosotros. Y aunque utilicéis protocolos seguros como POP3 + SSL vuestro mensaje es susceptible de ser modificado, el propio administrador de la maquina donde se guarda vuestro correo tiene dicho poder. Es ahí donde la encriptación de mensajes aparece para soluciona dicho problema, y no solo la encriptación sino también la firma de los mismos, quizás no os importa que vean vuestro correo pero si queréis aseguraros de que lo que se recibe la otra persona es realmente lo que vosotros enviáis, la firma digital es la solución.

Vale, quizás todo esto es algo paranoico pero si te gusta la seguridad te acabas volviendo paranoico, os lo digo yo 😉 La verdad es que yo ya hace tiempo que probé a firmar mis mails, pero lo acabe dejando pq todo el mundo siempre me preguntaba que narices era aquella basura que salia detrás de mis mails y nadie comprobaba dicha firma. De todas formas, ahora he vuelto a tomar conciencia de mis actos y a ver si me mantengo firme con ello 😉

Para encriptar/firmar mensajes existen 2 programas, PGP un producto no libre o GnuPG libre 100% 🙂 Me centraré en el último, hay tanto versiones para entornos Windows como para entornos GNU/Linux, pero como utilizo Evolution que solo esta para GNU/Linux me centrar en este último. De todas formas hay que resaltar que existen plugins para utilizar gnupg en windows con mozilla-mail (plugin enigmail) o con Eudora. ** Por vuestro bien, descartad Outlook como cliente de correo, tiene demasiados fallos de seguridad 🙁 **

Pues nada, una vez tenemos el programa instalado (lo podeis bajar de http://www.gnupg.org/, o en Gentoo “emerge gnupg”), debemos crear una clave publica + una privada para nuestro uso:

gpg –gen-key

Nos aparecerán 3 tipos de algoritmos a usar para nuestras claves:

(1) DSA y ElGamal (por defecto)
(2) DSA (Slo firmar)
(3) RSA (Slo firmar)

De las 3 opciones posibles elegiremos la primera. A continuación debemos elegir el tamaño de las claves, actualmente lo normal es que sean de 1024 bits, pero entre ms alto sea mayor seguridad obtendremos aunque también más coste de CPU para firmar/cifrar. Mi clave es de 1024, la hice hace ya tiempo (hace 1 año creo aprox.).

A continuación especificamos el periodo de validez de la clave, la mía no caduca nunca. Nos pedirá confirmación y acto seguido debemos indicar nuestro nombre y apellidos (los que figuren en nuestros mails normalmente), la dirección de correo y un comentario que podemos dejar en blanco, yo lo utilizo para poner mi nick (Marble). Aceptamos los datos introducidos y introducimos una contraseña, esta contraseña se utilizara para cifrar nuestra clave privada, así en el caso de que nos la roben no podrán usarla si no saben el password. Finalmente se generara la clave.

Para listar las claves de las que disponéis:

gpg –list-keys

Voy a poner un resultado de ejemplo inventado, vamos a listar y a mostrar sus finger print (huellas):

pub 1024D/861A470D 2003-05-26 pepe lopez
Huella de clave = 440A 1523 1564 DC21 7CD8 4572 CED1 C82B 861A 470D
sub 1024g/1BC32440 2003-05-26

Esta clave la acabo de generar, el id de la cual es 861A470D y su huella es la que se indica (440A 1523 1564 DC21 7CD8 4572 CED1 C82B 861A 470D). El id sirve para buscar claves, yo por ejemplo en mis mails siempre indico el id de mi llave (0x0ED2CF9D, le pongo un 0x delante por ser hexadecimal). El finger key (huella) sirve para comprobar que la clave es correcta, por ejemplo, yo le envío mi clave publica a alguien y le digo que mi finger print es tal, entonces el cuando lo meta en su gpg podrá comprobar si el finger print es el que yo he dicho, de no ser así no se trata de mi clave o ha sido alterada.

Una vez tenemos nuestra clave generada, lo mejor es enviarlo a algún servidor de claves para que cualquier persona pueda acceder a nuestra clave publica (así podrá comprobar los mails que firmamos y enviarnos mails encriptados que solo nosotros podremos desencriptar). Para ello utilizaremos:

gpg –keyserver pgp.escomposlinux.org –send-keys [ID de la clave, eg 861A470D]

Yo suelo utilizar siempre el servidor de claves de escomposlinux, podéis utilizar cualquier otro. En mis mails además de indicar el ID (0x0ED2CF9D) de mi clave también especifico que lo pueden buscar en pgp.escomposlinux.org. Una vez ya sabemos realizar todos estos pasos, vamos a importar la clave publica de alguien, pongamos por ejemplo la mía:

gpg –keyserver pgp.escomposlinux.org –search-keys 0x0ED2CF9D

Os saldrá:

(1) Sergio Blanco Cuaresma (Marble)
1024 bit DSA key 0ED2CF9D, created 2002-05-03
(2) Sergio Blanco Cuaresma (Marble)
1024 bit DSA key 0ED2CF9D, created 2002-05-03

Seleccionáis 1 mismo, se importaran las 2 ya que mi clave esta asociada a 2 mails. Ahora ya tenéis mi clave publica en vuestro gpg y ya podéis enviarme mensajes cifrados o comprobar las firmas de mis mensajes 😉 Como he dicho, mi clave esta asociada a 2 cuentas pues normalmente uso 1 de esas 2 para escribir mails, así que estoy seguro que os estaréis preguntando como podéis hacer eso vosotros, muy bien:

gpg –edit-key 0x[vuestro ID]
adduid
[Introducis los datos]
quit

Cuando estáis dentro de esa shell podéis ejecutar “help” y veréis que hay un montón de opciones mas. Toda la configuración, las claves publicas y vuestra clave privada se guarda en vuestro directorio personal $HOME/.gnupg/. Así que no perdáis vuestras claves! En ese directorio también tenéis el archivo options o gpg.conf (dependiendo de la versión de vuestro gpg), el cual podéis editar y especificar ciertas cosas como el servidor que uséis habitualmente, así evitareis estar escribiendo siempre –keyserver [servidor].

Vuestras claves, si han sido robadas las podéis revocar y enviar al servidor para que se actualice, eso quiere decir que vuestra clave pasa a ser inválida. Para poder hacer esto necesitáis el password de vuestra clave privada, así que no lo olvidéis, también se puede realizar un fichero de revocación con el cual podéis revocar vuestra clave sin tener que saber el password. No os voy a explicar como se realizan estas cosas ya que no son necesarias para lo que quería explicar, tendréis que buscar mas información en la página de GnuPG. Os remarco que existen 2 tipos de revocaciones, las de claves que son las que he comentado y las de UID, que sirve para por ejemplo si teniamos el UID ‘Sergio Blanco (Marble) Configuración -> Mail Accounts -> Editar (aseguraros de tener seleccionada la cuenta que queréis editar) -> Seguridad (Pestaa). Ahi rellenad el id de vuestra clave (por ejemplo 0x0ED2CF9D) y activad si queréis “Firmar siempre el correo saliente de esta cuenta”. Aceptáis y ya lo tenéis listo, ahora cuando enviéis un mail os preguntara el password de vuestra clave privada (para poder acceder a ella y firmar el mensaje). Además, podéis decidir encriptar el mensaje, para ello cuando estéis escribiendo el nuevo mail, en el menú seguridad podéis seleccionar cifrar con PGP (aunque ponga PGP también funciona con GnuPG, no hagáis caso). Eso si, recordad que para enviar un mensaje encriptado debéis tener la clave publica de la persona a quien le queréis enviar el mensaje.

Para finalizar, simplemente indicar que las claves estas suelen estar basadas en confianzas, es decir, yo por ejemplo podría firmar la clave de un amigo de forma que aseguro que esa clave le pertenece a el, de forma que la gente que confía en mi clave confiar también en las claves que yo he firmado (y por tanto la de mi amigo). No se si queda clara esta idea pero a priori tampoco es la mas importante así que no os preocupéis 😉 Espero que os haya resultado interesante mi artículo y os invito a todos a que firméis vuestros mails digitalmente !!!
Autor: marble

This entry was posted in Seguretat. Bookmark the permalink.

6 Responses to Evolution y GnuPG

  1. Anonymous says:

    El documento es excelente para comenzar.

  2. TrashDoll says:

    Gracias por el memo e!!
    nos sirvio pa la clase de pancho!!
    =D

  3. TrashDoll says:

    es ke abusa de nuestra capacidad de escritura… y este esta muy bien !!!

  4. outofmemory says:

    Una introducción muy clara para introducirse en el tema, gracias por ella 🙂

  5. David says:

    Está estupendo, pero me encuentro con los siguientes problemas:

    1. El servidor no lo encuentra
    2. No sé dónde está mi clave pública para pegarla en rediris

    Uso Ubuntu 9.04, y me interesaría para cifrar mensajes en evolution

    Muchas gracias

  6. ciyi says:

    Gracias, he seguido tu tutorial y me ha servido para hacer unas cuentas pruebas con Evolution en Ubuntu para un trabajo que estoy realizando sobre PGP/GPG

Leave a Reply