Présentation du projet
Le projet FAIR (Fault Attack Injection Resilience) vise à développer un processeur sécurisé et performant, ainsi que les outils l'accompagnant, pour contrer les attaques par injection de fautes ciblant les systèmes embarqués (cartes à puce, smartphones, etc).
L'objectif est de dépasser les limitations des processeurs "lockstep" et les schémas actuels d'Instruction Set Randomization (ISR), souvent inefficaces en termes de performance et d'énergie.
Dans l'état de l'art, les solutions proposées essayent d'adapter des outils déjà existants (primitives cryptographiques, jeux d'instructions) à ce problème.
Nous revendiquons au contraire la nécessité de développer de nouveaux outils spécifiquement pour ce cas d'usage.
Premièrement, les schémas cryptographiques actuels pour l'ISR souffrent de primitives et de modes à trop forte latence, puisque conçus pour d'autres usages.
Notre premier axe est donc le développement d'une primitive et d'un mode spécifiques pour garantir une intégrité cryptographique à faible latence.
Deuxièmement, la résilience et l'intégrité de la microarchitecture doivent passer à l'échelle de cœurs plus gros.
Nous ciblons donc un cœur CVA6.
Enfin, nous devons admettre que modifier le jeu d'instructions permet des gains de sécurité. Pour cela, nous proposons de modifier le jeu d'instructions RISC-V pour enlever la possibilité de sauts indirects vers l'avant, permettant un schéma cryptographique plus simple et la possibilité pour le compilateur de déterminer efficacement et précisément le graphe de flot de contrôle de notre application.
Ce travail est fait en collaboration avec un industriel, notamment pour valider le caractère réaliste de nos designs.
La méthodologie s'articule autour de trois axes :- développer un schéma cryptographique adapté aux contraintes d’énergie et de calcul des systèmes embarqués,
- concevoir une microarchitecture résiliente qui intègre ces mécanismes de sécurité tout en assurant de bonnes performances,
- créer un compilateur dédié, capable d'exploiter cette architecture sans recourir à des sauts indirects.
The FAIR (Fault Attack Injection Resilience) project aims to develop a secure and efficient processor, along with its accompanying tools, to counter fault injection attacks targeting embedded systems (smartcards, smartphones, etc.).
The goal is to overcome the limitations of "lockstep" processors and current Instruction Set Randomization (ISR) schemes, which are often inefficient in terms of performance and energy consumption.
In the state of the art, proposed solutions attempt to adapt existing tools (cryptographic primitives, instruction sets) to this problem.
We argue, on the contrary, for the need to develop new tools specifically for this use case.
First, current cryptographic schemes for ISR suffer from primitives and modes with excessive latency, as they were designed for other purposes.
Our first focus is therefore the development of a specific primitive and mode to ensure cryptographic integrity with low latency.
Second, the resilience and integrity of the microarchitecture must scale to larger cores.
We are therefore targeting a CVA6 core.
Finally, we must acknowledge that modifying the instruction set can yield security gains. To this end, we propose modifying the RISC-V instruction set to remove the possibility of forward indirect jumps, enabling a simpler cryptographic scheme and allowing the compiler to efficiently and accurately determine the control flow graph of our application.
This work is carried out in collaboration with an industrial partner, particularly to validate the realism of our designs.
The methodology is structured around three axes:- develop a cryptographic scheme tailored to the energy and computational constraints of embedded systems,
- design a resilient microarchitecture that integrates these security mechanisms while ensuring good performance,
- create a dedicated compiler capable of leveraging this architecture without resorting to indirect jumps.
