FR 3149400 A1 20241206 FR 2305373 A 20230530 Procédé d’installation sécurisé de mise à jour logiciel La présente description concerne un procédé comprenant : - la réception, par un dispositif électronique (400), des données comprenant un module logiciel de mise à jour d’un programme applicatif du dispositif, le module logiciel de mise à jour comprenant une première partie comprenant des premières informations de mise à jour et une valeur d’indication ; - la comparaison, par un processeur (410) du dispositif, des premières informations avec des informations de référence (412) stockées dans une mémoire du dispositif en association avec la valeur d’indication ; et - si les premières informations correspondent avec les informations de référence, l’installation, par le processeur, d’une deuxième partie du module de mise à jour de l’application. Figure pour l'abrégé : Fig. 4 Procédé d’installation sécurisé de mise à jour logiciel La présente description concerne de façon générale les procédés pour l’installation de mises à jour de programmes applicatifs sur des dispositifs connectés à des réseaux tels que par exemple des dispositifs connectés à l’Internet des Objets. Les dispositifs connectés à un réseau, tels que par exemple les dispositifs électroniques reliés à l’Internet des Objets, sont configurés pour recevoir des modules logiciels de mise à jour. Les modules logiciels de mise à jour permettent par exemple la mise à jour de programmes applicatifs contenus dans une mémoire du dispositif. Cependant, lors de la réception de ces modules logiciels de mise à jour et lors de leur installation, les dispositifs électroniques ne sont pas dans un environnement sécurisé. En effet, les dispositifs électroniques sont alors, par exemple, en cours d’utilisation et entre les mains de leur utilisateur final. De plus, le fabricant des dispositifs n’a, par exemple, pas la main sur la programmation des modules logiciels de mise à jour. Il est généralement souhaitable que, suite à l’installation de la mise à jour, l’ensemble du système définissant le dispositif reste cohérent. Il peut également être souhaitable d’assurer le bon fonctionnement du dispositif une fois la mise à jour effectuée tout en assurant que la mise à jour n’accorde pas des privilèges supplémentaires à l’application mise à jour. Un mode de réalisation prévoit un procédé comprenant : - la réception, par un dispositif électronique, des données comprenant un module logiciel de mise à jour d’un programme applicatif du dispositif, le module logiciel de mise à jour comprenant une première partie comprenant des premières informations de mise à jour et une valeur d’indication ; - la comparaison, par un processeur du dispositif, des premières informations avec des informations de référence stockées dans une mémoire du dispositif en association avec la valeur d’indication ; et - si les premières informations correspondent avec les informations de référence, l’installation, par le processeur, d’une deuxième partie du module de mise à jour de l’application. Selon un mode de réalisation, la valeur d’indication est un identifiant de l’application. Selon un mode de réalisation, la valeur d’indication est une valeur identifiant une catégorie de programme applicatif. Selon un mode de réalisation, le procédé ci-dessus comprend en outre, avant la comparaison des premières informations avec les informations de référence, une vérification de l’authenticité et/ou de l’intégrité du module logiciel de mise à jour. Selon un mode de réalisation, les premières informations sont des données non chiffrées. Selon un mode de réalisation, la deuxième partie du module logiciel de mise à jour comprend des données chiffrées, le procédé comprenant en outre, avant l’installation, le déchiffrement, par un circuit cryptographique du dispositif, desdites données chiffrées. Selon un mode de réalisation, les premières informations indiquent un ensemble de ressources du dispositif utilisées lors de l’exécution de l’application mise à jour. Selon un mode de réalisation, les ressources sont des circuits périphériques du dispositif électronique et/ou des bus du dispositif électronique et/ou des codes logiciels stockés dans une mémoire non volatile du dispositif électronique. Selon un mode de réalisation, les informations de référence associées à la valeur d’indication indiquent un ensemble de ressources autorisées pour la valeur d’indication et les premières informations correspondent avec les informations de référence si les ressources de l’ensemble des ressources appartiennent à l’ensemble des ressources autorisées. Selon un mode de réalisation, le procédé ci-dessus comprend en outre, suite à l’installation du module logiciel de mise à jour, une phase d’enregistrement du module logiciel de mise à jour, la phase d’enregistrement comprenant : - la transmission, au processeur, d’une indication d’un ensemble de ressources étant requises lors de l’exécution de l’application mise à jour ; - la comparaison, par le processeur, de l’ensemble de ressources requises avec l’ensemble de ressources indiquées dans la première partie du module logiciel ; et - si les ensembles de ressources correspondent, le stockage, en association de l’application, de la valeur d’indication. Selon un mode de réalisation, le procédé ci-dessus comprend en outre, lors de l’exécution de l’application mise à jour par le processeur : - l’envoi d’une requête pour l’utilisation d’une ressource du dispositif électronique ; - la vérification, sur la base de la valeur d’indication stockée en association de l’application, de si l’utilisation de la ressource est autorisée. Selon un mode de réalisation, le procédé ci-dessus comprend en outre, si les premières et les deuxièmes informations ne correspondent pas, la suppression du module logiciel de mise à jour. Selon un mode de réalisation, le procédé ci-dessus comprend en outre, suite à l’installation du module logiciel de mise à jour, et lorsque l’application mise à jour est active, la désactivation des ressources ne faisant pas partie de l’ensemble de ressources autorisées pour la valeur d’indication. Selon un mode de réalisation, les ensembles de ressources autorisées sont stockés, en association de la valeur d’indication, dans une mémoire d’un circuit sécurisé. Un mode de réalisation prévoit un dispositif électronique comprenant : - une interface configurée pour recevoir des données comprenant un module logiciel de mise à jour d’un programme applicatif stocké dans une mémoire du dispositif, le module logiciel de mise à jour comprenant une première partie comprenant des premières informations et une valeur d’indication ; - un processeur configuré pour comparer les premières informations avec des informations de référence stockées dans une mémoire du dispositif en association de la valeur d’indication, le processeur étant en outre configuré pour, si les premières informations correspondent avec les informations de référence, commander l’installation du module logiciel de mise à jour. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la est un schéma par blocs illustrant un exemple d’un dispositif électronique selon un mode de réalisation de la présente description ; la illustre la structure d’un en-tête d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description ; la est un organigramme illustrant des étapes d’un procédé d’installation d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description ; la est un schéma par blocs illustrant l’installation d’un module logiciel de mise à jour selon un mode de réalisation de la présente description ; et la est un organigramme illustrant des étapes d’un procédé d’enregistrement d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, les méthodes de vérification d’authenticité et/ou d’intégrité de module logiciel reçus ne sont pas décrites en détails et son connues par la personne du métier. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. La est un schéma par blocs illustrant un exemple d’un dispositif électronique 100 selon un mode de réalisation de la présente description. En particulier, le dispositif électronique 100 comprend un circuit 102. A titre d’exemple, le dispositif 100 est un smartphone, un objet connecté tel que par exemple, une montre connectée, un élément d’un système domotique, etc. De manière générale, le dispositif 100 est un dispositif connecté à un réseau, tel que par exemple l’Internet des Objets. En particulier, le circuit 102 comprend, par exemple, une interface 103 (INTERFACE). L’interface 103 est, par exemple, configurée pour recevoir, par l’intermédiaire du réseau auquel le dispositif 100 est connecté, des flux de données. Le circuit 102 comprend par exemple un processeur 104 (CPU). Le circuit 102 comprend en outre une mémoire non volatile 106 (NV MEM) et/ou une mémoire volatile 108 (RAM). A titre d’exemple, la mémoire non volatile 106 est une mémoire de type Flash. A titre d’exemple la mémoire volatile 108 est une mémoire à accès aléatoire (en anglais « Random Access Memory »). Les mémoires 106 et 108 sont par exemple reliées au processeur 104 par l’intermédiaire d’un bus 110. A titre d’exemple, la mémoire non volatile 106 comprend des emplacements mémoire dans lesquels sont stockés des programmes applicatifs. Lorsqu’ils sont exécutés, les programmes applicatifs font par exemple appel à des ressources du circuit 102, telles que par exemple des circuits périphériques (non illustrés), tels que par exemple un bus de type I2C (de l’anglais « Inter-Integrated Circuit »), une interface, par exemple de type UART (de l’anglais « Universal Asynchronous Receiver-Transmitter »). A titre d’exemple, le dispositif 100 comprend un circuit implémentant une caméra, un circuit implémentant un système de géolocalisation ou GPS (de l’anglais « Global Positioning System ») etc. et certains programmes applicatifs font appel à la caméra et/ou au GPS et/ou à d’autres types de circuits périphériques. Lorsqu’ils sont exécutés, les programmes applicatifs font par exemple en outre appel à des codes logiciels par exemple stockés dans la mémoire non volatile 106. Le circuit 102 comprend par exemple en outre un circuit cryptographique 112 (CRYPTO) relié au bus 110. A titre d’exemple, le circuit cryptographique 112 est configuré pour chiffrer et/ou déchiffrer des données, reçues par exemple par l’intermédiaire du bus 110, selon un algorithme de chiffrement symétrique ou selon un algorithme de chiffrement asymétrique. Selon un mode de réalisation, l’interface 103 est configuré pour recevoir des modules logiciels de mise à jour, par exemple des modules micrologiciels (en anglais « firmware »), transmis par l’intermédiaire du réseau auquel le dispositif 100 est connecté. A titre d’exemple, la transmission d’un module logiciel est effectuée de façon sans fils, par exemple par signal en fréquence radio (RF). A titre d’exemple, un module logiciel de mise à jour permet la mise à jour d’un des codes applicatifs stockés dans la mémoire non volatile 106. Cependant, dans la plupart des cas, la programmation des modules logiciels de mise à jour transmis vers le dispositif 100 n’est pas effectuée par la même entité que celle ayant programmés les codes applicatifs et/ou ayant conçu le circuit 102. A titre d’exemple, les modules logiciels de mise à jour prennent la forme d’objet logique binaire (BLOB- « Binary Logical Object »). En particulier, les modules logiciels de mise à jour comprennent un en-tête dans lequel sont indiquées plusieurs informations. Les modules logiciels de mise à jour comprennent en outre le code de mise à jour. A titre d’exemple, le code de mise à jour est un code chiffré et le circuit cryptographique 112 est configuré pour le déchiffrer. A titre d’exemple, les informations contenues dans l’en-tête ne sont pas chiffrées. Dans un autre exemple, les informations contenues dans l’en-tête sont chiffrées et le circuit cryptographique 112 est configurés pour les déchiffrer. La illustre la structure d’un en-tête 200 (HEADER) d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description. A titre d’exemple, l’en-tête 200 comprend des informations 202 (CRYPTO SETTINGS), 204 (AUTH.TAG), 206 (INTEGRITY TAG) et 208 (FW INFORMATION). Les informations 202 sont par exemple des informations relatives à des paramètres de chiffrement du code de mise à jour. Les informations 204 comprennent par exemple une valeur d’authentification. A titre d’exemple, la valeur d’authentification est générée lors de la programmation du module logiciel de mise à jour. A titre d’exemple, la valeur d’authentification est une signature numérique, par exemple associée au code applicatif concerné par la mise à jour. Les informations 206 comprennent par exemple une valeur d’intégrité. A titre d’exemple la valeur d’intégrité est générée lors de la programmation du module logiciel de mise à jour. A titre d’exemple, la valeur d’intégrité est une valeur de hachage. A titre d’exemple, la valeur de hachage est obtenue par application d’un algorithme SHA-256 sur le code de mise à jour et sur l’objet logique binaire définissant le module de mise à jour. Une signature associée à la valeur de hachage, ainsi qu’une clef asymétrique sont ajoutées à la suite de la valeur de hachage. Lors de la réception du module de mise à jour, l’intégrité du module est vérifiée en calculant une valeur de hachage à partir du code et de l’objet logique binaire reçu et en la comparant avec la valeur de hachage comprise dans les informations 206. Le module est par exemple authentifié suite à un contrôle de la signature sur la base d’une clef publique. La clef publique est, par exemple, préalablement stockée dans une mémoire non volatile du dispositif 100. A titre d’exemple, la clef publique est stockée dans le dispositif 100 lors de la fabrication de ce dernier. A titre d’exemple, la clef publique est associée à une clef privée, ayant servie dans le calcul de la signature de la valeur de hachage. Les informations 208 comprennent par exemple des informations telles que le programme applicatif concerné par la mise à jour et/ou la version de la mise à jour. A titre d’exemple, lors de la réception du module de mise à jour, la version est comparée avec la version du logiciel déjà installé sur le dispositif 100. A titre d’exemple, si la version du module de mise à jour est une version antérieure à celle du logiciel installé, le logiciel n’est pas mis à jour afin de, par exemple, éviter d’introduire des failles de sécurités. A titre d’exemple, une indication de la version est aussi comprise dans la valeur de hachage. Selon un mode de réalisation, l’en-tête 200 comprend en outre des informations 210 (RESOURCES INFORMATION). Les informations 210 comprennent par exemple une indication d’une ou plusieurs ressources du dispositif électronique 100 qui seront utilisés lors de l’exécution de l’application une fois mise à jour. A titre d’exemple, les ressources comprennent des circuits périphériques tels que par exemple une interface, par exemple de type UART, des ports, par exemple de type GPIO (de l’anglais « General Purpose Input/Output »), des bus, par exemple de type I2C ou encore d’autres type de circuits périphériques, tels que des circuits cryptographiques, une caméra, etc. Les ressources comprennent par exemple, en outre, des codes logiciels par exemple stockés dans la mémoire non volatile 106. Selon un mode de réalisation, les informations 210 comprennent en outre une valeur d’indication. A titre d’exemple, la valeur d’indication est une valeur d’identification du programme applicatif concerné par la mise à jour. Dans un autre exemple, la valeur d’indication identifie une catégorie, par exemple associé à un ou plusieurs programmes applicatifs. Dans un autre exemple, la valeur d’indication est comprise dans les informations 208. Selon un mode de réalisation, le circuit 102 comprend, en outre, une table, ou une liste, de données, par exemple stockée dans la mémoire non volatile 106. La table, ou la liste, de données comprend, en association à des valeurs d’indication, une indication d’un ensemble de ressources autorisées pour cette valeur d’indication. A titre d’exemple, chaque programme applicatif est identifié par une valeur d’indication, et la table, ou la liste, des données comprend, en association avec chaque programme applicatif, et donc avec chaque valeur d’indication, un ensemble de valeurs, chaque valeur identifiant par exemple une, ou plusieurs, ressources du dispositif. Dans un autre exemple, les programmes applicatifs sont regroupés en catégories, chaque catégorie étant associée à une valeur d’indication. Dans cet exemple, la table, ou la liste, de données, comprend pour chaque catégorie, et donc en association avec chaque valeur d’indication, un ensemble de valeurs, chaque valeur identifiant par exemple une ou plusieurs ressources du dispositif. Pour chaque valeur d’indication, l’ensemble de ressources associées représente des ressources du dispositif 100 pour lesquelles l’accès est autorisé pour les programmes applicatifs identifiés, ou catégorisés par la valeur d’indication. Selon un mode de réalisation, à réception d’un module logiciel de mise à jour, le circuit 102, en particulier le processeur 104, est configuré pour extraire la valeur d’indication de l’en-tête 200. Le circuit 102 est configuré en outre pour comparer l’une ou plusieurs ressources indiquées dans les informations 210 avec les ressources de l’ensemble de ressources faisant partie de la table, ou de la liste, de données en association avec la valeur d’indication. A titre d’exemple, les informations 202, 204, 206, 208 et 210 de l’en-tête 200 ne sont pas chiffrées. Dans un autre exemple, une ou plusieurs des informations 202 à 210 sont chiffrées. Dans le cas où un module logiciel de mise à jour comprend une pluralité de sous-modules logiciel, les informations 210 comprennent par exemple une indication de ressources globale, c’est à dire pour la totalité du module logiciel. Les informations 210 comprennent par exemple en outre des indications de ressources pour chacun des sous-module logiciel. Les ressources indiquées, pour chacun des sous modules logiciels, appartiennent à l’ensemble des ressources globales. De même, si un sous module logiciel comprend un niveau inférieur d’autres sous modules logiciel, les informations 210 comprennent aussi des indications de ressources pour chacun de ces autres sous modules logiciels de niveau inférieur. De plus, chaque ressource indiquée pour chaque sous module logiciel de niveau inférieur appartient alors à l’ensemble des ressources indiqué pour le sous module logiciel. La est un organigramme illustrant des étapes d’un procédé d’installation d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description. Ce procédé est mis en œuvre, par exemple, par le processeur 104. Dans une étape 300, le dispositif électronique 100 reçoit, par exemple par l’intermédiaire de l’interface 103, un module logiciel de mise à jour pour un programme applicatif du dispositif 100. Le module logiciel de mise à jour comprend un en-tête ayant pour structure la structure de l’en-tête 200. Le module logiciel de mise à jour comprend en outre une deuxième partie comportant, par exemple, un code pour la mise à jour du programme applicatif concerné. A titre d’exemple, le code de mise à jour est chiffré. A titre d’exemple, le module logiciel de mise à jour est alors stocké temporairement dans une mémoire volatile du circuit 102. Suite à l’étape 300, le procédé continue dans une étape 301 (OK ?). A titre d’exemple, l’étape 301 comprend une vérification, par le processeur 104, de l’authenticité et/ou de l’intégrité du module logiciel de mise à jour. A titre d’exemple, une vérification de l’authenticité du module logiciel est effectuée sur la base d’une valeur d’authenticité comprise dans les informations 204. A titre d’exemple, une vérification de l’intégrité du module logiciel est effectuée sur la base d’une valeur d’intégrité comprise dans les informations 206. Les procédés de vérification d’authenticité et/ou d’intégrité de module logiciel sont connus par la personne du métier. Si la ou les vérifications réalisées dans l’étape 301 échouent (branche N), le procédé se termine dans une étape 302 (INSTALLATION REJECTED). L’étape 302 comprend par exemple la suppression du module logiciel de mise à jour de la mémoire volatile dans laquelle il était temporairement stocké. Si la ou les vérifications réalisées dans l’étape 301 sont réussies (branche Y en sortie du bloc 301), le procédé continue dans une étape 303 (POLICIES COMPARISON OK ?). Lors de la réalisation de l’étape 303, le processeur 104 extrait par exemple la valeur d’indication de l’en-tête et compare les ressources indiquées dans les informations 210 avec l’ensemble de ressources stocké dans la table, ou liste, de données en association avec la valeur d’indication. Si au moins une ressource indiquée par les informations 210 n’est pas comprise dans l’ensemble de ressources stockées dans la table, ou liste, de données en association avec la valeur d’indication (branche N), le procédé se termine dans une réalisation de l’étape 302. Le programme applicatif n’est alors pas mis à jour. Dans le cas où le module logiciel de mise à jour comprend une pluralité de sous module logiciel, l’étape 303 est par exemple réalisée, en outre, sous module logiciel par sous module. Si toutes les ressources indiquées par les informations 210 sont comprises dans l’ensemble de ressources stockées dans la table, ou liste, de données en association avec la valeur d’indication (branche Y en sortie du bloc 303), le procédé se termine dans une étape 304 (INSTALLATION). Lorsque le code de mise à jour est chiffré, l’étape 304 comprend le déchiffrement, par le circuit cryptographique 112, du code. L’étape 304 comprend en outre l’exécution, par le processeur 104, du code de mie à jour, menant à la mise à jour du programme applicatif. La est un schéma par blocs illustrant l’installation d’un module logiciel de mise à jour selon un mode de réalisation de la présente description. En particulier, la illustre un exemple d’un dispositif 400 configuré pour mettre en œuvre le procédé décrit en relation avec la . Le dispositif 400 comprend par exemple un circuit de téléchargement 402 (BLOB DOWNLOADER) configuré pour recevoir des modules logiciels de mise à jour. A titre d’exemple, le circuit de téléchargement 402 est similaire à l’interface 103. Le module logiciel de mise à jour est par exemple téléchargé, par le circuit de téléchargement 402, à partir d’un serveur. Le module logiciel comprend alors un en-tête, par exemple la structure de l’en-tête 200 décrit en relation avec la . En particulier, l’en-tête du module logiciel comprend une valeur d’indication associée à des informations telles que par exemple des indications de ressources du dispositif 400. A titre d’exemple, l’en-tête comprend en outre des indications du programme applicatif concerné par la mise à jour ainsi que par exemple une indication de la version du programme. L’en-tête comprend par exemple en outre une valeur d’authenticité et/ou une valeur d’intégrité du module. Le dispositif 400 comprend en outre une mémoire 404 (STORAGE SLOT) configurée pour stocker temporairement le module logiciel de mise à jour suite à son téléchargement par le circuit 402. Le dispositif 400 comprend en outre un circuit d’installation sécurisé 406 (SECURE INSTALLER). A titre d’exemple le circuit d’installation 406 est un circuit similaire au processeur 104. Le circuit d’installation 406 est par exemple configuré pour effectuer les vérifications d’authenticité et/ou d’intégrité, décrites en relation avec l’étape 301, du module logiciel de mise à jour stocké dans la mémoire 404. A titre d’exemple, les vérifications d’authenticité et/ou d’intégrité sont réalisées sur la base des valeurs d’authenticité et/ou d’intégrité. A titre d’exemple, les vérifications d’authenticité et/ou d’intégrité sont en outre réalisées sur la base de clefs de chiffrement 408 par exemple stockées dans une mémoire interne du circuit d’installation 406. Le dispositif 400 comprend en outre un circuit sécurisé 410 (SECURE CIRCUIT) comprenant une liste, ou une table, de données 412 (POLICIES) telle que décrite en relation avec les figures 2 et 3. Le circuit d’installation 406 est en outre configuré pour effectuer l’étape de comparaison décrite en relation avec l’étape 303. Autrement dit, le circuit d’installation 406 est en outre configuré pour extraire la valeur d’indication de l’en-tête et pour comparer par exemple les ressources indiquées dans l’en-tête avec les ressources indiquées dans la liste, ou table 412, données en association avec la valeur d’indication. La liste, ou table, de données comprend donc, pour chaque programme applicatif du dispositif, ou pour chaque catégorie de programme, une indication de ressources qui peuvent être utilisées lors de l’exécution du programme. La programmation de la liste, ou table, de données est par exemple réalisée lors de la conception du circuit 102 et des dispositifs 100 et 400. Autrement dit, le contenu de la liste ou table est décidé avant la réception des modules logiciels de mise à jour. La personne du métier saura donc choisir, pour chaque programme, ou chaque catégorie de programmes, les ressources du dispositif qu’elle accepte de laisser accessibles par le programme, ou la catégorie de programmes. A titre d’exemple, le circuit sécurisé 410 comprend une mémoire 413 (MEM) configurée pour stocker d’autres éléments tels que, par exemple, des clefs OBK (de l’anglais « Option Byte Keys »). Le dispositif 400 comprend en outre une mémoire non volatile 414. A titre d’exemple, la mémoire non volatile 414 est similaire à la mémoire 106. La mémoire non volatile 414 comprend par exemple un emplacement mémoire 416 (SLOT A) et un emplacement mémoire 418 (SLOT B). Lorsque la comparaison décrite en relation avec l’étape 303 est réussie, le circuit d’installation 406 est configuré pour installer le module logiciel de mise à jour dans un des emplacements 416 ou 418. A titre d’exemple, l’emplacement 418 est configuré pour stocker le programme applicatif concerné par la mise à jour et le module logiciel de mise à jour est alors installé dans l’emplacement 418. A titre d’exemple, avant l’installation du module logiciel de mise à jour, le circuit d’installation est configuré pour commander le déchiffrement, par exemple par un circuit cryptographique tel que le circuit 112, de la partie du module logiciel chiffrée. La est un organigramme illustrant des étapes d’un procédé d’enregistrement d’un module logiciel de mise à jour, selon un mode de réalisation de la présente description. Une fois installé, c’est à dire suite à la réalisation de l’étape 304, une étape 500 (RESOURCES DECLARATION) a par exemple lieu. L’étape 500 comprend une déclaration, par le module logiciel installé, d’une ou plusieurs ressources requises lors de son exécution. La déclaration est par exemple effectuée par le processeur 104 sous le contrôle du module logiciel installé. A titre d’exemple, le module logiciel installé transmet une indication de l’une ou plusieurs ressources requises vers le circuit sécurisé 410. Dans une étape 501 (COMPARISON WITH METADTA OK ?), les ressources requises sont comparées, par exemple par le circuit sécurisé 410, avec les ressources indiquées dans l’en-tête du module logiciel de mise à jour encore stocké dans la mémoire 404. A titre d’exemple, le module logiciel de mise à jour est conservé dans la mémoire 404 suite à son installation dans un emplacement de la mémoire 414. Lorsqu’au moins une parmi les ressources requises déclarées ne fait pas partie des ressources indiquées dans l’en-tête du module logiciel de mise à jour (branche N), le procédé se termine dans une étape 502 (SUPPRESSION). Dans l’étape 502, le module logiciel de mise à jour ainsi que son installation sont supprimés des mémoires 404 et 414. Lorsque dans l’étape 501, s’il est déterminé que toutes les ressources requises font partie des ressources indiquées dans l’en-tête (branche Y en sortie du bloc), le procédé continue dans une étape 503 (REGISTRATION). L’étape 503 consiste par exemple en l’enregistrement du module logiciel, par le circuit sécurisé 401. Plus précisément, l’enregistrement du module logiciel comprend par exemple, le stockage dans le circuit sécurisé 410 d’un identifiant du programme applicatif associé à un ensemble de ressources, l’ensemble de ressources étant par exemple les ressources requises. La réalisation des étapes 500 à 503 garantie alors l’usage exclusif des ressources déclarées comme étant recquises. A titre d’exemple, lorsque le module logiciel comprend plusieurs sous module logiciel, les étapes 500 à 503 sont réalisées en outre sous module logiciel par sous module. Dans une étape 504 (LOADING) postérieure à l’étape 503, le programme applicatif mis à jour installé dans l’emplacement 416 ou 418 est chargé, par exemple, dans une mémoire volatile telle que par exemple la mémoire 108 et est exécuté par un processeur générique tel que par exemple le processeur 104. Le circuit sécurisé 410 est alors par exemple configuré pour, dans une étape 505 (DEACTIVATION OF NON-LISTED RESOURCES), commander la désactivation de toutes les ressources n’appartenant pas à la liste des ressources requises pour le programme applicatif chargé. Suite à la désactivation des ressources, le programme applicatif mis à jour est, par exemple, exécuté par un processeur générique tel que par exemple, le processeur 104. A titre d’exemple, lors de l’exécution du programme mis à jour, chaque fois qu’un accès vers une ressource est demandé, le circuit sécurisé 410 est configuré pour vérifier que la ressource appartient bien aux ressources requises stockées en association de l’identifiant du programme. Si la ressource n’appartient pas à l’ensemble des ressources requises stockées en association de l’identifiant du programme, alors le circuit sécurisé 410 est par exemple configuré pour interdire l’accès vers la ressource. Un avantage des modes de réalisation décrits est qu’ils permettent de contrôler l’accès aux ressources d’un dispositifs pour des mises à jour venant de l’extérieur. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. En particulier, les méthodes de chiffrement et de déchiffrement utilisées peuvent varier. De même, l’implémentation en liste ou en table des indications 412 peut varier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus, en particulier, pour ce qui est de l’implémentation du circuit sécurisé 410. Procédé comprenant : - la réception, par un dispositif électronique (100, 400), des données comprenant un module logiciel de mise à jour d’un programme applicatif du dispositif, le module logiciel de mise à jour comprenant une première partie (200) comprenant des premières informations (210) de mise à jour et une valeur d’indication ; - la comparaison, par un processeur (104, 410) du dispositif, des premières informations avec des informations de référence (412) stockées dans une mémoire du dispositif en association avec la valeur d’indication ; et - si les premières informations correspondent avec les informations de référence, l’installation, par le processeur, d’une deuxième partie du module de mise à jour de l’application. Procédé selon la revendication 1, dans lequel la valeur d’indication est un identifiant de l’application. Procédé selon la revendication 1, dans lequel la valeur d’indication est une valeur identifiant une catégorie de programmes applicatifs. Procédé selon l’une quelconque des revendications 1 à 3, comprenant en outre, avant la comparaison des premières informations (210) avec les informations de référence (412), une vérification de l’authenticité et/ou de l’intégrité du module logiciel de mise à jour. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel les premières informations (210) sont des données non chiffrées. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel la deuxième partie du module logiciel de mise à jour comprend des données chiffrées, le procédé comprenant en outre, avant l’installation, le déchiffrement, par un circuit cryptographique (112) du dispositif, desdites données chiffrées. Procédé selon l’une quelconque des revendications 1 à 6, dans lequel les premières informations (210) indiquent un ensemble de ressources du dispositif utilisées lors de l’exécution de l’application mise à jour. Procédé selon la revendication 7, dans lequel les ressources sont des circuits périphériques du dispositif électronique et/ou des bus du dispositif électronique et/ou des codes logiciels stockés dans une mémoire non volatile du dispositif électronique. Procédé selon la revendication 7 ou 8, dans lequel les informations de référence (412) associées à la valeur d’indication indiquent un ensemble de ressources autorisées pour la valeur d’indication et dans lequel les premières informations (210) correspondent avec les informations de référence si les ressources de l’ensemble des ressources appartiennent à l’ensemble des ressources autorisées. Procédé selon l’une quelconque des revendications 7 à 9, comprenant en outre, suite à l’installation du module logiciel de mise à jour, une phase d’enregistrement du module logiciel de mise à jour, la phase d’enregistrement comprenant : - la transmission, au processeur (104, 410), d’une indication d’un ensemble de ressources étant requises lors de l’exécution de l’application mise à jour ; - la comparaison, par le processeur, de l’ensemble de ressources requises avec l’ensemble de ressources indiquées dans la première partie (210) du module logiciel ; et - si les ensembles de ressources correspondent, le stockage, en association de l’application, de la valeur d’indication. Procédé selon la revendication 10, comprenant en outre, lors de l’exécution de l’application mise à jour par le processeur (104, 410) : - l’envoi d’une requête pour l’utilisation d’une ressource du dispositif électronique ; - la vérification, sur la base de la valeur d’indication stockée en association de l’application, de si l’utilisation de la ressource est autorisée. Procédé selon la revendication 10 ou 11, comprenant en outre, si les premières et les deuxièmes informations ne correspondent pas, la suppression du module logiciel de mise à jour. Procédé selon l’une quelconque des revendications 7 à 12, comprenant en outre, suite à l’installation du module logiciel de mise à jour, et lorsque l’application mise à jour est active, la désactivation des ressources ne faisant pas partie de l’ensemble de ressources autorisées pour la valeur d’indication. Procédé selon l’une quelconque des revendications 7 à 13, dans lequel les ensembles de ressources autorisées sont stockés, en association de la valeur d’indication, dans une mémoire d’un circuit sécurisé (410). Dispositif électronique comprenant : - une interface (103) configurée pour recevoir des données comprenant un module logiciel de mise à jour d’un programme applicatif stocké dans une mémoire (106, 414) du dispositif, le module logiciel de mise à jour comprenant une première partie (200) comprenant des premières informations (210) et une valeur d’indication ; - un processeur (104, 410) configuré pour comparer les premières informations avec des informations de référence (412) stockées dans une mémoire du dispositif en association de la valeur d’indication, le processeur étant en outre configuré pour, si les premières informations correspondent avec les informations de référence, commander l’installation du module logiciel de mise à jour.