lunes, febrero 22, 2016

Cómo robar claves de cifrado de curva elíptica en OpenPGP - GnuPG con técnicas Tempest

No es ni mucho menos el primer trabajo relativo a técnicas Tempest, ni el primero que roba las claves de cifrado de un sistema con un Side-Chanel, pero sí es el primero que lo hace utilizando emanaciones electromagnéticas sobre claves de cifrado ECDH (Eliptic Curve Diffie-Hellman) aprovechándose de una implementación software "ruidosa" en emanaciones Electro-Magnéticas y la posibilidad de inyectar procesos de descifrado remotamente.

Figura 1: Cómo robar claves de cifrado de curva elíptica en OpenPGP - GnuPG con técnicas Tempest

Esto que, a priori, puede sonar a muchos como un galimatías sin pies ni cabeza, la verdad es que se puede explicar paso a paso para que todo el mundo lo entienda, a ver si soy capaz.

Las Técnicas Tempest

Hace mucho tiempo que se conocen estas técnicas, y consisten en medir la fuga de información que se produce de un sistema informático por culpa de emanaciones físicas del mismo. Desde poder ver lo que se está visualizando en una pantalla a base de medir los cambios en las emanaciones Electro-Magnéticas de la pantalla, hasta descifrar qué es lo que está tecleando alguien en su equipo a base de medir las ondas transmitidas por la mesa con cada golpe de dedo sobre una tecla. 

Figura 2: Paper de los investigadores para extraer las claves ECDH con EM

Cada técnica Tempest elige un medio físico para acceder a la fuga de datos que se produce para correlacionar la información que se quiere extraer con el medio físico. Estas emanaciones físicas, ya sean ondas en Radio-Frecuencia, Electro- Magnéticas, el Calor o Vibraciones en superficies, dependerá del hardware que se esté analizando. Este medio será el Side-Channel o Canal Paralelo que utilizará el atacante para leer la información del sistema remotamente.

Figura 3: Equipo del atacante para medir las emanaciones EM del equipo víctima

Las ondas Electro-Magnéticas se han utilizado ya en el pasado para medir las fugas de información que se producen en los chips de las tarjetas hardware en los equipos informáticos. Desde hace tiempo se conoce que es posible saber cuándo un determinado chip está realizando una operación matemática de suma, de resta, de división, o de movimiento de datos. Así que es posible sacar una historia de las operaciones que está realizando. En esta conferencia tienes una explicación de algunas de ellas y una demostración de cómo saber qué operaciones realiza un microprocesador con Tempest.


Figura 4: Conferencia sobre Tecnologías Tempest

Para evitar esta fuga de información, los investigadores llevan ya años trabajando en algoritmos y técnicas para conseguir un hardware menos ruidoso en emanaciones Tempest y en protecciones hardware especiales que bloqueen la fuga de ondas Electro-Magnéticas o de Radio Frecuencia a través de determinadas superficies.

Figura 5: Equipo de la víctima

En este caso, los investigadores han utilizado como víctima de sus grabaciones un equipo portátil Lenovo 3000 N200, del que han medido las ondas EM para poder descifrar las claves de descifrado del algoritmo ECDH remotamente.  

Asociar algoritmo a Tempest

Medir la onda es el primer paso, el segundo es reconocer el modo de instrucción en que se encuentra el chip en cada momento. Esto es una asociación ente las emanaciones EM y lo que se conoce del sistema. Es necesario medir previamente con un sistema de entrenamiento cómo se comporta el Side Channel en función de cada instrucción para luego poder reconocer la instrucción que está ejecutando en función de cada emanación.

Figura 6: Pseudocódigo de uno de los algoritmos de libgcrypt

Para conseguir este objetivo, los atacantes utilizaron un sistema bastante inteligente. Su objetivo era descifrar las claves ECDH que eran utilizadas en el cifrado y descifrado de mensajes con OpenPGP. Este software utilizar las librerías libgcryt de GnuPG 2.x de las que ya se conocía, gracias a estudios Tempest anteriores para extracción de claves de cifrado, que era posible asociar las emanaciones a las fases del algoritmo en que se encuentra.

Figura 7: Ajuste de onda EM grabada con partes del algoritmo

Al final, según la fase del algoritmo ECDH en que se encuentre un sistema se emiten unas determinadas emanaciones EM que pueden llevar al atacante a saber qué está haciendo OpenPGP en cada momento. Esto se considera un fallo de seguridad y desde hace tiempo los investigadores recomiendan hacer software menos ruidoso en emanaciones, para evitar los ataques Tempest, e incluso se proponen métricas como SAVAT para conocer el nivel de protección que da un determinado sistema.

Forzar un sistema de cifrado

Conocer el software en detalle que se utiliza en el equipo de la víctima es el primer paso, pero hay que hacer el ajuste, para lo cual los atacantes necesitan conocer no solo cómo se comporta el sistema con el algoritmo, sino como lo hace en cada momento. Para esto utilizaron otro vector de ataque muy interesante, que no es otro que Enigmail, un plugin para usar OpenPGP en Mozilla ThunderBird que descifra automáticamente el correo electrónico según llega.

Figura 8: Enigmail con OpenPGP para Mozilla ThunderBird

Esto le permitía al atacante enviar correos electrónicos cifrados con PGP a la víctima y ver cómo se comporta el Side Channel con cada sistema de cifrado elegido, teniendo en cuenta que conoce, además, la clave de cifrado utilizado. Es decir, que el atacante puede inyectar comportamientos automáticos en el equipo de la víctima por culpa de esta característica de descifrado automático en Enigmail.

Descifrado de las claves

El resto del trabajo consiste en aplicar los vectores de ataque a los ECHD sabiendo cómo está cifrando y descifrando con la clave en cada momento. Es decir, trabajo ingeniería inversa sobre el algoritmo de cifrado en el que se hace un ataque a los bits de la clave K conociendo características especiales de ellos. Esta es la parte puramente criptográfica en la que se hace uso de técnicas de criptoanálisis de la señal.

Figura 9: Reconocimiento de bits en señal EM capturada

La ventaja es que no se hace sobre el mensaje cifrado final, sino sobre las partes del proceso en el algoritmo donde influye el uso da la clave K. Es decir, que se puede ir viendo como varia la señal en cada ciclo del algoritmo durante el cual se está construyendo el mensaje final cifrado y/o el mensaje final descifrado. Si te gusta la criptografía y el criptoanálisis, ya sabes que este libro de los doctores Jorge Ramió y Alfonso Muñoz hace un recorrido sobre ellas: Cifrado de las Comunicaciones Digitales. De la Cifra Clásica a RSA

Conclusiones y Otros ataques Tempest

Las técnicas Tempest ya están muy presentes en nuestro día a día, y todo Canal Paralelo o Side-Channel que se pueda correlacionar con la información de un sistema se convierte en un bug de seguridad que debe protegerse. En el pasado yo he ido "coleccionando" algunos de estos ataques de Side-Channel, así que si te gustan, puedes leer alguno de ellos aquí:
Saludos Malignos!

Entrada destacada

IMPACT TALK en la UEM Business School en Youtube

El pasado mes de Julio fui invitado por la Business School de la Universidad Europea - donde sabéis que yo soy además director externo de...

Entradas populares