Páginas

sábado, 25 de febrero de 2012

Firma y cifrado de correos electrónicos, utilizando claves PGP, en sistemas Linux.


Este artículo pretende ser una ayuda para aquellas personas preocupadas por la seguridad en el envío y recepción de correos electrónicos. Puede ser útil tanto para usuarios particulares, empresas, asociaciones, etc, que quieran añadir un sistema de seguridad a las transacciones de correos electrónicos. Vamos a partir de la idea de que no conocemos nada acerca de la seguridad en el envío y recepción de correos electrónicos e iremos avanzando poco a poco. Yo utilizo la distribución Ubuntu 11,04 con un escritorio Gnome, pero se podría utilizar otra distribución distinta con otro escritorio gráfico. El programa de seguridad es Open PGP. Vamos a utilizar otros dos programas fundamentales:
  1. Seahorse 2.32.0 (contraseñas y claves de cifrado): Es un administrador de claves de cifrado.
  2. Evolution: Es un gestor de correo electrónico. (Podría utilizarse cualquier otro). Este sistema de seguridad solamente funciona si se utiliza un gestor de correo. No funcionaría si utilizamos un webmail.
Normalmente, cuando enviamos o recibimos correos electrónicos a través de internet, no nos preocupamos por utilizar ningún sistema especial de seguridad. Esto no tiene mayor importancia cuando la información que mandamos o recibimos a través de la red es intrascendente. En estos casos, la información que viaja por internet no está cifrada, por lo que si una tercera persona intercepta esa información podría saber el contenido de ese correo, lo cual no tiene mucha importancia si como hemos dicho la información es intrascendente.
El panorama cambia en el momento que enviamos o recibimos a través de internet información sensible que no debe ser conocida por terceras personas. En este caso sí que es aconsejable utilizar un sistema de seguridad que permita unas transacciones seguras de correos por la red.
Para que sean seguros los correos que enviamos hay que tomar dos medidas de seguridad:
  1. Estar seguro de que la persona que nos manda un correo, es verdaderamente quien dice que es, y que su identidad no haya sido suplantada.
  2. Que la información que viaja a través de la red sea cifrada para que no pueda ser leída por una tercera persona.
El sistema que vamos a utilizar y que y hemos comentado es OpenGPG. Con él vamos a garantizar ambas cosas, que las personas a las que enviemos un correo electrónico tengan la absoluta certeza de que somos nosotros, y no otros son los que les envían la información. También funciona a la inversa, que nosotros tengamos absolutas garantías que quien nos manda un correo es quien dice que es. Por otro lado, la información que enviemos o recibamos, sea cifrada, para evitar que si una tercera persona intercepta ese correo, no pueda conocer el contenido de la mismo. Como vemos, el sistema de seguridad va a utilizar dos elementos que son la firma electrónica y el cifrado electrónico que detallamos a continuación:
  1. Firma electrónica. Pretende que el usuario que recibe un correo electrónico tenga la plena seguridad de que el remitente que le haya enviado dicho correo sea quien dice que es y no otro, evitando que exista una suplantación de identidad. Es algo parecido a un documento escrito en papel que haya sido firmado por alguien. Esa firma le corresponde únicamente a la persona que ha firmado el documento y no a otra, por lo que podemos estar seguros que quien firma es quien dice ser y no otro.
  2. Cifrado electrónico. Sirve para encriptar el correo que se envía, de forma que si una tercera persona intercepta esa información, lo único que tendrá será un conjunto de caracteres sin sentido, de tal forma que le será imposible conocer el contenido del correo. El sistema de seguridad no puede evitar que alguien pueda interceptar el correo, pero sí que no pueda conocer el contenido del mismo.
La firma electrónica y el cifrado electrónico, se pueden utilizar por separado o conjuntamente, se utilizan para enviar correos electrónicos a través de internet con garantías de que quien recibe el correo, tenga la absoluta certeza de que el correo pertenece a quien dice que es y que el contenido no ha sido visto por terceras personas.
Lo primero que debemos hacer entonces es crear una clave personal para poder empezar a trabajar. Este tipo de claves privadas van a tener un sistema de encriptación asimétrico. Esto quiere decir que cada clave privada va a utilizar dos claves. Una pública y otra privada
  1. Clave pública. Es aquella que sirve para encriptar un correo. Esta clave puede conocerla cualquiera, y así debe ser para que nos puedan mandar correos con un sistema de seguridad. Ejemplo: A quiere mandar un correo electrónico a B. A debe tener la clave pública de B para poder mandar un correo firmado y cifrado. La forma de que A tenga la clave de B es otro tema que trataremos más adelante.
  2. Clave privada. Es aquella que sirve para desencriptar los correos y que solamente debe conocer el propietario de la firma digital. Bajo ningún concepto se debe comunicar esta clave a otra persona.
Es importante tener claro que la clave pública únicamente sirve para encriptar y la privada para desencriptar. Nuestra clave personal va a servir para que podamos firmar los mensajes que enviemos a otras personas mediante la clave privada, y para que otras personas nos puedan enviar correos cifrados a través de nuestra clave pública. Si queremos que nos envíen un correo cifrado, entonces la otra persona debe poseer nuestra clave pública y firmar el correo con su clave privada. Antes de continuar debemos conocer algunos conceptos que utilizaremos a la hora de crear una clave privada :
  1. Huella digital: Es una combinación numérica de cuarenta dígitos que define unívocamente a cada clave.
  2. Id de clave: Son los últimos ocho números de la huella. Puede ser que dos claves diferentes tengan el mismo número de Id de clave.
  3. Tipo de clave: Es el algoritmo utilizado a la hora de crear la clave. Algunos de ellos son DSA, ElGamal o RSA. Todos los nombrados son de libre distribución.
  4. Fortaleza: Es el grado de robustez de la encriptación. Se recomienda claves con un número mínimo de 2024 bits para poderlas considerar seguras.
  5. Subclave: Son las claves que se encargan de firmar y cifrar los correos. Como mínimo debe existir dos suclaves, una para firmar y otra para encriptar. No existe ninguna subclave que exista para las dos.
  6. Nombres y firmas: En cada clave podemos añadir varias identidades. Esto es útil por ejemplo si utilizamos diferentes correos electrónicos para uso particular y para el trabajo.
  7. Confianza: Es la certeza que tenemos de que una clave sea de quien dice ser.
  8. Fecha de caducidad: Es la fecha en que queremos que la clave sea inservible. En principio no existe ninguna razón por la que queramos que la clave tenga una caducidad, a no ser que sirva para algún proyecto con duración determinada.
Seguidamente numeramos los pasos que hay que seguir para poder crear nuestra clave personal:
  1. Abrimos el programa Seahorse. Tenemos dos opciones. En el entorno gráfico pinchamos en Aplicaciones, Accesorios y Contraseñas y claves de cifrado. La otra opción es teclear en la consola seahorse.
  2. Pinchamos en Clave y seguidamente en Crear nueva clave.
  3. Seleccionamos Clave PGP.
  4. Rellenamos los datos que aparecen: Escribimos nuestro nombre completo y correo electrónico. El comentario es opcional.
  5. En opciones avanzada seleccionamos ElGamal, con la fortaleza que vosotros queráis (Recordad que cuanto mayor sea más seguridad)
  6. Al final debéis crear una frase de paso que será vuestra clave privada. Recordad que una fortaleza elevada de la clave no sustituye a un frase de paso corta o poco compleja. Lo ideal es utilizar una clave privada de más de seis caracteres. Esta clave privada no debéis comunicarla jamás a nadie.
De esta forma ya tenemos una clave personal con la que poder trabajar. Ahora el camino es que nuestra clave la conozca la mayor gente posible.
  1. Seleccionamos nuestra clave.
  2. Pinchamos en Clave y exportar clave pública.
  3. La guardamos donde nosotros queramos.
El archivo resultante se lo podéis pasar a la persona que queráis. Lo ideal es dárselo a otra persona en mano porque es la manera más segura. Otra forma es utilizar un servidor de claves donde podemos guardar nuestra clave pública para que esté a disposición de todo el mundo.
Yo personalmente lo que hago es que todos los mensajes que mando contienen una firma en la que aparece un hipervínculo que enlaza con el archivo de mi firma digital que está colgada en un servidor de internet (existen en la red muchos servidores gratuitos donde puedes alojar archivos públicos y privados). De esta forma me garantizo de que todos las personas con las que mantengo una correspondencia a través de internet pueda descargarse mi clave pública.
Cuando nosotros tengamos en nuestro poder una clave pública de otra persona de nuestra confianza entonces podemos firmar su clave (para ello debemos estar seguros de que no existe suplantación de personalidad, es decir, hay que tomar las medidas de seguridad adecuadas). De esta forma cada vez que recibamos un correo de esa persona nuestro sistema lo interpretará como alguien de confianza y nos garantizará de que esa persona es quien dice que es.
  1. Hacer click en Clave e importar clave. De esta forma la importamos la clave pública de la otra persona.
  2. Hacer doble click en la clave pública que selecciones o también seleccionar dicha clave, apretar el botón derecho del ratón y hacer click en propiedades
  3. Seleccionar el grado de confianza que tenéis en esa firma pública: De menor a mayor confianza: de ninguna manera, casualmente y cuidadosamente. Si tenéis la absoluta confianza de que es verdadera podéis seleccionar cuidadosamente.
  4. Firmar clave. Seleccionamos con el ratón firmar clave y entonces deberemos introducir nuestra clave privada para asegurar de que cuando recibamos un correo de esa persona tengamos la certeza de que es quien es. Nosotros mostramos nuestra confianza en una clave pública cuando la firmamos con nuestra clave privada. Esto no significa que la otra persona conozca nuestra clave privada ni mucho menos, solamente que cuando recibamos un correo de esa persona el sistema interprete que es de confianza.
Cuando alguien nos manda un correo electrónico cifrado, deberá hacerlo con nuestra clave pública. Por eso es importante que otras personas conozcan nuestra clave pública y que cuanto más segura sea, mejor para evitar problemas de seguridad. Cuando alguien nos envía un correo cifrado en su ordenador aparecerá cifrado y no podrá descrifrarlo a no ser que conozca tu clave privada, que como ya dijimos anteriormente no debía conocerla nadie. En el ordenador de la otra persona se cifrará para garantizar de que solamente existe un correo descifrado, el que está en tu ordenador. Cuando abramos el correo en cuestión el programa nos pedirá nuestra clave privada para que podamos leer el correo, la tecleamos y entonces tendremos acceso al contenido. En la firma del mensaje nos informará de que es un correo cifrado y que el remitente es de confianza.
Ahora vamos a trabajar en el sentido contrario. Vamos a enviar nosotros un correo electrónico seguro a otra persona de confianza .Abrimos el gestor de correo electrónico para poner en práctica lo ya comentado. Seguimos los siguientes pasos.
  1. Abrimos Evolution.
  2. Hacemos click en crear un nuevo correo.
  3. En el campo Para introducimos la dirección de correo del destinatario. Recuerda que para que el correo pueda ser firmado debe coincidir la dirección de correo electrónico que vamos a utilizar con la que aparece en nuestra clave personal.
  4. Hacemos click en Seguridad y seccionamos firmar con GPG y/o cifrar con GPG.
  5. Enviamos el correo electrónico.
Espero que el presente artículo os haya sido de utilidad. Utilizar sistemas de seguridad en el envío y recepción de correos electrónicos es de muchísima utilidad, si como hemos dicho, la información que viaja a través de la red es sensible. Al principio, utilizar este tipo de programas, es uno poco lioso ya que no estamos acostumbrados a ellos y nos cuesta asimilar la nomenclatura que tienen, pero una vez que se sabe utilizar, los correos electrónicos se convierten en muy seguros. De esta forma se rompe uno de los grande mitos de las comunicaciones a través de internet, que no son seguras. Con estos sistemas de seguridad podemos seguir utilizando el correo electrónico con la ventaja que ya tenía de rapidez y eficacia en las transacciones y además le añadimos el componente que le faltaba, la seguridad.
 
¿Habéis utilizado alguna vez este sistema de encriptación?
¿Cuál es vuestra experiencia en encriptación de correos electrónicos? 
¿En que contexto lo utilizáis? trabajo, uso personal......


Espero que el post os haya sido de utilidad. Un saludo.

No hay comentarios:

Publicar un comentario