Tempest: En busca de software y hardware más silencioso
Hace ya algún tiempo os dejé un artículo aquí sobre un trabajo de investigación en el que se explicaba cómo utilizando la tecnología Tempest se podía extraer una clave de cifrado de un equipo con solo tocarlo, utilizando un side-channel que permitiera reconocer las instrucciones que se estaban realizando en el microprocesador. Este trabajo se centró en la extracción de las claves utilizadas en GnuPG y tocando el equipo para tener mediciones de las vibraciones.
Cuando se publicó el artículo, los investigadores instaron a los programadores a cambiar la forma en la que realizaban algunos de los cálculos criptográficos, para evitar ser tan "verbose" con las emanaciones de señales que se estaban produciendo por ciertas instrucciones. Es decir, cambiando determinadas instrucciones se puede reducir el volumen de señal que se genera en un side-channel y dificultad en gran medida el trabajo del atacante a la hora de reconocer las instrucciones.
Creando software con menos filtraciones en el side-channel
Esto, como se explica en el artículo de investigación "A Practical Methodology for Measuring the Side-Channel. Signal Available to the Attacker for Instruction-Level Events" se debe a que la señal que se filtra por un canal paralelo depende de dos cosas principalmente, que son:
1.- El tipo de instrucción
2.- La arquitectura del sistema que las ejecuta
Así, por ejemplo, las operaciones de Divisiones son mucho más proclives a dejar más información en un side-channel que una operación de Suma, y las arquitecturas que ejecutan más operaciones dentro del microprocesador tienen menos fugas de señal que las que tiran mucho de una caché externa del microprocesador.
Figura 2: Paper que explica la métrica SAVAT |
Para medir lo que un código filtra de señal en un side-channel que pudiera ser atacado por medio de estas técnicas Tempest, los investigadores proponen una métrica que llaman SAVAT (Signal AVailable to ATtacker) , donde miden cuánto de reconocible es una señal por medio de una métrica que mide el periodo de la señal que se produce en el canal paralelo tras la ejecución de programas sintéticos de las instrucciones a medir.
Figura 3: Estrategia de medición de métrica SAVAT en la ejecución de instrucciones |
Así, dependiendo de una arquitectura de equipo u otra, habrá una medición de qué instrucciones utilizadas en un programa están generando más información en el side-channel para que los compiladores puedan, por ejemplo, generar un código u otro a nivel de microprocesador consiguiendo evitar las instrucciones que ayuden a la filtración de información. Esto reduciría por tanto el impacto que podría tener un ataque Tempest como el descrito en el artículo inicial para extraer una clave GnuPG.
Usando Hardware con menos filtraciones en el side-channel
Por otro, lado hay que tener presente que la filtración de información que se hace en un canal paralelo depende del canal, así que unos investigadores han propuesto en el artículo "Side-channel Vulnerability Factor:A Metric for Measuring Information Leakage" una métrica para medir cuánto de seguro es un equipo contra la fuga de información por canales paralelos.
En este trabajo lo que hacen es cruzar la ejecución de un algoritmo en una determinada arquitectura y grabar un side-channel para poder cruzar los datos y ver qué cantidad de información se puede reconocer a partir de una distancia del equipo. Dependiendo de lo verbose que sea el sistema será más fácil reconocer unas u otras instrucciones. El resultado final dará un SVF (Side-Channel Vulnerability Factor) que ayudará a reconocer equipos que filtran más o menos información por un determinado side-channel que otros.
Eligiendo una arquitectura con poco SVF y generando algoritmos de poco SAVAT, junto a medidas de atenuación de señal adecuadas, lo que se pretende conseguir es que los equipos sean más seguros a la hora de recibir ataques de extracción de información por medio de técnicas Tempest.
Saludos Malignos!
2 comentarios:
Al final habrá que poner amortiguadores en las placas base del equipo que usaremos dentro de una habitación adecuada como jaula de Faraday y con aislamiento acústico.
Entonces habrá que hacer tanto ruido que no puedan escuchar nada... ;-)
Publicar un comentario