Un objetivo del proyecto DRAC es el de proponer soluciones hardware para proteger contra ataques de canal lateral. Entre estas amenazas contamos los ataques del canal lateral de la caché. Éstos consisten en utilizar la propiedad de contención de las memorias caché y las latencias de acceso para obtener información sobre procesos víctima. Las técnicas de protección más eficientes propuestas hasta la fecha son las memorias caché protegidas por aleatorización (o RPC, del inglés), y consisten en aleatorizar las direcciones para distribuirlas imprevisiblemente en la caché. Sin embargo, dado que los RPC son inseguros si los atacantes disponen de suficientes accesos bajo la misma clave, esta clave debe renovarse, normalmente con cierta periodicidad. Este período de renovación se ha establecido tradicionalmente de forma heurística, lo que, desgraciadamente, ha afectado a la seguridad de los mecanismos existentes.
En un trabajo previo [1], presentado en la última conferencia CHES 2022, abordamos este problema. Para ello proponemos un modelo criptográfico para capturar la seguridad en esta situación. Además, utilizando nuestros resultados, es posible escoger un período de renovación de la clave y un mecanismo de aleatorización de forma que la seguridad contra este modelo se garantice de forma demostrable.
En una reciente ampliación de este trabajo previo [2], emprendemos un camino diferente. En vez de buscar períodos de renovación de claves que garanticen cierta seguridad, estudiamos qué períodos de renovación de claves permiten llevar a cabo ataques con éxito. Estudiamos la probabilidad de éxito de ataques a RPCs recientemente propuestos, con las políticas LRU y RAND. De este resultado, se puede deducir que hay ataques a RPCs que rompen la seguridad con una probabilidad de éxito arbitrariamente grande, dados suficientes accesos a caché bajo la misma clave.
Además, en esta nueva versión presentamos una prueba formal de un resultado que amplía las garantías de seguridad a varias épocas, es decir, en el caso en que se utilicen varias claves. Todos los resultados del artículo se han implementado como scripts de Python, y se han puesto a disposición pública [3]. Dado un conjunto de parámetros de caché, estos scripts producen el mayor periodo de renovación de claves para el cual podemos garantizar la seguridad durante una cantidad máxima de accesos, ya sea durante una época o en varias épocas.
Referencias
[1] Jordi Ribes-González, Oriol Farràs, Carles Hernández, Vatistas Kostalabros, and Miquel Moretó. A Security Model for Randomization-based Protected Caches. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2022(3), 1–25, 2022. https://doi.org/10.46586/tches.v2022.i3.1-25
[2] Jordi Ribes-González, Oriol Farràs, Carles Hernández, Vatistas Kostalabros, and Miquel Moretó. A Security Model for Randomization-based Protected Caches. In Cryptology ePrint Archive, Paper 2022/440, 2022. https://eprint.iacr.org/2022/440.
[3] Jordi Ribes-González, Oriol Farràs, Carles Hernández, Vatistas Kostalabros, and Miquel Moretó. Artefactes per "A Security Model for Randomization-based Protected Caches". https://doi.org/10.5281/zenodo.6397296.