Le nom complet de SGX dans le BIOS est « Intel Software Guard Extensions », qui est une extension de l'architecture Intel (IA). Elle vise à utiliser la sécurité matérielle comme garantie obligatoire et ne repose pas sur l'état de sécurité du micrologiciel. et les logiciels. Un environnement d'exécution fiable dans l'espace utilisateur peut améliorer la sécurité des logiciels.
L'environnement d'exploitation de ce tutoriel : Système Windows7, ordinateur Dell G3.
Définition technique SGX
SGX signifie Intel Software Guard Extensions. Comme son nom l'indique, il s'agit d'une extension de l'architecture Intel (IA) pour améliorer la sécurité des logiciels.
L'extension du jeu d'instructions SGX vise à considérer la sécurité du matériel comme une garantie obligatoire, indépendante de l'état de sécurité du micrologiciel et du logiciel, et à fournir un environnement d'exécution fiable pour l'espace utilisateur grâce à un nouvel ensemble d'extensions de jeu d'instructions et un mécanisme de contrôle d'accès. pour obtenir un fonctionnement isolé entre différents programmes, garantissant la confidentialité et l'intégrité des codes clés et des données des utilisateurs contre la destruction par des logiciels malveillants.
Cette approche n'identifie pas et n'isole pas tous les logiciels malveillants sur la plate-forme, mais encapsule les opérations de sécurité des logiciels légitimes dans une enclave pour les protéger des attaques de logiciels malveillants, qu'il s'agisse de logiciels privilégiés ou non. L'enclave n'est pas accessible. C'est-à-dire qu'une fois les logiciels et les données localisés dans l'enclave, même le système d'exploitation ou le VMM (Hyperviseur) ne peut pas affecter le code et les données dans l'enclave.
La limite de sécurité de l'Enclave inclut uniquement le CPU et lui-même. L'enclave créée par SGX peut également être comprise comme un Trusted Execution Environment TEE (Trusted Execution Environment).
Cependant, il est légèrement différent d'ARM TrustZone (TZ). TZ est divisé en deux environnements d'isolation (monde sûr et monde normal) via le CPU, et les deux communiquent via les instructions SMC dans SGX A CPU ; exécutez plusieurs enclaves de sécurité et elles peuvent être exécutées simultanément.
Bien sûr, le même effet peut être obtenu en mettant en œuvre plusieurs services de sécurité mutuellement isolés au sein du monde de la sécurité TZ.
Création de l'enclave SGX
Avec la technologie SGX du processeur Intel, grâce à la commutation de mode matériel du CPU, le système entre en mode de confiance pour exécution, en utilisant uniquement le nécessaire Le matériel constitue un mode privilégié complètement isolé, chargeant un système d'exploitation à micro-noyau minimal pour prendre en charge la planification des tâches, l'authentification complète de l'identité et basé sur l'identité de l'utilisateur authentifié
En utilisant la technologie Intel SGX, le. Enclave est construit comme un ensemble complet. Le plan de mise en œuvre spécifique du mode privilège isolé est le suivant :
(1) Chargez l'image de la machine virtuelle qui doit être exécutée sur le disque.
(2) Générez des certificats de clé secrète pour chiffrer le code et les données de l'application. La technologie SGX fournit une méthode de chiffrement par clé secrète plus avancée. La clé secrète est composée de la clé secrète de la version SGX, de la clé secrète de la machine CPU et de la clé secrète Intel officielle. distribution La clé secrète de l'utilisateur est une toute nouvelle clé générée sous l'algorithme de génération de clé, et cette clé est utilisée pour crypter le code et les données de l'application qui doit être chargée.
(3) Chargez d'abord le code et les données de l'application ou de l'image qui doit être chargée dans le chargeur SGX pour préparer son chargement dans l'Enclave.
(4) Appliquer dynamiquement pour créer une enclave en mode de confiance Intel SGX.
(5) Décryptez d'abord les programmes et les données qui doivent être chargés via le certificat de clé secrète sous forme d'EPC (Enclave Page Cache).
(6) Utilisez les instructions SGX pour prouver que le programme et les données déchiffrés sont dignes de confiance, chargez-les dans l'Enclave, puis copiez chaque contenu EPC chargé dans l'Enclave.
(7) Grâce à l'utilisation de l'isolation matérielle, la confidentialité et l'intégrité de l'Enclave sont en outre garanties, garantissant que les différentes Enclaves n'entreront pas en conflit les unes avec les autres et ne leur permettront pas d'accéder les unes aux autres.
(8) Démarrez le programme d'initialisation de l'Enclave, interdisez le chargement et la vérification ultérieurs de l'EPC, générez le certificat d'identité de l'Enclave, chiffrez le certificat et stockez-le comme identification de l'Enclave dans le TCS (Thread Control Structure) de l'Enclave pour la récupération. et vérifier leur identité.
(9) L'isolation SGX est terminée, le programme miroir dans l'Enclave via l'isolation matérielle commence à s'exécuter et la construction de l'isolation matérielle basée sur la technologie SGX est terminée.
Démarrage et destruction de l'Enclave SGX
Après avoir terminé la construction de l'Enclave, afin de protéger les informations de l'Enclave contre les fuites après la fin ou le blocage de l'Enclave, les applications Enclave dans l'application peuvent se fermer anormalement en raison d'interruptions du système, d'exceptions, etc. Pour résoudre de tels problèmes, la technologie SGX est utilisée pour définir différentes méthodes de traitement pour d'éventuelles sorties synchrones et asynchrones. Lors de la sortie de manière synchrone, l'Enclave Les données et le code. le rodage sera basé sur l'EEE personnalisé (Enclave Événements sortants) Traité en utilisant la méthode de traitement définie. En cas de sortie asynchrone, les données et les informations sur l'état de fonctionnement dans l'Enclave seront cryptées avec la clé secrète et stockées en dehors de l'Enclave. L'Enclave interrompu pourra être restauré de manière sélective au prochain démarrage du système.
SGX crée un canal de communication de confiance Enclave
Pour SGX Demandes d'accès à l'enclave, créez un mécanisme de détection pour limiter, déterminez d'abord si le mode Enclave est démarré, puis déterminez si la demande d'accès provient de l'enclave, si c'est le cas, continuez à déterminer, sinon, renvoyez l'échec d'accès, puis générez l'identité avant que l'Enclave ne soit donnée. L'identifiant est utilisé pour vérifier si la demande d'accès provient de la même Enclave. Si tel est le cas, la détection d'accès est réussie. Dans le cas contraire, l'identifiant d'identité de l'Enclave suivant est remplacé en fonction du tableau d'enregistrement des identifiants d'identité de l'Enclave. pour la correspondance jusqu'à ce que tous les Enclave en cours d'exécution soient mis en correspondance. Si la correspondance ne réussit pas, un échec d'accès sera renvoyé.
Pour plus de connaissances connexes, veuillez visiter la colonne FAQ !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!