Rowhammer solo funciona acelerando la descarga de los condensadores.
Las células no se cargan por el martillo de fila, solo se descargan. La razón por la que puede ver un cambio de 0 lógico a un 1 lógico es que la memoria DRAM moderna utiliza una técnica llamada aleatorización , donde se usa una pequeña semilla de 32 bits para alimentar un cifrado de flujo LFSR para cifrar la memoria. Este cifrado no está diseñado para ser criptográficamente seguro. Está diseñado solo para ayudar a reducir la tensión eléctrica en un módulo si experimenta enormes ráfagas de 1s o 0s secuenciales. La mezcla da como resultado que cualquier bit físico tenga aproximadamente un 50% de probabilidad de ser representado como un bit lógico inverso, por lo que los 0 lógicos se convierten en 1s.
No es solo la mezcla de memoria lo que causa esta desconexión entre un bit físico y un bit lógico. Algunas celdas representan un 1 lógico cuando están cargadas, mientras que otras son al revés. Estos se conocen como células verdaderas y anti-células , respectivamente. La mayoría de DRAM está compuesta de celdas verdaderas. Es decir, la descarga del condensador hace que un 1 se convierta en un 0. Es solo después de una mezcla de memoria, como se describe anteriormente, que esto puede dar como resultado bitflips aparentemente aleatorios en el nivel de la aplicación.
Si Rowhammer fuera capaz de cargar un condensador descargado, estaríamos en una situación mucho peor de lo que estamos ahora. Debido a que una actualización de DRAM resulta en verificar el valor de un capacitor y recargarlo si estaba cargado, pero dejarlo solo si se descarga, las mitigaciones basadas en la actualización solo pueden proteger de una descarga excesiva inducida por el martillo. Actualmente, la mayoría de las mitigaciones existentes dependen de aumentar la frecuencia de actualización (por ejemplo, de intervalos de 64 ms a 32 ms), o de detectar activaciones de fila excesivas y actualizar directamente filas adyacentes que pueden volverse inestables como resultado (por ejemplo, TRR y pTRR).
El documento original dio tres mecanismos de acción diferentes:
Acoplamiento electromagnético : cada condensador tiene su propio transistor de acceso . Cuando se activa este transistor, descarga el condensador y lee el valor en el búfer de la fila. Cambiar el voltaje de una línea de palabras puede inducir ruido en las líneas de palabras cercanas, activando temporalmente los transistores de acceso en esa línea durante cortos períodos de tiempo, facilitando la fuga de sus capacitores.
Formación de puente : se pueden formar canales conductores entre cables o condensadores no relacionados. Alternar rápidamente una línea de palabras puede aumentar la tasa de fuga entre las celdas puenteadas, lo que hace que los condensadores cargados se descarguen más rápidamente, potencialmente lo suficientemente rápido como para corromperlos.
Inyección de portadores calientes : si bien esto no es particularmente relevante para los ataques a corto plazo de los martillos de arena, se ha encontrado que alternar una línea de palabras durante cientos de horas puede dañarla permanentemente. Esto puede alterar las características de los transistores de acceso y los condensadores para aumentar la fuga.