Brevet FR3127308A1 — publié le 20230324

Téléchargement sécurisé de micrologiciel La présente description concerne un procédé comprenant : - exécuter, par un dispositif électronique (100), un premier micrologiciel mémorisé dans une mémoire volatile (113) du dispositif électronique, l’exécution du premier micrologiciel amenant une clé de micrologiciel mise à jour (130) à être mémorisée dans une mémoire non volatile (124) du dispositif électronique ; - télécharger un deuxième module de micrologiciel chiffré dans le dispositif électronique ; - déchiffrer le deuxième module de micrologiciel chiffré par un processeur cryptographique (108) du dispositif électronique sur la base de la clé de micrologiciel mise à jour ; et - installer le deuxième module de micrologiciel déchiffré dans la mémoire volatile du dispositif électronique en écrasant au moins partiellement le premier micrologiciel. Figure pour l'abrégé : Fig. 1 Téléchargement sécurisé de micrologiciel La présente description concerne de façon générale le domaine des dispositifs électroniques, et en particulier les dispositifs électroniques dits "ROM-less" (dépourvus de mémoire morte). Les dispositifs ayant des capacités limitées de stockage de données non volatiles, comme les dispositifs dits “ROM-less” (c’est-à-dire les dispositifs qui ne sont pas munis d’une mémoire morte ou ROM), sont très avantageux pour l’industrie en raison de leur faible complexité technologique et de leur faible coût. Pour de tels dispositifs, en général un micrologiciel est stocké dans une mémoire non volatile externe et est téléchargé dans une mémoire à accès aléatoire du dispositif. Puisque la mémoire à accès aléatoire est une mémoire volatile, son contenu disparaît lorsque l’alimentation du dispositif est coupée. Dans certains environnements, les dispositifs sont alimentés pendant des périodes relativement longues, et par conséquent l’utilisation d’une mémoire volatile est possible. Dans le cas où l’alimentation est retirée, le micrologiciel ou "firmware" est rechargé au démarrage suivant. Toutefois, il y a un problème technique pour assurer l’authenticité du micrologiciel et il est souhaitable d’empêcher qu’un pirate puisse charger un micrologiciel non authentique et injecter des données dans le dispositif. Il existe un besoin d’assurer l’authenticité d’un micrologiciel installé dans un dispositif dépourvu de ROM sans mettre en œuvre du matériel dédié. Un mode de réalisation pallie tout ou partie des inconvénients des dispositifs dépourvus de ROM connus. Selon un aspect, on prévoit un procédé comprenant : - exécuter, par un dispositif électronique, un premier micrologiciel mémorisé dans une mémoire volatile du dispositif électronique, l’exécution du premier micrologiciel amenant une clé de micrologiciel mise à jour à être mémorisée dans une mémoire non volatile du dispositif électronique ; - télécharger un deuxième module de micrologiciel chiffré dans le dispositif électronique ; - déchiffrer le deuxième module de micrologiciel chiffré par un processeur cryptographique du dispositif électronique sur la base de la clé de micrologiciel mise à jour ; et - installer le deuxième module de micrologiciel déchiffré dans la mémoire volatile du dispositif électronique en écrasant au moins partiellement le premier micrologiciel. Selon un mode de réalisation, le procédé comprend en outre, avant l’exécution du premier micrologiciel : - télécharger le premier module de micrologiciel chiffré dans le dispositif électronique ; et - déchiffrer le premier module de micrologiciel chiffré par le processeur cryptographique du dispositif électronique sur la base d’une clé de micrologiciel initiale. Selon un mode de réalisation, le deuxième module de micrologiciel chiffré est téléchargé par l’intermédiaire d’une interface du dispositif électronique, et la mémoire volatile n’est pas directement accessible par l’interface, mais seulement par l’intermédiaire du processeur cryptographique. Selon un mode de réalisation, la clé de micrologiciel initiale est mémorisée dans la mémoire non volatile. Selon un mode de réalisation, la clé de micrologiciel initiale est mémorisée par une configuration matérielle du dispositif électronique. Selon un mode de réalisation, le procédé comprend en outre, après le déchiffrement du deuxième module de micrologiciel, une vérification que le deuxième module de micrologiciel a un format et/ou un contenu attendus. Selon un mode de réalisation, le premier et/ou le deuxième module de micrologiciel comprennent un champ de vérification de redondance cyclique mémorisant une valeur de CRC, le procédé comprenant en outre une vérification de la valeur de CRC par un module CRC du circuit électronique. Selon un mode de réalisation, la vérification est basée sur une comparaison entre au moins une partie du code du premier et/ou du deuxième module de micrologiciel et une valeur de référence. Selon un mode de réalisation, le dispositif électronique comprend un module de traitement, et le procédé comprend d’arrêter l’alimentation du module de traitement pendant le téléchargement, le déchiffrement et/ou la vérification du deuxième module de micrologiciel. Selon un mode de réalisation, le procédé comprend en outre, après l’exécution du premier micrologiciel, la désactivation de la clé de micrologiciel initiale. Selon un mode de réalisation, le procédé comprend en outre, après l’exécution du premier micrologiciel, le chiffrement du premier micrologiciel par le processeur cryptographique sur la base de la clé de micrologiciel mise à jour. Selon un mode de réalisation, après l’installation du deuxième micrologiciel, le téléchargement d’un nouveau module de micrologiciel déclenche une incrémentation d’une valeur de compte mémorisée dans la mémoire non volatile. Selon un mode de réalisation, le procédé comprend en outre l’autorisation d’installer le nouveau micrologiciel sur la base d’une comparaison entre une valeur contenue dans le nouveau module de micrologiciel et la valeur de compte. Selon un mode de réalisation, le processeur cryptographique est agencé pour effectuer une cryptographie à courbes elliptiques pour déchiffrer le premier et/ou le deuxième module de micrologiciel chiffré. Selon un autre aspect, on prévoit un dispositif électronique comprenant : - une mémoire volatile comprenant un premier micrologiciel ; - une mémoire non volatile agencée pour mémoriser une clé de micrologiciel mise à jour lors de l’exécution du premier micrologiciel ; - une interface agencée pour télécharger un deuxième module de micrologiciel chiffré ; et - un processeur cryptographique agencé pour déchiffrer le deuxième module de micrologiciel chiffré, sur la base de la clé de micrologiciel mise à jour ; le dispositif électronique étant en outre agencé pour installer le deuxième module de micrologiciel déchiffré dans la mémoire volatile, en écrasant partiellement le premier micrologiciel. 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 représente schématiquement un exemple d’un dispositif électronique selon un mode de réalisation de la présente description ; la est un organigramme illustrant des étapes d’un procédé pour télécharger de manière sécurisée un micrologiciel dans le dispositif électronique de la selon un mode de réalisation de la présente description ; la est un organigramme illustrant une opération de vérification de micrologiciel selon un mode de réalisation de la présente description ; et la représente un exemple de mise en œuvre d’un compteur pseudo-monotone selon un mode de réalisation de la présente description. Procédé comprenant : - exécuter, par un dispositif électronique (100), un premier micrologiciel mémorisé dans une mémoire volatile (113) du dispositif électronique, l’exécution du premier micrologiciel amenant une clé de micrologiciel mise à jour (130) à être mémorisée dans une mémoire non volatile (124) du dispositif électronique ; - télécharger un deuxième module de micrologiciel chiffré dans le dispositif électronique ; - déchiffrer le deuxième module de micrologiciel chiffré par un processeur cryptographique (108) du dispositif électronique sur la base de la clé de micrologiciel mise à jour ; et - installer le deuxième module de micrologiciel déchiffré dans la mémoire volatile du dispositif électronique en écrasant au moins partiellement le premier micrologiciel. Procédé selon la revendication 1, comprenant en outre, avant l’exécution du premier micrologiciel : - télécharger le premier module de micrologiciel chiffré dans le dispositif électronique (100) ; et - déchiffrer le premier module de micrologiciel chiffré par le processeur cryptographique (108) du dispositif électronique sur la base d’une clé de micrologiciel initiale (131). Procédé selon la revendication 1 ou 2, dans lequel le deuxième module de micrologiciel chiffré est téléchargé par l’intermédiaire d’une interface (102) du dispositif électronique (100), et la mémoire volatile (113) n’est pas directement accessible par l’interface, mais seulement par l’intermédiaire du processeur cryptographique (108). Procédé selon la revendication 2 ou 3, dans lequel la clé de micrologiciel initiale (131) est mémorisée dans la mémoire non volatile (124). Procédé selon la revendication 2 ou 3, dans lequel la clé de micrologiciel initiale (131) est mémorisée par une configuration matérielle (132) du dispositif électronique (100). Procédé selon l’une quelconque des revendications 1 à 5, comprenant en outre, après le déchiffrement du deuxième module de micrologiciel, une vérification que le deuxième module de micrologiciel a un format et/ou un contenu attendus. Procédé selon l’une quelconque des revendications 1 à 6, dans lequel le premier et/ou le deuxième module de micrologiciel comprennent un champ de vérification de redondance cyclique (CRC) mémorisant une valeur de CRC, le procédé comprenant en outre une vérification de la valeur de CRC par un module CRC du circuit électronique (100). Procédé selon la revendication 6 ou 7, dans lequel la vérification est basée sur une comparaison entre au moins une partie du code du premier et/ou du deuxième module de micrologiciel et une valeur de référence. Procédé selon l’une quelconque des revendications 6 à 8, dans lequel le dispositif électronique (100) comprend un module de traitement (123), le procédé comprenant d’arrêter l’alimentation du module de traitement pendant le téléchargement, le déchiffrement et/ou la vérification du deuxième module de micrologiciel. Procédé selon l’une quelconque des revendications 1 à 8, comprenant en outre, après l’exécution du premier micrologiciel, la désactivation de la clé de micrologiciel initiale (131). Procédé selon l’une quelconque des revendications 1 à 10, comprenant en outre, après l’exécution du premier micrologiciel, le chiffrement du premier micrologiciel par le processeur cryptographique (108) sur la base de la clé de micrologiciel mise à jour (130). Procédé selon l’une quelconque des revendications 1 à 11, dans lequel, après l’installation du deuxième micrologiciel, le téléchargement d’un nouveau module de micrologiciel déclenche une incrémentation d’une valeur de compte (400) mémorisée dans la mémoire non volatile (124). Procédé selon la revendication 12, comprenant en outre l’autorisation d’installer le nouveau micrologiciel sur la base d’une comparaison entre une valeur contenue dans le nouveau module de micrologiciel et la valeur de compte (400). Procédé selon l’une quelconque des revendications 1 à 13, dans lequel le processeur cryptographique (108) est agencé pour effectuer une cryptographie à courbes elliptiques pour déchiffrer le premier et/ou le deuxième module de micrologiciel chiffré. Dispositif électronique (100) comprenant : - une mémoire volatile (113) comprenant un premier micrologiciel ; - une mémoire non volatile (124) agencée pour mémoriser une clé de micrologiciel mise à jour (130) lors de l’exécution du premier micrologiciel ; - une interface (102) agencée pour télécharger un deuxième module de micrologiciel chiffré ; et - un processeur cryptographique (108) agencé pour déchiffrer le deuxième module de micrologiciel chiffré, sur la base de la clé de micrologiciel mise à jour (130) ; le dispositif électronique étant en outre agencé pour installer le deuxième module de micrologiciel déchiffré dans la mémoire volatile, en écrasant partiellement le premier micrologiciel.