Des chercheurs en sécurité ont découvert une vulnérabilité dans les puces M d'Apple ouvrant la voie à de l'extraction de clés secrètes utilisées lors des opérations de chiffrement. Baptisée GoFetch, elle est exploitable par une attaque par canal latéral (side-channel attack) utilisant la DMP (data memory dependent prefetcher) des puces M d'Apple. Cette fonction consiste à déterminer des instructions et des données à charger avant qu'un programme en est besoin et pendant que le CPU effectue une autre tâche. L'intérêt étant de réduire les temps d'accès et les latences entre la mémoire principale et le processeur.
En exploitant cette brèche, les chercheurs ont été capables d'extraire une variété de clés de chiffrement (OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber et Dilithium). Le scénario d'attaque a été testé avec succès sur une puce M1 et pourrait bien fonctionner avec d'autres, M2 et M3 en particulier. Selon la recherche, ces composants ayant une microarchitecture identique à M1, l'exploit DMP pourrait être effectif sous confirmation de test. A noter que des puces concurrentes comme Core 13e génération d'Intel (Raptor Lake) sont également dotées d'une fonction DMP mais seraient épargnées par la faille GoFetch en raison de critères d'activation plus restrictifs que ceux d'Apple.
Une faille atténuable, mais au détriment des performances
La faille ne peut pas être corrigée directement, car elle découle de la conception micro-architecturale du composant lui-même. En revanche, elle peut être atténuée par l'intégration de défenses dans les logiciels cryptographiques tiers susceptibles de dégrader les performances de la série M lors de l'exécution d'opérations cryptographiques, en particulier sur les générations M1 et M2 antérieures.
Sur la puce M3, le composant dispose d'un bit spécial que les développeurs peuvent invoquer pour désactiver la fonction DMP. Par contre, les chercheurs ne savent pas quel sera l’impact sur les performances cryptographiques de la puce.