En seguridad informática , un ataque de canal lateral es cualquier ataque basado en información adicional que se puede recopilar debido a la forma fundamental en que se implementa un protocolo o algoritmo de computadora , en lugar de fallas en el diseño del protocolo o algoritmo en sí (por ejemplo, fallas encontradas en un criptoanálisis de un algoritmo criptográfico ) o errores o descuidos menores, pero potencialmente devastadores, en la implementación . (El criptoanálisis también incluye la búsqueda de ataques de canal lateral). La información de tiempo, el consumo de energía, las fugas electromagnéticas y el sonido son ejemplos de información adicional que podría explotarse para facilitar los ataques de canal lateral.
Algunos ataques de canal lateral requieren conocimientos técnicos sobre el funcionamiento interno del sistema, aunque otros, como el análisis de potencia diferencial, son eficaces como ataques de caja negra . El auge de las aplicaciones Web 2.0 y el software como servicio también ha aumentado significativamente la posibilidad de ataques de canal lateral en la web, incluso cuando las transmisiones entre un navegador web y un servidor están cifradas (por ejemplo, a través de HTTPS o cifrado WiFi ), según investigadores de Microsoft Research y la Universidad de Indiana . [1]
Los intentos de romper un criptosistema engañando o coaccionando a personas con acceso legítimo normalmente no se consideran ataques de canal secundario: véase ingeniería social y criptoanálisis de manguera de goma .
Las clases generales de ataque de canal lateral incluyen:
En todos los casos, el principio subyacente es que los efectos físicos causados por el funcionamiento de un criptosistema ( en el lado ) pueden proporcionar información adicional útil sobre secretos en el sistema, por ejemplo, la clave criptográfica , información de estado parcial, textos claros completos o parciales , etc. El término cryptophthora (degradación de secretos) se utiliza a veces para expresar la degradación del material de claves secretas resultante de la fuga de canal lateral.
AEl ataque de canal lateral de caché funciona monitoreando operaciones críticas de seguridad comola entrada de la tabla Tde AES[2][3][4]o la exponenciación o multiplicación modular o los accesos a la memoria.[5]El atacante luego puede recuperar la clave secreta dependiendo de los accesos realizados (o no) por la víctima, deduciendo la clave de cifrado. Además, a diferencia de algunos de los otros ataques de canal lateral, este método no crea una falla en la operación criptográfica en curso y es invisible para la víctima.
En 2017, se descubrieron dos vulnerabilidades de CPU (denominadas Meltdown y Spectre ), que pueden utilizar un canal lateral basado en caché para permitir que un atacante filtre el contenido de la memoria de otros procesos y del propio sistema operativo.
Un ataque de sincronización vigila el movimiento de datos que entran y salen de la CPU o la memoria en el hardware que ejecuta el criptosistema o algoritmo. Con solo observar las variaciones en el tiempo que lleva realizar operaciones criptográficas, podría ser posible determinar la clave secreta completa. Estos ataques implican un análisis estadístico de las mediciones de sincronización y se han demostrado en redes. [6]
Un ataque de análisis de potencia puede proporcionar información aún más detallada al observar el consumo de energía de un dispositivo de hardware, como una CPU o un circuito criptográfico. Estos ataques se clasifican en general en análisis de potencia simple (SPA) y análisis de potencia diferencial (DPA). Un ejemplo es Collide+Power, que afecta a casi todas las CPU. [7] [8] [9] Otros ejemplos utilizan enfoques de aprendizaje automático . [10]
Las fluctuaciones de la corriente también generan ondas de radio , lo que permite ataques que analizan mediciones de emanaciones electromagnéticas (EM). Estos ataques suelen implicar técnicas estadísticas similares a las de los ataques de análisis de potencia.
Se ha demostrado un ataque de canal lateral basado en aprendizaje profundo , [11] [12] [13] que utiliza la información EM y de potencia de múltiples dispositivos, con el potencial de romper la clave secreta de un dispositivo diferente pero idéntico con tan solo un rastro.
Se conocen análogos históricos de los ataques de canal lateral modernos. Un documento de la NSA desclasificado recientemente revela que ya en 1943, un ingeniero con un teléfono Bell observó picos descifrables en un osciloscopio asociados con la salida descifrada de un determinado teletipo de cifrado. [14] Según el ex oficial del MI5 Peter Wright , el Servicio de Seguridad Británico analizó las emisiones de los equipos de cifrado franceses en la década de 1960. [15] En la década de 1980, se sospechó que los espías soviéticos habían colocado micrófonos ocultos dentro de las máquinas de escribir IBM Selectric para monitorear el ruido eléctrico generado cuando la bola de tipos giraba y se inclinaba para golpear el papel; las características de esas señales podían determinar qué tecla se presionaba. [16]
El consumo de energía de los dispositivos provoca un calentamiento que se compensa con efectos de enfriamiento. Los cambios de temperatura crean estrés mecánico inducido térmicamente. Este estrés puede generar emisiones acústicas de bajo nivel de las CPU en funcionamiento (alrededor de 10 kHz en algunos casos). Investigaciones recientes de Shamir et al. han sugerido que también se puede obtener información sobre el funcionamiento de los criptosistemas y algoritmos de esta manera. Se trata de un ataque de criptoanálisis acústico .
Si se puede observar la superficie del chip de la CPU, o en algunos casos el paquete de la CPU, las imágenes infrarrojas también pueden proporcionar información sobre el código que se está ejecutando en la CPU, lo que se conoce como ataque de imagen térmica . [ cita requerida ]
Los ejemplos de ataques de canal lateral óptico incluyen la recopilación de información del indicador de actividad del disco duro [17] o la lectura de una pequeña cantidad de fotones emitidos por los transistores a medida que cambian de estado. [18]
También existen canales laterales basados en asignación y hacen referencia a la información que se filtra de la asignación (en oposición al uso) de un recurso, como el ancho de banda de la red, a clientes que solicitan simultáneamente el recurso en disputa. [19]
Debido a que los ataques de canal lateral se basan en la relación entre la información emitida (filtrada) a través de un canal lateral y los datos secretos, las contramedidas se dividen en dos categorías principales: (1) eliminar o reducir la divulgación de dicha información y (2) eliminar la relación entre la información filtrada y los datos secretos, es decir, hacer que la información filtrada no esté relacionada, o más bien no esté correlacionada , con los datos secretos, normalmente a través de alguna forma de aleatorización del texto cifrado que transforma los datos de una manera que se puede deshacer después de que se completa la operación criptográfica (por ejemplo, el descifrado).
En la primera categoría, actualmente se encuentran disponibles comercialmente pantallas con protección especial para reducir las emisiones electromagnéticas y la susceptibilidad a los ataques TEMPEST . El acondicionamiento y filtrado de la línea eléctrica puede ayudar a disuadir los ataques de monitoreo de energía, aunque estas medidas deben utilizarse con cautela, ya que incluso correlaciones muy pequeñas pueden permanecer y comprometer la seguridad. Los gabinetes físicos pueden reducir el riesgo de instalación subrepticia de micrófonos (para contrarrestar ataques acústicos) y otros dispositivos de micromonitoreo (contra ataques de consumo de energía de la CPU o de imágenes térmicas).
Otra contramedida (que también pertenece a la primera categoría) consiste en bloquear el canal de emisión con ruido. Por ejemplo, se puede añadir un retraso aleatorio para impedir los ataques de sincronización, aunque los adversarios pueden compensar estos retrasos promediando varias mediciones (o, de forma más general, utilizando más mediciones en el análisis). Cuando aumenta la cantidad de ruido en el canal lateral, el adversario necesita recopilar más mediciones.
Otra contramedida de la primera categoría es utilizar software de análisis de seguridad para identificar ciertas clases de ataques de canal lateral que pueden encontrarse durante las etapas de diseño del hardware subyacente. Los ataques de sincronización y los ataques de caché se pueden identificar mediante ciertas plataformas de software de análisis de seguridad disponibles comercialmente, que permiten realizar pruebas para identificar la vulnerabilidad del ataque en sí, así como la eficacia del cambio arquitectónico para sortear la vulnerabilidad. El método más completo para emplear esta contramedida es crear un ciclo de vida de desarrollo seguro para el hardware, que incluye la utilización de todas las plataformas de análisis de seguridad disponibles en sus respectivas etapas del ciclo de vida de desarrollo del hardware. [20]
En el caso de ataques de temporización contra objetivos cuyos tiempos de cálculo están cuantificados en ciclos de reloj discretos, una contramedida eficaz consiste en diseñar el software para que sea isócrono, es decir, que se ejecute en una cantidad de tiempo exactamente constante, independientemente de los valores secretos. Esto hace que los ataques de temporización sean imposibles. [21] Estas contramedidas pueden ser difíciles de implementar en la práctica, ya que incluso las instrucciones individuales pueden tener una temporización variable en algunas CPU.
Una contramedida parcial contra ataques de potencia simples, pero no ataques de análisis de potencia diferencial, es diseñar el software de modo que sea "seguro para PC" en el "modelo de contraseguridad de programas". En un programa seguro para PC, la ruta de ejecución no depende de valores secretos. En otras palabras, todas las bifurcaciones condicionales dependen solo de información pública. (Esta es una condición más restrictiva que el código isócrono, pero una condición menos restrictiva que el código sin bifurcaciones). Aunque las operaciones de multiplicación consumen más energía que las NOP en prácticamente todas las CPU, el uso de una ruta de ejecución constante evita que tales diferencias de potencia dependientes de la operación (diferencias de potencia al elegir una bifurcación sobre otra) filtren información secreta. [21] En arquitecturas donde el tiempo de ejecución de la instrucción no depende de los datos, un programa seguro para PC también es inmune a los ataques de temporización. [22] [23]
Otra forma en la que el código puede ser no isócrono es que las CPU modernas tienen una memoria caché: acceder a información que se utiliza con poca frecuencia implica una gran penalización de tiempo, lo que revela cierta información sobre la frecuencia de uso de los bloques de memoria. El código criptográfico diseñado para resistir ataques a la memoria caché intenta utilizar la memoria solo de una manera predecible (como acceder solo a la entrada, las salidas y los datos del programa, y hacerlo de acuerdo con un patrón fijo). Por ejemplo, se deben evitar las búsquedas en tablas que dependen de los datos porque la memoria caché podría revelar a qué parte de la tabla de búsqueda se accedió.
Otras contramedidas parciales intentan reducir la cantidad de información que se filtra debido a las diferencias de potencia que dependen de los datos. Algunas operaciones utilizan una potencia que está correlacionada con la cantidad de bits 1 en un valor secreto. El uso de un código de peso constante (como las puertas Fredkin o la codificación de doble raíl) puede reducir la fuga de información sobre el peso de Hamming del valor secreto, aunque es probable que queden correlaciones explotables a menos que el equilibrio sea perfecto. Este "diseño equilibrado" se puede aproximar en software manipulando tanto los datos como su complemento juntos. [21]
Se han construido varias "CPU seguras" como CPU asincrónicas ; no tienen una referencia de tiempo global. Si bien estas CPU estaban destinadas a dificultar los ataques de tiempo y potencia, [21] investigaciones posteriores descubrieron que las variaciones de tiempo en circuitos asincrónicos son más difíciles de eliminar. [24]
Un ejemplo típico de la segunda categoría (descorrelación) es una técnica conocida como cegamiento . En el caso del descifrado RSA con exponente secreto y exponente y módulo de cifrado correspondientes , la técnica se aplica de la siguiente manera (para simplificar, la reducción modular por m se omite en las fórmulas): antes de descifrar, es decir, antes de calcular el resultado de para un texto cifrado dado , el sistema elige un número aleatorio y lo cifra con exponente público para obtener . Luego, el descifrado se realiza en para obtener . Dado que el sistema de descifrado eligió , puede calcular su módulo inverso para cancelar el factor en el resultado y obtener , el resultado real del descifrado. Para los ataques que requieren recopilar información de canal lateral de operaciones con datos controlados por el atacante , el cegamiento es una contramedida eficaz, ya que la operación real se ejecuta en una versión aleatoria de los datos, sobre la que el atacante no tiene control o incluso conocimiento.
Una contramedida más general (que es eficaz contra todos los ataques de canal lateral) es la contramedida de enmascaramiento. El principio del enmascaramiento es evitar manipular directamente cualquier valor sensible, sino más bien manipular un intercambio de este: un conjunto de variables (llamadas "participaciones") tales que (donde es la operación XOR ). Un atacante debe recuperar todos los valores de las participaciones para obtener información significativa. [25]
Recientemente, se utilizó el modelado de caja blanca para desarrollar una contramedida genérica a nivel de circuito de bajo consumo [26] contra ataques tanto de canal lateral EM como de potencia. Para minimizar los efectos de las capas metálicas de nivel superior en un CI que actúan como antenas más eficientes, [27] la idea es integrar el núcleo criptográfico con un circuito de supresión de firma, [28] [29] enrutado localmente dentro de las capas metálicas de nivel inferior, lo que conduce a la inmunidad a ataques de canal lateral EM y de potencia.