Desde el punto de vista criptográfico, un gran tema en estos días es ataques de canal lateral : los atacantes intentan extraer información sobre valores privados en un sistema dado al observar efectos secundarios como el consumo de energía, el tiempo preciso ... Una visión sintética de tales ataques es que hay dos "mundos" distintos:
- el "mundo abstracto" en el que un sistema recibe entradas como secuencias de 0 y 1, y genera secuencias similares;
- el "mundo físico" en el que el cálculo tiene lugar dentro de restricciones medibles, como el tiempo de cálculo.
Los ataques de canal lateral tratan de explotar las diferencias entre estos dos mundos.
La nube es un intento de no creer esta diferencia. Con la nube, obtiene máquinas virtuales bajo el supuesto de que no se pueden distinguir como físicas, ya que computan las mismas cosas. De hecho, una máquina virtual responderá con las mismas secuencias de 0 y 1 para las mismas entradas, por lo que en el mundo abstracto, una máquina virtual es una emulación perfecta de una máquina física. Pero si nos fijamos en los detalles físicos, surgen algunos problemas. En particular los dos siguientes:
-
Para muchos protocolos criptográficos, existe la necesidad de aleatoriedad . La aleatoriedad se extrae de los elementos físicos. Con una VM, se emulan los elementos "físicos". Una consecuencia es que un PRNG dentro de una VM puede ser de calidad subóptima.
Por lo general, considere lo que sucede si toma una instantánea de una VM en vivo y (más adelante) restaure esa instantánea: es muy posible que el PRNG de la VM genere exactamente la misma secuencia de valores aleatorios que la primera vez , lo que puede llevar a graves problemas de seguridad. Un ejemplo extremo es la generación del valor " k " en las firmas DSA y ECDSA: reutilizar el mismo k para dos firmas (en mensajes distintos) revela la clave privada (ver esta respuesta ).
-
Una VM se ejecuta en algún hardware, y ese hardware puede alojar varias VM simultáneamente. Estas máquinas virtuales comparten los mismos recursos, en particular cachés. Esto permite ataques de tiempo de caché de VM cruzado.
Esto ha sido recientemente demostrado en condiciones de laboratorio: los investigadores lograron realizar un ataque de sincronización de caché en algunas implementaciones de AES , permitiendo que una máquina virtual adivine una clave de cifrado AES utilizada en otra máquina virtual que simplemente se ejecutó en el mismo hardware.
Los ataques de canal lateral a algoritmos criptográficos no agotan la gran cantidad de problemas de seguridad relacionados con la computación en la nube, pero siguen siendo un campo de investigación fértil, y son suficientes para justificar una advertencia de precaución: realmente realmente no quiero que su VM se ejecute en el mismo hardware que la VM de sus competidores.