Brevet FR3038404A1 (20170106)
REVENDICATIONS1.- Procédé d'exécution sécurisée de machines virtuelles par un ensemble de dispositifs programmables interconnectés, chaque dispositif programmable comportant au moins un processeur de calcul comportant un ou plusieurs coeurs, chaque dispositif programmable étant apte à exécuter simultanément et/ou successivement des applications d'une pluralité de machines virtuelles, chaque processeur comportant une portion matérielle d'exécution de niveau de sécurité standard et une portion matérielle sécurisée de niveau de sécurité supérieur au niveau de sécurité standard, lesdites portions matérielles étant cloisonnées, le procédé comportant des étapes de: -mémorisation (60) d'au moins un environnement d'exécution sécurisé (TEEi) associé à chaque machine virtuelle, chaque environnement d'exécution sécurisée comportant au moins une instruction d'une application associée, -sur requête d'exécution sécurisée d'au moins une suite d'instructions d'une application par une machine virtuelle requérante, - allocation (64) à ladite exécution sécurisée d'au moins une portion matérielle sécurisée disponible appartenant à l'un des processeurs de l'ensemble de dispositifs programmables interconnectés, - chargement (68) de l'environnement d'exécution sécurisé (TEEj) associé à ladite machine virtuelle requérante dans ladite au moins une portion matérielle sécurisée allouée, - utilisation (70) de la portion matérielle sécurisée allouée pour l'exécution sécurisée de ladite suite d'instructions de l'application de la machine virtuelle requérante. 2.- Procédé selon la revendication 1, dans lequel la portion matérielle sécurisée comprend des ressources mémoire, le procédé comportant, avant le chargement de l'environnement d'exécution sécurisé, une étape de nettoyage (66) desdites ressources 30 mémoire. 3.- Procédé selon la revendication 2, dans lequel la portion matérielle sécurisée comprend au moins un périphérique, le procédé comportant, avant le chargement de l'environnement d'exécution sécurisé, une étape de nettoyage (66) de chaque 35 périphérique. 3038404 15 4.- Procédé selon l'une quelconque des revendications 1 à 3, comprenant en outre un chiffrement (72) de l'environnement d'exécution sécurisé après l'exécution sécurisée de ladite suite d'instructions de l'application de la machine virtuelle requérante, et une mémorisation (72) de l'environnement d'exécution sécurisé chiffré. 5 5.- Procédé selon l'une quelconque des revendications 1 à 4, dans lequel, après la requête d'exécution sécurisée d'au moins une suite d'instructions d'une application, le procédé comprend au moins une étape d'évaluation (80) de ressources matérielles nécessaires pour l'environnement d'exécution sécurisé associé à ladite machine virtuelle 10 requérante, et de calcul d'un nombre de portions matérielles sécurisées à allouer pour l'exécution de l'application sécurisée dans l'environnement d'exécution sécurisé associé. 6.- Procédé selon l'une quelconque des revendications 1 à 5, dans lequel, après la requête d'exécution sécurisée d'au moins une suite d'instructions d'une application, le 15 procédé comprend une étape de calcul d'une priorité (84) de séquencement d'exécution sécurisée des requêtes d'exécution. 7.- Procédé selon la revendication 5, dans lequel l'évaluation de ressources matérielles comprend une évaluation de complexité de calcul et/ou de quantité de 20 mémoire et/ou de nombre de coeurs d'exécution. 8.- Procédé selon l'une quelconque des revendications 1 à 7, comprenant, pour une pluralité de requêtes d'exécution en provenance d'une pluralité de machines virtuelles requérantes, une mise en oeuvre distribuée (86) d'un algorithme 25 d'ordonnancement pour l'utilisation de groupes de portions matérielles sécurisées par les environnements d'exécution sécurisés associés aux machines virtuelles requérantes. 9.- Procédé selon l'une quelconque des revendications 1 à 8, dans lequel l'utilisation d'une portion matérielle sécurisée allouée pour l'exécution sécurisée d'au moins une instruction de l'application d'une première machine virtuelle requérante est exclusive, à un instant donné, de toute utilisation de ladite portion matérielle sécurisée pour l'exécution sécurisée d'au moins une instruction de l'application d'une deuxième machine virtuelle requérante. 10.- Système d'exécution sécurisée de machines virtuelles par un ensemble de dispositifs programmables interconnectés, chaque dispositif programmable comportant au 3038404 16 moins un processeur de calcul comportant un ou plusieurs coeurs, chaque dispositif programmable étant apte à exécuter simultanément et/ou successivement des applications d'une pluralité de machines virtuelles, chaque processeur comportant une portion matérielle d'exécution de niveau de 5 sécurité standard et une portion matérielle sécurisée de niveau de sécurité supérieur au niveau de sécurité standard, lesdites portions matérielles étant cloisonnées, chaque processeur comportant des modules de micrologiciel de pilotage dudit processeur et adaptés à: -mémoriser (52) un environnement d'exécution sécurisé associé à chaque 10 machine virtuelle, chaque environnement d'exécution sécurisée comportant au moins une instruction d'une application associée, -sur requête d'exécution sécurisée d'au moins une suite d'instructions d'une application par une machine virtuelle requérante, - allouer (54) à ladite exécution sécurisée au moins une portion matérielle 15 sécurisée disponible appartenant à l'un des processeurs de l'ensemble de dispositifs programmables interconnectés, - charger (58) l'environnement d'exécution sécurisée associé à ladite machine virtuelle requérante dans ladite au moins une portion matérielle sécurisée allouée, 20 - utiliser (58) la portion matérielle sécurisée allouée pour l'exécution sécurisée de ladite suite d'instructions de l'application de la machine virtuelle requérante. 11.- Système d'exécution sécurisée de machines virtuelles selon la revendication 25 10, comportant des ressources mémoire partagées, le système comportant un module de chiffrement apte à chiffrer l'environnement d'exécution sécurisé après l'exécution sécurisée de ladite au moins une instruction de l'application de la machine virtuelle requérante, et à sauvegarder l'environnement d'exécution sécurisé chiffré dans les ressources mémoire partagées. 30 12.- Produit programme d'ordinateur comportant des instructions de micrologiciel qui, lorsqu'elles sont mises en oeuvre par un ou plusieurs processeurs de calcul de dispositifs programmables, chaque processeur de calcul comportant un ou plusieurs coeurs, chaque dispositif programmable étant apte à exécuter simultanément et/ou 35 successivement des applications d'une pluralité de machines virtuelles, chaque processeur comportant une portion matérielle d'exécution de niveau de sécurité standard 3038404 17 et une portion matérielle sécurisée de niveau de sécurité supérieur au niveau de sécurité standard, lesdites portions matérielles étant cloisonnées, mettent en oeuvre un procédé selon l'une quelconque des revendications 1 à\n<CLM>\1\t5