Brevet FR3136101A1 — publié le 20231201

Mémoire non volatile avec circuit de contrôle d’accès pour démarrage sécurisé d’un dispositif électronique La présente description concerne un procédé de démarrage d’un dispositif électronique (100) comprenant : - une première phase dans laquelle un ou plusieurs premiers codes stockés dans une première zone immutable (116) d’une mémoire non volatile (104) sont exécutés, la mémoire non volatile comprenant en outre un circuit de contrôle d’accès (120) configuré pour interdire l’exécution de tous codes stockés dans une deuxième zone (118) de la mémoire non volatile lors de la première phase ; et - une deuxième phase dans laquelle un ou plusieurs deuxièmes codes stockés dans la deuxième zone sont exécutés, le circuit de contrôle d’accès étant configuré pour interdire tout accès à l’ensemble de la première zone lors de la deuxième phase. Figure pour l'abrégé : Fig. 1 Mémoire non volatile avec circuit de contrôle d’accès pour démarrage sécurisé d’un dispositif électronique 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 électronique 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 importante et uniquement des codes et/logiciels authentiques doivent être exécutés. Il est souhaitable d’empêcher un attaquant du dispositif d’introduire des codes et/ou logiciels malveillants dans le dispositif et de les exécuter durant la séquence de démarrage. Toutefois des solutions existantes sont souvent inefficaces à cet égard. Il existe un besoin d’améliorer la sécurisation des procédures de démarrage et plus particulièrement d’améliorer la protection contre des attaques ayant pour objet de faire exécuter des codes de démarrage malveillants. Un mode de réalisation pallie tout ou partie des inconvénients des dispositifs de traitement connus. Un mode de réalisation prévoit un procédé de démarrage d’un dispositif électronique comprenant : - une première phase dans laquelle un ou plusieurs premiers codes stockés dans une première zone immutable d’une mémoire non volatile sont exécutés, la mémoire non volatile comprenant en outre un circuit de contrôle d’accès configuré pour interdire l’exécution de tous codes stockés dans une deuxième zone de la mémoire non volatile lors de la première phase ; et - une deuxième phase dans laquelle un ou plusieurs deuxièmes codes stockés dans la deuxième zone sont exécutés, le circuit de contrôle d’accès étant configuré pour interdire tout accès à l’ensemble de la première zone lors de la deuxième phase. Selon un mode de réalisation, les première et deuxième zones sont définies par une ou plusieurs adresses contenues dans un registre non volatile. Selon un mode de réalisation, le passage de la première phase à la deuxième phase est déclenché par le stockage d’une valeur de référence dans un registre volatile du dispositif. Selon un mode de réalisation, le circuit de contrôle d’accès est en outre configuré pour lire le contenu du registre volatile et pour interdire tout accès à l’ensemble de la première zone sur la base de la valeur de référence et pour interdire l’exécution de tous codes stockés dans la deuxième zone sur la base d’une valeur différente de la valeur de référence. Selon un mode de réalisation, le circuit de contrôle d’accès est en outre configuré pour autoriser la lecture et l’écriture dans la deuxième zone de la mémoire non volatile lors de la première phase. Selon un mode de réalisation, le stockage de la valeur de référence dans le registre volatile du dispositif est provoqué par l’exécution d’un troisième code stocké dans la mémoire non volatile. Selon un mode de réalisation, le troisième code est stocké dans la première zone de la mémoire non volatile. Selon un mode de réalisation, le troisième code est stocké dans une troisième zone de la mémoire non volatile. Selon un mode de réalisation, le circuit de contrôle d’accès à la mémoire non volatile est configuré pour autoriser l’accès pour lecture et exécution des codes contenus dans la troisième zone et pour toujours interdire l’accès pour écriture dans la troisième zone lors de la première et de la deuxième phases. Selon un mode de réalisation, les premiers codes stockés dans la première zone sont des codes de démarrage du dispositif. Selon un mode de réalisation, les deuxièmes codes stockés dans la deuxième zone sont des codes applicatifs. Un mode de réalisation prévoit une mémoire non volatile d’un dispositif électronique comprenant un circuit de contrôle d’accès, le circuit de contrôle d’accès étant configuré pour : - durant une première phase dans laquelle un ou plusieurs premiers codes stockés dans une première zone de la mémoire non volatile sont exécutés, interdire l’exécution de tous codes stockés dans une deuxième zone de la mémoire non volatile ; et - durant une deuxième phase durant laquelle un ou plusieurs deuxièmes codes stockés dans la deuxième zone sont exécutés, interdire tous accès à l’ensemble de la première zone. Selon un mode de réalisation, la mémoire ci-dessus comprend un registre non volatile, les première et deuxième zones étant définies par une ou plusieurs adresses contenues dans le registre non volatile. Un mode de réalisation prévoit un dispositif électronique comprenant la mémoire non volatile ci-dessus, et un registre volatile, dans lequel le passage de la première phase à la deuxième phase est déclenché par le stockage d’une valeur de référence dans le registre volatile. Selon un mode de réalisation, le circuit de contrôle d’accès est en outre configuré pour lire le contenu du registre volatile et pour interdire tout accès à l’ensemble de la première zone sur la base de la valeur de référence et pour interdire l’exécution de tous codes stockés dans la deuxième zone sur la base d’une valeur différente de la valeur de référence. 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 très schématique et sous forme de blocs, un dispositif électronique selon un mode de réalisation de la présente description ; la illustre des zones mémoire accessibles durant et après le démarrage du dispositif de la selon un mode de réalisation de la présente description ; la illustre des zones mémoire accessibles durant et après le démarrage du dispositif de la selon un autre mode 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 électronique selon un exemple de réalisation de la présente description. Procédé de démarrage d’un dispositif électronique (100) comprenant : - une première phase dans laquelle un ou plusieurs premiers codes stockés dans une première zone immutable (116) d’une mémoire non volatile (104) sont exécutés, la mémoire non volatile comprenant en outre un circuit de contrôle d’accès (120) configuré pour interdire l’exécution de tous codes stockés dans une deuxième zone (118) de la mémoire non volatile lors de la première phase ; et - une deuxième phase dans laquelle un ou plusieurs deuxièmes codes stockés dans la deuxième zone sont exécutés, le circuit de contrôle d’accès étant configuré pour interdire tout accès à l’ensemble de la première zone lors de la deuxième phase. Procédé selon la revendication 1, dans lequel les première et deuxième zones (116, 118) sont définies par une ou plusieurs adresses contenues dans un registre non volatile (119). Procédé selon la revendication 1 ou 2, dans lequel le passage de la première phase à la deuxième phase est déclenché par le stockage d’une valeur de référence dans un registre volatile (112) du dispositif (100). Procédé selon la revendication 3, dans lequel le circuit de contrôle d’accès (120) est en outre configuré pour lire le contenu du registre volatile (112) et pour interdire tout accès à l’ensemble de la première zone (116) sur la base de la valeur de référence et pour interdire l’exécution de tous codes stockés dans la deuxième zone (118) sur la base d’une valeur différente de la valeur de référence. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel le circuit de contrôle d’accès (120) est en outre configuré pour autoriser la lecture et l’écriture dans la deuxième zone (118) de la mémoire non volatile (104) lors de la première phase. Procédé selon l’une quelconque des revendications 3 à 5, dans lequel le stockage de la valeur de référence dans le registre volatile (112) du dispositif (100) est provoqué par l’exécution d’un troisième code stocké dans la mémoire non volatile (104). Procédé selon la revendication 6, dans lequel le troisième code est stocké dans la première zone (116) de la mémoire non volatile (104). Procédé selon la revendication 6, dans lequel le troisième code est stocké dans une troisième zone (300) de la mémoire non volatile (104). Procédé selon la revendication 8, dans lequel le circuit de contrôle d’accès (120) à la mémoire non volatile (104) est configuré pour autoriser l’accès pour lecture et exécution des codes contenus dans la troisième zone (300) et pour toujours interdire l’accès pour écriture dans la troisième zone lors de la première et de la deuxième phases. Procédé selon l’une quelconque des revendications 1 à 9, dans lequel les premiers codes stockés dans la première zone (116) sont des codes de démarrage du dispositif (100). Procédé selon l’une quelconque des revendications 1 à 10, dans lequel les deuxièmes codes stockés dans la deuxième zone (118) sont des codes applicatifs. Mémoire non volatile (104) d’un dispositif électronique (100) comprenant un circuit de contrôle d’accès (120), le circuit de contrôle d’accès étant configuré pour : - durant une première phase dans laquelle un ou plusieurs premiers codes stockés dans une première zone (116) de la mémoire non volatile sont exécutés, interdire l’exécution de tous codes stockés dans une deuxième zone (118) de la mémoire non volatile ; et - durant une deuxième phase durant laquelle un ou plusieurs deuxièmes codes stockés dans la deuxième zone sont exécutés, interdire tous accès à l’ensemble de la première zone. Mémoire non volatile selon la revendication 12, comprenant un registre non volatile (119), les première et deuxième zones (116, 118) étant définies par une ou plusieurs adresses contenues dans le registre non volatile (119). Dispositif électronique (100) comprenant la mémoire non volatile selon la revendication 12 ou 13, et un registre volatile (112), dans lequel le passage de la première phase à la deuxième phase est déclenché par le stockage d’une valeur de référence dans le registre volatile (112). Dispositif selon la revendication 14, dans lequel le circuit de contrôle d’accès (120) est en outre configuré pour lire le contenu du registre volatile (112) et pour interdire tout accès à l’ensemble de la première zone (116) sur la base de la valeur de référence et pour interdire l’exécution de tous codes stockés dans la deuxième zone (118) sur la base d’une valeur différente de la valeur de référence.