Redes Sociales

jueves, 20 de febrero de 2014

Cifrado de correos electrónicos con GPG (1/2)

Voy a aprovechar un trozo del tema 9 del curso de seguridad de la Hacker High School, de la que soy traductor, para poner en contexto lo que es PGP, las claves públicas y privadas, MIME y S/MIME, de cara a luego a hacer la práctica del funcionamiento de todos estos conceptos. Lo hago por que la verdad, me ha parecido una explicación muy amena, sencilla e interesante y creo que todos deberíamos SIEMPRE enviar nuestros correos cifrados y firmados y evitar así que ocurran cosas como lo de la NSA. Ahí va:

PGP viene de Pretty Good Privacy (En castellano, Bastante Buena Privacidad) y fue desarrollado por Phil Zimmermann. Es posible que buscando por internet nos encontremos con la versión de código abierto llamada GPG (GNU Privacy Guard). GPG esta disponible gratis para muchas plataformas, y solo usa algoritmos abiertos y públicamente evaluados.

GPG trabaja sobre el principio de gestión de claves públicas y privadas, lo que significa que las claves tienen una parte PÚBLICA que se la puedes dar a cualquiera que quieras que te envíe un correo cifrado, y una parte PRIVADA que debes mantener en secreto, y que es la única forma de descifrar el mensaje que has recibido. Al conjunto de clave pública y privada se le llama par de claves, y generalmente es lo primero que generas cuando instalas GPG en una máquina. El par de claves está protegido por una contraseña de manera que puede no ser modificado por nadie más que por el dueño. Puede ser necesario alterar el par de claves cuando quieras cambiar las direcciones de correo que el par de claves soporta, o por si quieres hacer uso de otras funciones.

Dado que necesitas la clave pública de alguien a quien quieras enviar un mensaje cifrado, existen servidores como pgp.mit.edu donde puedes descargar la clave o claves públicas asociadas con una dirección de correo en concreto, así como subir tu propia clave pública. Es posible que las claves hayan expirado o que se pierdan las contraseñas privadas, de manera que siempre usa la última clave o incluso mejor, pide al destinatario de tu correo que te mande la suya y confirma y confirma el fingerprint (una especie de más corto).

MIME (Multi-Purpose Internet Mail Extensions) es un conjunto de extensiones del protocolo de correo SMTP (Simple Mail Transfer Protocol). MIME permite enviar como adjuntos diferentes tipos de contenidos tanto de datos como multimedia, audio, video, imágenes, ficheros comprimidos, y aplicaciones. La cabecera MIME se inserta al principio del correo electrónico y el cliente de correo del receptor usa esta información para determinar qué programa está asociado con el fichero adjunto. MIME por sí mismo no proporciona ningún tipo de seguridad a los correos o a los adjuntos.

S/MIME (Secure/Multipurpose Internet Mail Extensions) es un protocolo que añade las características de firma digital y cifrado a los ficheros adjuntados al mensaje mediante MIME. Usando firma digital, S/MIME consigue garantizar la autenticidad, integridad y no repudio del mensaje (“no repudio” significa que no puedes negar que lo hayas mandado tu). S/MIME proporciona privacidad y seguridad (usando el cifrado) a los correos que usen este protocolo.

Cuando consultas un servidor de claves, ¿Cómo puedes estar segur@ de que una clave pública de un destinatario de correo electrónico es realmente la suya y no ha sido subida por cualquier otra persona?. La solución a este problema es que estas claves pueden ser firmadas por terceras personas. Imagina que ya tienes la clave (pública) de alguien en quien confías, y que sabe quien es la persona a la que quieres mandar un correo electrónico. Esa otra persona puede firmar la clave pública, lo que significa que le añade un poco más de confianza a esa clave, dado que tu ya conoces a esta otra persona. Esto es conocido como confianza heredada. Por supuesto, también puedes encontrar otra forma de ponerte en contacto con el destinatario y pedirle que te mande su clave pública, o recibir la “huella” de la clave – la huella es un checksum de la clave que es fácil y rápida de verificar. En un servidor de claves, cada clave también tendrá un ID o identificador – que es otro checksum con el mismo objetivo.

Enviar un correo cifrado usando GPG. La mayor parte de los clientes de correo soportan extensiones que facilitan el manejo de claves y el cifrado de mensajes. Los mejor es comprobar de antemano si el destinatario de tu mensaje tiene una clave pública y obtenerla, ya sea de un servidor de claves, o del propio receptor del mensaje.

A continuación, escribe el correo electrónico como haces habitualmente (de nuevo recomendamos usar texto plano en vez de formato HTML), añade cualquier fichero adjunto que necesites y dile a tu cliente de correo que lo cifre y lo mande. Si decidiste firmar el correo, el cliente de correo habrá usado tu clave privada para firmar el mensaje primero, y a continuación habrá usado la clave pública de tu destinatario para cifrar el correo y todos los ficheros adjuntos. Si proteges tu par de claves con una contraseña(¡deberías!), tu cliente de correo te pedirá esa contraseña.

Recibir un correo cifrado usando GPG. Los correos cifrados con PGP contienen o bien un fichero adjunto marcado como GPG, o tienen un bloque de texto con una cabecera que le dice al cliente de correo que acaba de recibir un correo cifrado. El cliente de correo ahora accede a tu clave privada (posiblemente pidiéndote antes una contraseña) y descifra el mensaje y todos los adjuntos. Si el mensaje no fue cifrado con tu clave pública este descifrado simplemente fallará. Si el mensaje fue firmado por el emisor, la extensión (o plugin) GPG del cliente de correo usará la correspondiente clave pública para verificar la firma también. El plugin de GPG que utilices te alertará de cualquier problema que encuentre con las firmas o ficheros adjuntos, pero en general, una vez instalado, el uso de GPG es bastante fácil.

No hay comentarios:

Publicar un comentario