Hace 2 años | Por ccguy a blog.cloudflare.com
Publicado hace 2 años por ccguy a blog.cloudflare.com

El ataque Hertzbleed demuestra que, en determinadas circunstancias, el escalado dinámico de voltaje y frecuencia (DVFS), un esquema de gestión de la energía de los procesadores x86 modernos, depende de los datos que se procesan. Esto significa que en los procesadores modernos, el mismo programa puede ejecutarse a diferentes frecuencias de la CPU (y, por lo tanto, tomar diferentes tiempos de reloj de pared). Por ejemplo, esperamos que una CPU tarde lo mismo en realizar las dos operaciones siguientes porque utiliza el mismo algoritmo: (...)

Comentarios

ccguy

El blog de cloudflare es una joya. Y joder que ataque más cabrón y menudo crack hay que ser para llegar a esto...

ccguy

#7 Es el término que usamos en informática para esto y por tanto es el correcto.
Siento que no te guste.

c

#7 En este caso literal=correcto

cubaman

#0 Reloj de pared? Quién lo tradujo, Rajoy?

c

#3 por? Cómo traducirías «wall-clock»?

ccguy

#3 es la traducción correcta. Se refiere al tiempo real transcurrido (según un reloj externo, como el de una pared) y no el tiempo de cálculo, de proceso, etc

M

#6 Literal != correcto.

yonky_n13

jooooder...

R

Mini explicación para el que no quiera leer el articulo entero:
En criptografía hay un tipo de ataque conocido como timing attack. La idea es que a la hora de operar, tu algoritmo se comporta de manera distinta, normalmente porque haces uso de condicionales o bucles que de alguna forma dependen de una relación entre la clave y un bloque de información controlada por el atacante. La solución para estos problemas es hacer uso de lo que se conoce como aritmética en tiempo constante, la idea es que si hay un bucle, este siempre haga el mismo numero de iteraciones (aun cuando podrías terminal antes de tiempo), que no tengas cosas como "if (x) return".

Este ataque va un paso mas allá. En ciertas circunstancias, da igual que tengas aritmética en tiempo constante. Esta diciendo que aunque ejecutes exactamente las mismas instrucciones en tu CPU, pequeñas variaciones todavía pueden ocurrir. Que tu aritmetica en tiempo constante va a tardar el mismo numero de ciclos de cpu, pero la duración de esos ciclos de CPU puede variar. Esto es debido a que los semiconductores pueden gastar mas energía dependiendo del valor que los datos con los que operan, y ese exceso de energía puede hacer que la cpu tenga que bajar la frecuencia mas a menudo para evitar sobrecalentarse, y que ese efecto se puede medir.

Los timing attack son difíciles de hacer a través de la red, porque la variación de la red puede va a ser normalmente significativamente mayor que la variación en el algoritmo, pero no imposible. A base de bastantes intentos, puedes lograr información estadisticamente significativa, suficiente como para simplificar el proceso de recuperar la clave privada. Este ataque lidia con diferencias de tiempo aun menor, haciendo que sea aun mas dicifil de explotar remotamente. Pero como siempre en criptografía y seguridad, mejor pecar por exceso