Retour de vacances : ce blog reprend son cours. Avec, pour ce premier article, un sujet d’actualité puisqu’il touche à une approche innovante concernant la sécurité des systèmes informatiques. Celle-ci est souvent abordée sous l’angle logiciel ; ici, c’est l’aspect matériel qui est en cause.
Imaginons un petit scénario : suite à un appel d’offres pour la réalisation d’un système critique (gestion d’une usine, système de contrôle embarqué, système d’armes, lanceur spatial, système médical, machine à voter, bref, quelque chose qui ne DOIT PAS dysfonctionner), un acteur est retenu pour « outsourcer » la fabrication d’un processeur destiné à intégrer ce système. Moins cher, innovant, mais basé dans un pays lointain, il respecte toutes les contraintes du cahier des charges. Mais derrière l’usine de fabrication œuvre un réseau de pirates informatiques contrôlés par un état. Les processeurs livrés seront conformes en tout point aux spécifications, mais avec une petite fonction supplémentaire : un cheval de Troie codé « en dur », permettant ainsi aux pirates de prendre le contrôle du processeur, et de menacer, le moment venu, l’infrastructure critique concernée. Science-fiction ? Non, car de telles technologies existent, et le recours à la sous-traitance dans le domaine est généralement la norme.
C’est un tel scénario qui a dû inspirer le chercheur Siddharth Garg, de la NYU Tandon School of Engineering. Sa solution : développer un processeur certifié, dont la fonction consiste à vérifier le bon fonctionnement d’un autre processeur. Le système repose en fait sur la collaboration entre le processeur sous-traité (nous l’appellerons ST) et le processeur vérificateur (nous l’appellerons V). Rappelons que l’objectif est d’utiliser V pour déterminer le bon fonctionnement (et l’absence de code malicieux) dans ST.
Pour ce faire, le cahier des charges de ST inclut un module dont l’objectif est de prouver que les calculs effectués par le processeur sont corrects. Une fois le processeur livré, un second processeur (V) a pour fonction d’évaluer que la preuve livrée par le module embarqué dans ST est réelle. Le processeur ST peut être sous-traité. Le processeur V est quant à lui très simple : il est réalisé sous forme d’une ASIC (application-specific integrated circuit) par un prestataire de confiance. La technologie est accessible partout, et ne nécessite pas l’intervention d’une fonderie évoluée (sans cela, le système se mordrait la queue). Il s’agit d’une implémentation matérielle d’une technique connue sous le nom de « Verifiable Computing ».
L’innovation est donc réelle, même s’il reste quelques problèmes à surmonter ; en particulier, les délais de calcul induits par la vérification, et la bande passante nécessaire entre les processeurs ST et V. Car le système fonctionne en permanence : chaque fois que ST reçoit une commande, il fournit à la fois le résultat, et la preuve de bon fonctionnement qui sera validée par V.
Le système, ingénieux, est appelé Zebra. Il est encore à l’état de prototype, mais l’approche sera bientôt testée en vraie grandeur. Car les enjeux sont critiques : prévenir tout vol de données (et notamment les clés de cryptage), éviter des attaques ciblées sur des infrastructures critiques et connectées.
Pour les plus courageux (et ce n’est rien de le dire), l’article original est téléchargeable ici.
[…] Source: Blog VMF 214. Lire l’article ici. […]
J’aimeJ’aime