Brevet FR3107975A1 — publié le 20210910

Il est proposé un procédé mis en œuvre dans un module à circuit intégré (2) comprenant un processeur configuré pour accéder à une mémoire non-volatile (4) dans laquelle sont mémorisés une pluralité de logiciels de définition de contexte d’exécution (22, 23, 24) adaptés à être exécutés par le processeur pour une communication avec un dispositif électronique (3), et pour accéder à une mémoire volatile (6) configurée pour stocker des données d’exécution d’un logiciel en cours d’exécution, la pluralité de logiciels comprenant un premier logiciel (22) en cours d’exécution et un deuxième logiciel (23)précédemment suspendu, le procédé comprenant, à réception d’une commande du dispositif électronique, a. une suspension de l’exécution du premier logiciel (22) en cours d’exécution comprenant une sauvegarde du contenu de la mémoire volatile (6) dans un premier emplacement de sauvegarde (40) de la mémoire non-volatile (4), un arrêt de l’exécution du premier logiciel (22) et b. une reprise de l’exécution précédemment suspendue du deuxième logiciel (23) comprenant un transfert dans la mémoire volatile (6), depuis un deuxième emplacement de sauvegarde (41) de la mémoire non-volatile (6), de données d’exécution relatives à l’exécution précédemment suspendue du deuxième logiciel (23), et une exécution du deuxième logiciel (23). Figure pour l’abrégé: Fig. 1 Procédé mis en œuvre dans un module à circuit intégré, module à circuit intégré correspondant, système comportant un tel module et programme d’ordinateur associé La présente invention concerne le domaine technique des modules à circuit intégré. L’invention concerne notamment le domaine des modules à circuit intégré comportant plusieurs logiciels de définition de contexte d’exécution. L’invention concerne tout particulièrement un procédé mis en œuvre dans un module à circuit intégré, un module à circuit intégré correspondant, un système comprenant un module à circuit intégré selon l’invention et un dispositif électronique, ainsi qu’un programme d’ordinateur mettant en œuvre le procédé selon l’invention. Arrière-plan technologique Un module à circuit intégré permet classiquement l’implémentation d’un logiciel de définition de contexte, c’est-à-dire un logiciel configuré pour permettre l’accès à des services de façon sécurisée, en coopération avec un dispositif électronique. Par exemple, un module à circuit intégré peut être une carte à puce amovible, par exemple une carte SIM («Subscriber Identity Module», ou module d’identité d’abonné, selon l’acronyme Anglo-Saxon couramment employé) ou une carte bancaire, et être adapté à s’insérer de façon amovible dans un dispositif électronique, par exemple un téléphone portable intelligent ou un terminal de paiement bancaire. Le module à circuit intégré se présente parfois sous la forme d’une puce électronique intégrée de façon fixe, notamment soudée au dispositif électronique; dans le cas d’une carte SIM, on parle alors d’eSIM («embedded SIM» en anglais, ou «SIM embarquée» en français), ou bien d’iSIM («integrated SIM» en anglais, ou «SIM intégrée» en français). Dans certains cas, l’iSIM est comprise dans un SoC («System on Chip» en anglais, ou «système sur puce» en français). Le logiciel de définition de contexte d’exécution comporte par exemple des données d’identification utilisateur, des données d’identification constructeur et des clés de chiffrement permettant d’établir une connexion sécurisée avec le dispositif électronique ou d’avoir accès à certains services. Par exemple, dans le domaine de la téléphonie, le module à circuit intégré est une carte SIM et le logiciel de définition de contexte d’exécution permet de définir un «profil de communication». Il permet d’établir une connexion sécurisée à un réseau téléphonique géré par un opérateur déterminé. Dans d’autres applications, par exemple les applications bancaires, le module à circuit intégré est une carte à puce bancaire et le logiciel de définition de contexte permet la réalisation d’opération de paiement de façon sécurisée en coopération avec un terminal de paiement bancaire. Il existe des dispositifs électroniques adaptés à recevoir plusieurs éléments sécurisés. Par exemple, certains téléphones portables intelligents comportent deux ports de carte SIM, ce qui permet au téléphone d’accéder à plusieurs logiciels de définition de contexte et donc de communiquer avec plusieurs réseaux téléphoniques. Il existe en outre des modules à circuit intégré configurés pour implémenter plusieurs logiciels de définition de contexte. Ainsi, un même module à circuit intégré peut comporter deux logiciels d’exécution de contexte. Cela permet avantageusement de s’affranchir de l’utilisation de plusieurs modules à circuits intégré et donc de gagner de la place. Il existe notamment dans ce cadre des modules à circuit intégré configurés pour implémenter des logiciels de définition de contexte relatifs à des domaines d’application distincts. Par exemple, un même module à circuit intégré peut implémenter un premier logiciel de définition de contexte qui est un profil de communication adapté à établir une communication sécurisée avec un réseau téléphonique déterminé et un deuxième logiciel de définition de contexte qui peut être un profil bancaire adapté à réaliser des transactions bancaires. Cependant, la gestion des différents logiciels par un même dispositif électronique et/ou par un même module à circuit intégré implique actuellement la mise en œuvre de mécanismes classiques d’ouverture et de fermeture de session qui empêchent toute utilisation concurrente de ces différents logiciels. Face à l’augmentation du nombre de logiciels de définition de contexte d’exécution pouvant être implémentés sur un même module à circuit intégré et face à la variété de leurs domaines d’application, il est nécessaire de mettre en place des moyens de gestion simples et fiables de ces logiciels. L’invention répond à ce besoin en proposant un procédé permettant d’accéder aux différents logiciels de définition de contexte d’exécution de façon séquentielle. Ce procédé peut être mis en œuvre par le processeur d’un module à circuit intégré qui exécute un programme d’ordinateur correspondant. Selon un aspect de l’invention, il est proposé un procédé mis en œuvre dans un module à circuit intégré comprenant un processeur configuré pour accéder à une mémoire non-volatile dans laquelle sont mémorisés une pluralité de logiciels de définition de contexte d’exécution adaptés à être exécutés par le processeur pour une communication avec un dispositif électronique, et pour accéder à une mémoire volatile configurée pour stocker des données d’exécution d’un logiciel en cours d’exécution, la pluralité de logiciels comprenant un premier logiciel en cours d’exécution et un deuxième logiciel précédemment suspendu, le procédé comprenant, à réception d’une commande du dispositif électronique, a. une suspension de l’exécution du premier logiciel en cours d’exécution comprenant i. une sauvegarde du contenu de la mémoire volatile dans un premier emplacement de sauvegarde de la mémoire non-volatile, ii. un arrêt de l’exécution du premier logiciel, b. une reprise de l’exécution précédemment suspendue du deuxième logiciel comprenant i. un transfert dans la mémoire volatile, depuis un deuxième emplacement de sauvegarde de la mémoire non-volatile, de données d’exécution relatives à l’exécution précédemment suspendue du deuxième logiciel, et ii. une exécution du deuxième logiciel. Grâce à l’invention, il est donc possible de gérer de façon simple et fiable plusieurs logiciels de définition de contexte d’exécution, en assurant notamment la sauvegarde de leur contexte d’exécution dans la mémoire non volatile. La pluralité de logiciels peut comporter au moins un logiciel de définition de profil de communication. Le module à circuit intégré peut comporter ladite mémoire volatile et/ou ladite mémoire non volatile. Le procédé peut comporter un effacement du contenu du deuxième emplacement de sauvegarde à la suite de la reprise d’exécution du deuxième logiciel. Un effacement du contenu de l’emplacement de sauvegarde permet avantageusement d’éviter une réutilisation fortuite des données d’exécution qui y sont sauvegardées, notamment lors d’une reprise d’exécution ultérieure d’un autre logiciel ou du même logiciel. Selon un mode de réalisation, le procédé comporte une étape initiale de création et d’attribution d’un emplacement de sauvegarde respectif de la mémoire non-volatile pour chaque logiciel de ladite pluralité de logiciels. Ce mode de réalisation permet avantageusement de simplifier la mise en œuvre du procédé. En effet, les emplacements mémoire créé initialement, par exemple lors d’un couplage initial du module à un dispositif électronique, n’auront plus à l’être dans la suite de la mise en œuvre du procédé. Selon un mode de réalisation, le procédé comporte pour chaque première suspension d’exécution d’un logiciel en cours d’exécution, une création d’un emplacement de sauvegarde respectif dans la mémoire non volatile et une attribution dudit emplacement de sauvegarde respectif audit logiciel en cours d’exécution. Ce mode de réalisation permet avantageusement une plus grande souplesse dans la mise en œuvre du procédé et évite notamment, dans le cas où l’exécution d’un ou plusieurs logiciels ne serait pas suspendue, la création inutile d’emplacements de sauvegarde qui ne seront pas utilisés. Selon un mode de réalisation, ladite suspension comporte la création par le module à circuit intégré d’une première étiquette de contrôle associée au premier logiciel et un envoi de ladite première étiquette de contrôle au dispositif électronique, et dans lequel ladite reprise d’exécution du deuxième logiciel comporte un envoi par le dispositif électronique au module à circuit intégré d’une deuxième étiquette de contrôle précédemment créée, et un contrôle par le module à circuit intégré de la correspondance entre la deuxième étiquette de contrôle et le deuxième logiciel. Dans une variante de réalisation, l’étiquette de contrôle est un jeton d’authentification («token», en langue anglaise), le procédé comportant alors au moins un échange d’au moins une information entre le module à circuit intégré et le dispositif électronique permettant par exemple la génération d’une clé de session. Le procédé peut comporter une authentification du jeton, par exemple à l’aide d’un HMAC («keyed-Hash Message Authentication Code» en langue anglaise, ou «code d'authentification d'une empreinte cryptographique de message avec clé», en langue française), et optionnellement son chiffrement à l’aide de ladite clé de session. La création d’étiquettes de contrôle permet avantageusement d’assurer que les reprises d’exécution des logiciels se fassent sur la base du bon contexte d’exécution, et non sur la base d’un contexte d’exécution erroné, par exemple correspondant à un autre logiciel. La fiabilité du procédé est ainsi améliorée. Selon un aspect, il est proposé un module à circuit intégré comprenant une interface de communication et un processeur configuré pour accéder à une mémoire non-volatile dans laquelle sont mémorisés une pluralité de logiciels de définition de contexte d’exécution adaptés à être exécutés par le processeur pour une communication via l’interface de communication, et pour accéder à une mémoire volatile configurée pour stocker des données d’exécution d’un logiciel en cours d’exécution, le module étant configuré pour, à réception d’une commande sur son interface de communication, la pluralité de logiciels comprenant un premier logiciel en cours d’exécution et un deuxième logiciel précédemment suspendu, a. suspendre l’exécution du premier logiciel en cours d’exécution, la suspension comprenant i. une sauvegarde du contenu de la mémoire volatile dans un premier emplacement de sauvegarde de la mémoire non-volatile, ii. un arrêt de l’exécution du premier logiciel, b. reprendre l’exécution précédemment suspendue du deuxième logiciel, la reprise de l’exécution comprenant i. un transfert dans la mémoire volatile, depuis un deuxième emplacement de sauvegarde de la mémoire non-volatile, de données d’exécution relatives à l’exécution précédemment suspendue du deuxième logiciel, et ii. une exécution du deuxième logiciel. La pluralité de logiciels peut comporter au moins un logiciel de définition de profil de communication. Le module à circuit intégré peut comporter ladite mémoire volatile et/ou ladite mémoire non volatile. Le module à circuit intégré peut être configuré pour effacer le contenu du deuxième emplacement de sauvegarde à la suite de la reprise d’exécution du deuxième logiciel. Selon un mode de réalisation, le module à circuit intégré est configuré pour créer et attribuer un emplacement de sauvegarde respectif de la mémoire non volatile pour chaque logiciel de ladite pluralité de logiciels. Selon un mode de réalisation, le module à circuit intégré est configuré pour créer et attribuer, à chaque première suspension d’un logiciel en cours d’exécution, un emplacement de sauvegarde respectif dans la mémoire non volatile et pour attribuer ledit emplacement de sauvegarde respectif audit logiciel en cours d’exécution. Selon un mode de réalisation, le module à circuit intégré est configuré pour a. créer, lors de ladite suspension d’exécution du premier logiciel, une première étiquette de contrôle associée au premier logiciel et pour envoyer ladite première étiquette de contrôle vers l’interface de communication, b. recevoir de l’interface de communication une deuxième étiquette de contrôle précédemment créée et contrôler la correspondance entre la deuxième étiquette de contrôle et le deuxième logiciel, et c. reprendre l’exécution du deuxième logiciel si la deuxième étiquette de contrôle correspond au deuxième logiciel. Selon un aspect, il est proposé un système comprenant un module à circuit intégré selon l’invention et un dispositif électronique configuré pour communiquer avec le module à circuit intégré via l’interface de communication. Selon un mode de réalisation, le dispositif est configuré pour envoyer ladite commande qui comporte un premier champ comprenant une information relative à la suspension du premier logiciel et un deuxième champ comprenant une information d’identification du deuxième logiciel. Ainsi il est possible de commander la suspension et la reprise d’exécution par l’envoi d’une seule et même commande. Selon un aspect, il est proposé un programme d’ordinateur comprenant des instructions conduisant à la mise en œuvre du procédé selon l’invention lorsque le programme est exécuté par ledit processeur. Les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres. Brève description des figures De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où: est un diagramme illustrant l’architecture d’un système comportant un module à circuit intégré selon l’invention et un dispositif électronique, illustre un mode de mise en œuvre du procédé selon l’invention. Il est à noter que sur ces figures les éléments structurels et/ou fonctionnels communs aux différentes variantes peuvent présenter les mêmes références. Description détaillée La figure 1 représente un système 1 selon l’invention, comportant un module à circuit intégré 2 configuré pour établir une communication avec un dispositif électronique 3, par exemple ici un téléphone mobile intelligent («Smartphone», en langue anglaise), permettant lui-même d’accéder à une pluralité de services S1, S2, S3. A titre d’exemple, un premier service S1 correspond à l’accès à un premier réseau téléphonique géré par un premier opérateur de téléphonie mobile, un deuxième service S2 correspond à l’accès à un deuxième réseau téléphonique géré par un deuxième opérateur de téléphonie mobile, et un troisième service S3 correspond à l’accès à un système d’autorisation de paiement bancaire géré par une banque. Le dispositif électronique comporte plusieurs interfaces de communication lui permettant d’accéder aux divers services S1, S2, S3. Par exemple, le dispositif électronique comporte une première interface de communication, ici un premier émetteur-récepteur couplé à une antenne de télécommunication, permettant d’accéder au premier service S1 et au deuxième service S2, et un deuxième émetteur-récepteur couplé à une antenne de communication en champ proche (NFC, «Near Field Communication» selon l’acronyme anglo-saxon employé par l’homme du métier) permettant d’établir des communications en champ proche avec des terminaux de paiement. Le module à circuit intégré 2 est ici une puce électronique comportant, une mémoire non volatile 4, un processeur 5 et une mémoire volatile 6. Le module à circuit intégré 2 est ici fixé à demeure, par exemple soudé, au dispositif électronique 3. Le module à circuit intégré 2 comporte un système d’exploitation dit «système d’exploitation bas-niveau» 20 stocké dans la mémoire non volatile 4 et configuré pour être exécuté par le processeur 5 afin notamment de commander et contrôler le fonctionnement logiciel du module 2. La mémoire non volatile 4 comporte en outre une pluralité de logiciels de définition de contexte d’exécution 22, 23, 24, autrement appelés «système d’exploitation haut niveau», configurés pour être exécutés par le processeur 5. La mémoire non volatile 4 comporte une pluralité d’emplacements de sauvegarde 40, 41, 42. Ces emplacements ont été créés par le microprocesseur 5, comme il sera vu ci-après. Un premier logiciel 22 est ici conçu pour définir un premier profil de communication et permet une communication sécurisée avec le premier service S1. Un deuxième logiciel 23 est conçu pour définir un deuxième profil de communication et permet une communication sécurisée avec le deuxième service S2. Un troisième logiciel 24 est ici un profil de paiement bancaire et permet l’établissement d’une communication sécurisée avec le troisième service S3. Les logiciels de définition de contexte d’exécution 22, 23, 24 comportent chacun notamment des informations relatives à un abonné, typiquement le propriétaire du module sécurisé, des informations relatives aux fournisseurs des services S1 à S3 qui sont ici respectivement le premier opérateur téléphonique, le deuxième opérateur téléphonique et la banque, ainsi que des clés d’identification permettant de mettre en place lesdites communications sécurisées. Le module à circuit intégré 2 comporte en outre une interface de communication 25 permettant une communication avec le dispositif électronique 3. Dans l’exemple illustré, l’interface de communication 25 est conforme à la norme ISO 7816 et permet une communication avec le dispositif électronique 3 conformément à cette norme. En variante, l’interface 25 peut être de type SWP («Single Wire Protocol», en langue anglaise), de type I2C («Inter-Integrated Circuit» en langue anglaise), de type USB («Universal Serial Bus» en langue anglaise) ou de type SPI («Serial Peripheral Interface», en langue anglaise). Le module 2 peut par ailleurs comprendre plusieurs interfaces, notamment plusieurs interfaces de types différents. La figure 2 illustre un procédé mis en œuvre dans le module à circuit intégré 2 par le processeur 5. Ce procédé permet de basculer entre les exécutions des différents logiciels de définition de contexte d’exécution. Initialement, le processeur 5 exécute l’un des logiciels de définition de contexte d’exécution, par exemple ici le deuxième logiciel 23. Lors de ladite exécution, diverses données d’exécution sont stockées dans la mémoire volatile 6 et modifiées selon le déroulement de l’exécution du deuxième logiciel 23. Par exemple, ces informations peuvent comporter une indication selon laquelle le code PIN de l’utilisateur a été vérifié, une information sur une adresse d’un fichier électronique en cours de lecture par le processeur 5, ou alors une clé de session d’accès du deuxième logiciel 23 au deuxième service S2. La pluralité d’emplacement de sauvegarde 40, 41, 42 est créée dans la mémoire non-volatile. Ici, un premier emplacement de sauvegarde 40 est attribué au premier logiciel 22, un deuxième emplacement de sauvegarde 41 est attribué au deuxième logiciel 23 et un troisième emplacement de sauvegarde est attribué au troisième logiciel 24. Lors d’une première étape E1, une commande de suspension est reçue et traitée par le processeur 5. Cette commande de suspension est émise par le dispositif électronique 3 via l’interface de communication 25, par exemple en réponse à une commande reçue depuis le premier réseau de communication mobile S1. Lors d’une deuxième étape E2, en réponse à ladite commande, le module à circuit intégré 2 sauvegarde le contenu de la mémoire vive 6 dans le deuxième emplacement de sauvegarde 41 de la mémoire non-volatile 4 et arrête l’exécution du deuxième logiciel 23. Les données sauvegardées correspondent donc au statut du deuxième logiciel 23 à l’instant de la suspension. Lors d’une troisième étape E3, optionnelle, le processeur 5 fournit au dispositif électronique 3 des informations sur les autres logiciels, par exemple le nombre de logiciels et s’ils ont déjà été exécutés et suspendus. Sur la figure 2, le caractère optionnel de la troisième étape E3 est représenté par un contour en pointillés de la case correspondant à la troisième étape E3. Lors d’une quatrième étape E4, le module à circuit intégré 2 exécute un autre logiciel de définition de contexte d’exécution, par exemple ici le premier logiciel 22. L’exécution peut par exemple avoir été préalablement déclenchée en réponse à une commande d’exécution reçue sur l’interface de communication 25. Par exemple, l’exécution en cours du premier logiciel 22 est une première exécution; en d’autres termes, le premier logiciel 22 n’a pas encore été suspendu. Le premier emplacement mémoire 40 ne contient donc pas de données d’exécution sauvegardées. Par ailleurs, cette quatrième étape E4 n’est pas nécessairement implémentée directement à la suite de la troisième étape E3. Ainsi, entre l’étape E3 et l’étape E4, le module à circuit intégré 2 peut réaliser diverses autres opérations de traitement. Ainsi, lors de l’étape E4, indépendamment des opérations réalisées par le module 2 entre l’étape E3 et l’étape E4, le premier logiciel 22 est en cours d’exécution et les données relatives à l’exécution précédemment suspendue du deuxième logiciel 23 sont sauvegardées dans le deuxième emplacement mémoire 41. Lors d’une cinquième étape E5, le processeur 5 reçoit une commande de basculement de logiciel, c’est-à-dire une commande comportant un premier champ comprenant une information relative à une suspension du logiciel en cours d’exécution et un deuxième champ comportant une information relative à une reprise d’exécution d’un logiciel précédemment suspendu. Ici, le premier champ comporte un ordre de suspension du premier logiciel 22 et le deuxième champ comporte un ordre de reprise de l’exécution du deuxième logiciel 23. En variante, les ordres de suspension et de reprise pourraient être contenus dans deux commandes distinctes. Lors d’une sixième étape E6, du fait de la réception de l’ordre de suspension du premier logiciel 22, le processeur 5 du module 2, sous commande du système d’exploitation bas niveau 20, sauvegarde le contenu de la mémoire volatile 6 dans le premier emplacement de sauvegarde 40 de la mémoire non volatile 4 et arrête l’exécution du premier logiciel 22. Les données sauvegardées correspondent donc au statut du premier logiciel 22 à l’instant de la suspension. Lors d’une septième étape E7, le processeur 5 procède à la reprise de l’exécution du deuxième logiciel 23 en transférant les données d’exécution présentes dans le deuxième emplacement 41 de sauvegarde vers la mémoire volatile 6. Puis, le module à circuit intégré 2 exécute le deuxième logiciel 23 en utilisant les données d’exécution contenues dans la mémoire volatile 6. Lors d’une huitième étape E8 optionnelle, le module à circuit intégré 2 efface le contenu du deuxième emplacement 41 de sauvegarde. Il peut arriver que le champ de la commande de basculement relatif à l’application dont l’exécution doit être reprise, transmise au processeur 5 lors de l’étape E5, ne contienne aucune information. Par exemple, le champ vide peut résulter d’un dysfonctionnement du module à circuit intégré, ou bien de l’implémentation d’un fonctionnement de routine du module dans lequel aucun logiciel n’est sélectionné. Dans ce cas, le processeur 5 est configuré pour reprendre la dernière application suspendue. En variante, le processeur est configuré pour reprendre ou pour initialiser un logiciel dit «logiciel par défaut», préalablement défini. Selon une autre variante, le processeur est configuré pour ne pas tenir compte de la commande de basculement. Les modes de mise en œuvre et de réalisation de l’invention ne sont pas limités à ceux présentés ci-avant. Ainsi, selon un autre mode de réalisation envisageable, le procédé met en œuvre un contrôle du logiciel dont la reprise est commandée. Par exemple, la deuxième étape E2 de suspension du deuxième logiciel 23 comporte dans ce cas la création par le module à circuit intégré 2 d’une étiquette de contrôle, ou en d’autre terme d’une valeur d’identification, associée au deuxième logiciel 23 et une transmission de ladite étiquette de contrôle au dispositif électronique 3. Et lors de la cinquième étape E5, le dispositif électronique 3 transmet l’étiquette de contrôle au module à circuit intégré. Par exemple, l’étiquette de contrôle peut être contenue dans la commande de basculement, ou bien contenue dans une commande distincte. La septième étape E7 de reprise d’exécution du deuxième logiciel 23 comporte alors un contrôle, par le processeur 5, de la correspondance de ladite étiquette de contrôle avec le deuxième logiciel 23. Dans ce mode de réalisation, la reprise d’exécution du deuxième logiciel 23 est conditionnée à une issue positive du contrôle, c’est-à-dire à une correspondance entre l’étiquette de contrôle et le deuxième logiciel 23. En cas d’issue négative du contrôle, c’est-à-dire en cas de non-correspondance entre l’étiquette de contrôle et le deuxième logiciel 23, le processeur 5 du module à circuit intégré 2 interrompt la reprise d’exécution. Par exemple, le processeur 5 du module à circuit intégré 2 efface le contenu du deuxième emplacement mémoire 41 et exécute le deuxième logiciel à partir de son état initial, c’est-à-dire un état dans lequel se trouve le logiciel préalablement à toute exécution. En variante, le processeur 5 peut lancer l’exécution d’un logiciel par défaut, ou encore poursuivre l’exécution du logiciel en cours. En variante, un autre mode de réalisation est envisageable concernant le contrôle de l’étiquette de contrôle. Ce dernier peut être réalisé pendant la sixième étape E6 de suspension du premier logiciel 22. Ainsi en cas d’issue négative du contrôle, le premier logiciel 22 n’est pas suspendu et son exécution se poursuit. Bien qu’il ait été décrit ici des modes de mise en œuvre et de réalisation de l’invention dans lesquels le dispositif électronique 3 est un téléphone portable intelligent, l’invention s’applique à tout dispositif électronique adapté à coopérer avec un module sécurisé. En particulier, le dispositif électronique 3 peut être un terminal de paiement, un ordinateur, un compteur de consommation électrique ou tout objet connecté. Et, bien qu’il ait été décrit ici des modes de mise en œuvre et de réalisation de l’invention dans lesquels le module à circuit intégré 2 est intégré au dispositif électronique 3, l’invention est compatible avec un module à circuit intégré amovible de type carte à puce, telle qu’une carte SIM, disposée par exemple de manière amovible dans un logement dédié ménagé dans le dispositif électronique 3. Le module à circuit intégré selon l’invention peut notamment être un ensemble de module physiquement distincts, par exemple plusieurs cartes à puce, abritant chacun un ou plusieurs logiciels de définition de contexte d’exécution. Plus généralement, l’invention est aussi compatible avec les différents types de modules à circuit intégré mentionnés précédemment. Par ailleurs, dans le procédé décrit en lien avec la figure 2, la pluralité d’emplacement de sauvegarde 40, 41, 42 est créé dans la mémoire non-volatile préalablement à l’étape E1, c’est-à-dire lors d’une étape initiale. En variante, il est possible que l’ensemble des emplacements de sauvegarde ne soit pas créé initialement mais que chaque première suspension d’exécution d’un logiciel en cours d’exécution entraine une création, par le processeur 5, d’un emplacement de sauvegarde respectif dans la mémoire non volatile et une attribution de cet emplacement de sauvegarde respectif au logiciel en cours d’exécution dont la suspension est commandée. Ainsi, dans une mise en œuvre du procédé dans laquelle le troisième logiciel 24 n’est jamais ou n’a jamais encore été exécuté, ou dans laquelle le troisième logiciel 24 est en cours d’exécution mais non encore suspendu, le troisième emplacement mémoire 42 n’est pas créé. Le module à circuit intégré 2 a été décrit ici comme comportant la mémoire volatile 6 et la mémoire non-volatile 4. En variante, il est possible que la mémoire volatile et/ou la mémoire non-volatile soient situées pour tout ou partie hors du module à circuit intégré 2, par exemple sur le dispositif électronique 3. Le module à circuit intégré peut être configuré pour accéder à toutes sortes de services autres que les services d’accès aux réseaux de télécommunication et au service de paiement bancaire décrit précédemment. Par exemple, l’invention est compatible avec des services de fidélité d’enseignes commerciales, dans ce cas le logiciel associé fait office de carte de fidélité électronique, des services administratifs officiels, dans ce cas le logiciel associé peut faire office de passeport électronique, de permis de conduire électronique, de carte d’électeur électronique ou bien de carte d’identité électronique. Diverses autres modifications peuvent être apportées à l’invention dans le cadre des revendications annexées. Procédé mis en œuvre dans un module à circuit intégré (2) comprenant un processeur configuré pour accéder à une mémoire non-volatile (4) dans laquelle sont mémorisés une pluralité de logiciels de définition de contexte d’exécution (22, 23, 24) adaptés à être exécutés par le processeur pour une communication avec un dispositif électronique (3), et pour accéder à une mémoire volatile (6) configurée pour stocker des données d’exécution d’un logiciel en cours d’exécution, la pluralité de logiciels comprenant un premier logiciel (22) en cours d’exécution et un deuxième logiciel (23) précédemment suspendu, le procédé comprenant, à réception d’une commande du dispositif électronique, a. une suspension de l’exécution du premier logiciel (22) en cours d’exécution comprenant i. une sauvegarde du contenu de la mémoire volatile (6) dans un premier emplacement de sauvegarde (40) de la mémoire non-volatile (4), ii. un arrêt de l’exécution du premier logiciel (22), b. une reprise de l’exécution précédemment suspendue du deuxième logiciel (23) comprenant i. un transfert dans la mémoire volatile (6), depuis un deuxième emplacement de sauvegarde (41) de la mémoire non-volatile (6), de données d’exécution relatives à l’exécution précédemment suspendue du deuxième logiciel (23), et ii. une exécution du deuxième logiciel (23). Procédé selon la revendication 1, dans lequel la pluralité de logiciels (22, 23, 24) comporte au moins un logiciel (22) de définition de profil de communication. Procédé selon la revendication 1 ou 2, dans lequel le module à circuit intégré (2) comporte ladite mémoire volatile (6) ou ladite mémoire non volatile (4). Procédé selon l’une quelconque des revendications 1 à 3, comportant un effacement du contenu du deuxième emplacement de sauvegarde (41) à la suite de la reprise d’exécution du deuxième logiciel (23). Procédé selon l’une quelconque des revendications 1 à 4, comportant une étape initiale de création et d’attribution d’un emplacement de sauvegarde respectif (40, 41, 42) de la mémoire non-volatile pour chaque logiciel (22, 23, 24) de ladite pluralité de logiciels. Procédé selon l’une quelconque des revendications 1 à 4, comportant pour chaque première suspension d’exécution d’un logiciel en cours d’exécution, une création d’un emplacement de sauvegarde respectif (40, 41, 42) dans la mémoire non volatile et une attribution dudit emplacement de sauvegarde respectif audit logiciel en cours d’exécution (22, 23, 24). Procédé selon l’une quelconque des revendications 1 à 6, dans lequel ladite suspension comporte la création par le module à circuit intégré (2) d’une première étiquette de contrôle associée au premier logiciel (22) et un envoi de ladite première étiquette de contrôle au dispositif électronique (3), et dans lequel ladite reprise d’exécution du deuxième logiciel (23) comporte un envoi par le dispositif électronique (3) au module à circuit intégré (2) d’une deuxième étiquette de contrôle précédemment créée, et un contrôle par le module à circuit intégré (3) de la correspondance entre la deuxième étiquette de contrôle et le deuxième logiciel (23). Module à circuit intégré comprenant une interface de communication (25) et un processeur configuré pour accéder à une mémoire non-volatile (4) dans laquelle sont mémorisés une pluralité de logiciels de définition de contexte d’exécution (22, 23, 24) adaptés à être exécutés par le processeur pour une communication via l’interface de communication (25), et pour accéder à une mémoire volatile (6) configurée pour stocker des données d’exécution d’un logiciel en cours d’exécution, le module (2) étant configuré pour, à réception d’une commande sur son interface de communication (25), la pluralité de logiciels (22, 23, 24) comprenant un premier logiciel (22) en cours d’exécution et un deuxième logiciel (23) précédemment suspendu, a. suspendre l’exécution du premier logiciel (22) en cours d’exécution, la suspension comprenant i. une sauvegarde du contenu de la mémoire volatile (6) dans un premier emplacement de sauvegarde (40) de la mémoire non-volatile (4), ii. un arrêt de l’exécution du premier logiciel (23), b. reprendre l’exécution précédemment suspendue du deuxième logiciel (23), la reprise de l’exécution comprenant i. un transfert dans la mémoire volatile (6), depuis un deuxième emplacement de sauvegarde (41) de la mémoire non-volatile (4), de données d’exécution relatives à l’exécution précédemment suspendue du deuxième logiciel (23), et ii. une exécution du deuxième logiciel (23). Module à circuit intégré selon la revendication 8, dans lequel la pluralité de logiciels (22, 23, 24) comporte au moins un logiciel (23) de définition de profil de communication. Module à circuit intégré selon la revendication 8 ou 9, comportant ladite mémoire volatile (6) ou ladite mémoire non volatile (4). Module à circuit intégré selon l’une quelconque des revendications 8 à 10, configuré pour effacer le contenu du deuxième emplacement de sauvegarde (41) à la suite de la reprise d’exécution du deuxième logiciel (23). Module à circuit intégré selon l’une quelconque des revendications 8 à 11, configuré pour créer et attribuer un emplacement de sauvegarde respectif (40, 41, 42) de la mémoire non volatile (4) pour chaque logiciel de ladite pluralité de logiciels (22, 23, 24). Module à circuit intégré selon l’une quelconque des revendications 8 à 11, configuré pour créer et attribuer, à chaque première suspension d’un logiciel en cours d’exécution, un emplacement de sauvegarde respectif dans la mémoire non volatile et pour attribuer ledit emplacement de sauvegarde respectif audit logiciel en cours d’exécution. Module à circuit intégré selon l’une quelconque des revendications 8 à 13, configuré pour a. créer, lors de ladite suspension d’exécution du premier logiciel (22), une première étiquette de contrôle associée au premier logiciel (22) et pour envoyer ladite première étiquette de contrôle vers l’interface de communication (25), b. recevoir de l’interface de communication (25) une deuxième étiquette de contrôle précédemment créée et contrôler la correspondance entre la deuxième étiquette de contrôle et le deuxième logiciel (23), et c. reprendre l’exécution du deuxième logiciel (23) si la deuxième étiquette de contrôle correspond au deuxième logiciel. Système comprenant un module à circuit intégré (2) selon l’une quelconque des revendications 8 à 14 et un dispositif électronique (3) configuré pour communiquer avec le module à circuit intégré via l’interface de communication (25). Système selon la revendication 15, dans lequel le dispositif électronique (3) est configuré pour envoyer ladite commande qui comporte un premier champ comprenant une information relative à la suspension du premier logiciel et un deuxième champ comprenant une information d’identification du deuxième logiciel (23). Programme d’ordinateur comprenant des instructions conduisant à la mise en œuvre du procédé selon l’une quelconque des revendications 1 à 7 lorsque le programme est exécuté par ledit processeur.