sábado, 6 de marzo de 2010

Envío y recepción de correos firmados o/y cifrados HOWTO

Descripción de la práctica.

Queremos reproducir cómo conseguir configurar un cliente de correo como el Thunderbid para recibir correos cifrados/firmados de manera transparente por parte del usuario.

Utilidad:

  • Los correos firmados nos aseguran que el correo procede de una persona en concreto, y es imposible falsificar esta firma.

  • Los correos cifrados nos permiten asegurar que el receptor será el único que podrá abrir la información enviada.

  • Si combinamos las dos características anteriores, podemos enviar correos de manera segura y con la seguridad que lo recibimos del remitente correcto.

Herramientas:

  • Utilizaremos nuestra distribución preferida ( en mi caso Ubuntu 9.10 )

  • Necesitamos tener instalado un cliente de correo que permita enviar/recibir correos cifrados. En mi caso usaré Thunderbird 2.0.0.23 ( alguien probó de hacer lo mismo en Evolution y no le funcionó, seguro que tiene arreglo, pero se deberá buscar )

  • Navegador web, en mi caso utilizaré Firefox 3.5.8

  • Autoridad certificadora. Usarem CACert en nuetro caso, ya que nos proporciona certificados gratuitos con tan solo especificar nuestro correo.

Descripción general del proceso:

Vamos a registrarnos en una página que nos permita generar certificados firmados para una dirección de correo determinada. Una vez tenemos el certificado lo importaremos a Thunderbird y configuraremos todos los parámetros para una cuenta de correo determinada. Hecho esto podremos empezar a enviar y recibir correos firmados/cifrados a otras personas.

Inconvenientes:

Quiero hacer saber los problemas que puede plantear usar este sistema antes de que tengas que deducirlo vosotros leyendo el manual.

  • CACert es una autoridad certificadora gratuita, pero algunos navegadores no la incluyen como “segura” por defecto ( ya se verá como se configura de manera manual ). Las alternativas son de pago, y que te tienes que autentificar en algún sitio con tu DNI, elegimos CACert por comodidad pero este manual se podría adaptar a cualquier otra Autoridad Certificadora.

  • Tanto el emisor como el remitente tienen que tener configurada una cuenta como aquí se detalla, de otro modo no podrán abrir los correos (esto siempre es así).


1. CACert

Lo primeros es crear un certificado en CACert. Para ello nos difigimos a www.cacert.org, tenemos que ir a “Root Certificate” del menú de la derecha. Después instalar el certificado de Cacert. Para instalar el certificado es sifuciente hacher click en “Root Certificate (PEM Format)”.




Nos tiene que aparecer un mensaje conforme la operación se ha realizado con éxito. Es posible que el certificado ya se encontrara instalado en nuestro navegador y que nos informe de esto mismo.

Bien, porque hemos hecho esto? Pues hemos configurado nuestro navegador de modo que confíe en la página de Cacert. Ahora vamos a proceder a registrarnos en la página. Ara ello vamos hacemos clic en “Join” del menú de la derecha.

No nos estamos registrando en una página web de contactos, esto es una pagina web para crear certificados, o sea que tenemos que dar información verídica del mismo modo que tenemos que poner una contraseña segura para que no puedan acceder a nuestra cuenta. Pensad que si alguien puede copiar un certificado que hayamos creado, se podría hacer pasar por nosotros igual como si tuviese nuestro DNI. Remarco la importancia de elegir contraseñas seguras para los certificados ( que en definitiva es tu identidad digital ).

Marca la casilla de “I AGREE” y dale a “Next”. De este modo creamos la cuenta. Ahora tienes la oportunidad de repetir las preguntas-respuestas secretas o password si habías sido perezoso y apuntado cualquier cosa. Tienes que hacerlo a conciencia! Piensa que es para tu seguridad!

Bien, una vez tenemos nuestra cuenta creada y validada ( mediante el proceso de abrir un mail que tenemos esperando en nuestra bandeja de entrada especificada ) nos logueamos en la pagina web mediante el botón “Password Login”.

Para crear un nuevo certificado vamos a “Client certificates” y marcamos la casilla con nuestro correo deseado:


En la nueva pestaña nos pide el tamaño de la clave que queremos generar, pudiendo elegir entre “alto” y “medio”. Eligir por elegir, le damos en “alto”, porque es el propuesto por defecto y porque es gratis ;)

Le damos al botón “Create Certificate Request” y nos tendremos que esperar un rato a que se genere el nuevo certificado. Porque tarda tanto? Porque está generando un par de claves RSA, por lo que tiene que buscar números primos realmente grandes. Bien, ya ha creado nuestro certificado. Ahora nos da la opción de “Click here to install your certificate.” Y volià! Ya tenemos nuestro certificado! Bien, como muy bien nos indica la misma página, deberíamos hacer una cópia del certificado digital, y esto es exactamente lo que haremos ahora.

  1. En el Firefox vamos a: Editar>Preferencias

  2. Hacemos clic en la última pestaña, la que pone AVANZADO

  3. Hacemos clic en el botón “Ver certificados”

  4. Nos quedamos en la pestaña “Sus certificados”, marcamos el certificado que acabamos de crear y le damos a “Hacer copia...”

  5. Elegimos un sitio seguro donde guardar el certificado y ponemos un nombre descriptivo y con la extensión que acabe con .p12 ( es solo para tener bien organizados nustros certificados, puedes poner la extensión que te parezca más conveniente )

  6. Nos pedirá un password. Es muy importante poner una contraseña segura. Recordemos ( una vez mas ) que se trata de nuestra identidad digital, esto es el tipo de información que buscaría un hacker.

  7. Repetimos el password y le damos a OK.

  8. Ya tenemos el backup hecho.

Ahora tenemos que hacer una copia del certificado de Cacert para instalarlo en Thunderbird. Lo mas simple es:

  1. En el Firefox vamos a: Editar>Preferencias

  2. Hacemos clic en la última pestaña, la que pone AVANZADO

  3. Hacemos clic en el botón “Ver certificados”

  4. Vamos a la pestaña “Autoridades” y buscamos “Root CA”

  5. Hacemos clic en “CA Cert Signing Authority”

  6. Clic en exportar y guardamos en el sitio donde guardamos nuestros certificados. Nombre de ejemplo: cacert.pem

  7. Hecho!

Nota: Es muy imporante que todos los pasos de “1. CAcert” los hagas en el mismo ordenador y con el mismo navegador, de otro modo no funcionará.


2. Thunderbird

Muy bien. Hasta ahora hemos creado nuestros certificados, ahora debemos configurar el cliente de mensajería deseado. En nuestro caso usaremos Thunderbird.

El primer paso que tenemos que hacer es instalar la Autoritdad Certificadora Cacacert:

  1. Abrimos Thunderbird

  2. Vamos a Editar>Preferencias>Avanzadas>Ver certificados

  3. Abrimos la pestaña “Autoridades” y le damos al botón “Importar”

  4. Elegimos nuestro ficherito “cacert.pem” ( o con el nombe que le pusistes en el paso anterior ) y le damos “Aceptar”

  5. Nos dice que ha instalado el certificado de manera correcta!

  6. Ahora buscamos en la lista “Root CA”

  1. Hacemos clic en “CA Cert Signing Authority”

  2. Vamos a “Editar” y marcamos todas las casillas ( tansolo haría falta la casilla referente al correo, pero para evitar problemas, mejor ). Aceptamos.

  3. Ahora vamos a la pestaña “Mis certificados”

  4. Le damos a “Importar” y buscamos nuestro certificado (el que acaba con “.p12”)

  5. Nos pide una contraseña con la que Thunderbird va a proteger el fichero ( poner una segura ) y después no pide la contraseña con la que está protegido ya el fichero ( lo que pusimos en el paso anterior )

  6. Damos a aceptar y ya tenemos nuestro certificado instalado!

Ahora nos queda configurar una cuenta de correo en Thunderbird para poder enviar y recibir correos de manera segura. AVISO: No voy a explicar aquí como se configura una cuenta POP3 o SMTP en Thunderbird ya que internet está repleta de manuales que lo explican perfectamente, daré por supuesto que se tiene una cuenta creada, con la que podemos mandar correos ya y podemos recibir. La cuenta configurada, evidentemente, tiene que ser la misma para la que hemos creado el certificado.

Para configurar el certificado para que funcione con una cuenta simplemente tenemos que ir a:

  1. Editar>Configuración de cuentas

  2. Abrir la casilla “Seguridad” de la cuenta que se quiera configurar ( como se ve en la imagen siguiente )

  3. Tanto en la casilla de firma digital como cifrado, seleccionar el certificado que hemos instalado anteriormente.

  4. Se recomienda mantener la opción de “Nunca usar cifrado” y desactivar la opción “firmar digitalmente”

Una vez hecho esto ya tenemos a Thunderbird preparado para enviar/recibir correos firmados o cifrados!! No ha sido tan difícil, verdad?


3. Prueba de concepto

Bien, ahora está ya todo configurado. Como funciona? Pues muy fácil.

Abrimos Thunderbird si lo habíamos cerrado. Vamos a REDACTAR y ponemos lo habitual: destino ( que para hacer una prueba podemos poner nuestro mismo mail) asunto, mensaje, etc... y en botón “SEGURIDAD”, le damos a la flechita que apunta hacia abajo y marcamos la opción “Firmar digitalmente este mensaje”.

Le damos a “ENVIAR” y el correo se ha mandado a nuestra misma dirección. Si abrimos el correo veremos todo como siempre, pero un un detalle: Ahora aparece un sobre con un punto amarillo que nos indica que este correo está firmado. En caso de recibir un correo firmado y cifrado aparecerá un candado con un sobre con punto rojo.

Porque no puedo mandarle un correo CIFRADO a un amigo mio? Bien, porque antes necesitas su clave pública. Para tener su clave publica puedes hacer dos cosas:

  • Que te mande un fichero “.pem” con su clave pública y la importas en el Thunderbird

  • O que te mande un correo firmado, que en él ya se incluye automáticamente la clave pública de tu amigo

A partir del momento que recibes un correo FIRMADO de alguien, ya puedes mandarle correos CIFRADOS cuando quieras. Lo mismo a la inversa. Si quieres que alguien te mande un correo CIFRADO, antes tienes que mandarle un correo a el FIRMADO, para que tenga tu clave pública y pueda cifrar los e-mails.

Espero que esto ayude a entender un poco como funciona el sistema de envío de datos seguros por SMIME, con certificados y un cliente.

Me ofrezco voluntario para recibir correos firmados/cifrados a mi cuenta de correo habitual, y a responder ( en la medida de lo posible ) estos mismos correos para comprobar que las configuraciones se han hecho correctamente y que el sistema funciona bien. El e-mail de contacto es inedit00@gmail.com

Dudas, sugerencias o aclaraciones, en los comentarios

Saludos!

1 comentario:

  1. Muy intersante, muchas gracias. A ver cuándo GMail se decidirá a incorporar este tipo de cifrado, porque yo Thunderbird, Outlook o cualquier otro, como que no los utilizo.

    ResponderEliminar