Chercheurs du Groupe NCC
Rappelons que la technologie ARM TrustZone vous permet de créer des environnements protégés isolés du matériel, complètement séparés du système principal et exécutés sur un processeur virtuel distinct utilisant un système d'exploitation spécialisé distinct. L'objectif principal de TrustZone est de fournir une exécution isolée des processeurs pour les clés de chiffrement, l'authentification biométrique, les données de paiement et autres informations confidentielles. L'interaction avec le système d'exploitation principal s'effectue indirectement via l'interface de répartition. Les clés de chiffrement privées sont stockées dans un magasin de clés isolé du matériel qui, s'il est correctement mis en œuvre, peut empêcher leur fuite si le système sous-jacent est compromis.
La vulnérabilité est due à une faille dans la mise en œuvre de l'algorithme de traitement des courbes elliptiques, qui a entraîné une fuite d'informations sur la progression du traitement des données. Les chercheurs ont développé une technique d'attaque par canal secondaire qui permet d'utiliser les fuites indirectes existantes pour récupérer le contenu de clés privées situées dans un environnement isolé matériellement.
La principale cause du problème est le partage de composants matériels communs et de cache pour les calculs dans la TrustZone et dans le système principal - l'isolation est effectuée au niveau de la séparation logique, mais en utilisant des unités de calcul communes et avec des traces de calculs et des informations sur les branches. adresses étant déposées dans le cache commun du processeur. Grâce à la méthode Prime+Probe, basée sur l'évaluation de l'évolution des temps d'accès aux informations mises en cache, il est possible, en vérifiant la présence de certains modèles dans le cache, de surveiller les flux de données et les signes d'exécution de code associés aux calculs de signatures numériques dans TrustZone avec une précision assez élevée.
La plupart du temps nécessaire pour générer une signature numérique à l'aide des clés ECDSA dans les puces Qualcomm est consacré à effectuer des opérations de multiplication en boucle à l'aide d'un vecteur d'initialisation inchangé pour chaque signature (
Dans le cas de Qualcomm, deux endroits où ces informations ont été divulguées ont été identifiés dans l'algorithme de multiplication : lors des opérations de recherche dans les tables et dans le code de récupération conditionnelle des données en fonction de la valeur du dernier bit du vecteur « nonce ». Malgré le fait que le code Qualcomm contient des mesures pour contrecarrer les fuites d'informations via des canaux tiers, la méthode d'attaque développée vous permet de contourner ces mesures et de déterminer plusieurs bits de la valeur « nonce », qui suffisent pour récupérer des clés ECDSA de 256 bits.
Source: opennet.ru