Search

EP-4411538-B1 - METHOD FOR PROTECTING ACCESS TO START-UP PROGRAMS

EP4411538B1EP 4411538 B1EP4411538 B1EP 4411538B1EP-4411538-B1

Inventors

  • BENHAMMADI, JAWAD

Dates

Publication Date
20260506
Application Date
20240124

Claims (12)

  1. Method of emulation of N boot programs (BootL1, BootL2, BootL3, BootL4) in a memory (104), N being greater than 2, wherein the size of a no-access region of the memory (HDP) containing the boot programs once executed increases once each program has been executed; the size of the no-access region of the memory being defined by the content of a first volatile storage register (HDPxEXT), having its value incremented by the region enlargement value at each end of an execution of a boot program; and the first register (HDPxEXT) being monotonously increasing.
  2. Method according to claim 1, wherein the boot programs are loaded one after the others into successive zones (218, 220, 222, 224) of the memory, the access to each zone being blocked once the concerned program has been executed, by enlargement of the no-access region.
  3. Method according to claim 1 or 2, wherein a boot program, starting from the second one, is loaded into the memory after the previous program once the access thereto has been closed by enlargement of the region.
  4. Method according to any of claim 3, wherein the increment of the value contained in the first register (HDPxEXT) is in number of memory sectors.
  5. Method according to any of claims 1 to 4, wherein the content of a second volatile storage register (HDPxEXT_ACCDIS) comprises the value defining a status, authorized or closed, of the access to the region.
  6. Method according to claim 5, wherein the second register (HDPxEXT_ACCDIS) can only be reset by a resetting of the memory.
  7. Method according to claim 5 or 6, wherein the second register is over a plurality of bits.
  8. Method according to claim 7, wherein the two values defining the status of the access to said region are distant by more than one bit.
  9. Method according to any of claims 5 to 8, wherein when the content of the second register (HDPxEXT_ACCDIS) is different from one of said two values, the access to the region is closed until the resetting of the memory.
  10. Method according to any of claims 5 to 9, wherein when the content of the second register (HDPxEXT_ACCDIS) is different from one of said two values, the content of the first volatile storage register (HDPxEXT) can no longer be changed.
  11. Method according to any of claims 1 to 10, wherein a maximum size of the region (HDP) is predefined, and application programs can only be loaded outside said region.
  12. Electronic circuit configured to implement the method according to any of claims 1 to 11.

Description

Domaine technique La présente description concerne de façon générale les procédés d'émulation de programmes de démarrage dans une mémoire ainsi que les circuits mettant en oeuvre ces procédés. Technique antérieure De nombreux circuits électroniques comme les microcontrôleurs utilisent un programme de démarrage (BOOT en anglais) qui est chargé dans une mémoire non volatile du circuit au démarrage pour exécuter ensuite une application de démarrage. Pour des raisons de sécurité, une fois exécuté, le programme de démarrage doit être rendu inaccessible de l'extérieur du circuit. Cela pose notamment problème lorsque plusieurs programmes de démarrage successifs doivent être exécutés. GB 2 557 305 A concerne un microcontrôleur qui possède une unité logique de protection mémoire configurée pour accéder à un ensemble de registres de configuration de protection mémoire. Lorsqu'une requête tente d'accéder à une adresse mémoire située dans une zone protégée, l'unité logique de protection mémoire détermine si la requête satisfait aux critères d'accès de cette zone, lesquels dépendent des données stockées dans les registres de configuration de protection mémoire. Si les critères ne sont pas satisfaits, l'unité logique de protection mémoire bloque la requête et empêche toute écriture dans les registres de configuration de protection mémoire, sauf si ces derniers sont à l'état initial. Ainsi, une fois que le chargeur de démarrage a été exécuté, ce dernier écrira les valeurs appropriées dans les registres de configuration de protection de la mémoire ce qui aura pour effet d'empêcher non seulement toute modification de ces registres par d'autres logiciels mais aussi toute modification de la zone mémoire stockant le chargeur de démarrage. FR 3 121 526 A1 concerne un procédé de démarrage sécurisé d'un dispositif de traitement, le procédé comprenant : - la génération, par un compteur monotone et lors d'une première phase de démarrage, d'une première valeur de comptage ; - la transmission, par le compteur monotone, de la première valeur de comptage à un circuit de contrôle d'accès d'une mémoire ; - la lecture, sur la base de la première valeur de comptage, de premières données stockées dans la mémoire ;- la génération, par ledit compteur et lors d'une deuxième phase de démarrage, d'une deuxième valeur de comptage supérieure à la première valeur de comptage, le circuit de contrôle d'accès de la mémoire étant configuré de sorte que la lecture des premières données ne soit pas autorisée sur la base de la deuxième valeur de comptage. Résumé de l'invention Il existe un besoin de fournir un procédé qui permette la mise en oeuvre d'au moins trois programmes de démarrage tout en garantissant leur mise en sécurité après leur exécution. Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus. L'invention est spécifiée par les revendications indépendantes annexées. En outre, des modes de réalisation préférés sont définis par les revendications dépendantes. Un mode de réalisation prévoit un procédé de protection d'accès de N programmes de démarrage dans une mémoire, N étant supérieur à 2, dans lequel la taille d'une région d'accès interdit de la mémoire contenant les programmes de démarrage une fois exécutés augmente une fois chaque programme exécuté. Dans un mode de réalisation, les programmes de démarrage sont chargés les uns après les autres dans des zones successives de la mémoire, l'accès à chaque zone étant bloqué une fois le programme concerné exécuté, par agrandissement de la région d'accès interdit. Dans un mode de réalisation, un programme de démarrage à partir du deuxième est chargé dans la mémoire à la suite du programme précédent une fois que l'accès de ce dernier a été interdit par agrandissement de la région. La taille de la région d'accès interdit de la mémoire est définie par le contenu d'un premier registre de mémorisation volatile, dont la valeur est incrémentée de la valeur d'agrandissement de la région à chaque fin d'exécution d'un programme de démarrage. Dans un mode de réalisation, l'incrément de la valeur contenue dans le premier registre est en nombre de secteurs mémoire. Le premier registre est monotone croissant. Dans un mode de réalisation, le contenu d'un deuxième registre de mémorisation volatile comprend la valeur définissant un statut, autorisé ou interdit, de l'accès de la région. Dans un mode de réalisation, le deuxième registre ne peut être réinitialisé que par une réinitialisation de la mémoire. Dans un mode de réalisation, le deuxième registre est sur 1 bit. Dans un mode de réalisation, le deuxième registre est sur plusieurs bits. Dans un mode de réalisation, les deux valeurs définissant le statut de l'accès à ladite région sont distantes de plus d'un bit. Dans un mode de réalisation, lorsque le contenu du deuxième registre est différent de l'une desdites deux valeurs, l'accès à la région est interdit jusqu'à réinitialisation de la mémoire. Dans un mode de réalisation, lorsque l