ScrambleCache
Une sécurité renforcée pour les données de la mémoire cache des processeurs
Les mémoires caches réduisent les temps d’accès entre mémoire principale et processeur. Elles sont vulnérables à des attaques de type cache timing, qui permettent d’obtenir des données sensibles ou des clés de chiffrement. ScrambleCache est une contremesure matérielle qui améliore les deux mécanismes de sécurité les plus utilisés : randomisation et partitionnement du cache. Son efficacité a été établie par une preuve de concept sur mémoire cache de type write through, dans le cadre d’un démonstrateur sur un FPGA avec le processeur RISC-V CVA6. Deux brevets ont été déposés.
Nouveautés
La randomisation et le partitionnement protègent les mémoires caches, mais ralentissent les processeurs. ScrambleCache limite cette latence :
-
par la randomisation, c’est-à-dire l’ajout de variables pseudo-aléatoires qui biaisent l’observation par un attaquant des temps d’accès à la mémoire : ajout d’une table d’historique de la randomisation et d’identifiants des applications associés, pour éviter de vider et recharger systématiquement la mémoire cache.
-
par le partitionnement, c’est-à-dire la répartition des données dans différentes zones mémoire : recours à un partitionnement dynamique, donc variable, et d’une indication de la légitimité de chaque application sur chaque donnée, pour ne pas répéter les chargements de données communes à plusieurs applications.
| Prochaines étapes
- Optimisation de ScrambleCache pour une mémoire cache de type write back et évaluation sur un ASIC.
- Benchmark de ScrambleCache avec différentes applications sur le système d'exploitation Linux pour valider l’impact réduit sur les temps d’accès (déjà vérifié par simulation).
|