Malgré que l'embargo ne soit pas encore levé, connaît-on cet algo, et a-t-on compris la faille ?
C'est assez loin de mes préoccupations, mais si j'ai bien compris ce que j'ai lu, le principe est le suivant:
Il faut ce souvenir que les processeurs sont éloignés de la mémoire centrale et pour accéder à celle-ci rapidement, ils utilisent plusieurs niveau de cache. Le cache le plus rapide est dit de niveau L1, les autres caches sont plus lents, en enfin la mémoire centrale est la plus lente. En utilisant l'horloge interne du processeur pour estimer le nombre de cycles nécessaire à une opération de lecture, on peut deviner assez fiablement si une cellule mémoire est dans le cache L1 ou dans un autre système plus lent. L'astuce pour exploiter cette information consiste à écrire un programme du type
en s'arrangeant grâce à un saut conditionnel bien placé pour que l'approche spéculative du processeur lise la deuxième instruction et l'exécute avant de se rendre compte que l'accès à la mémoire dans la première instruction est interdit – car l'approche spéculative ne s'embrasse pas des règles de sécurité qui ne sont validées que lorsqu'on est sûr de la branche du programme qui doit être exécutée. L'état du processeur est rétablit... mais pas le cache: la vitesse à laquelle je peux lire dans la mémoire de mon processus me donne un petit indice sur la valeur de bx, alors qu'accéder à cette donnée est en principe interdit, car dans l'espace noyau.
[^] # Re: Comment une faille peut-elle toucher plusieurs processeurs de plusieurs fondeurs ?
Posté par Michaël (site web personnel) . En réponse à la dépêche Deux failles critiques : Meltdown et Spectre. Évalué à 9.
C'est assez loin de mes préoccupations, mais si j'ai bien compris ce que j'ai lu, le principe est le suivant:
Il faut ce souvenir que les processeurs sont éloignés de la mémoire centrale et pour accéder à celle-ci rapidement, ils utilisent plusieurs niveau de cache. Le cache le plus rapide est dit de niveau L1, les autres caches sont plus lents, en enfin la mémoire centrale est la plus lente. En utilisant l'horloge interne du processeur pour estimer le nombre de cycles nécessaire à une opération de lecture, on peut deviner assez fiablement si une cellule mémoire est dans le cache L1 ou dans un autre système plus lent. L'astuce pour exploiter cette information consiste à écrire un programme du type
en s'arrangeant grâce à un saut conditionnel bien placé pour que l'approche spéculative du processeur lise la deuxième instruction et l'exécute avant de se rendre compte que l'accès à la mémoire dans la première instruction est interdit – car l'approche spéculative ne s'embrasse pas des règles de sécurité qui ne sont validées que lorsqu'on est sûr de la branche du programme qui doit être exécutée. L'état du processeur est rétablit... mais pas le cache: la vitesse à laquelle je peux lire dans la mémoire de mon processus me donne un petit indice sur la valeur de bx, alors qu'accéder à cette donnée est en principe interdit, car dans l'espace noyau.