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).