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.
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.
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.
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.
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.
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.
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.
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í:
- Robar datos de servidores aislados con ondas GSM, Radio-Frecuencia o Calor
- Capturar las pulsaciones de teclado por las vibraciones en la pantalla
- Un keylogger a través de iPhone usando el acelerómetro
- Extraer claves GnuPG con el poder de tu mano
- Tempest: En busca de HW y SW más silencioso
Saludos Malignos!
No hay comentarios:
Publicar un comentario