Brevet FR3126796A1 — publié le 20230310

La présente invention concerne la gestion de l’exécution d’opérations coûteuses en ressources, au sein d’un élément sécurisé. L’opération est formée d’une pluralité d’opérations élémentaires. Pour éviter que l’opération monopolise les ressources sur une longue durée alors qu’il est recherché une haute réactivité de l’élément sécurisé, notamment dans les technologies relatives à la 5G, il est prévu, à réception d’une commande APDU en provenance d’un équipement hôte, de déclencher un compteur temporel pour déterminer une durée réelle de traitement de la commande APDU. Si cette durée s’avère être inférieure à une durée prédéfinie allouée à la commande APDU, une ou plusieurs desdites opérations élémentaires peuvent être exécutées pendant le temps restant de ladite durée allouée. A l’expiration de cette durée allouée, l’élément sécurisé envoie une réponse à la commande APDU. L’opération peut ainsi être exécutée progressivement sans empêcher l’élément sécurisé d’être hautement réactif aux commandes APDU reçues. [Fig. 5] Exécution améliorée d’une opération dans un élément sécurisé La présente invention concerne, de façon générale, le domaine des éléments sécurisés et plus particulièrement la gestion de l’exécution de tâches ou opérations informatiques, telles que des traitements cryptographiques, dans des éléments sécurisés. L’ETSI (pour « European Telecommunications Standards Institute ») travaille actuellement sur les spécifications techniques des réseaux de 5 ème génération (5G). La 5G prévoit notamment que chaque abonné à un service donné d’un réseau de communication, par exemple radio ou wifi (marque commerciale), ait un identifiant 5G unique au monde, noté SUPI (pour « SUbscriber Permanent Identifier »), embarqué dans un élément sécurisé, type carte SIM (pour « Subscriber Identity Module »). Cet identifiant d’abonné inclut par exemple l’IMSI (pour « International Mobile Subscriber Identity ») qui est un identifiant unique alloué à chaque abonné mobile d’un réseau mobile GSM (2G), UMTS (3G) ou LTE (4G), ou le NAI (pour « Network Access Identifier ») introduit par la RFC 4282. Dans un souci d’amélioration de la sécurité, la spécification technique ETSI TS 133 501 V15.1.0 (2018-07) prévoit l’authentification de l’abonné, à l’aide de cet identifiant unique, à de multiples occasions, notamment au cours du processus d'authentification et d’échange de clés entre un équipement utilisateur hôte -et plus particulièrement l’élément sécurisé inséré ou soudé dans celui-ci- et le réseau, c’est-à-dire à chaque connexion au réseau. Plus particulièrement, la spécification préconise un chiffrement de cet identifiant sur des courbes elliptiques, avant envoi au réseau. Il est possible de prévoir, par exemple au cours de la personnalisation de l’élément sécurisé de l’équipement utilisateur hôte, un jeu d’identifiants pré-chiffrés à utiliser pour ces authentifications et ainsi se connecter au réseau. Cependant, la mémoire de l’élément sécurisé est limitée et il n’est pas possible de prévoir un nombre d’identifiants déjà chiffrés suffisant pour toutes les connexions qui auront lieu. L’élément sécurisé doit donc nécessairement chiffrer régulièrement l’identifiant « à la volée ». Or, une telle opération de chiffrement, effectuée de manière logicielle, est coûteuse en termes de ressources de calcul, d’autant plus qu’elle est effectuée fréquemment. Aussi, elle accapare les ressources durant un long moment. L’opération de chiffrement n’est qu’un exemple d’opérations couteuses en termes de ressources de calcul. Des opérations périodiques de nettoyage de la mémoire, connues sous l’appellation de « garbage collector » (ou ramasse miettes), sont également gourmandes en ressources de traitement. D’une façon générale, un élément sécurisé est confronté à de nombreuses opérations qui accaparent les ressources de traitement pendant des durées longues. Cette immobilisation des ressources de l’élément sécurisé réduit fortement la réactivité de l’élément sécurisé à des sollicitations de l’équipement utilisateur hôte ou du réseau de téléphonie mobile. Cette situation n’est donc pas adaptée à la 5G qui vise à adresser les besoins accrus d’applications complexes nécessitant une haute réactivité. Il existe par conséquent un besoin d’améliorer la gestion de ce type d’opérations au sein des éléments sécurisés. La présente invention a ainsi pour objet de pallier au moins un des inconvénients précités. Dans ce contexte, un premier aspect de l’invention concerne un procédé de gestion de l’exécution d’une opération principale par un élément sécurisé, le procédé étant caractérisé en ce que : l’opération principale est formée d’une pluralité d’opérations élémentaires, et le procédé comprend les étapes suivantes : a. recevoir, d’un équipement hôte, une commande au format Application Protocol Data Unit, APDU, b. déclencher un compteur temporel lors de l’exécution de la commande APDU afin de déterminer une durée réelle de traitement de la commande APDU par l’élément sécurisé; c. déterminer si la durée réelle de traitement indiquée par le compteur temporel est inférieure à une durée prédéfinie associée à la commande APDU ; et d. en cas de détermination positive, exécuter une ou plusieurs desdites opérations élémentaires pendant le temps restant de ladite durée prédéfinie. Corrélativement, un deuxième aspect de l’invention concerne un élément sécurisé configuré pour exécuter une opération principale formée d’une pluralité d’opérations élémentaires, l’élément sécurisé comprenant un processeur configuré pour : a. recevoir, d’un équipement hôte, une commande au format Application Protocol Data Unit, APDU, b. déclencher un compteur temporel lors de l’exécution de la commande APDU afin de déterminer une durée réelle de traitement de la commande APDU par l’élément sécurisé ; c. déterminer si la durée réelle de traitement indiquée par le compteur temporel est inférieure à une durée prédéfinie associée à la commande APDU ; et d. en cas de détermination positive, exécuter une ou plusieurs desdites opérations élémentaires pendant le temps restant de ladite durée prédéfinie. L’invention ainsi revendiquée permet d‘améliorer la gestion des opérations mises en œuvre au sein des éléments sécurisés. En effet, l’opération principale, par exemple gourmande en ressources de traitement, est réalisée par parties lors du temps restant après l’exécution de la commande APDU reçue. Aussi, l’opération principale peut être réalisée en plusieurs fois au cours d’une pluralité d’itérations d’exécution de commandes APDU successives, sans pour autant avoir empêché la mise en œuvre d’autres traitements (commandes APDU) avant la fin de l’opération principale. L’invention restaure ainsi un haut degré de réactivité de l’élément sécurisé. D’autres caractéristiques du procédé et de l’élément sécurisé selon des modes de réalisation de l’invention sont décrites dans les revendications dépendantes. Dans un mode de réalisation, le procédé comprenant en outre une étape e. d’envoi d’une réponse à la commande APDU à destination de l’équipement hôte, postérieurement à l’étape d. Dans un mode de réalisation particulier, la réponse à la commande est envoyée à l’expiration de la durée prédéfinie associée à la commande APDU. En contrôlant l’instant d’émission de la réponse APDU vers l’équipement hôte, l’élément sécurisé allonge artificiellement le temps alloué au traitement de la commande APDU afin de permettre l’exécution d’opérations élémentaires à l’issue de ce traitement. Ce temps alloué correspond à la durée prédéfinie associée à la commande APDU. Cet allongement contrôlé présente en outre des avantages sécuritaires. En effet, il permet de modifier (et donc cacher) le temps réel de traitement ou d’exécution d’une commande APDU, vu de l’extérieur de l’élément sécurisé, car ce temps est classiquement défini entre l’envoi de la commande et la réception de sa réponse. Les performances de traitement de l’élément sécurisé ne sont donc pas dévoilées ; une personne mal intentionnée n’est plus en mesure d’identifier le traitement effectivement mis en œuvre. Dans un autre mode de réalisation, le compteur temporel est déclenché à réception de la commande APDU. Cela permet de suivre le temps d’exécution de la commande APDU comme vu depuis l’extérieur de l’élément sécurisé, afin par exemple de se conformer plus facilement à des durées maximales standardisées. Bien entendu, en variante, il pourrait être déclenché en même temps que l’exécution de la commande APDU par l’élément sécurisé, après sa réception. Dans un autre mode de réalisation, le procédé comprend une pluralité d’itérations des étapes a. à d. de sorte à exécuter ladite pluralité d’opérations élémentaires formant l’opération principale. Toutes les opérations élémentaires peuvent être exécutées pendant les temps restants suite à l’exécution de plusieurs commandes APDU successives. En variante, certaines des opérations élémentaires peuvent toutefois être exécutées par l’élément sécurisé entre la gestion de deux commandes APDU successives. Notamment, le procédé peut comprendre postérieurement à l’envoi d’une réponse à une commande APDU reçue et préalablement à la réception d’une commande APDU suivante, l’exécution additionnelle d’une ou plusieurs desdites opérations élémentaires. Aussi, dès que l’élément sécurisé n’est plus sollicité par des commandes APDU, il peut avancer l’exécution des opérations élémentaires composant les opérations principales à effectuer. Dans un mode de réalisation particulier, l’exécution additionnelle d’une ou plusieurs desdites opérations élémentaires comprend l’exécution successive d’une ou plusieurs opérations élémentaires jusqu’à réception de la commande APDU suivante. En d’autres termes, l’élément sécurisé exécute des opérations élémentaires tant qu’aucune nouvelle commande APDU n’est reçue, qu’il doive traiter. Dans ce cas-là, il cesse le traitement des opérations élémentaires, et traite la nouvelle commande APDU reçue selon les étapes a. à d. ci-dessus. Dans un mode de réalisation, l’opération principale est prédécoupée en ladite pluralité d’opérations élémentaires, chacune étant associée à une durée de traitement élémentaire, et l’étape d. comprend la sélection des une ou plusieurs desdites opérations élémentaires à exécuter en fonction de leurs durées de traitement élémentaire associées et dudit temps restant. Dans ce mode, les opérations élémentaires sont connues à l’avance et donc prédéfinies, avec leurs coûts (durées de traitement théoriques) associés. Lorsque du temps restant s’avère disponible après exécution d’une commande APDU, l’élément sécurisé peut alors piocher, préférentiellement dans un ordre logique, des opérations élémentaires qu’il peut exécuter pendant ce temps restant, compte tenu du coût temporel de chaque opération élémentaire. Cela rend possible l’exécution « simultanée » de plusieurs opérations principales. Dans ce cas, l’étape d. peut comprendre l’exécution d’au moins deux opérations élémentaires provenant d’au moins deux opérations principales distinctes. En effet, l’élément sécurisé peut piocher des opérations élémentaires de plusieurs opérations principales afin d’optimiser l’utilisation du temps restant après exécution de la commande APDU. Dans un mode de réalisation autre que celui du découpage de l’opération principale (gourmande en ressources), l’étape d. comprend la poursuite d’une exécution de l’opération principale depuis un point de suspension précédent (initialement le début de l’opération), ladite exécution de l’opération principale étant suspendue à un point de suspension suivant qui est fonction du temps restant. Dans ce cas, on ne découpe pas l’opération principale a priori mais elle est progressivement exécutée en continuant, par suspensions successives, son exécution. Cette exécution est donc reprise à l’issue de l’exécution de la commande APDU, pour le temps restant, puis est suspendue à nouveau à la fin du temps restant, préférentiellement à un point de suspension ne compromettant pas l’exécution globale de l’opération principale. Aussi, le point de suspension dit « précédent » lors d’une nouvelle itération des étapes a. à d. peut être le point de suspension dit « suivant » résultant de la dernière itération des étapes a. à d. Bien entendu, si l’élément sécurisé venait à exécuter une partie de l’opération principale entre le traitement de deux commandes APDU, le point de suspension « précédent » lors d’une nouvelle itération des étapes a. à d. serait le point où cette exécution aurait été arrêté lors de la réception de la nouvelle commande APDU à traiter. Les avantages, buts et caractéristiques particulières de l’élément sécurisé sont similaires à ceux du procédé précité. Un système peut comprendre l’élément sécurisé et un équipement hôte dudit élément sécurisé. Dans un mode particulier de réalisation, les différentes étapes du procédé précité sont déterminées par des instructions de programmes d'ordinateur. En conséquence, l'invention vise aussi un support non transitoire lisible par ordinateur stockant un programme d’ordinateur qui, lorsqu’il est exécuté par un élément sécurisé muni d’un processeur, amène l’élément sécurisé à effectuer le procédé tel que défini ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. Le support d’information peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash. Alternativement, le support d’information peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. La représente, schématiquement, un élément sécurisé dans lequel la présente invention peut être mise en œuvre. La illustre, de façon schématique, des modules fonctionnels de l’élément sécurisé pour une mise en œuvre de l’invention. La illustre, à l’aide d’un ordinogramme, des étapes générales d’un procédé conforme à l’invention. La illustre, à l’aide d’un ordinogramme, des étapes générales d’un procédé alternatif conforme à l’invention. La illustre un séquencement chronologique du traitement de plusieurs commandes APDU successives alors que des opérations principales sont à traiter, conforme à des mises en œuvre de l’invention. Procédé de gestion de l’exécution d’une opération principale (OP1, OP2) par un élément sécurisé (100), le procédé étant caractérisé en ce que : l’opération principale est formée d’une pluralité d’opérations élémentaires (OP1_1, OP1_2, OP1-n), et le procédé comprend les étapes suivantes : a. recevoir (300, 400), d’un équipement hôte, une commande (X, X1, X2, XN) au format Application Protocol Data Unit, APDU, b. déclencher (305) un compteur temporel (130) lors de l’exécution de la commande APDU afin de déterminer une durée réelle de traitement de la commande APDU par l’élément sécurisé; c. déterminer (320) si la durée réelle de traitement (T execution ) indiquée par le compteur temporel est inférieure à une durée prédéfinie (T max ) associée à la commande APDU ; et d. en cas de détermination positive, exécuter (325) une ou plusieurs desdites opérations élémentaires pendant le temps restant (T dispo ) de ladite durée prédéfinie. Procédé selon la revendication 1, comprenant en outre une étape e. d’envoi (330) d’une réponse (Y, Y1, Y2, YN) à la commande APDU à destination de l’équipement hôte, postérieurement à l’étape d. Procédé selon la revendication 2, dans lequel la réponse (Y, Y1, Y2, YN) à la commande est envoyée à l’expiration de la durée prédéfinie (T max ) associée à la commande APDU. Procédé selon l’une des revendications précédentes, dans lequel le compteur temporel (130) est déclenché à réception (300, 400) de la commande APDU. Procédé selon l’une des revendications précédentes, comprenant une pluralité d’itérations des étapes a. à d. de sorte à exécuter ladite pluralité d’opérations élémentaires formant l’opération principale. Procédé selon l’une des revendications précédentes, comprenant postérieurement à l’envoi d’une réponse (Y, Y1, Y2, YN) à une commande APDU reçue et préalablement à la réception d’une commande APDU suivante (X, X1, X2, XN), l’exécution additionnelle (455) d’une ou plusieurs desdites opérations élémentaires. Procédé selon la revendication précédente, dans lequel l’exécution additionnelle d’une ou plusieurs desdites opérations élémentaires comprend l’exécution successive d’une ou plusieurs opérations élémentaires jusqu’à réception de la commande APDU suivante. Procédé selon l’une des revendications 1 à 7, dans lequel l’opération principale (OP1, OP2) est prédécoupée en ladite pluralité d’opérations élémentaires (OP1_1, OP1_2, OP1_n), chacune étant associée à une durée de traitement élémentaire (T estim ), et l’étape d. comprend la sélection des une ou plusieurs desdites opérations élémentaires à exécuter en fonction de leurs durées de traitement élémentaire associées et dudit temps restant (T dispo ). Procédé selon la revendication précédente, dans lequel l’étape d. comprend l’exécution d’au moins deux opérations élémentaires provenant d’au moins deux opérations principales distinctes. Procédé selon l’une des revendications 1 à 7, dans lequel l’étape d. comprend la poursuite d’une exécution de l’opération principale depuis un point de suspension précédent, ladite exécution de l’opération principale étant suspendue à un point de suspension suivant qui est fonction du temps restant. Elément sécurisé (100) configuré pour exécuter une opération principale (OP1, OP2) formée d’une pluralité d’opérations élémentaires (OP1_1, OP1_2, OP1_n), l’élément sécurisé comprenant un processeur configuré pour : a. recevoir, d’un équipement hôte, une commande (X, X1, X2, XN) au format Application Protocol Data Unit, APDU, b. déclencher un compteur temporel (130) lors de l’exécution de la commande APDU afin de déterminer une durée réelle de traitement de la commande APDU par l’élément sécurisé ; c. déterminer si la durée réelle de traitement (T execution ) indiquée par le compteur temporel est inférieure à une durée prédéfinie (T max ) associée à la commande APDU ; et d. en cas de détermination positive, exécuter une ou plusieurs desdites opérations élémentaires pendant le temps restant (T dispo ) de ladite durée prédéfinie. Support non transitoire lisible par ordinateur stockant un programme d’ordinateur qui, lorsqu’il est exécuté par un élément sécurisé muni d’un processeur, amène l’élément sécurisé à effectuer le procédé selon l’une des revendications 1 à 10.