

Je suis pas un expert hardware, ni un expert du bas niveau, je vous partage juste ce que j’ai compris. Si j’ai fait une faute merci de la corriger
Résumé :
Si le nombre de connectés sur le 18/25 est plus grand que 2000 alors j’affiche quelque chose à l’écran
Alors le processeur va commencer à préparer l’affichage pendant que le reste de l’ordi va chercher sur le web si il y a plus de 2000 co, tout simplement pour éviter de perdre du temps à afficher si il faut vraiment afficher. Et si il y a pas 2000 co comme il aura rien affiché c’est pas grave
La faille spectre consiste à leurrer le processeur pour lui faire faire des choses en avance (qu’il effacera pas après (perte de temps)) et ensuite d’aller récupérer les choses qu’il a fait. Miraculeusement il aura eu accès à des endroits que le programme n’a pas accès normalement
Proof of concept :
Le code suivant
if (x < taille_tableau1) then y = tableau2[ tableau1[x] ]
si tu l’exécutes pour pleins de valeur de x qui vont donner True à la condition (en gros des valeurs valides) alors le processeur est habitué a rentrer dans le condition et il va le faire d’office pour gagner du temps. Si maintenant un attaquant donne une valeur de x trop grande, l’ordi va préparer en cache la valeur tableau2[ tableau1[x] ], et le truc qu’il prépare en cache dépends de tableau1[x], il suffit de récupérer le cache pour regarder la valeur que valait tableau1[x]. Pour voir ce qui a été mis en cache on regarde toutes les valeurs de tableau2 et on regarde à quelle vitesse elles se load, si c'est rapidement c'est que c'était en cache (et donc que c'était tableau1[x])
Dommage qu’on puisse plus utiliser cette prédiction de branche, c’est assez utile quand on fait de l’opti, par exemple quand on veut faire un traitement sur une liste triée du type if élément < 50 ça va dix fois plus vite sur des listes triées, et les pertes de perfs sont assez énormes si on dit au processeur d’attendre (ça va que 5 fois plus vite)
J’espère qu’ils continueront à faire du matos qui permette ce genre d’optimisation, ça peut être utile dans le matos ultra spécialisé j’imagine
Whitepaper : https://spectreattack.com/spectre.pdf
Voila c’est tout, la faille était pas si compliquée en fait





(même si c'est pas l'objet mais où il l'a posé, je crois)









