• [^] # Re: Infos détaillées

    Posté par (site web personnel) . En réponse au journal Ça sent pas bon chez Intel ?. Évalué à 9. Dernière modification le 04 janvier 2018 à 01:20.

    Voici un petit résumé de ce que j'ai compris.

    L'idée est de faire en sorte que des accès mémoire "non autorisés" soient réalisés en "exécution spéculative". Par exemple, lorsque length n'est pas en cache dans if (index < length) { ... }, le processeur exécute déjà spéculativement les instructions du bloc if. Ce ne devrait pas être un problème, car une fois toutes les informations connues – dans cet exemple, length –, si la condition est fausse, l'exécution est "oubliée".

    C'est sans compter sur les effets de bords : les loads effectués dans l'exécution spéculativent restent en cache L1. Ainsi, il est possible de provoquer un chargement en cache selon une valeur en mémoire "non autorisée" qu'on veut leaker. Ensuite, en mesurant le temps pour accéder à ces mêmes données, on est capable de savoir si elles étaient en cache ou non, donnant indirectement des informations sur la valeur en mémoire qu'on voulait récupérer.

    Voir notamment la theoretical explanation de Variant 1 dans le post googleprojectzero.

    blog.rom1v.com