Comment l'habitude d'un processeur de deviner la suite peut-elle divulguer tes secrets ?
Nommée Spectre parce que sa cause, l'exécution spéculative, est si profondément ancrée dans le fonctionnement des processeurs qu'elle « nous hantera encore longtemps ».
▶ Lancer l'histoireLes processeurs modernes n'attendent pas patiemment que chaque instruction soit réglée avant de passer à la suivante. Pour rester rapides, ils devinent. Un prédicteur de branchement regarde un « si... sinon » dans ton code et parie sur la direction qu'il va prendre, pour que la puce puisse commencer à exécuter ce chemin deviné immédiatement au lieu de rester inactive. Pari gagnant : du temps est gagné. Pari perdu : les instructions sont simplement jetées, et officiellement, il ne s'est rien passé.
Mais jeter le travail n'efface pas toutes ses traces. Pendant qu'il pariait, le processeur a pu faire entrer certaines données dans sa mémoire cache rapide. Ça laisse une empreinte : une donnée présente dans le cache se lit sensiblement plus vite qu'une donnée absente. Jann Horn, chez Google, et Paul Kocher avec des collègues ont découvert, chacun de leur côté, qu'un attaquant peut entraîner un prédicteur de branchement à se tromper exprès. Le processeur touche alors de façon spéculative des données secrètes qu'il n'aurait jamais dû atteindre, et chronométrer le cache ensuite révèle ce qu'elles contenaient.

Ils l'ont appelée Spectre, parce que sa cause profonde, l'exécution spéculative, est si difficile à corriger qu'elle « nous hantera encore longtemps ». Elle a été rendue publique le 3 janvier 2018, en même temps qu'une faille voisine, Meltdown, qui permettait à un programme malveillant de lire une mémoire à laquelle il n'avait pas droit. Même une page web pouvait se servir de Spectre : le JavaScript d'un site pouvait lire des données que le navigateur gardait pour un autre site.
Corriger Spectre, c'était fermer une porte dérobée sans démolir la maison. Les navigateurs ont rendu leurs chronomètres plus flous, pour que les pages ne puissent plus mesurer le cache aussi finement. Les correctifs ont ralenti les ordinateurs, avec des baisses de 2 à 14 % dans les tests sur les puces les plus récentes de l'époque, parce que l'astuce qui rendait les processeurs rapides était aussi celle qui les faisait fuir.
Quiz
0/3
Récap
Même quand le pari perdu d'un processeur est formellement annulé, il peut laisser des traces, comme des données restées dans le cache, qu'une attaque chronométrée peut lire ; c'est cet écart entre résultats annulés et effets secondaires persistants que Spectre exploite.
Le fait surprenant · Spectre a été nommée ainsi parce que sa cause profonde, l'exécution spéculative, est si fondamentale à la conception des processeurs que les chercheurs ont dit qu'elle « nous hantera encore longtemps », et les correctifs qui ont suivi ont ralenti certaines puces de pourcentages à deux chiffres.
Liens
- 🔁 Que fait réellement un processeur, des milliards de fois par seconde ?
- 🗃️ Pourquoi un processeur garde-t-il une toute petite mémoire juste à côté de lui ?
- 🔓 Pourquoi une équipe de NBA a-t-elle remis les formulaires fiscaux de tous ses employés à un escroc ?
- 🔒 Pourquoi ton site préféré ne connaît-il pas ton mot de passe ?
Sources (5)
Pas de source, pas d'affirmation. Chacun des 18 faits de cette leçon renvoie à au moins une de ces sources.