Autor: Lic. Cristian F. Borghello
Ver Segundo Artículo: Formas para hacer seguros tus correos (II)
Ver Último Artículo: Formas para hacer seguros tus correos (y III)
La necesidad de firmar mis correos ha cobrado relevancia.
Es por eso de la existencia de esta mini guía para escribir correos en forma segura. Como bien indica el título, se repasan cuatro formas de cifrar y/firmar nuestros correos electrónicos: uso de PGP, <acronym>GPG</acronym>, cualquiera de los anteriores en un webmail.
Este artículo es complemento para los boletines número 7, 12, 14 y 46.
En este documento se evitarán los conceptos teóricos que fundamentan las técnicas explicadas, ya que de lo contrario el mismo podría adquirir la categoría de libro. Para profundizar en teoría recomiendo la lectura de nuestra sección de criptografía,
nuestro proyecto de traducción, el Taller de Criptografía (Death Master) [1], Libro Seguridad Informática y Criptografía (Jorge Ramió Aguirre)
[2] o Criptografía y Seguridad en Computadores (Manuel J. Lucena López) [3].
Por supuesto no olvidar consultar la Wikipedia [4].
Una introducción a encriptación y firma digital puede ser leído en nuestro boletín 12 donde se explica porque las mismos aseguran la confidencialidad, integridad y no repudio.
En esta primera entrega comenzaremos con el uso de PGP sobre Outlook Express. En las próximas analizaremos el uso de <acronym>GPG</acronym> con otro cliente de correo para luego finalizar con el uso de <acronym>GPG</acronym> y FreeEnigma en webmail.
Para esta demostración no se utilizarán productos comerciales por lo que la guía será realizada con PGP 6.5.8, última versión Freeware con código fuente disponible y provista por PGP Internacional. Cabe aclarar que PGP actualmente comercializa su versión Desktop Professional 9.0 que no difiere en gran medida con la versión previamente mencionada.
Durante la instalación se nos permite seleccionar los plugins para su utilización con Outlook, cliente de correo que utilizaremos en esta demostración [Img. 01].
A continuación, si es la primera vez que utilizamos PGP, deberemos generar el par de llaves: una pública y una privada. En cambio, si ya las hemos generado anteriormente, sólo deberemos indicarle la ruta en donde se encuentran las mismas [Img. 02].
Para generar nuestro par de llaves deberemos indicar el nombre y la dirección de correo que utilizaremos para cifrar y firmar nuestros mensajes [Img. 03].
A continuación podremos elegir el algoritmo utilizado. Para el objetivo de nuestra demostración no es importante cual escojamos así como tampoco la longitud de las claves, que se nos solicitan a continuación. En mi caso he elegido RSA de 1024 bits de longitud [Img. 04]. Luego se nos pide que informemos cuando caducarán dichas llaves, lo que tampoco es importante en nuestro caso, por lo que dejamos la opción por defecto (nunca).
Ahora si se nos solicita un dato realmente importante: nuestra passphrase. Esta es una frase (no una palabra) secreta que se utilizará posteriormente a modo de clave para acceder a nuestras llaves pública y privada, que se están generando en este momento. Como toda clave, es fundamental que la misma no sea olvidada ya que si esto sucede no podremos volver a utilizar nuestras llaves y deberemos generar un nuevo par [Img. 05].
Aquí también se nos informa la fortaleza de la frase escogida. Luego se procede a generar el par de llaves y se nos pregunta si deseamos enviarlas a un servidor de llaves. En nuestro caso no las enviaremos.
Finalizando el proceso de instalación y generación se nos muestra nuestro nuevo anillo de llaves, en donde figuran personas desconocidas para nosotros y que podremos borrar si lo deseamos (son el grupo desarrollador de PGP por si deseamos enviarle un correo) y también figura nuestra propia llave [Img. 06].
Si este es el par de claves que utilizaremos en el futuro es muy recomendable realizar una copia de seguridad de los archivos de llaves generadas, para la próxima vez que instalemos PGP o por si deseamos utilizar las mismas en otro sistema [Img. 07].
En este punto es muy importante remarcar que podremos entregar nuestra llave pública a quien deseemos (exportándola), subirla a un servidor de claves o simplemente ponerla a disposición de quien desee obtenerla. Por ejemplo mi llave pública se encuentra en http://www.segu-info.com.ar/cristianborghello.asc Pero, de ninguna forma, NUNCA debemos entregar nuestra llave privada bajo ninguna circunstancia ya que esto permitiría a otra persona poder enviar mensajes, firmarlos o cifrarlos con nuestro nombre.
Ahora ya estamos listos para cifrar y firmar nuestro correo. Para ello abrimos Outlook Express configurado con la MISMA cuenta de correo con la que hemos generado nuestro par de llaves. En la barra superior vemos el nuevo botón de PGP ya agregado al igual que cuando creamos un nuevo mensaje [Img. 08]. Por favor no confundir el cifrado/firmado de PGP con las demás opciones de criptografía preestablecidas en Outlook.
En la primera oportunidad sólo firmaremos nuestro mensaje. Para ello lo escribimos como de costumbre y seleccionamos "Sign (PGP)".
Se nos solicitará la passphrase que hemos ingresado al generar el par de llaves. La ingresamos y el mensaje será firmado y quedará listo para su envío en la bandeja de salida [Img. 09]. Es importante que la firma sea la última acción realizada sobre el correo ya que cualquier modificación en el mismo (sólo un bit) variaría la firma y esta debería realizarse nuevamente [Img. 10].
Vemos que el mensaje escrito por nosotros permanece entre un bloque que indica el comienzo y el final del texto firmado. De la misma forma, podemos apreciar que este boletín también presenta dichos bloques.
El destinatario del correo por supuesto deberá poseer nuestra llave pública para poder verificar la procedencia e integridad del correo. De esta forma confirmará que efectivamente el mismo procede de quien dice proceder ya que solo nosotros tenemos la llave privada correspondiente a esa llave pública.
Como vemos el destinatario puede confirmar que el correo no fue modificado ya que como dijimos cualquier modificación en el mismo cambiaría la firma. Además puede estar seguro que el mismo fue escrito por nosotros por lo que desde ahora en adelante no podremos alegar que no escribimos dicho correo (propiedad de no repudio).
Por otro lado, si esta costumbre de firmar los correos se extendiera y cada uno de nuestros correos fuera firmado nadie (en teoría) podría hacerse pasar por nosotros y solucionaríamos el terrible problema de suplantación de identidad tan común hoy en día en el mundo virtual.
Cuando el destinatario recibe el correo, teniendo PGP instalado y nuestra llave pública, procederá a verificar la autenticidad del correo. Para ello dispone de un botón (agregado por PGP) para hacerlo. Al presionarlo se verifica la firma y nuestro mensaje aparece como "good" [Img. 11].
En caso que el mensaje haya sido alterado o proceda de una persona distinta de la que dice provenir (en el caso que alguien quiera suplantarnos), el mensaje aparece como "bad" [Img. 12].
Esto puede darse en casos en donde en la cabecera del mensaje aparece la dirección correcta pero el correo ha sido creado por otra persona. Aquí radica la importancia de proteger nuestra llave privada para que nadie pueda escribir correos con nuestro nombre.
Como vemos la firma permite que el destinatario verifique la autenticidad del mensaje pero no evita que el mismo pueda ser leído por otra persona en el camino (no se asegura la privacidad).
Para asegurar también la privacidad, enviaremos un correo encriptado y firmado. Con esto nos aseguraremos que sólo el destinatario del correo pueda leerlo (al desencriptarlo), además de verificar su autenticidad mediante la firma.
Para comunicarnos con una persona a través de un mensaje cifrado deberemos poseer su clave pública. De esta forma al enviarle el mensaje encriptado sólo él podrá descrifrarlo porque es el único que tiene la llave privada correspondiente a su pública.
Escribimos el mensaje, seleccionamos las opciones Encript (PGP) y Sign (PGP), ingresamos nuestra passphrase y enviamos el correo [Img. 13].
Nuevamente en nuestra bandeja de salida podremos ver la forma que tomó nuestro mensaje. Esta vez el bloque de texto no puede deducirse ya que el mismo ha sido encriptado y firmado [Img. 14].
Al recibir el correo, el destinatario escribe su passphrase y el mensaje es desencriptado con su clave privada [Img. 15]. Como en este caso el mensaje también iba firmado, se verifica dicha firma. Ahora el destinatario está seguro que nosotros escribimos y enviamos el mensaje, que el mismo no fue modificado y que sólo él puede leerlo [Img. 16].
En la próxima entrega veremos el uso de <acronym>GPG</acronym> (gratuito y Open Source) con otro cliente de correo.
[1]
http://www.death-master.tk/
[2]
http://www.lpsi.eui.upm.es/~jramio/index.html
[3]
http://www.telefonica.net/web2/lcripto/lcripto.html
[4]
http://es.wikipedia.org/wiki/Criptograf%C3%ADa_de_clave_p%C3%BAblica
http://es.wikipedia.org/wiki/Firma_digital
http://es.wikipedia.org/wiki/PGP
http://es.wikipedia.org/wiki/<acronym>GPG</acronym>
Buenos Aires, 13 de septiembre de 2006