Cet article vous apporte une introduction de base à Intel SGX. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Introduction de base à Intel SGX
Intel SGX (Intel Software Guard Extension) est une extension de l'architecture du jeu d'instructions Intel. SGX vous fournit une Enclave, une zone d'exécution de confiance cryptée en mémoire, où le processeur protège vos données et votre confidentialité contre le vol par un code malveillant.
Principe
SGX utilise les nouvelles instructions du processeur pour allouer une partie de la zone EPC (Enclave Page Cache) dans la mémoire, via le CPU Le moteur de cryptage MEE (Memory Encryption Engine) crypte les données qu'il contient. Le contenu crypté dans EPC ne sera pas déchiffré en texte clair tant qu'il n'entrera pas dans le processeur. Par conséquent, dans SGX, vous n'avez pas besoin de faire confiance au système d'exploitation, au VMM ou même au BIOS. Vous devez uniquement faire confiance au processeur pour garantir que les données privées ne seront pas divulguées.
Application
Dans l'application réelle, vous pouvez crypter les données privées et les transférer vers le cercle sur le cloud sous forme de texte chiffré, et La clé secrète correspondante est également transmise au cercle par certification à distance. Les données sont ensuite utilisées pour effectuer des calculs sous la protection par cryptage du processeur, et les résultats vous sont renvoyés sous forme de texte chiffré. Dans ce mode, vous pouvez profiter de la puissante puissance de calcul du cloud computing sans vous soucier des fuites de données.
EDL (Enclave Definition Language)
EDL est le cœur de la programmation SGX, qui définit tout Fonctions de lecture, d'écriture et de traitement des données dans le cercle. Pendant la phase de compilation, l'outil Edger8r fourni par le SDK générera la fonction de pont entre l'encerclement et la mémoire ordinaire sur la base des fonctions définies dans l'EDL, et effectuera la détection de sécurité correspondante.
Les fonctions sont divisées en fonctions de confiance (ecall) et fonctions non fiables (ocall) :
ecall : défini dans la zone de confiance (trusted), appelé en dehors du cercle et mis en œuvre dans le cercle.
ocall : défini dans la zone non fiable (untrusted), appelé à l'intérieur du cercle, et exécuté en dehors du cercle.
// demo.edl enclave { // Add your definition of "secret_t" here trusted { public void get_secret([out] secret_t* secret); }; untrusted { // This OCALL is for illustration purposes only. // It should not be used in a real enclave, // unless it is during the development phase // for debugging purposes. void dump_secret([in] const secret_t* secret); }; };
Installation de SGX
Vous pouvez installer SGX via le fichier d'installation ou le code source, y compris les pilotes, le PSW et le SDK, etc. Les deux méthodes d'installation nécessitent l'installation de fichiers d'en-tête correspondant à la version du noyau Linux.
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!