Recuperación de clave RSA usando sonido - ¿Cómo funciona?

17

Se publicó ayer una muy interesante aviso de seguridad de Debian.

  

Genkin, Shamir y Tromer descubrieron que el material de la clave RSA podría   ser extraído utilizando el sonido generado por la computadora durante el   descifrado de algunos textos cifrados elegidos.

¿Cómo funciona este ataque? ¿Cuáles son algunas mitigaciones posibles?

    
pregunta Ayrx 19.12.2013 - 13:04
fuente

2 respuestas

7

El impacto práctico es nulo ... por ahora. El ataque es de un tipo conocido como canal lateral en que explota una fuga de información, aquí hay una emisión de sonido que depende de la información procesada. Datos, incluida la clave privada. Bajo ciertas condiciones , la fuga podría aprovecharse para una recuperación de clave completa, pero las condiciones no se logran fácilmente en la práctica. Como dicen los autores:

  

Para aplicar el ataque a GnuPG, encontramos una manera de hacer que GnuPG descifre automáticamente los textos cifrados elegidos por el atacante. La idea es utilizar mensajes de correo electrónico cifrados siguiendo los protocolos OpenPGP y PGP / MIME. Por ejemplo, Enigmail (un complemento popular para el cliente de correo electrónico de Thunderbird) descifra automáticamente el correo electrónico entrante (con fines de notificación) utilizando GnuPG. Un atacante puede enviar mensajes de correo electrónico adecuadamente diseñados a las víctimas, esperar hasta que lleguen a la computadora de destino y observar la firma acústica de su descifrado (como se muestra arriba), cerrando así el ciclo de ataque adaptativo.

En otras palabras, se necesita un contexto bastante específico para que el ataque cause un daño real, y no será discreto.

La protección contra fugas se realiza modificando el software para que ya no se produzcan fugas o, más precisamente, ya no se obtenga información útil. En el caso de RSA, para el módulo n , el exponente público e y el exponente privado d , el cegamiento es efectivo:

  • Antes de usar la clave privada en la entrada m , genere un r módulo n al azar.
  • Calcular m '= m * r e mod n .
  • Aplique la exponenciación central en m ', produciendo t' ( t '= m' d mod n ).
  • Calcular t = t '/ r mod n . Este valor t es el resultado real: t = m d mod n .

Por qué el cegamiento es efectivo contra la mayoría de las fugas de canal lateral en RSA es una cuestión de sutileza; pero, de una manera que se hace con la mano, digamos que la aleatoriedad agregada del valor r (llamada "máscara") oculta los datos al evitar que el atacante los modele: el atacante ya no sabe qué Entra en la exponenciación. Es importante que se genere una nueva máscara r para cada exponenciación (hasta cierto punto, puede haber atajos para producir secuencias de máscaras a un costo menor, pero eso es complicado y generalmente no vale la pena el esfuerzo). La sobrecarga que implica el cegamiento sigue siendo pequeña, porque el exponente público e es pequeño.

El cegamiento no es la única contramedida; para evitar fugas, también debe tener cuidado de mantener la secuencia de operaciones lo más fija posible, independientemente de los datos (por ejemplo, en un algoritmo de exponenciación cuadrado y multiplicar clásico, no multiplique condicionalmente ; en su lugar, siempre se multiplica, pero conserva condicionalmente el resultado o lo descarta).

    
respondido por el Thomas Pornin 21.01.2014 - 16:39
fuente
10

Este ataque es una forma de canal lateral contra RSA. Los detalles completos se pueden encontrar en un documento publicado por Adi Shamir (un de tres autores) de RSA fame.

El ataque funciona esencialmente porque una computadora emite diferentes sonidos cuando realiza diferentes tareas. Usando esta información, es posible recuperar información sobre la clave RSA durante el proceso de cifrado o descifrado. Cuando el mismo texto sin formato está cifrado con diferentes claves RSA, los investigadores pudieron discernir qué clave se usó en el proceso de cifrado. Esta es una forma de ataque distintivo clave .

La parte interesante de esto es que los investigadores pudieron realizar el ataque usando teléfonos móviles. Esto es preocupante porque este ataque no requiere equipo especializado para arrancar.

Si bien este ataque es estrictamente teórico en este momento, sigue siendo interesante, ya que los ataques de canal lateral han sido responsables de muchos de los ataques contra RSA en el pasado.

Mitigation

Al igual que las menciones de asesoramiento de Debian, este ataque se corrige en las versiones más recientes de GPG.

  

Para la distribución oldstable (squeeze), este problema se ha solucionado en   versión 1.4.10-4 + squeeze4.

     

Para la distribución estable (sibilancias), este problema se ha solucionado en   versión 1.4.12-7 + deb7u3.

     

Para la distribución inestable (sid), este problema se ha solucionado en   versión 1.4.15-2.

Mejor aún, use la rama GPG 2.x que ya emplea cegamiento RSA que debería proteger contra ataques de canal lateral.

    
respondido por el Ayrx 19.12.2013 - 13:04
fuente

Lea otras preguntas en las etiquetas