Protection des System-on-Chips par l'isolation : Le paysage des TEE dans le monde de l'embarqué

Description
Avec le ralentissement de la loi de Moore, les System-on-Chip (SoC) hétérogènes sont de plus en plus présents dans les systèmes embarqués. Ces systèmes regroupent sur une même puce des composants de nature différente, tels que des processeurs, des mémoires, des accélérateurs matériels et des périphériques. Cependant, cette diversité de composants engendre un défi majeur en matière de sécurité. Chaque composant introduit des vulnérabilités qui lui sont propres, et les interactions entre les composants peuvent également ouvrir de nouveaux vecteurs d'attaques. Aussi, l'effort nécessaire pour assurer la sécurité du SoC augmente avec le nombre et la complexité des composants qu’il contient. En réponse à ces défis, de nombreux travaux ont proposé des solutions pour renforcer la sécurité, soit au niveau des composants individuels, soit au niveau de l'architecture globale du SoC. Parmi les solutions proposées dans la littérature, une approche très populaire consiste à isoler les composants logiciels et matériels du SoC que le concepteur considère comme critiques, du reste des composants du SoC qu'un adversaire pourrait corrompre. Il en découle un riche écosystème de solutions d’isolation (Trusted Execution Environments) parmi lesquelles peu sont adoptés commercialement, notamment dû à la dégradation de performances du système résultant. Dans cette présentation, nous présentons les principales méthodes de cet écosystème et de comprendre les défis qui limitent l'adoption de nouvelles solutions dans le domaine commercial. Nous proposerons une taxonomie des différentes méthodes actuelles en les distinguant sur la base des stratégies d'isolation qu'elles emploient, et nous identifierons les principaux axes de recherche à privilégier pour améliorer l'acceptabilité des nouvelles solutions dans le domaine commercial. En particulier, nous mettrons en avant l’importance de trouver des compromis entre sécurité et performance en fonction des applications ciblées.