Brevet FR3047584A1 (20170811)
REVENDICATIONS1) Procédé d'exécution d'une application développée en langage orientée objet et compilée en code intermédiaire, le procédé étant mis en oeuvre dans un système d'exploitation installé sur une carte électronique (100), le système d'exploitation comportant un interpréteur qui est un logiciel interprétant et exécutant le code intermédiaire de l'application, caractérisé en ce que, lorsque l'interpréteur détecte un appel à une fonction dédiée du système d'exploitation dans le code intermédiaire de l'application vis-à-vis d'un objet à protéger de l'application ou d'une donnée membre à protéger dudit objet, le système d'exploitation met à jour des métadonnées (220 ;\n<CLM>\1\tassociées audit objet de sorte à associer une donnée de vérification d'intégrité (230 ; 271 ; 272 ;\n<CLM>\1\tde référence audit objet ou respectivement à ladite donnée membre, et en ce que, lorsque l'interpréteur détecte une manipulation ultérieure de l'objet protégé ou respectivement de ladite donnée membre protégée dans le code intermédiaire de l'application, le système d'exploitation détermine (305) une valeur de donnée de vérification d'intégrité correspondant audit objet protégé en l'état ou respectivement de ladite donnée membre protégée en l'état, et avant que l'interpréteur n'effectue ladite manipulation, le système d'exploitation vérifie (306) que la valeur de donnée de vérification d'intégrité calculée concorde avec la valeur de donnée de vérification d'intégrité de référence.\n<CLM>\1\tProcédé selon la revendication 1, caractérisé en ce que, sur appel à ladite fonction dédiée dans le code intermédiaire de l'application vis-à-vis d'un objet à protéger de l'application ou d'une donnée membre à protéger dudit objet, le système d'exploitation met à jour (311) les métadonnées (221 ;\n<CLM>\1\tassociées audit objet de sorte à indiquer que ledit objet ou respectivement ladite donnée membre est protégé(e), et en ce que, lors d'une manipulation ultérieure d'un objet ou respectivement d'une donnée membre d'un objet dans le code intermédiaire de l'application, le système d'exploitation vérifie (304) si ledit objet ou respectivement ladite donnée membre est protégé(e), et si tel n'est pas le cas, le système d'exploitation n'effectue pas de vérification d'intégrité pour ledit objet ou respectivement ladite donnée membre. 3047584 16\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que, lorsque le code intermédiaire de l'application demande une modification d'un objet protégé ou d'une donnée membre protégée d'un objet, le système d'exploitation 5 détermine (309) en conséquence une nouvelle donnée de vérification d'intégrité de référence à associer audit objet protégé ou respectivement à ladite donnée membre protégée.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce 10 que lesdites métadonnées comprennent une référence (222 ;\n<CLM>\1\tpointant sur ladite donnée de vérification d'intégrité de référence.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'interpréteur utilise une pile d'exécution pour empiler des variables d'exécution 15 de l'application, à laquelle est adjointe une pile de sécurité pour empiler en correspondance des données de vérification permettant de vérifier, avant leur manipulation, que les variables d'exécution de l'application présentes dans la pile d'exécution n'ont pas été corrompues, et en ce que, lorsqu'une référence à un objet protégé ou à une donnée membre 20 protégée d'un objet est placée dans la pile d'exécution, une référence sur la valeur d'intégrité associée audit objet protégé ou à ladite donnée membre protégée est placée en correspondance dans la pile de sécurité, de telle sorte que, lorsque le système d'exploitation vérifie (306) que la valeur de donnée de vérification d'intégrité calculée pour ledit objet protégé ou ladite donnée membre protégée concorde avec la valeur de 25 donnée de vérification d'intégrité de référence, le système d'exploitation vérifie en outre que la valeur de donnée de vérification d'intégrité calculée pour ledit objet protégé ou ladite donnée membre protégée concorde avec la valeur pointée par la référence correspondante placée sur la pile de sécurité. 30\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la carte électronique est une carte à puce, l'application est une application Java Card, le système d'exploitation prend la forme d'un environnement JCRE, et l'interpréteur prend la forme d'une machine virtuelle JCVM. 3047584 17\n<CLM>\1\tProduit programme d'ordinateur, caractérisé en ce qu'il comporte des instructions causant l'implémentation, par une carte électronique, du procédé selon l'une quelconque des revendications 1 à 6, lorsque lesdites instructions sont exécutées par un processeur de ladite carte électronique. 5\n<CLM>\1\tSupport de stockage d'informations, caractérisé en ce qu'il stocke un programme d'ordinateur selon la revendication\n<CLM>\1\t9) Carte électronique (100) configurée pour exécuter une application développée 10 dans un langage orienté objet et compilée en code intermédiaire, le code intermédiaire étant exécuté par un interpréteur d'un système d'exploitation installé sur ladite carte électronique, l'interpréteur étant un logiciel interprétant et exécutant le code intermédiaire de l'application, caractérisée en ce que la carte électronique est configurée pour que, lorsque 15 l'interpréteur détecte un appel à une fonction dédiée du système d'exploitation dans le code intermédiaire de l'application vis-à-vis d'un objet de l'application ou d'une donnée membre dudit objet, le système d'exploitation met à jour des métadonnées (220 ;\n<CLM>\1\tassociées audit objet de sorte à associer une donnée de vérification d'intégrité de référence (230 ; 271 ; 272 ;\n<CLM>\1\taudit objet ou respectivement à ladite 20 donnée membre, et en ce que, lorsque l'interpréteur détecte une manipulation ultérieure dudit objet ou respectivement de ladite donnée membre dans le code intermédiaire de l'application, le système d'exploitation détermine (305) une valeur de donnée de vérification d'intégrité correspondant audit objet ou respectivement de ladite donnée 25 membre en l'état, et avant que l'interpréteur n'effectue ladite manipulation, le système d'exploitation vérifie (306) que la valeur de donnée de vérification d'intégrité calculée concorde avec la valeur de donnée de vérification d'intégrité de référence associée audit objet ou respectivement à ladite donnée membre. 30\n<CLM>\1\tCarte électronique selon la revendication 9, caractérisée en ce que ladite carte électronique est une carte à puce.