COMO y Por qué usar cifrado de correo: Tutorial apto para novatos.

Este CÓMO trata todos los puntos necesarios para entender porqué hay que usar cifrado en el correo y cómo usarlo. Lo cierto es que ahora que he reunido y estructurado toda la información quizá es un poco largo, para tranquilidad de todos tengo que decir que el tutorial es para todos los públicos pues no me meto en la parte dura matemática (ya que a mí también se me haría muy costosa), sólo nos quedamos con la idea y el cómo usarlo de un modo sencillo. Vamos a tratar los siguientes puntos:

1. ¿Por qué usar cifrado en el correo electrónico?
2. En qué consiste y cómo lo usamos.
3. Diceware, generación de contraseñas completamente aleatorias.


Sin entretenernos demasiado más vamos a pasar directamente al CÓMO.

1. ¿Por qué usar cifrado en el correo electrónico?

Para aumentar la confidencialidad de tus correos, para evitar que nadie envíe correos haciéndose pasar por tí (esto es alarmantemente fácil con el protocolo POP3) y para verificar que el correo te ha llegado íntegro.

2. En qué consiste y cómo lo usamos.

El sistema de cifrado más usual, que vamos a describir en este CÓMO usa un sistema de doble clave, o de clave asimétrica. No os asustéis, es fácil de entender. Tenemos dos claves: Una que es pública y otra que es privada. La pública se la das a conocer a tus amigos y en general, a todo aquel con el que mantengas correspondencia. La privada es tuya, sólo tuya (como cualquier contraseña). En estos sistemas un mensaje codificado con una de las dos claves (la pública o la privada, no importa) sólo puede ser decodificado empleando la otra clave. Como tener las dos piezas de un puzzle.

La clave pública ya la conocen tus amigos, así que con la clave privada lo que haces es firmar correos. Codificas el mensaje y tus amigos al recibirlo en su buzón se darán cuenta que sólo se descifra con tu clave, lo cual le confirma que lo has enviado tú. Evidentemente, esto de codificar/descodificar lo hace el programa de nuestro amigo (normalmente su cliente de correo), que guarda todas las claves públicas de sus amigos (¡eso nos incluye a nosotros!) para que sea más cómodo. Tus amigos usan tu clave pública para certificar realmente que el correo lo has escrito tú.

Con este sistema tu amigo está seguro de que tú has enviado el correo, ya hemos dicho lo fácil que resulta enviar correos simulando ser otro remitente, así que es importante.

La clave privada no la conoce nadie (excepto tú, claro), de modo que con la clave pública tus amigos te envían correos cifrados que sólo tú puedes leer (decodificar) usando tu clave privada. Un sistema genial para transmitir mensajes confidenciales o para evitar que diversos sistemas automáticos (como servidores smtp de empresa o gmail) rastreen el correo. Tú usas tu clave privada para descodificar correos cifrados que te envían tus amigos a tí y solo a tí.

2.1 Proceso completamente automático

Ni tú ni tu amigo tenéis que hacer nada especial para usar este sistema, salvo (lógicamente) añadir las claves públicas de tus amigos a la configuración de tu programa de correo. Lo más importante en este punto es estar seguro de que la clave pública de tu amigo es realmente la suya. Ya hemos visto que con este sistema la fiabilidad sobre quién escribe es total, pero hay un principio para todo, un mensaje antes del cual no existe esa seguridad… para evitar eso lo mejor sin duda es darse las claves en persona (si es posible), por teléfono…

Este sistema aumenta drásticamente la seguridad de nuestro correo, aumentando nuestra confidencialidad y nuestra privacidad, impidiendo que algún fisgón pueda leer un correo que no debe leer (sea cual sea nuestro motivo).

2.2. El programa

Si usas Linux ya tendrás GPG instalado, si usas windows necesitarás descargarlo (Descarga GNUpg para Windows). Una vez instalado y generado tu par de claves sólo queda darles a tus amigos tu clave pública y pedirle a ellos la suya.

Con ésto hemos acabado la primera parte del tutorial.

2.3 Cómo usar el cifrado de correo

Ahora vamos a ir al segundo punto. Cómo utilizar GPG en Windows.


Ya hemos explicado el sistema que nos va a servir para comprobar la identidad del remitente, así como el sistema que nos va a permitir cifrar mensajes. Una aplicación para usar este sistema es GPG (Gnu Privacy Guard), software libre. Lo primero que hacemos es bajarnos la última versión desde www.gpg.org

1. El primer paso sería ubicarnos en el directorio donde tenemos instalado el ejecutable de GPG, y teclear el siguiente comando:
gpg –gen-key


Durante el proceso de generación se nos irán haciendo diversas preguntas, como el tipo de cifrado que queremos utilizar, la intensidad de cifrado, la fecha de expiración de la clave en cuestión y naturalmente nuestro nombre y apellidos así como una dirección de correo, que es lo que va a constituir el USERID. Tomaremos las opciones por defecto, ya que en la mayoría de los caso éstas son apropiadas para nuestra seguridad.

Al generar la clave se nos va a preguntar por una frase de paso, es decir, una contraseña. Esta contraseña nos va a asegurar que nadie más que nosotros mismos va a poder usar esta clave GPG, por lo que es importante elegir una contraseña fuerte y difícil de adivinar, pero que sea lo suficientemente clara para nosotros como para no olvidarla, puesto que si esto sucede no podremos volver a utilizar más la clave gpg relacionada. Para obtener una frase de paso fuerte usaremos DiceWare, pero ese es el tercer punto de este tutorial, así que lo olvidamos hasta más tarde. Es importante no olvidar que si perdemos/olvidamos nuestrta frase de paso no podremos volver a acceder a la información cifrada, por lo cual se recomienda tener una copia aparte de la misma.


Si seguimos las opciones del programa que hemos ejecutado antes a estas alturas ya debemos haber generado nuestro par de claves, pero para que el resto de la gente pueda comprobar nuestros mensajes firmados, tenemos que darles nuestra clave pública.


Esto se puede hacer de varias maneras.

  1. Dándoselas en persona (la mejor, pero hoy en día no siempre es posible ya que nuestros contactos pueden estar a cientos de kilómetros)
  2. Enviándosela por correo
  3. Subiéndola a un servidor de claves públicas


Servidores de claves hay muchos, pero todos ellos están interconectados, es decir, que subiendo la clave a un servidor, el resto ya tiene conocimiento de la existencia de nuestra nueva clave. Por estar en España yo recomiendo utilizar el servidor de claves de RedIRIS. El comando para enviar la clave al servidor es:

gpg –send-keys –keyserver pgp.rediris.es USERID.

Tecleada lógicamente, desde donde tengamos instalado gpg, USERID es el número de la clave que quieres enviar al servidor de claves. La clave que has generado y su número los puedes comprobar con el comando gpg –list-keys. Este comando listará todas las claves memorizadas hasta el momento por GPG. Si acabamos de instalar GPG, solo debería salir la nuestra.


Este sería el proceso para remitir nuestra clave a un servidor de claves público, pero es posible que deseemos que tan sólo unos pocos tengan conocimiento de nuestra clave pública. Pues bien, para ello deberemos volcar esta clave a un fichero de texto. El comando para ello sería:

gpg -a -–export USERID > miclave.asc.pub

El comando que deberiamos ejecutar para importar una clave volcada en un fichero, es:

gpg -–import miclave.asc.pub

Normalmente nos va a bastar con subir nuestras claves públicas a un servidor al efecto. Para comprobar la indentidad de alguien y bajarnos su clave pública desde un servidor definido al efecto, podemos teclear la orden:

gpg –keyserver pgp.rediris.es –recv-keys USERID

La salida del comando te debe dar algo parecido a esto:

gpg: key USERID: “Nombre Apellido Apellido ” not changed

Donde USERID es un código hexadecimal de 8 caracteres (huella de la firma) y la clave referida es mi clave pública, pero podéis llevar ese proceso con cualquier otra clave.


2.4 Certificados de revocación.


¿Qué pasa si se me olvida mi contraseña o pierdo mi clave privada?


Pues en este caso, o en el caso de nuestra clave haya sido comprometida, tenemos que generar un certificado de revocación y subirlo a un servidor de claves. Un certificado de revocación es un comunicado en el cual adviertes de que esa clave ya no es fiable. El certificado de refocación se genera con el siguiente comando:

gpg -o revocacion.asc –gen-revoke USERID

Importamos nuestro certificado de revocación…

gpg –import revocacion.asc

… y lo subimos al servidor de claves (elegiremos RedIRIS de nuevo):

gpg –keyserver pgp.rediris.es –send-keys USERID.

2.5 Interfaz gráfica para el programa


¿Que tú odias los comandos porque son cosa complicada y de freaks? Bueno, hemos usado todo esto de los comandos por dos motivos: Porque así no se necesita un programa adicional para hacer funcionar el invento y porque en estos comandos reside el meollo de todo este tema de seguridad.


Si hablamos de interfaz gráfica voy a recomendar Enigmail para Thunderbird, una extensión también válida para Mozilla Mail. También es software libre y su descarga (también es gratuita) la podéis hacer desde mozdev.En este punto es importante que descarguemos el fichero “xpi” en el mismo idioma en el que tengamos Thunderbird puesto que de otro modo no funcionará. Al ser una extensión para Thunderbird sirve para Windows y para Linux, en tanto empleéis este cliente de correo.


Si sois un raro usuario preocupado por la privacidad que además usa Outlook (o alguno de su familia, programas que desde luego no recomiendo) y no queréis cambiar a Thunderbird podéis utilizar GPGOE.


Es uno de esos programas que tanto nos gustan de “descomprimir y usar”, sin instalador ni nada por el estilo. Tan sólo hay que añadir (según leí) el icono de firmar y encriptar a la barra de Outlook para hacerlo más fácil y eso es todo. Se supone que a partir de ese momento cuando abras un mensaje de correo te notifica en todo momento si la firma es correcta o no lo es. Es más básico y menos completo que Enigmail pero hace su trabajo. Debo admitir que no he usado este sistema.

3. Diceware

Diceware se traduciría como Dadoware en castellano. La información completa está en The Diceware Passphrase Home Page.


Aquí tan sólo vamos a explicar por encima y rápidamente cómo fabricar una frase de paso resistente para usar nuestro sistema de cifrado GPG. Al igual que para todo lo anterior, para usar esto no hace falta ser un experto informático, ni un gurú de la seguridad.


3.1 Frase de paso.


¿Qué es una frase de paso? En español suena raro porque todo el tiempo hablamos de contraseña. Vale, una frase de paso también es una contraseña, pero es una contraseña especial formada por varias palabras que componen una frase sin mucho sentido pero fácil de recordar. De modo que sea difícil presuponerla o averiguarla, pero fácil de recordar para cuando la necesitemos emplear. Esta frase de paso será más larga que una contraseña normal (pudiendo llegar a ser muy larga, más de 100 caracteres).


De hecho esta frase de paso la vamos a generar antes de instalar nuestro GPG y generar nuestro par de claves, la tendremos preparada para cuando hagamos esa instalación. ¿Por qué entonces lo explico al final? Pues porque lo primero era explicar porqué usamos cifrado, y luego explicar el cómo lo usamos. Este proceso es crítico, una mala frase de paso será fácilmente crackeable y de nada nos servirá tener un sistema de cifrado GPG si nos pueden levantar la clave para descifrar el correo a las primeras de cambio.


Diceware es un método de elección de frases de paso que emplea dados (dice, en inglés) para seleccionar aleatoriamente palabras de una lista especial llamada la Lista Diceware. Cada palabra en la lista está asociada a un número de 5 dígitos. Todos los dígitos están entre 1 y 6, lo que permite usar el resultado de lanzar 5 dados, para seleccionar de la lista una palabra única. Como ejemplo una muestra de la lista Diceware en Español:



22156 alfa

22161 alfar

22162 alfil

22163 alfiz

22164 alfoz

22165 alga

22166 algar

22212 algo

22214 alguno

22215 alhaja

22216 alhoz

22222 aliar

22223 alias

22224 Alicia


La lista completa contiene exactamente 7776 palabras no repetidas. 7776 son las posibles combinaciones de 5 dados.

En la(s) Lista(s) [1 y 2] Diceware en Español, las palabras son palabras cortas en español [ver ¿Cómo se generó?]. La longitud media de las palabras es de 3,26 caracteres. Las palabras más largas tienen 6 letras.

Existen listas Diceware para otros idiomas como Inglés, Alemán, Francés, Polaco, Chino, Finés, y Japonés , pero nos centramos en lo nuestro que es el español.
 
 

3.2 Uso de Diceware

Vamos a necesitar uno o más dados (numéricos). Los dados vienen con muchos juegos de mesa y también se venden en tiendas de juguetes, de manualidades y de magia. Los venden en casi cualquier tienda de juegos y en muchas papelerías. Es muy importante NO usar, en ningún caso, un programa de ordenador o un generador electrónico de dados: ¡NO son aleatorios!



1. Primero, copiamos y guardamos la Lista Diceware en Español (DW-Español-1.txt) Alternativamente puede hacerlo con la Lista Alternativa Diceware en Español (DW-Español-2.txt).

2. Decidir cuántas palabras tendra nuestra frase de paso. El número recomendado es 5, si somos muy paranoicos podemos coger alguna más. En la FAQ de Diceware explican la importancia de esto.

3. Ahora lanzamos un dado cinco veces (o cinco dados ordenados de izquierda a derecha una vez) por cada palabra que deseemos para nuestra frase, y escriba los resultados, en grupos de 5 dígitos, en un papel. (Use un lápiz y un papel que no dejen huellas en los papeles inferiores, p. ej. NO en un bloque de papel). En total serán 25 o 30 tiradas. Menos de 2 minutos, para los que tengan prisa en acabar con este tutorial :)

4. Buscamos en la Lista Diceware cada grupo de cinco números y anotamos la palabra correspondiente. Por ejemplo, “22236″ [en  la Lista Diceware en Español (DW-Español-1.txt)] significa que su próxima palabra en la ëfrase de pasoí será “aljibe”.

5. Una vez completado elp roceso, las palabras anotadas formarán nuestra nueva frase de paso. Las memorizamos y luego rompemos el papel o lo guardamos en un lugar que sea verdaderamente seguro.

¡Y eso es todo!



***Más consejos para obtener algo de seguridad adicional

  • Si imprimimos la lista, que sea sin cambiar la configuración del documento. Esas listas están formateadas para que en 36 páginas de 4 columnas, los 2 primeros dados sean iguales para cada página, lo cual facilita la búsqueda.
  • Recomendamos emplear la frase de paso exactamente como ha sido generada, sin ordenar las palabras ni nada de eso. Para mantener el azar al 100%.
  • Si queremos una frase más larga, podemos añadir cuantas palabras queramos… pero recuerda que luego hay que memorizarla.
  • Si la frase, incluidos los espacios entre palabras, resultara de menos de 14 caracteres, le recomendamos volver a empezar desde el principio y crear otra. Lo mismo debe hacer si ha resultado una frase reconocible en español (castellano). Ambas situaciones son muy improbables.
  • En la FAQ de Diceware hay algunas sugerencias mnemotécnicas.
  • Para una seguridad adicional, sin añadir otra palabra, inserte en su frase de paso un carácter especial o un dígito escogido al azar. Esta es la forma de hacerlo con seguridad: lance un dado para escoger una palabra en su frase de paso; láncelo otra vez para escoger una letra en la palabra. Láncelo otras 2 veces para escoger el carácter a añadir de la tabla siguiente:


TERCER lanzamiento

     1 2 3 4 5 6

 C 1 ~ ! # $ % ^

 U 2 & * ( ) – =

 A 3 + [ ] \ { }

 R 4 : ; ” ‘ < >

 T 5 ? / 0 1 2 3

 O 6 4 5 6 7 8 9


Está claro que tener una contraseña con 20 caracteres es más complicado que usar «liverpool» o «azucar» pero desde luego es mucho más seguro. No debemos olvidar que cuando empleamos cifrado de clave pública, la seguridad de su mensaje depende de la frase de paso, así que hay que escogerla del mejor modo posible.

Apéndice: Referencias
No tiene sentido reinventar la rueda, ya hay muchos tutoriales para casi todo así que en lugar de partir de cero cuando me decidí a hacer este pensé en tomar como punto de partida diversa documentación que tenía por ahí guardada y desde la que he partido para reunir, completar, modificar, en fin, todo eso. Por mencionar lo más significativo:
Topopardo: Cómo funciona el cifrado digital
Cómo utilizar GPG en Windows
Diceware