martes, mayo 15, 2018

Efail: O cómo descifrar e-mails cifrados con S/MIME y OpenPGP usando técnicas de exfiltración

La verdad es que hoy, día de San Isidro, tenía cualquier plan menos ponerme a leer un paper técnico, pero encontrarme esta mañana información del trabajo de Efail merece la pena el cambio de planificación. Se trata de un trabajo que explica cómo se pueden descifrar correos electrónicos que hayan sido cifrados mediante S/MIME u OpenPGP, incluso si los correos tienen mucha antigüedad.

Figura 1: Efail: O cómo descifrar e-mails cifrados
con S/MIME y OpenPGP usando técnicas de exfiltración

Dicho esto, dejadme que os explique un poco el escenario para que sea más fácil de entender por todos, pues si no puede llevar a confusión. Supongamos que Eduardo (Emisor) envía un mensaje cifrado con OpenPGP o S/MIME a Ricardo (Receptor). Para eso, quiere decir que Ricardo tiene la clave privada de descifrado del Mensaje, ya que hemos cifrado el contenido del Mensaje con la Clave Pública de Ricardo.

Figura 2: Efail: Breaking S/MIME and OpenPGP Email Encryption

Supongamos ahora que Ricardo, años después sigue teniendo disponible esa Clave Privada (no ha caducado, y la sigue teniendo en uso). Bien, en ese escenario, un atacante, podría enviar un e-mail, al que llamaremos Mensaje Malicioso que iría cifrado con la Clave Pública de Ricardo, y que podría ser utilizado por el Atacante para descifrar los Mensajes enviados años atrás por Eduardo. ¿Cómo?

Figura 3: Si la Víctima abre un e-mail Mailicioso puede descifrar mensajes antiguos

Pues tan sencillo como metiendo en el Mensaje Malicioso "trozos" del Mensaje de Eduardo a Ricardo que van cifrados para que los descifre y Exfiltrando el contenido descifrado utilizando diferentes técnicas que dependen de:
A) El tipo de cifrado que se utiliza 
B) El cliente de correo electrónico que usa Ricardo.
Si queréis los detalles completos, podéis leeros el paper, pero básicamente utiliza tres tipos de exfiltración basados en el uso de la interpretación del HTML y las Primitivas de los sistemas de cifrado:
- BackChanels: Si el cliente interpreta el código HTML de un e-mail se puede crear un mensaje HTML con una etiqueta IMG que se cargue de un servidor controlado. Este canal que siempre ha sido visto como un riesgo de privacidad - ya os conté alguna aventura mía con esto por culpa de Gmail - también se puede usar para exfiltrar datos usando parámetros en las URLs o dejando las etiquetas sin cerrar. 
- Direct Exfiltration: Se dejan las etiquetas IMG sin cerrar y algunos clientes envían parte del mensaje descifrado al servidor. Esto permite que el Atacante acceda a datos descifrados que le permiten tener duplas de datos cifrados y descifrados. 
- Malleability Gadget: Aquí el paper se centra en cómo utilizar los datos exiltrados para, utilizando las primitivas de OpenPGP y S/MIME que permiten reordenar o inyectar pedazos de mensajes cifrados en el sistema para obtener su descifrado. Es decir, dinámicamente se puede solicitar el motor que descifre cadenas de texto cifrado.
Con estás técnicas, dependiendo de la configuración del cliente de correo electrónico y las versiones de OpenPGP o S/MIME una víctima podría estar descifrando correos electrónicos antiguos con solo abrir un mensaje malicioso hoy en día.  Las versiones afectadas por esta técnica las tenéis en la tabla de la figura siguiente.

Figura 4: Tabla de sistemas afectados

¿Cómo evitar esto?

La forma más sencilla es actualizar el software de S/MIME y de OpenPGP para evitar el uso de las primitivas para modificación y quitar el uso de HTML en la interpretación de mensajes de e-mail. HTML en el e-mail ha sido siempre un leak de privacidad debido a la existencia de Side-Channels para saber si un mensaje ha sido leído o no y desde qué equipo, así que si lo tienes deshabilitado, mejor que mejor.

Si quieres saber más sobre este tema, te recomiendo el libro de Cifrado de las Comunicaciones Digitales que explica todos estos conceptos con extrema facilidad y te permitirá entender mejor este tipo de situaciones.

Saludos Malignos!

No hay comentarios:

Publicar un comentario