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

Quelle affirmation décrit correctement le mécanisme d'authentification de pointeurs (PAC) d'Arm ?

  1. AÀ chaque utilisation d'un pointeur, l'OS est interrogé par un appel système pour confirmer que le pointeur a une valeur correcte
  2. BUn court code d'authentification est calculé à partir de la valeur du pointeur et d'une valeur de contexte avec une clé interne au CPU, placé dans les bits de poids fort du pointeur et vérifié avant l'utilisation
  3. CTous les bits du pointeur sont chiffrés avec une clé interne au CPU avant d'être stockés en mémoire, puis déchiffrés dans le CPU avant chaque utilisation
Afficher la réponse et l'explication

Réponse : B. Un court code d'authentification est calculé à partir de la valeur du pointeur et d'une valeur de contexte avec une clé interne au CPU, placé dans les bits de poids fort du pointeur et vérifié avant l'utilisation

Dans les bits de poids fort d'un pointeur de 64 bits qui ne servent pas à l'adresse virtuelle, on place un code d'authentification calculé avec une clé interne au CPU à partir de la valeur du pointeur et d'une valeur de contexte (par exemple le pointeur de pile). Juste avant d'utiliser par exemple l'adresse de retour d'une fonction, une instruction dédiée recalcule le code et le compare ; en cas de discordance, le pointeur est transformé en adresse inutilisable, ce qui complique les attaques qui réécrivent les adresses de retour sur la pile (comme le ROP). Le logiciel ne peut pas lire la clé ; l'attaquant ne peut donc pas produire un code d'authentification correspondant à un pointeur modifié. Toutefois, la longueur du code dépend de réglages comme la largeur de l'adresse virtuelle et ne dépasse souvent pas une quinzaine de bits ; lorsque de nombreuses tentatives sont possibles, il faut tenir compte de la probabilité d'une concordance fortuite.

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

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

  1. Quelle affirmation décrit correctement la pile fantôme (shadow stack) matérielle adoptée notamment par Intel CET (Control-flow Enforcement Technology) ?
  2. À propos des fonctions matérielles qui soutiennent l'intégrité du flot de contrôle, quelle association est correcte entre ce qui protège les retours de fonction et ce qui protège les appels et sauts indirects, comme ceux qui passent par des pointeurs de fonction ?
  3. Pourquoi dit-on que le Rowhammer devient plus probable à mesure que la DRAM est miniaturisée ?
  4. Pourquoi la protection contre le Rowhammer par le TRR (target row refresh) intégré aux DRAM a-t-elle pu être contournée dans des travaux de recherche ?
  5. Quel est le problème de l'idée selon laquelle « avec une mémoire ECC, il n'y a pas à s'inquiéter du Rowhammer » ?