Brevet FR3126572A1 — publié le 20230303

Démarrage sécurisé d’une unité de traitement La présente description concerne un procédé comprenant : - la protection (301,302) d’une séquence de démarrage d’un dispositif de traitement par des incrémentations d’une valeur de comptage générée par un compteur monotone ; - une première durée après le début de la séquence de démarrage, la comparaison (305, 305’), par le circuit de protection, entre la valeur de comptage et une première valeur de référence ; et - si la valeur de comptage est inférieure à la première valeur de référence, la modification (306, 306’), par le circuit de protection, de la valeur de comptage en la première valeur de référence. Figure pour l'abrégé : Fig. 3 Démarrage sécurisé d’une unité de traitement La présente description concerne le domaine des procédés et dispositifs pour la sécurité de circuits électroniques, et en particulier un dispositif et un procédé permettant d’effectuer un démarrage sécurisé d’un tel circuit. Le démarrage d’un dispositif de traitement est basé sur l’exécution de codes tels que des codes logiciels et/ou micrologiciels (en anglais "firmware"). La séquence de démarrage d’un dispositif est une étape sensible en termes de sécurité, car elle implique en général le réglage des paramètres liés à la sécurité du dispositif et/ou le traitement de données sensibles en termes de confidentialité, intégrité et authenticité telles que des clefs de chiffrement. Bien que des solutions existent pour rendre les codes de démarrage immuables et moins sensibles aux attaques extérieures, il serait souhaitable de protéger d’avantage l’accès à ces codes et aux données sensibles lors du démarrage d'un dispositif de traitement. Un mode de réalisation pallie tout ou partie des inconvénients des solutions existantes. Un mode de réalisation prévoit un procédé comprenant : - la protection d’une séquence de démarrage d’un dispositif de traitement par des incrémentations d’une valeur de comptage générée par un compteur monotone ; - une première durée après le début de la séquence de démarrage, la comparaison, par le circuit de protection, entre la valeur de comptage et une première valeur de référence ; et - si la valeur de comptage est inférieure à la première valeur de référence, la modification, par le circuit de protection, de la valeur de comptage en la première valeur de référence. Selon un mode de réalisation, la valeur de comptage est stockée dans un registre du compteur monotone, la modification de la valeur de comptage en la première valeur de référence consistant en l’écrasement de la valeur de comptage par la première valeur de référence dans ledit registre. Selon un mode de réalisation, le procédé comprend en outre la comparaison, par le circuit de protection, entre une valeur courante d’un compteur matériel cadencé par une horloge de référence avec une valeur seuil afin de déterminer si la première durée est atteinte. Selon un mode de réalisation, le procédé comprend en outre la désactivation du circuit de protection lorsque la première durée est atteinte. Selon un mode de réalisation, le procédé comprend : - après une deuxième durée, la comparaison, par le circuit de protection, entre la valeur de comptage et une deuxième valeur de référence ; et - si la valeur de comptage est inférieure à la deuxième valeur de référence, la modification, par le circuit de protection, de la valeur de comptage en la deuxième valeur de référence. Selon un mode de réalisation, le procédé comprend en outre la génération de la valeur de comptage par le compteur monotone lors d’une première phase de la séquence de démarrage. Selon un mode de réalisation, le procédé comprend : - la transmission, par le compteur monotone, de la valeur de comptage à un circuit de contrôle d’accès d’une mémoire ; et - la lecture, sur la base de la valeur de comptage, de premières données stockées dans la mémoire. Selon un mode de réalisation, la lecture des premières données est interdite par le circuit de contrôle d’accès sur la base de la première valeur de référence. Selon un mode de réalisation, les premières données comprennent des premiers codes de démarrage. Selon un mode de réalisation, le procédé comprend en outre la lecture, sur la base de la valeur de comptage, de deuxièmes données stockées dans la mémoire. Un mode de réalisation prévoit un dispositif de traitement comprenant : - un compteur monotone configuré pour protéger une séquence de démarrage du dispositif en incrémentant une valeur de comptage ; et - un circuit de protection configuré pour : - une première durée après le début de la séquence de démarrage, comparer la valeur de comptage avec une première valeur de référence ; et - si la valeur de comptage est inférieure à première valeur de référence, modifier la valeur de comptage en une première valeur de référence. Selon un mode de réalisation, le circuit de protection est configuré en outre pour comparer une valeur courante d’un compteur matériel, cadencé par une horloge de référence, et une première valeur seuil afin de déterminer si la première durée est atteinte. Selon un mode de réalisation, le circuit de protection est configuré pour être désactivé lorsque la première durée est atteinte. Selon un mode de réalisation, le compteur monotone est configuré pour transmettre la valeur de comptage à un circuit de contrôle d’accès d’une mémoire, le circuit de contrôle d’accès étant configuré pour : - autoriser la lecture, sur la base de la valeur de comptage, de premières données stockées dans la mémoire ; et - ne pas autoriser la lecture des premières données sur la base de la première valeur de référence. Selon un mode de réalisation, le circuit de contrôle d’accès est configuré en outre pour autoriser la lecture de deuxièmes données sur la base de la valeur de comptage. 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, de façon schématique et sous forme de blocs, un mode de réalisation d’un dispositif de traitement selon un mode de réalisation de la présente description ; la représente de façon schématique un circuit de protection selon un mode de réalisation de la présente description ; la représente des données et codes accessibles lors d’un démarrage sécurisé selon un mode de réalisation de la présente description ; la est un organigramme représentant des opérations d’un procédé de démarrage sécurisé d’un dispositif de traitement selon un exemple de réalisation de la présente description ; la est un chronogramme représentant un exemple du déroulement d’un démarrage sécurisé d’un dispositif de traitement ; la est un chronogramme représentant un exemple du déroulement d’un démarrage sécurisé d’un dispositif de traitement selon un exemple de réalisation de la présente description ; la est un chronogramme représentant un autre exemple du déroulement d’un démarrage sécurisé d’un dispositif de traitement selon un exemple de réalisation de la présente description ; la est un chronogramme représentant un autre exemple du déroulement d’un démarrage sécurisé d’un dispositif de traitement selon un exemple de réalisation de la présente description ; la est un organigramme représentant des opérations d’un procédé de démarrage sécurisé d’un dispositif de traitement selon un exemple de réalisation de la présente description ; et la est un organigramme représentant des opérations d’un procédé de démarrage sécurisé d’un dispositif de traitement selon un autre exemple de réalisation de la présente description. Procédé comprenant : - la protection d’une séquence de démarrage d’un dispositif de traitement (102) par des incrémentations d’une valeur de comptage (TIL) générée par un compteur monotone (106) ; - une première durée (x) après le début de la séquence de démarrage (RESET), la comparaison, par le circuit de protection (113), entre la valeur de comptage et une première valeur de référence (M) ; et - si la valeur de comptage est inférieure à la première valeur de référence, la modification, par le circuit de protection (113), de la valeur de comptage en la première valeur de référence. Procédé selon la revendication 1, dans lequel la valeur de comptage (TIL) est stockée dans un registre du compteur monotone (106), la modification de la valeur de comptage en la première valeur de référence (M) consistant en l’écrasement de la valeur de comptage par la première valeur de référence dans ledit registre. Procédé selon la revendication 1 ou 2, comprenant en outre la comparaison, par le circuit de protection (113), entre une valeur courante (COUNT) d’un compteur matériel (115) cadencé par une horloge de référence avec une valeur seuil (xT, x1) afin de déterminer si la première durée (x) est atteinte. Procédé selon l’une quelconque des revendications 1 à 3, comprenant en outre la désactivation du circuit de protection (113) lorsque la première durée (x) est atteinte. Procédé selon l’une quelconque des revendications 1 à 4, comprenant : - après une deuxième durée (y), la comparaison, par le circuit de protection (113), entre la valeur de comptage (TIL) et une deuxième valeur de référence (x2) ; et - si la valeur de comptage est inférieure à la deuxième valeur de référence (N), la modification, par le circuit de protection (113), de la valeur de comptage en la deuxième valeur de référence (N). Procédé selon l’une quelconque des revendication 1 à 5, comprenant en outre la génération de la valeur de comptage (TIL) par le compteur monotone (106) lors d’une première phase de la séquence de démarrage. Procédé selon l’une quelconque des revendications 1 à 6, comprenant : - la transmission, par le compteur monotone (106), de la valeur de comptage (TIL) à un circuit de contrôle d’accès (108) d’une mémoire (104) ; et - la lecture, sur la base de la valeur de comptage, de premières données (118) stockées dans la mémoire. Procédé selon la revendication 7, dans lequel la lecture des premières données (118) est interdite par le circuit de contrôle d’accès (108) sur la base de la première valeur de référence (M). Procédé selon la revendication 7 ou 8, dans lequel les premières données (118) comprennent des premiers codes de démarrage. Procédé selon l’une quelconque des revendications 7 à 9, comprenant en outre la lecture, sur la base de la valeur de comptage (TIL), de deuxièmes données stockées dans la mémoire (120, 122). Dispositif de traitement (102) comprenant : - un compteur monotone (106) configuré pour protéger une séquence de démarrage du dispositif en incrémentant une valeur de comptage (TIL) ; et - un circuit de protection (113) configuré pour : - une première durée (x, y) après le début de la séquence de démarrage, comparer la valeur de comptage avec une première valeur de référence (M, N) ; et - si la valeur de comptage est inférieure à première valeur de référence, modifier la valeur de comptage en une première valeur de référence. Dispositif de traitement (102) selon la revendication 11, dans lequel le circuit de protection (113) est configuré en outre pour comparer une valeur courante (COUNT) d’un compteur matériel (115), cadencé par une horloge de référence, et une première valeur seuil (xT, x1, x2) afin de déterminer si la première durée (x, y) est atteinte. Dispositif de traitement (102) selon la revendication 11 ou 12, dans lequel le circuit de protection (113) est configuré pour être désactivé lorsque la première durée (x, y) est atteinte. Dispositif de traitement (102) selon l’une quelconque des revendications 11 à 13, dans lequel : - le compteur monotone (106) est configuré pour transmettre la valeur de comptage (TIL) à un circuit de contrôle d’accès (108) d’une mémoire (104), le circuit de contrôle d’accès étant configuré pour : - autoriser la lecture, sur la base de la valeur de comptage, de premières données (118) stockées dans la mémoire ; et - ne pas autoriser la lecture des premières données sur la base de la première valeur de référence (M, N). Dispositif de traitement (102) selon la revendication 14, dans lequel le circuit de contrôle d’accès (108) est configuré en outre pour autoriser la lecture de deuxièmes données (120, 122) sur la base de la valeur de comptage (TIL).