Vulnérabilité dans les puces Qualcomm qui permet d'extraire les clés privées du stockage TrustZone

Chercheurs du Groupe NCC découvert détails vulnérabilités (CVE-2018-11976) dans les puces Qualcomm, qui permet de déterminer le contenu des clés de chiffrement privées situées dans une enclave isolée Qualcomm QSEE (Qualcomm Secure Execution Environment), basée sur la technologie ARM TrustZone. Le problème se manifeste dans le plus Snapdragon SoC, qui s'est répandu dans les smartphones basés sur la plateforme Android. Les correctifs qui résolvent le problème sont déjà inclus dans la mise à jour Android d'avril et les nouvelles versions du micrologiciel pour les puces Qualcomm. Il a fallu plus d'un an à Qualcomm pour préparer un correctif ; les informations sur la vulnérabilité ont été initialement envoyées à Qualcomm le 19 mars 2018.

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. Magasin de clés Android. Les fuites sont déterminées sur la base de l'analyse de l'activité du bloc de prédiction de branchement et des modifications du temps d'accès aux données en mémoire. Dans le cadre de l'expérience, les chercheurs ont démontré avec succès la récupération de clés ECDSA de 224 et 256 bits à partir du magasin de clés isolé par le matériel utilisé dans le smartphone Nexus 5X. La récupération de la clé a nécessité la génération d'environ 12 14 signatures numériques, ce qui a pris plus de XNUMX heures. Outils utilisés pour mener l'attaque Capture de cache.

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 (Nonce). Si l'attaquant parvient à récupérer au moins quelques bits contenant des informations sur ce vecteur, il devient possible de mener une attaque pour récupérer séquentiellement l'intégralité de la clé privée.

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

Ajouter un commentaire