A medida que se agregan medidas de seguridad adicionales, como el cifrado y la autenticación a las aplicaciones de IoT, los piratas informáticos deben esforzarse más para obtener la información deseada o interrumpir el funcionamiento de una red. La cantidad de esfuerzo y tiempo que dedicarán dependerá del valor de la información, lo que hace que los objetivos de alto valor sean especialmente vulnerables.
Este artículo se centra en las técnicas para protegerse contra los ataques de canal lateral, que son ataques que se basan en información de la implementación física de la seguridad en lugar de explotar una debilidad directa en las propias medidas de seguridad. Te contamos cómo funciona un ataque de canal lateral, los tipos que existen y ejemplos.
Indice
¿Qué es un ataque de canal lateral?
Puedes tener los mejores sistemas criptográficos del mundo, pero tu configuración aún puede ser vulnerable a los ataques de canal lateral. Esto se debe a que los ataques de canal lateral no se dirigen a las debilidades de los propios criptosistemas.
En cambio, los atacantes observan la implementación del sistema en busca de filtraciones de información que puedan decirles algo sobre el funcionamiento del sistema criptográfico. En ciertas situaciones, pueden explotar esta información para deducir el material de codificación, lo que finalmente les permite romper el sistema.
Un ataque de canal lateral es un exploit de seguridad que tiene como objetivo recopilar información o influir en la ejecución del programa de un sistema midiendo o explotando los efectos indirectos del sistema o su hardware, en lugar de apuntar directamente al programa o su código.
Más comúnmente, estos ataques tienen como objetivo exfiltrar información confidencial, incluidas las claves criptográficas, midiendo las emisiones de hardware coincidentes. Un ataque de canal lateral también puede denominarse ataque de barra lateral o ataque de implementación
Los ataques de canal lateral se basan en el hecho de que cuando operan los criptosistemas, causan efectos físicos, y la información de estos efectos puede proporcionar pistas sobre el sistema. Algunos de los efectos físicos incluyen:
- La cantidad de energía que consume una operación
- La cantidad de tiempo que lleva un proceso
- El sonido que emite una operación
- La radiación electromagnética filtrada por una operación
Estos efectos pueden dejar pistas que pueden ayudar a un atacante a deducir información importante. Esta información puede llevarlos a descubrir las claves criptográficas que aseguran los datos, revelan información de estado parcial, exponen partes o todo el texto cifrado como texto sin formato y, en última instancia, conducen al compromiso del sistema.
Esto significa que cuando las implementaciones filtran cantidades suficientes de información de canal lateral, el sistema se vuelve inseguro. El concepto de ataques de canal lateral puede ser bastante difícil de entender, así que comencemos con una analogía para ayudar a ilustrar el concepto.
El ladrón de cajas fuertes
Digamos que el diamante más valioso del mundo se guarda en una caja fuerte en una instalación segura, pero un ladrón atrevido quiere reclamarlo para sí mismo. Después de meses de examinar las defensas existentes, el ladrón ha descubierto que pueden llegar a la habitación que alberga la caja fuerte, pero solo durante cinco minutos cuando el guardia cambia de turno.
El problema es que la caja fuerte tiene 10.000 combinaciones posibles, y el pirata no tiene ni idea de cuál puede ser el código correcto. Dada la imposibilidad de entrar, probar las aproximadamente 5.000 combinaciones que llevaría el intento promedio y salir antes de que aparezca el siguiente guardia, podríamos considerar el diamante seguro contra el robo.
Sin embargo, nuestro ladrón es un manipulador maestro de cerraduras, y mientras giran el dial, pueden sentir las imperfecciones extremadamente sutiles de la cerradura, dando pistas sobre la verdadera combinación. Con solo un par de minutos de cuidadosa concentración y años de experiencia, el ladrón encuentra la combinación, la caja fuerte se abre y el diamante está en sus manos. Tienen el tiempo justo para una escapada rápida.
El ladrón acaba de realizar el ataque de canal lateral perfecto. La cerradura se mantuvo fuerte y nunca se rompió, por lo que no podemos decir necesariamente que la vulnerabilidad se deba a un defecto de diseño en la cerradura en sí. Sin embargo, debido a que el proceso de fabricación dejó tras de sí pequeñas imperfecciones que daban pistas sobre la combinación, podríamos decir que la verdadera debilidad fue su implementación.
Si la cerradura se hubiera hecho con más cuidado, el ladrón no habría podido sentir las imperfecciones y usarlas para descubrir la combinación. En cambio, habrían tenido que seguir la vieja ruta de la fuerza bruta, que nunca habría funcionado dado el límite de tiempo de nuestra situación. Entonces, si bien la configuración de seguridad era segura contra la fuerza bruta, no era segura contra los ataques de canal lateral.
Lo mismo ocurre con los sistemas informáticos. Si no se implementan con cuidado, los algoritmos de seguridad y otros aspectos pueden revelar pequeños fragmentos de información, como la sensación de las imperfecciones de la cerradura. Los atacantes pueden usar esta información para romper el sistema.
Por supuesto, la perfección no existe realmente, y siempre hay una manera de sortear cualquier sistema de seguridad, ya sea una caja fuerte física o un criptosistema que ayude a cifrar datos. El objetivo de la seguridad en cualquiera de los dos espacios no es hacer algo impenetrable, sino hacer que sea demasiado caro o que lleve mucho tiempo molestarse en atacar.
Los ataques de canal lateral son simplemente otra herramienta en el arsenal del atacante. Si un atacante no puede encontrar una forma práctica de romper el algoritmo en sí, entonces puede recopilar información de su implementación y ver si esto los acerca a romper el sistema.
Debemos tener en cuenta los ataques de canal lateral siempre que intentemos proteger un sistema. Si dedicamos todo nuestro esfuerzo a configurar el criptosistema más elaborado sin tener en cuenta las debilidades del canal lateral, es muy posible que acabemos con nuestras defensas violadas.
Historia de los ataques de canal lateral
Uno de los primeros ejemplos que tenemos de un ataque de canal lateral proviene de la Segunda Guerra Mundial. En ese momento, los dispositivos de mezcla Bell 131-B2 estaban cifrando algunas comunicaciones. Un investigador de Bell Labs notó que cada vez que la máquina daba un paso (hacía que uno de los otros rotores girara), se podía ver un pico electromagnético a través de un osciloscopio, incluso en una parte distante del laboratorio. Tras un examen más detenido, descubrió que podía usar estos picos para recuperar el texto sin formato de los datos cifrados.
Bell informó el problema al Signal Corps, pero supuestamente fue desestimado al principio. En un intento por demostrar la gravedad del problema, colocaron ingenieros en un edificio al otro lado de la calle del criptocentro de Signal Corps. Desde 80 pies de distancia, registraron las señales encriptadas del criptocentro durante una hora. Apenas unas horas más tarde, habían reunido el 75 por ciento del texto sin formato de estas transmisiones cifradas.
Esto mostró cuán grave era la amenaza, y Bell Labs pasó los siguientes seis meses investigando el problema, así como también cómo podría mitigarse. Finalmente, sus ingenieros llegaron a tres enfoques potenciales, que todavía se utilizan hoy en día para contrarrestar los ataques de canal lateral:
- Blindaje: en este caso, bloquear la radiación y los campos magnéticos que se estaban emitiendo.
- Filtrado: agregar filtros que detienen la radiación electromagnética.
- Enmascaramiento: encubrir las señales con otras transmisiones.
La compañía ideó un diseño modificado para la máquina, pero el blindaje y otras correcciones causaron problemas operativos, y todas las máquinas existentes habrían tenido que enviarse de regreso a Bell Labs para su reacondicionamiento. En lugar de adoptar la versión modificada, el Cuerpo de Señales advirtió a los comandantes que aseguraran un diámetro de 100 pies alrededor de sus centros de comunicaciones, para evitar la interceptación utilizando las técnicas recientemente descubiertas.
El problema fue esencialmente olvidado hasta mediados de los años cincuenta cuando la CIA lo redescubrió. Esta vez, la solución fue asegurar una zona de 200 pies en todas las direcciones. Otra opción era ejecutar varios dispositivos a la vez para enmascarar las señales.
En los años siguientes, se intentaron más contramedidas, pero también se descubrieron nuevas amenazas. Los investigadores encontraron que las fluctuaciones de voltaje, las emanaciones acústicas y las vibraciones también podrían revelar información que podría usarse para descifrar información. Estos ataques recibieron el nombre en clave TEMPEST por la comunidad de inteligencia.
Con el tiempo, se desarrolló una gama de estándares TEMPEST clasificados, con el objetivo de definir un conjunto de reglas para reducir los riesgos de ataques de canal lateral.
La primera publicación no clasificada de estas amenazas provino de Wim van Eck en 1985, lo que llevó a que estas técnicas de escucha furtiva fueran denominadas van Eck phreaking. Si bien la comunidad de inteligencia ya conocía estos peligros, se pensaba que los ataques solo estaban al alcance de los estados-nación.
van Eck logró su espionaje con solo $ 15 en materiales y un televisor, lo que demuestra que el ataque estaba al alcance de otras partes. Marus Kuhn publicó los detalles de varias otras técnicas de monitorización de bajo coste en 2003.
Durante el mismo período en que se estaban estudiando los ataques TEMPEST, el MI5 del Reino Unido también estaba haciendo incursiones tempranas en el ámbito de los ataques de canal lateral. En sus memorias, el científico del MI5 Peter Wright detalla los intentos de la agencia de descifrar los códigos egipcios durante la crisis de Suez.
El MI5 instaló micrófonos cerca de la máquina de cifrado en la embajada de Egipto, y cada mañana escuchaban los sonidos de la máquina que se reiniciaba. Estos ruidos les dieron pistas sobre la nueva configuración, que luego podrían usar para descifrar los mensajes codificados. Este tipo de ataque de canal lateral se conoció como criptoanálisis acústico.
En los noventa, Paul Kocher empujó aún más el campo de los ataques de canal lateral. Su publicación de 1996 mostró ataques de sincronización que podrían romper las implementaciones de DSA, RSA y Diffie-Hellman. También formó parte de un equipo que desarrolló el análisis de potencia diferencial, otro tipo de ataque de canal lateral. Además de ser pionero en muchos de estos ataques, también desempeñó un papel clave en la elaboración de una serie de contramedidas.
¿Qué no es un ataque de canal lateral?
Los ataques de canal lateral no deben confundirse con la fuerza bruta, que esencialmente implica probar todas las combinaciones posibles de contraseñas con la esperanza de eventualmente aterrizar en la correcta, y luego usar la contraseña correctamente adivinada para ingresar al sistema. La fuerza bruta no se considera un ataque de canal lateral, porque no depende de la información emitida por el criptosistema.
Sin embargo, si un criptosistema filtró información de tiempo (u otras pistas de canal lateral) que un atacante podría usar para deducir parte de la clave, podría usar esta información de canal lateral para acelerar significativamente el proceso de fuerza bruta.
La ingeniería social tampoco se considera un ataque de canal lateral, porque implica manipular a una persona para que entregue datos confidenciales, en lugar de información filtrada del propio criptosistema.
Del mismo modo, el criptoanálisis de manguera de goma tampoco se considera un ataque de canal lateral, porque implica el uso de tortura u otros tipos de coerción para obligar a las personas a revelar sus contraseñas, en lugar de confiar en los secretos que el sistema revela inadvertidamente.
Ejemplos de ataques de canal lateral
Hay muchos tipos diferentes de ataques de canal lateral, diferenciados por el tipo de información que utilizan para descubrir los secretos del criptosistema. Éstos incluyen:
Criptoanálisis acústico
Los criptosistemas emiten sonidos cuando realizan operaciones, y estos sonidos a menudo se correlacionan con la operación. El criptoanálisis acústico implica monitorizar y grabar estos sonidos, y usarlos en un intento de deducir información sobre el criptosistema. En última instancia, esto puede resultar en que un atacante obtenga las claves y comprometa el sistema.
Un ejemplo es el ataque del MI5 contra la embajada de Egipto durante la crisis de Suez, que mencionamos en la sección Historia de los ataques de canal lateral. Si bien los primeros ataques se centraron en impresoras y máquinas de cifrado, un documento de 2004 mostró que los sonidos de los cajeros automáticos, los teclados numéricos de teléfonos, los teclados de las computadoras portátiles y los teclados de las PC también podrían explotarse.
La conclusión obvia de esta investigación es que un atacante podría usar las técnicas descritas en el documento para obtener las credenciales de inicio de sesión de un usuario. Sin embargo, tendrían que estar cerca del objetivo. Una posible estrategia de mitigación propuesta por los investigadores fue utilizar pantallas táctiles o teclados de goma.
Los investigadores repitieron el experimento en el teclado de una computadora portátil, un teclado de cajero automático y un teclado de teléfono. El teclado del teléfono y el teclado del cajero automático eran especialmente vulnerables, con tasas de éxito del 100 por ciento. Esto indica un gran riesgo en lo que respecta a los números de PIN de las personas.
Al año siguiente, investigadores de la Universidad de California realizaron un experimento similar que reforzó la viabilidad de estos ataques.
Ataques de tiempo
Los ataques de tiempo implican medir cuánto tiempo le toma a un criptosistema realizar ciertas operaciones. Las operaciones de la computadora requieren tiempo para ejecutarse, y esta cantidad de tiempo puede variar según la entrada. Estas diferencias pueden deberse a instrucciones del procesador que se ejecutan en tiempo no fijo, declaraciones condicionales y de ramificación, optimizaciones de rendimiento, aciertos de caché de RAM y por muchas otras razones.
Si un atacante puede medir con precisión la cantidad de tiempo que toma cada operación del criptosistema, puede usar esta información para trabajar en el cálculo de las entradas. Si bien puede parecer que las fugas de información de tiempo solo revelarían datos insignificantes, en ciertas situaciones, puede ser suficiente para que el atacante descubra la clave y el texto sin formato original.
Los siguientes factores pueden afectar la utilidad de la información de tiempo para un atacante:
- La CPU que ejecuta el sistema.
- El diseño del sistema criptográfico y los algoritmos que utiliza.
- La forma en que se ha implementado el sistema.
- Cualquier contramedida de ataque de tiempo que pueda estar en su lugar.
Cuanto más exactamente un atacante pueda medir el tiempo de varias operaciones, más útil puede ser la información.
En determinadas situaciones, un atacante puede romper RSA, DSS, Diffie-Hellman y otros criptosistemas. Para hacerlo, el atacante tendría que poder espiar pasivamente un protocolo interactivo mientras la víctima realizaba la misma operación varias veces, con varios valores diferentes. Si el atacante escuchaba las variaciones de tiempo causadas por ciertos aspectos del criptosistema, podría brindarle la información que necesitaban para comprometer la clave.
Para mitigar el ataque, se propuso ejecutar el software en un tiempo fijo, aunque hacerlo tiene dificultades. Como alternativa, se propuso adaptar técnicas de firma cegadora que evitarían que los atacantes pudieran ver las entradas de la función de exponenciación modular. Esto implica actualizar las entradas importantes antes de cada paso de exponenciación modular, evitando que los atacantes obtengan conocimientos útiles sobre la entrada a la exponenciación modular y, en última instancia, previniendo el ataque de tiempo.
Un artículo de 2003 llamado Remote Timing Attacks are Practical mostró cómo los ataques de sincronización también podrían usarse contra sistemas de software generales. El artículo fue significativo porque mostró que estos ataques eran prácticos contra dispositivos más fuertes.
En el artículo de 2003, los investigadores utilizaron un ataque de tiempo para extraer claves privadas de un servidor web basado en OpenSSL que se ejecutaba en una máquina de la red local. También extrajeron claves secretas de un proceso separado que se ejecuta en la misma computadora y a través de una máquina virtual.
Los investigadores concluyeron su artículo presentando tres defensas separadas. El primer método preferido fue el cegamiento RSA mediante la adición de entradas aleatorias. Esto evita que la sincronización del proceso de descifrado revele la clave.
Otra opción era evitar que los descifrados RSA dependieran del texto cifrado de entrada, aunque los investigadores creían que esto era más difícil de lograr. La propuesta final era exigir que todos los cálculos de RSA se cuantificaran, lo que significa que cada descifrado tendría que calcularse en el período de tiempo que lleva el descifrado más largo.
Mitigar los ataques de tiempo
Los ataques de tiempo se pueden mitigar con algoritmos de tiempo constante. Trabajan bajo la teoría de que si la información de tiempo de varias operaciones da pistas que ayudan a un atacante a romper el sistema, eliminar esta información útil ayudará a mantener el sistema seguro.
En lugar de que la operación x tome una cantidad de tiempo diferente para ejecutarse que las operaciones y o z, los algoritmos de tiempo constante hacen que todos los algoritmos tomen exactamente la misma cantidad de tiempo para ejecutarse. Cuando no hay variación entre las operaciones x, y y z, los atacantes ya no tienen información de tiempo que pueda darles inferencias sobre el sistema subyacente. Esto elimina su capacidad para usar información de tiempo para romper el sistema.
Sin embargo, los algoritmos de tiempo constante tienen una desventaja, ya que todas las ejecuciones deben durar tanto como la ejecución de peor rendimiento, lo que reduce la eficiencia del algoritmo.
Otra técnica de mitigación contra los ataques de sincronización es el enmascaramiento. El enmascaramiento implica dividir el secreto en varios recursos compartidos, que el atacante tendría que recopilar y reconstruir para obtener el secreto compartido.
Sin embargo, el enmascaramiento no es práctico en todos los algoritmos, solo en aquellos con una estructura algebraica adecuada. En situaciones viables en las que se requieren valores aleatorios, puede resultar difícil obtener esta aleatoriedad dentro de los sistemas integrados. Además, no hay muchas pruebas concluyentes de que el enmascaramiento sea eficaz para bloquear los ataques de tiempo.
Ataque de canal lateral basado en caché
Los cachés son mecanismos de software o hardware que almacenan datos para acelerar las solicitudes futuras. A menudo se utilizan para datos que se espera que se utilicen con frecuencia y ayudan a mejorar la eficiencia. Es mucho más rápido para el sistema recuperar datos de la caché fácilmente disponible que de la memoria principal, el almacenamiento secundario o un servidor remoto. De manera similar, puede ser más rápido recuperar los datos almacenados en la caché que tener que rehacer los procesos involucrados en su computación.
Los cachés se utilizan en muchas áreas de la informática, como hardware, software y redes. Algunas de ellas incluyen: GPU, CPU, Caché web o Caché de disco.
Un buen ejemplo del proceso de almacenamiento en caché es el almacenamiento en caché de la CPU. Las CPU pueden reducir el tiempo y la energía promedio utilizados para acceder a ciertos datos almacenándolos cerca del núcleo del procesador, en la memoria caché de la CPU. Cuando las copias de datos se almacenan en cachés de CPU mucho más rápidas y cercanas, se recuperan más rápidamente que cuando se recuperan de otras ubicaciones de memoria.
La mayoría de las CPU tienen una jerarquía de niveles de caché, y los niveles más bajos tienen tiempos de acceso más rápidos, pero una menor cantidad de bloques y tamaños de bloques más pequeños, así como menos bloques en un conjunto. Los cachés de nivel superior tienen progresivamente más bloques, tamaños de bloque más grandes, una mayor cantidad de bloques en cada conjunto, pero tiempos de acceso más largos. Sin embargo, estos cachés de nivel superior todavía tienen tiempos de acceso mucho más rápidos que la memoria principal.
Si bien este diseño de jerarquías de caché da como resultado cálculos mucho más rápidos en promedio, también hay algunos ataques de canal lateral que pueden explotarlo. Los ataques relacionados con la caché se han investigado desde la década de los noventa, pero estos ataques anteriores involucraban principalmente modificaciones de hardware y no eran particularmente factibles.
Los ataques descubiertos más recientemente operan exclusivamente en software, lo que abre un mundo de oportunidades a los piratas informáticos. Estos incluyen ataques de caché basados en el tiempo que se pueden lanzar de forma remota accediendo al intervalo de tiempo entre los cachés en el chip y la memoria principal. Si los atacantes pueden ingresar a esta parte del sistema de la víctima, pueden monitorizar los rastros de aciertos y errores desde varios tiempos de acceso.
De manera similar a los ataques de sincronización de la sección anterior, esta información de sincronización de las cachés en el chip y la memoria principal se puede utilizar para inferir información confidencial. En combinación con el conocimiento del algoritmo criptográfico, un atacante podría utilizar estas inferencias de tiempo para extraer las claves secretas, comprometiendo los mecanismos de seguridad.
Mitigar los ataques de canal lateral basados en caché
Las contramedidas contra los diversos ataques de canal lateral basados en caché se pueden dividir aproximadamente en tres categorías:
- Técnicas de mitigación específicas de la aplicación
- Técnicas de mitigación basadas en compilador
- Rediseño de hardware
Debido a la naturaleza compleja de la arquitectura moderna, es posible que una técnica de mitigación determinada no proteja completamente el sistema. Debido a esto, los desarrolladores de hardware y software deben considerar la totalidad del modelo de amenazas y elegir técnicas de mitigación que puedan combatir las amenazas específicas que enfrentan.
Técnicas de mitigación específicas de la aplicación
Algunos enfoques populares para la mitigación basada en software implican deshabilitar el uso compartido de recursos o aislar aplicaciones. Esto evita que los atacantes puedan acceder al caché de una víctima potencial.
Un método específico es colorear la página, que es una técnica que divide la caché en conjuntos de caché con la granularidad de los tamaños de página. A estas páginas de memoria se les asignan colores y solo las páginas con los mismos colores se pueden asignar al mismo conjunto de caché. A las páginas que son secuenciales en el espacio de direcciones virtuales se les asignan colores diferentes, por lo que no se pueden asignar al mismo conjunto de caché.
Existen enfoques tanto estáticos como dinámicos para colorear páginas. Un enfoque dinámico llamado Chameleon puede proporcionar colores seguros a los procesos seguros, lo que permite mantener un aislamiento estricto en un entorno virtualizado. Esto evita que los atacantes puedan acceder al caché de la víctima.
Técnicas de mitigación basadas en compilador
Un ejemplo de una técnica de mitigación basada en compiladores es Biscuit, que fue desarrollada por investigadores del Instituto de Tecnología de Georgia. Biscuit puede detectar ataques de canal lateral basados en caché para procesos programados en servidores compartidos. Un aspecto importante de Biscuit es su modelo de falta de caché que el compilador inserta en las entradas de los nidos de bucle.
El modelo de fallos de caché predice los fallos de caché del bucle correspondiente. Utiliza balizas para enviar la información de falta de caché al programador en tiempo de ejecución. Luego, el programador usa esta información para programar procesos de manera conjunta de manera que se asegure que su huella de caché combinada no sea mayor que la capacidad máxima de la caché de último nivel. Los procesos programados se supervisan para comparar los fallos de caché reales con los fallos de caché previstos. Cuando se detectan anomalías, el programador busca aislar al atacante.
Rediseño de hardware
Las técnicas generales de mitigación basadas en hardware son limitadas porque tienen grandes gastos generales de rendimiento que hacen que sus implementaciones no sean prácticas. Estas técnicas de mitigación basadas en hardware generalmente requieren el diseño de nuevo hardware que minimice los riesgos de una arquitectura débilmente acoplada y los riesgos de que los recursos compartidos estén disponibles.
Una de las principales amenazas proviene de la existencia de canales de temporización de hardware. Para contrarrestar estos riesgos, es posible introducir ruido aleatorio en el sistema. Esto evita que los atacantes puedan correlacionar sus mediciones con las operaciones reales.
Ataques de canal lateral de monitorización de energía
Los ataques de canal lateral de monitorización de energía dependen de que un atacante tenga acceso al consumo de energía de un sistema criptográfico. El consumo de energía de cualquier dispositivo está sujeto a las leyes de la física.
Esto significa que si un atacante monitoriza el consumo de energía de un sistema criptográfico mientras realiza varias operaciones, el atacante puede usar la información que recopila para descubrir las claves secretas. Hay dos tipos diferentes de análisis de potencia:
Análisis de potencia simple
Esta técnica implica graficar el uso actual de un criptosistema a lo largo del tiempo. El consumo de energía variará a medida que el sistema realice diferentes operaciones. Al analizar los diferentes perfiles de consumo de energía de varias operaciones, un atacante puede deducir información sobre cómo funciona el dispositivo, así como su material de codificación.
Con un simple análisis de energía, un atacante toma un conjunto de medidas de información de energía en el transcurso de una operación criptográfica. Esta serie de medidas se conoce como traza.
Mitigación
El análisis de energía generalmente se realiza de forma pasiva, por lo que normalmente los dispositivos criptográficos no tienen una forma de detectar si está ocurriendo o no. También es un proceso no invasivo y, en conjunto, estos factores hacen que tanto los procesos de auditoría como los escudos físicos no sean adecuados como mecanismos de defensa.
Como mecanismo de defensa más seguro, las implementaciones de sistemas criptográficos deben diseñarse de manera que no haya valores secretos que afecten a las ramas condicionales, dentro del software.
Esto es necesario porque cuando los sistemas criptográficos cuentan con bifurcaciones condicionales en la ejecución de su software, pueden filtrar información que puede facilitar a los atacantes descubrir datos secretos. Esto se debe al hecho de que el uso de energía variará según la rama que tome el sistema criptográfico. Con una supervisión cuidadosa, un atacante puede utilizar esta información para inferir detalles sobre el criptosistema subyacente o el material de codificación.
De manera similar, las implementaciones deben diseñarse de modo que las siguientes fuentes de variación no ofrezcan información que pueda usarse para comprometer el sistema:
- Instrucciones de CPU con temporización variable: estas variaciones dan pistas similares al atacante.
- Variaciones de microcódigo: incluso en código sin ramificaciones con sincronización constante, las variaciones de microcódigo pueden presentar variaciones de consumo de energía dependientes de los datos, que los atacantes pueden aprovechar.
- Varias operaciones aritméticas: cuando estas operaciones tienen grandes variaciones en su complejidad, también conduce a grandes variaciones en sus respectivos consumos de energía. Esta información también puede explotarse.
- Cambios de contexto en CPU multiproceso e interrupciones de temporizador: aunque estas variaciones no están relacionadas con el procesamiento criptográfico, pueden emitir información de energía que puede ser útil para un atacante. Sin embargo, los usos de esta información tienden a ser más limitados que los ejemplos antes mencionados.
Análisis de potencia diferencial
El análisis de poder diferencial es una técnica más sofisticada contra la que es más difícil defenderse.
Los investigadores describieron cómo existen correlaciones adicionales entre el consumo de energía y las operaciones que realiza el criptosistema.
Si bien estas otras variaciones son generalmente más pequeñas y pueden verse eclipsadas por el ruido y los errores de medición, a menudo es posible utilizar estas mediciones para romper el criptosistema. El análisis de poder diferencial utiliza funciones estadísticas que se personalizan según el algoritmo criptográfico específico al que se dirige un atacante.
En su artículo inicial, los académicos describieron el análisis de poder diferencial contra el Estándar de cifrado de datos (DES), porque todavía era un algoritmo popular en el momento de su investigación.
En cambio, es más importante tener en cuenta que debido a que estas variaciones son generalmente más pequeñas y compiten con más ruido, las técnicas de análisis de potencia diferencial incluyen la corrección de errores y las propiedades de procesamiento de la señal. Estos hacen posible que los atacantes obtengan información sobre las operaciones criptográficas que no son visibles a través de un simple análisis de energía.
En determinadas situaciones, esto les permite extraer secretos y romper criptosistemas que son seguros frente al simple análisis de energía. El análisis de potencia diferencial también es viable frente a otros algoritmos de cifrado, como AES.
Existe una forma aún más avanzada de análisis de potencia diferencial conocida como análisis de potencia diferencial de segundo orden. Estos ataques pueden utilizar diferentes compensaciones de tiempo, una variedad de técnicas de medición y múltiples fuentes de datos. Si bien teóricamente son capaces de romper algunos sistemas que son resistentes a ataques de análisis de potencia tanto simples como diferenciales, también son mucho más complejos.
Debido a que la mayoría de los sistemas del mundo real que son susceptibles al análisis de potencia diferencial de segundo orden también lo son al análisis de potencia diferencial normal, estos ataques son estudiados principalmente por investigadores y no se ven con frecuencia en la naturaleza.
Mitigación
La naturaleza más sofisticada del análisis de potencia diferencial hace que sea mucho más difícil defenderse en comparación con el análisis de potencia simple. Esto se debe a que, incluso si se han evitado las correlaciones más obvias entre el consumo de energía y las operaciones criptográficas, aún puede haber algunas pistas sutiles en los datos.
Con el análisis estadístico adecuado, estos podrían revelar detalles del funcionamiento del criptosistema y su material de codificación, lo que en última instancia puede resultar en que el sistema se vea comprometido.
A pesar de esto, existen algunos enfoques que apuntan a defenderse del análisis diferencial de poder. Éstos incluyen:
- Reducir el tamaño de las señales: minimizar el tamaño de las señales puede ayudar a reducir la calidad de la información que está disponible para el análisis estadístico, con la esperanza de que estos ataques ya no sean viables. Los diseñadores de criptosistemas pueden lograr esto seleccionando operaciones que tienen un código de ruta de ejecución constante y que filtran menos información a través de su consumo de energía. También pueden usar pesos de Hamming, que son cadenas compuestas por símbolos distintos de cero que aparecen en el código.
- Agregar ruido: agregar ruido a las mediciones de consumo de energía aumenta la cantidad de muestras que un atacante necesitaría para montar un ataque exitoso. Cuando se agrega una cantidad suficiente de ruido, puede hacer inviable el análisis de potencia diferencial. Aleatorizar el tiempo y el orden de ejecución también puede ayudar a que estos ataques sean inviables.
- Diseñar criptosistemas con suposiciones realistas sobre el hardware en el que operan: los ataques de canal lateral utilizan información del hardware para romper el criptosistema, por lo que es importante considerar sus debilidades al diseñar criptosistemas. Una defensa contra estas debilidades es incluir contadores clave que impidan que los atacantes puedan recolectar una gran cantidad de muestras. Otra forma de evitar que los atacantes recopilen datos sobre un gran número de ejecuciones es utilizar agresivamente procesos de modificación de módulo y exponente en esquemas de clave pública. Los procedimientos de actualización de claves no lineales también pueden eliminar la correlación entre el uso de energía y operaciones específicas.
Ataques electromagnéticos
Los dispositivos electrónicos emiten radiación electromagnética. Esto se debe al hecho de que los cables que transportan corriente emiten campos magnéticos, por lo que cada vez que se utiliza un dispositivo, crea estas pequeñas cantidades de radiación electromagnética. Cuando los criptosistemas ejecutan operaciones, la cantidad de radiación electromagnética puede variar según el tipo de operación.
Los atacantes pueden medir la radiación electromagnética de estas diferentes operaciones a lo largo del tiempo y luego utilizar estos conocimientos para obtener información sobre el criptosistema y su material de codificación. En última instancia, un atacante puede aprovechar esta información para comprometer el criptosistema y acceder a datos confidenciales.
Los ataques electromagnéticos se pueden realizar de manera no invasiva, sin embargo, desempaquetar un chip puede ayudar a mejorar la señal. Esto puede facilitar la ruptura del criptosistema. Ejemplos de ataques electromagnéticos incluyen el descubrimiento de Bell Labs y el phreaking de van Eck, que discutimos en la sección Historia de los ataques de canal lateral.
Los dispositivos criptográficos simples como las tarjetas inteligentes y los arreglos de puertas programables en campo tienden a ser los más vulnerables a los ataques electromagnéticos. Si bien también hay ataques técnicos contra teléfonos inteligentes y computadoras, estos dispositivos complejos emiten demasiado ruido de sus otros procesos, lo que tiende a hacer que los ataques electromagnéticos sean menos atractivos que alternativas como explotar las vulnerabilidades del software.
Mitigar los ataques de análisis electromagnético
La mayoría de los ataques de análisis electromagnético requieren que el atacante esté muy cerca del dispositivo. Esto significa que proteger la ubicación de los atacantes puede proteger el criptosistema.
Otro método para mitigar los ataques de análisis electromagnético es proteger físicamente la radiación electromagnética. El hardware subyacente se puede diseñar con blindaje, como una jaula de Faraday, que reducirá la intensidad de la señal.
Los atacantes suelen desempaquetar chips para hacer que la señal sea más fuerte, lo que significa que la seguridad puede mejorarse pegando el chip. Si el chip está pegado de tal manera que no se puede quitar sin ser destruido, evita que los atacantes puedan desempacarlo.
Otra opción es diseñar el sistema para que ya no exista una correlación entre el algoritmo criptográfico y la radiación electromagnética. Esto se puede lograr mediante la aleatorización del ciclo de reloj, aleatorizando el orden de cifrado de bits y las interrupciones del proceso.
Otros ataques de canal lateral
Hay muchos otros tipos de ataques complejos de canal lateral, pero en aras de la brevedad, no los cubriremos todos en profundidad. Estos otros incluyen:
- Análisis diferencial de fallas: este tipo de ataque de canal lateral involucra a un atacante que intenta causar fallas en el sistema con la esperanza de que esto pueda revelar información sobre el estado interno del sistema.
- Imágenes térmicas: los ataques de imágenes térmicas controlan el calor generado por el sistema e intentan correlacionar la temperatura con las operaciones que se están produciendo.
- Ataques ópticos: estos ataques se pueden usar para monitorizar y registrar las señales visuales que se emiten durante las operaciones criptográficas. Un ejemplo son las luces LED en muchas computadoras que pueden correlacionarse con la actividad de la unidad de disco duro.
- Ataques de canal lateral basados en la asignación: cada uno de los ataques de canal lateral discutidos anteriormente puede verse como basado en el consumo. Las fugas de información en estos ataques se basan en la cantidad de recursos que se consumen en una operación criptográfica. Los ataques de canal lateral basados en la asignación difieren en que el atacante monitoriza la cantidad de recursos que se han asignado a un proceso, no los que se han consumido. Luego usan esta información en un intento de romper el sistema.
Cada uno de los ataques anteriores opera de acuerdo con principios similares a los de los otros ataques de canal lateral que hemos cubierto. En esencia, cuando se implementan algoritmos seguros sin las técnicas de mitigación adecuadas, cada uno de estos canales puede permitir que se filtre información sobre las operaciones criptográficas.
Si un atacante monitoriza y analiza esta información, puede usarla para descubrir detalles del sistema criptográfico y las claves secretas, lo que finalmente les permite comprometer la seguridad del sistema.