Sécurité matérielle : évolutions récentes

Quelle association de descriptions de retpoline et d'IBRS, contre-mesures à la variante de Spectre qui exploite la prédiction des branchements indirects (branch target injection), est correcte ?

  1. ARetpoline refait les circuits du CPU pour supprimer le prédicteur, et IBRS est une contre-mesure dans laquelle le compilateur réécrit les instructions de branchement indirect en une autre suite d'instructions
  2. BRetpoline est une contre-mesure logicielle qui remplace les branchements indirects par des suites d'instructions ne dépendant pas du prédicteur, et IBRS est une fonction du CPU qui restreint la prédiction des branchements indirects
  3. CRetpoline comme IBRS arrêtent l'exécution spéculative du CPU elle-même ; avec l'une ou l'autre, le gain de performances dû à l'exécution spéculative est perdu
Afficher la réponse et l'explication

Réponse : B. Retpoline est une contre-mesure logicielle qui remplace les branchements indirects par des suites d'instructions ne dépendant pas du prédicteur, et IBRS est une fonction du CPU qui restreint la prédiction des branchements indirects

Avec retpoline, le compilateur remplace les instructions de branchement indirect par une suite combinant call et ret, de sorte que le CPU utilise la prédiction de l'adresse de retour au lieu du prédicteur de branchements indirects exploitable, et que les instructions exécutées spéculativement tournent sans danger dans une boucle. IBRS est une fonction de contrôle du CPU, ajoutée notamment par des mises à jour du microcode, qui restreint par exemple la prédiction des branchements indirects dans le noyau pour qu'elle ne suive pas ce que les programmes utilisateur ont entraîné. Sur les CPU anciens, basculer IBRS prenait beaucoup de temps, d'où la large utilisation de retpoline, tandis que les CPU récents offrent une version améliorée qui peut rester activée en permanence (eIBRS). Cependant, certains CPU s'appuient aussi sur un autre prédicteur pour prédire l'adresse de retour, et Retbleed, publié en 2022, ainsi que d'autres travaux ont montré des cas où retpoline seul ne suffit pas.

S'entraîner sur ce thème Retour au thème

Autres questions sur Sécurité matérielle : évolutions récentes

  1. Un traitement prenait 10 secondes avant l'application des contre-mesures à l'exécution spéculative et effectuait pendant ce temps 5 millions d'appels système. On suppose que les contre-mesures font passer le temps de traitement de chaque appel système de 0,4 µs à 0,6 µs, sans changer le temps du reste. De quelle proportion le temps total du traitement augmente-t-il ?
  2. La cryptographie post-quantique fondée sur les réseaux euclidiens multiplie à de nombreuses reprises des polynômes de degré n = 256. Si la méthode naïve qui multiplie tous les couples de coefficients nécessite environ n² multiplications et la méthode utilisant la transformée en théorie des nombres (NTT) environ n log₂ n, quelle valeur est la plus proche du facteur par lequel la NTT réduit le nombre de multiplications ?
  3. La clé publique de ML-KEM-768 fait 1184 octets et son texte chiffré 1088 octets, tandis que la valeur publique de X25519, un échange de clés sur courbe elliptique, fait 32 octets. Combien de fois la clé publique de ML-KEM-768 est-elle plus grande que la valeur publique de X25519 ?
  4. Lors de la désencapsulation de ML-KEM, on reconstruit un texte chiffré à partir du résultat du déchiffrement du texte chiffré reçu avec la clé privée, puis on le compare au texte chiffré reçu. Quelle précaution d'implémentation est correcte pour cette partie ?
  5. On conçoit le SoC d'un appareil embarqué qui sera utilisé plus de 10 ans. Quelle conception du matériel et du firmware est appropriée pour se préparer à une future migration cryptographique (comme le passage à la cryptographie post-quantique) ?