Origen de los ataques de canal lateral

9

¿Cuál es el origen de los ataques de canal lateral? ¿Está relacionado con el algoritmo o con la implementación? En otras palabras, ¿el software es responsable del ataque o del hardware?

¿Existe un algoritmo criptográfico que sea resistente a los ataques de canal lateral en el sistema A, pero no está en el Sistema B?

¿Podemos llamar algoritmos resistentes al canal lateral?

    
pregunta TheGoodUser 10.02.2015 - 11:58
fuente

5 respuestas

10

Los ataques de Side Channel aprovechan la información obtenida al observar o interactuar con un sistema de una forma distinta a la prevista por sus creadores. A menudo, esto se hace para inferir información sobre claves de cifrado u otra información secreta.

Algunos de los vectores de ataque de canal lateral más comunes son:

  1. tiempo
  2. Supervisión de energía
  3. análisis de manejo de errores

Los ejemplos de lo mencionado incluyen:

  1. Ataque de tiempo de caché AES para determinar las claves de cifrado ( muy buen documento por DJ Bernstein )
  2. Análisis de potencia diferencial contra DES para determinar las claves de cifrado ( documento famoso de P Kocher )
  3. El manejo de errores de los pasaportes RFID se explota para inferir la nacionalidad - > violación de la privacidad ( enlace )

Mientras que Wikipedia declara que:

  

... un ataque de canal lateral es cualquier ataque basado en información obtenida de la implementación física de un sistema de cifrado ...

Argumentaría (junto con Bernstein y otros) que las debilidades del canal lateral también pueden surgir del diseño. En el ejemplo de AES, esto se debe al hecho de que es prácticamente imposible escribir código de ejecución constante para la informática en general y mantener la eficiencia.

Así que volvamos a tu pregunta; mientras explota un ataque de canal lateral en un sistema implementado, la causa raíz de su existencia no se puede generally solo a la implementación. Tendrá que mirar un sistema específico y sus implementaciones, y puede encontrar que la respuesta a la pregunta depende en gran medida de dónde coloque el límite entre el diseño y la implementación.

(Si el diseño de AES hubiera garantizado tiempos de computación estáticos, el ataque de sincronización no hubiera sido factible en ninguna implementación correcta como ejemplo ...)

Sin embargo, puede tener diferentes implementaciones de AES que son o no vulnerables a un ataque de tiempo, para responder a su pregunta sobre los sistemas A y amp; B (el sistema A puede imponer tiempos de computación estática mientras que B no lo hace) .

Con un modelo de atacante bien definido, diría que se podría definir un algoritmo resistente al canal lateral. Por favor, aclare esa pregunta, no estoy seguro de que le haya entendido bien.

Edit: Algunas lecturas más divertidas e interesantes en este breve y fácil de leer artículo . :)

respondido por el Karl Hardr 10.02.2015 - 15:10
fuente
2

El término "canal lateral" puede referirse a dos cosas diferentes: una es sugerida por las otras respuestas (detalles accidentales de la implementación que se filtran a través de un flujo de datos no deliberado). El término también puede referirse a una inclusión potencialmente deliberada de secretos criptográficos dentro de lo que deberían ser partes aleatorias de un flujo de datos. Por ejemplo, un programa que se supone debe rellenar un pequeño secreto (por ejemplo, una clave AES) con datos aleatorios y cifrar RSA. Si está diseñado de manera malintencionada, cambie la implementación ligeramente:

Loop:
  Pad secret with random data
  Encrypt it
  Interpret bits 151..181 of the resulting crypto stream as a number I
  Examine bit (I mod RSA_keylength) of the RSA secret key
  If the aforementioned bit doesn't match bit 504 of the crypto stream, goto Loop

Si esta implementación malvada se usa para intercambiar muchos secretos, un atacante podrá descubrir la mayoría de los bits de la clave secreta RSA completamente a través de la observación pasiva. Alguien que no sabía sobre el canal lateral oculto, sin embargo, no notaría nada inusual en los mensajes. De hecho, incluso alguien que sabía sobre el canal lateral no podría saber si algún mensaje en particular lo incluía. Solo al examinar muchos mensajes, el canal lateral sería detectable incluso para alguien que sabía qué buscar .

    
respondido por el supercat 10.02.2015 - 19:01
fuente
1

Los ataques de canal lateral son aquellos basados en la explotación de ciertos aspectos de la implementación y no debido a debilidades matemáticas en los algoritmos criptográficos.

Algunos están expuestos debido a las opciones de implementación de hardware. Por ejemplo, una CPU puede obtener más potencia en un determinado punto de ejecución en el caso de que el bit 1 de la clave sea verdadero, y menos potencia cuando el bit 1 de la clave sea falso.

Otros pueden estar expuestos debido a las opciones de tiempo que se producen en la implementación del software del algoritmo criptográfico. Hubo un ataque exitoso en la implementación Bouncy Castle de TLS debido a que la implementación de un algoritmo MAC tomó una ruta más rápida a través del código en el caso cuando un bit determinado se configuró a un cierto valor. (Creo que esta fue la causa raíz de CVE-2013-1624).

En muchos casos, especialmente los debidos a la sincronización, una forma común de abordar un ataque de canal lateral es cambiando la implementación del software. Al garantizar que todas las ramas tomen una cantidad de tiempo constante, independientemente del valor de los bits, se puede evitar dicha fuga de información. En una implementación de lenguaje de alto nivel, las optimizaciones del compilador pueden ser una causa involuntaria de fugas, lo cual es otra razón por la que un enfoque de "criptografía" propio puede ser un problema.

    
respondido por el John Deters 10.02.2015 - 15:37
fuente
0

El ataque del canal lateral se debe definitivamente a la implementación (aclaración, no quiero decir que la implementación sea incorrecta, consulte a continuación).

Se originan en el hecho de que una computación matemática necesita una computadora para procesar cosas. Por así decirlo, la información del canal lateral de un proceso de encriptación es el impacto de las actividades físicas que se implementan para computarlo. Son una consecuencia del mundo físico.

Para resistirte a los ataques de canal lateral tienes que:

  • reducir la cantidad de datos filtrados
  • hacer que los datos filtrados no estén relacionados con los datos secretos

Y esto se puede hacer tanto por hardware como por software. Eventualmente, todo se relaciona con la particularidad física del sistema utilizado.

Ejemplo : mide el consumo de energía durante la generación de claves.

El exceso de potencia necesaria para procesar un 1 (en lugar de un 0) es un efecto secundario de las herramientas utilizadas para realizar los cálculos. Como si usara un EEG para ver si estás pensando en un 1 o un 0. Son problemas que no provienen del diseño del algoritmo, sino por la realidad.

    
respondido por el M'vy 10.02.2015 - 13:18
fuente
0

Como señalé, las bandas laterales / canales laterales son efectos secundarios que surgen de la implementación / banda del operador principal. El término se origina en transmisiones de radio & Las comunicaciones, y así sin tratar de atacar el problema de forma directa al tratar con la implementación principal, se analizan los canales laterales para obtener información sobre el problema.

Es algo así como cómo puedes rastrear el consumo de energía para determinar si la ronda adicional de descifrado significa que tus intentos de contraseña de fuerza bruta están funcionando.

    
respondido por el munchkin 10.02.2015 - 14:36
fuente

Lea otras preguntas en las etiquetas