FR3077399A1 - Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee - Google Patents
Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee Download PDFInfo
- Publication number
- FR3077399A1 FR3077399A1 FR1850675A FR1850675A FR3077399A1 FR 3077399 A1 FR3077399 A1 FR 3077399A1 FR 1850675 A FR1850675 A FR 1850675A FR 1850675 A FR1850675 A FR 1850675A FR 3077399 A1 FR3077399 A1 FR 3077399A1
- Authority
- FR
- France
- Prior art keywords
- software
- boot
- memory
- area
- zone
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
L'invention concerne un dispositif pour éviter l'obsolescence d'un calculateur (C) comprenant un processeur (P) pourvu ; - d'un logiciel de boot-physique inscrit dans une mémoire permanente (P.MP) comprenant une zone de mémoire programmable une seule fois (P.OTP) et, - d'un logiciel-boot stocké dans une zone de logiciel-boot (P.LB) d'une mémoire non-volatile temporaire (P.NVT) comprenant, en outre, une zone de logiciel-opérationnel (P.LO) et une zone libre (P.LB bis) de taille au moins égale à la taille de la zone de logiciel-boot (P.LB), caractérisé en ce qu'il comprend, dans la zone de logiciel-boot (P.LB), un logiciel de recopie systématique du logiciel-boot (L.BRB) activé à chaque téléchargement externe pour l'installation de la mise à jour du logiciel-opérationnel et un procédé pour la mise en œuvre dudit dispositif.
Description
Dispositif et procédé pour éviter l’obsolescence des calculateurs à logiciel téléchargeable utilisant une mémoire à durée de rétention limitée [0001] L’invention s’intéresse à un dispositif et un procédé pour éviter l’obsolescence des calculateurs à logiciel téléchargeable utilisant une mémoire à durée de rétention limitée.
[0002] En particulier, l’invention concerne un dispositif et un procédé pour éviter l’obsolescence d’un calculateur en recopiant systématiquement le logiciel boot à chaque téléchargement de mise à jour.
ÉTAT DE LA TECHNIQUE ANTÉRIEURE [0003] Les appareils électroniques contiennent des données informatiques qui sont stockées dans des mémoires. Ces mémoires ont généralement une durée limitée de rétention de l’information. En d’autres termes, l’information mémorisée devient illisible au bout d’un certain temps car elle s’efface d’elle-même, y compris en l’absence d’utilisation et de mise sous tension de l’appareil. C’est le cas, par exemple, des appareils utilisant une mémoire de type flash telle que les clefs USB, les ordinateurs avec mémoire de type SSD, les calculateurs de véhicules automobiles ; ...
[0004] La mémoire flash est aujourd’hui largement utilisée dans les équipements électroniques car elle permet de télécharger facilement et rapidement un logiciel. Grâce à cette mémoire flash, les erreurs du logiciel peuvent être corrigées tardivement dans la conception et même ultérieurement pendant son utilisation, ce qui n’était pas possible autrefois lorsque le logiciel était gravé de façon permanente dans le semi-conducteur sous une forme dépendant des processeurs spécifiques à chaque équipement.
[0005] Lorsque des données informatiques deviennent illisibles, parce que leur durée de rétention est dépassée, l’équipement tombe en panne. Un dépannage peut se faire en procédant au rechargement des données informatiques, si cela a été prévu à la conception et si celles-ci sont disponibles sur un autre support. Dans tous les cas, il y a risque de perte des données informatiques.
[0006] La durée de rétention peut aller de quelques années pour les clefs USB à une vingtaine d’années pour le boîtier électronique d’un véhicule automobile. Dans le cas d’une mémoire Flash, la durée de rétention est déterminée pour chaque donnée à partir de la date de son écriture. Une panne survient donc systématiquement un certain moment après expiration de la durée de rétention garantie par le fabricant de la mémoire, que l’équipement soit sous tension ou non. Toutefois, à chaque rechargement de données, leur lecture est à nouveau possible pendant au moins la durée de rétention.
[0007] La prévision de la date de survenance d’une panne est difficile du fait que la durée de rétention effective des informations n’est pas toujours connue de l’utilisateur. En effet, cette durée peut dépendre des conditions d’utilisation, par exemple, du nombre d’utilisations déjà effectuées, de la température d’utilisation...etc. De plus, dans certains équipements, les données peuvent être rechargées par lots et en différents instants, par exemple, lors de l’utilisation d’une clef USB, ce qui rend difficile la prévision de la date de panne. Par ailleurs, une panne peut se produire sans que celle-ci soit détectée immédiatement, en particulier, si elle survient sur une zone de données qui n’est pas souvent ou pas encore utilisée.
[0008] On considère qu’il y a obsolescence lorsque la panne se produit et lorsqu’il n’est plus possible pour l’utilisateur de procéder au rechargement des données informatiques perdues. Cette situation résulte du fait que le rechargement des données nécessite la mise en œuvre d’un logiciel de communication et d’un logiciel de rechargement embarqués qui se sont eux-mêmes effacés et sont devenus illisibles parce qu’ils étaient eux-aussi chargés dans une mémoire flash.
[0009] En cas d’obsolescence, il est théoriquement possible de recharger les données en accédant directement aux broches physiques des composants électroniques, grâce à un outillage spécifique utilisé par des opérateurs spécialisés. Mais, des dispositifs de cyber-sécurité peuvent empêcher ou interdire complètement ce rechargement, afin d’éviter le piratage des logiciels.
[0010] 11 existe déjà des procédés, tels que celui décrit dans le W0201721606, qui est destiné au téléchargement de requêtes d'écriture de données logicielles dans au moins une mémoire d'au moins un calculateur embarqué dans un véhicule. Les requêtes sont transmises aux calculateurs en trames initiales dans un premier réseau et après conversion en trames modifiées dans un second réseau à multiplexage temporel et à bande passante divisée en plusieurs canaux de communication attribués chacun à un calculateur. Les trames initiales sont segmentées en trames modifiées contenant chacune un nombre d'octets inférieur ou égal à un nombre maximal admissible par le second réseau. Quand le téléchargement d'un calculateur est terminé ou lorsque des canaux sont libres, ces canaux sont ré-attribués à au moins l’un des calculateurs restants pour l'envoi de trames modifiées en plus de celles reçues par son canal attribué et recomposition dans le calculateur restant par regroupement des trames modifiées et écriture en mémoire des données.
[0011] Le DE102015211540 décrit un procédé de programmation d'un calculateur de véhicule automobile qui comprend les étapes suivantes : écriture d'un premier module logiciel dans le calculateur par le biais d'une première interface; blocage de la première interface du calculateur; écriture d'une clé, par le biais d'une seconde interface, dans une zone de mémoire sécurisée du calculateur; écriture d'un logiciel de véhicule chiffré dans le calculateur par le biais de la seconde interface ; déchiffrement du logiciel de véhicule chiffré par le premier module logiciel à l'aide de la clé écrite ; enregistrement du logiciel de véhicule déchiffré dans une zone de mémoire du calculateur; et installation d'une protection en lecture pour la zone de mémoire du logiciel de véhicule déchiffré.
[0012] Le FR2971349 décrit un procédé de reprogrammation d'un calculateur par modification du contenu d'une mémoire réinscriptible non volatile dudit calculateur au moyen d'un logiciel de reprogrammation mémorisé dans la mémoire réinscriptible non volatile.
[0013] Le FR2875920 décrit un procédé de mise en œuvre d'au moins un logiciel téléchargé dans un calculateur électronique embarqué à bord d'un véhicule automobile, du type comportant des moyens de stockage de logiciels de commande de son fonctionnement, se présentant sous la forme de mémoires non volatiles de type EEPROM et volatiles de type RAM, à l'aide d'un outil de téléchargement extérieur au véhicule, est caractérisé en ce qu'au moins un logiciel est téléchargé par l'outil extérieur en mémoire RAM du calculateur et exécuté par le calculateur à partir de cette mémoire RAM.
[0014] Cependant, aucun des procédés et/ou dispositifs décrits dans ces documents antérieurs ne permet d’éviter l’obsolescence des calculateurs embarqués à logiciel téléchargeable utilisant une mémoire à durée limitée de rétention.
[0015] En outre, on ne dispose pas aujourd’hui de moyens qui permettraient de gérer le calendrier de rechargement du logiciel-boot avant son effacement.
[0016] Ainsi, dans le domaine automobile, cette opération n’est pas prévue dans les opérations habituelles de maintenance. Dans ces conditions, il faudrait effectuer cette opération avant l’expiration de la durée de rétention de la mémoire qui contient le logiciel-boot, mais il serait abusif et préjudiciable d’effectuer cette opération trop souvent car une mémoire-non-volatile possède un nombre limité d’écritures autorisées qui, en cas de dépassement, deviennent inutilisables
EXPOSÉ DE L’INVENTION [0017] La présente invention a pour but de résoudre les problèmes techniques posés par l’art antérieur en proposant un dispositif et un procédé permettant d’éviter l’obsolescence des calculateurs embarqués utilisant de la mémoire ayant une durée de rétention limitée, notamment pour pérenniser leur logiciel de démarrage qui n’est pas rechargeable pour raison de cyber-sécurité.
[0018] En particulier, l’invention met en œuvre automatiquement le dispositif à chaque téléchargement de logiciel d’application dans le calculateur de façon à rester compatible avec la technologie mémoire dudit calculateur sans nécessiter d’outillage ni d’opération spécifiques.
[0019] Ce but est atteint, selon l’invention, au moyen d’un Dispositif pour éviter l’obsolescence d’un calculateur comprenant un processeur pourvu ;
- d’un logiciel de boot-physique inscrit dans une mémoire permanente comprenant une zone de mémoire programmable une seule fois et,
- d’un logiciel-boot stocké dans une zone de logiciel-boot d’une mémoire non-volatile temporaire comprenant, en outre, une zone de logiciel-opérationnel et une zone libre de taille au moins égale à la taille de la zone de logiciel-boot, caractérisé en ce qu’il comprend, dans la zone de logiciel-boot, un logiciel de recopie systématique du logiciel-boot activé à chaque téléchargement externe pour l'installation de la mise à jour du logiciel-opérationnel.
[0020] Selon une variante du dispositif de l’invention, la mémoire non-volatiletemporaire est choisi parmi les mémoires Flash NOR et Flash NAND.
[0021] Selon une caractéristique avantageuse, le logiciel-boot est chargé en deux exemplaires, respectivement, dans la zone de logiciel-boot et dans la zone libre à des fins de « robustification ».
[0022] Selon une autre caractéristique avantageuse, le dispositif comprend un logiciel complémentaire du logiciel boot-physique chargé dans la zone de mémoire permanente et destiné à vérifier l’intégrité du logiciel-boot.
[0023] De préférence, le logiciel complémentaire du logiciel boot-physique est chargé dans la zone de mémoire programmable une seule fois.
[0024] Un autre objet de l’invention est un procédé pour la mise en œuvre du dispositif tel que défini ci-dessus, caractérisé en ce que, lors de l’installation de la mise à jour du logiciel-opérationnel, on efface la zone libre de la mémoire non-volatile temporaire et on y copie le contenu de la zone de logiciel-boot, on active le logiciel de recopie systématique du logiciel-boot à partir de sa copie dans la zone libre, puis on efface la zone de logiciel-boot et on la recharge avec le contenu de la zone libre et on effectue l’installation de la mise à jour du logiciel-opérationnel.
[0025] Selon une caractéristique avantageuse du procédé, préalablement à l’installation de la mise à jour du logiciel-opérationnel, on vérifie l’intégrité du logiciel-boot dans la zone au moyen du logiciel complémentaire du logiciel bootphysique chargé dans la zone de mémoire permanente.
[0026] Le cas échéant, si le logiciel-boot est intègre et lisible dans la zone du logiciel-boot, on effectue l’installation de la mise à jour du logiciel-opérationnel à partir de cette zone.
[0027] En revanche, si le logiciel-boot est corrompu, on vérifie l’intégrité du logiciel-boot dans la zone libre au moyen du logiciel complémentaire du logiciel bootphysique puis on effectue l’installation de la mise à jour du logiciel-opérationnel à partir de cette dernière zone.
[0028] Le dispositif et le procédé de l’invention permettent d’éviter l’obsolescence d’un calculateur dont le logiciel est rechargeable comme le sont tous les calculateurs embarqués dans les véhicules automobiles.
[0029] Le dispositif de l’invention est compatible avec le matériel informatique déjà existant (calculateurs et processeurs) et permet d’éviter la perte partielle de données ou de programme et améliore ainsi la sécurité, en particulier, si cette perte survient en situation de conduite autonome.
[0030] Le procédé de l’invention est effectué intégralement à l’intérieur du calculateur et de façon automatique et est donc utilisable par tout acteur de maintenance, sans nécessiter l’apport d’informations de la part du constructeur.
[0031] Le procédé de l’invention permet, en outre, de « robustifier » le processus de démarrage des calculateurs.
BRÈVE DESCRIPTION DES FIGURES [0032] D’autres caractéristiques et avantages de l’invention ressortiront à la lecture de la description qui va suivre, en référence à la figure annexée et détaillée ciaprès.
La figure 1 est une vue schématique de la structure d’un calculateur.
DESCRIPTION DÉTAILLÉE DE MODES DE REALISATION [0033] Naturellement, les modes de réalisation illustrés, notamment, par la figure présentée ci-dessus et décrits ci-après ne sont donnés qu'à titre d’exemples non limitatif. Il est explicitement prévu que l'on puisse combiner entre eux ces différents modes pour en proposer d'autres.
[0034] Un calculateur désigne, dans le contexte de l’invention, un équipement ou un appareil et, plus généralement, tout objet qui contient des données mémorisées et qui effectue un traitement ou des lectures et écritures de ces données.
[0035] Un processeur est un composant du calculateur qui permet d’effectuer des traitements de données, c’est-à-dire, au moins l’acquisition, le stockage et la restitution ou rutilisation de tout ou partie des données informatiques mémorisées dans le calculateur. Pour fonctionner, le processeur met en œuvre un programme informatique ou logiciel ; ce logiciel étant lui-même composé d’instructions et de données.
[0036] Le domaine de l’invention couvre tout type de calculateur et de processeur, quelles que soient les technologies utilisées (électricité, électronique, optique, ...). Un exemple de technologie actuellement utilisée pour réaliser des processeurs consiste à transporter et stocker des électrons en utilisant notamment un semi-conducteur à base de silicium, des motifs avec des transistors agencés en CMOS et des interconnexions de ces motifs en cuivre ou aluminium.
[0037] Une mémoire permanente est une mémoire dans laquelle les données sont inscrites sans date limite de conservation. Les mémoires électroniques permanentes sont des mémoires programmées une seule fois, soit lors de la fabrication du processeur par des interconnexions entre les transistors (dépendant du masque de fabrication du semi-conducteur), soit par le fabricant de calculateur (mémoire de type OTP - « One Time Programmable »).
[0038] Une mémoire volatile est une mémoire de travail qui ne conserve pas durablement ses données. Ces données sont alors effacées, par exemple, après une coupure de l’alimentation du calculateur. Ainsi, les mémoires de type RAM sont des mémoires volatiles présentes dans tous les calculateurs.
[0039] Une mémoire non-volatile est une mémoire qui conserve les données en toutes circonstances.
[0040] Une mémoire-non-volatile-temporaire (dénommée NVT par la suite) est une mémoire-non-volatile qui perd ses données au bout d’un certain temps, qu’elle soit en fonctionnement ou hors alimentation et quelle que soit sa technologie. C’est le cas, par exemple, d’une mémoire en technologie dite Flash, quelle que soit la technologie en Flash NOR ou en Flash NAND. Dans une mémoire Flash, chaque donnée est constituée d’un ensemble d’électrons maintenus dans une zone par une barrière de potentiels générés par des semi-conducteurs. Régulièrement, des électrons sont perdus par effet quantique de sorte que l’information stockée se perd au bout de plusieurs mois ou de plusieurs années selon le type et la conception de la mémoire NVT.
[0041] Le temps-rétention d’une mémoire est la durée à partir de laquelle une information stockée dans cette mémoire s’efface d’elle-même et devient illisible, par exemple, selon le processus de perte d’électrons décrit ci-dessous pour les mémoires NVT de type Flash.
[0042] Un oubli est caractérisé si une donnée est devenue illisible totalement ou partiellement et si cette altération dépasse les capacités de correction intrinsèques à la mémoire en cause (code redondant cyclique CRC ...), notamment lorsque la durée de rétention est dépassée et que la donnée s’est effacée d’elle-même.
[0043] Le logiciel-opérationnel est l’ensemble des instructions et données qui permettent l’exécution des fonctions du calculateur après démarrage.
[0044] Le boot est l’ensemble des instructions et données qui servent pour la première mise en service ou la montée de version du logiciel du calculateur, puis à son démarrage après sa mise sous tension ou sa réinitialisation.
[0045] Le boot-physique est la partie du boot qui est réalisée selon un procédé permettant de stocker des instructions et données de façon pérenne, mais non modifiable après fabrication. Par exemple, les instructions et données sont gravées dans le semi-conducteur lors de la fabrication du composant électronique. Le bootphysique est la première partie du boot qui est mise en œuvre au moment du démarrage du processeur.
[0046] Le logiciel-boot est une partie du boot qui peut être chargée dans une mémoire non volatile du processeur au moment de la fabrication du calculateur, grâce à des outils spécifiques. Le logiciel-boot succède au boot-physique lors du démarrage du calculateur.
[0047] Le logiciel-boot-installation est une partie du logiciel-boot qui permet d’installer le logiciel-opérationnel dans la mémoire NVT d’un calculateur, par une opération de téléchargement depuis l’extérieur du calculateur.
[0048] Le logiciel-boot-initialisation est une partie du logiciel-boot qui permet d’initialiser le processeur et de charger dans sa mémoire le début du logicielopérationnel.
[0049] Le boot-sécurisé est un processus de cyber-sécurité qui permet au boot de fonctionner selon une chaîne de vérification à partir du boot physique en incluant notamment les opérations de vérification du logiciel-boot avant son utilisation, le contrôle des opérations d’installation et de mise à jour du logiciel-opérationnel et la vérification de l’intégrité de celui-ci avant son démarrage. Le boot-sécurisé empêche tout rechargement du logiciel-boot afin d’éviter le piratage du calculateur, ce piratage consistant à recharger le logiciel-boot avec un logiciel-boot inhibant le processus de boot-sécurisé.
[0050] Comme illustré par la figure 1, un calculateur (C) comprend un processeur (P) et optionnellement une mémoire-non-volatile-temporaire (C.NVT). Le détail du contenu de la mémoire-non-volatile-temporaire ainsi que divers autres éléments du calculateur (P) ne seront pas décrits car ils ne concernent pas l’invention.
[0051] Le processeur (P) comprend notamment une mémoire permanente (P.MP), une mémoire-non-volatile-temporaire (P.NVT) et une mémoire-volatile (P.V).
[0052] La mémoire permanente (P.MP) contient éventuellement une zone programmable une seule fois (P.OTP) qui, si elle existe, sera utilisée par l’invention. La mémoire permanente (P.MP) contient d’autres zones de données qui sont sans rapport avec la présente invention et qui ne seront donc pas décrits ici.
[0053] La mémoire non-volatile-temporaire du processeur (P.NVT) comprend une zone de logiciel-boot (P.LB), une zone de logiciel-opérationnel (P.LO) et une zone libre (P.LB bis) de taille au moins égale à la zone (P.LB) ainsi que d’autres zones de données qui sont sans rapport avec l’invention.
[0054] Chaque zone mentionnée peut elle-même comprendre plusieurs parties, dont le détail n’est pas utile pour l’invention.
[0055] Le plus souvent le calculateur utilise un processeur standard du commerce apte à satisfaire les besoins de différents domaines d’application. Dans ce but, le processeur possède un logiciel de boot-physique inscrit en mémoire permanente (P.MP). En effet, un même processeur peut être utilisé, par exemple, pour l’automobile ou pour le ferroviaire. En conséquence, les spécificités de téléchargement des logiciels et de démarrage du calculateur propres aux standards du domaine considéré, sont prises en charge par un logiciel-boot qui est stocké en mémoire-non-volatile-temporaire (P.NVT) dans une zone dédiée au logiciel-boot (P.LB).
[0056] Le chargement initial du logiciel-boot dans un calculateur est généralement effectué au moment de sa fabrication, grâce à l’utilisation du bootphysique et d’un outillage spécifique permettant d’accéder aux broches du processeur. Ultérieurement, le logiciel-boot pourrait être rechargé avec ces mêmes moyens spécifiques en accédant toujours aux broches du processeur. Mais, en général, pour éviter une faille de cyber-sécurité, cette possibilité peut être définitivement inhibée de façon à ne plus autoriser le rechargement du logiciel-boot.
[0057] 11 y a obsolescence du calculateur C après expiration de la durée de rétention de sa mémoire non-volatile-temporaire (C.NVT) ou dans la mémoire nonvolatile-temporaire (P.NVT) du processeur P, suite à un oubli d’au moins une partie des données informatiques stockées dans cette mémoire et lorsque cet oubli concerne aussi tout ou partie du logiciel-boot en mémoire (P.LB) de sorte qu’il devient impossible de recharger les données oubliées.
[0058] De manière connue, le processeur P met en œuvre, lors de son démarrage, un processus de boot ou, de préférence, un processus de boot-sécurisé qui assure la cyber-sécurité. Le logiciel-boot met en œuvre, notamment, la fonction logiciel-bootinitialisation qui permet d’initialiser le processeur P, et, sur demande externe, la fonction logiciel-boot-installation pour l’installation ou la mise à jour du logicielopérationnel.
[0059] Lors de l’installation du logiciel-opérationnel ou de sa mise à jour, la zone de boot n’est pas modifiée. En effet, pour des raisons de sécurité, le calculateur C est conçu pour qu’il ne soit pas possible de remettre facilement à jour, par téléchargement, la zone mémoire logiciel-boot (P.LBj. Lorsque cela est néanmoins possible, cette opération reste une mesure exceptionnelle qui nécessite des opérations spécifiques sous contrôle du fabricant du calculateur.
[0060] Dans le contexte décrit ci-dessus, le dispositif et le procédé de l’invention sont destinés à éviter l’obsolescence du calculateur C.
[0061] L’invention consiste, notamment, à inclure, dans la zone mémoire de logiciel-boot (P.LBj, un nouveau logiciel dénommé « logiciel-boot-recopie-boot». Cette intégration est faite au moment de la conception du logiciel-boot et le logiciel est chargé dans le processeur P avec le logiciel-boot, en utilisant une méthode et des outils connus par ailleurs. Ainsi, l’invention ne nécessite pas de processeur spécifique.
[0062] L’invention nécessite de réserver dans la mémoire-non-volatile (P.NVT) du processeur P, une zone de taille au moins égale à la taille de la mémoire de logicielboot (P.LBj. Cette nouvelle zone est dénommée (P.LB bisj comme illustré par la figure
1.
[0063] Selon une variante, l’invention propose aussi une option dite de « Robustification », qui est installée dans une zone de la mémoire permanente (P.MP). D’un point de vue structurel, et si l’on souhaite utiliser un processeur standard déjà existant, il conviendra d’inscrire l’option de « Robustification » après la fabrication du processeur P, lors de la fabrication du calculateur C, par exemple, dans une zone du type OTP, inscriptible une seule fois. Cette zone sera dénommée (P.OTPj.
[0064] L’ option de « Robustification » pourrait aussi être intégrée dans la mémoire permanente du processeur (P.MP) dès sa fabrication, en particulier, si la zone (P.OTP) n’existe pas. Cette variante permet d’obtenir un processeur P spécifique qui inclus l’option de « Robustification » de l’invention dès le départ et qui est en soi un nouveau processeur.
[0065] Pour éviter l’obsolescence du calculateur C, l’invention propose d’intégrer dans le processeur P, un logiciel de recopie systématique du logiciel-boot à chaque fois que le logiciel-opérationnel est mis à jour par téléchargement externe. Ce logiciel dénommé « logiciel-boot-copie-boot», permet d’éviter l’obsolescence si le logicielopérationnel est mis à jour avant la fin de la durée de rétention de la mémoire nonvolatile-temporaire (P.NVT) du processeur P.
[0066] L’invention est activée lorsqu’il est fait appel au logiciel-boot-installation. Dans ce cas, le logiciel logiciel-boot effectue l’installation du logiciel téléchargé et active, de façon concomitante, le logiciel-boot-copie-boot. Toutefois, l’invention prévoit que ces deux opérations puissent être effectuées dans n’importe quel ordre. De préférence et comme indiqué, dans l’exemple, du tableau 1, le logiciel-boot-copieboot sera activé avant le logiciel-boot-installation afin de s’assurer que l’invention a bien été mise en œuvre une fois la phase d’installation terminée.
[0067] Ainsi, l’obsolescence est évitée s’il a été fait au moins une opération de maintenance pour recharger le logiciel-opérationnel avant le terme de la durée de rétention de la mémoire-non-volatile-temporaire (C.NVT) du calculateur C, cette opération consistant à installer une version incrémentale du logiciel-opérationnel dans le calculateur, mais qui peut être identique à la version déjà installée précédemment.
[0068] L’invention conduit aussi à systématiser les opérations de rechargement du logiciel-opérationnel, qui n’étaient pas toujours effectuées et qui sont pourtant nécessaires, avant le terme de la durée de rétention de la mémoire-non-volatile afin d’éviter une panne du calculateur.
[0069] Plus généralement, l’invention consiste donc à recharger avec un contenu identique la totalité des zones de la mémoire-non-volatile-temporaire (C.NVT) du calculateur C, y compris la zone mémoire (P.LB) de logiciel-boot qui, auparavant, n’était pas rechargée.
[0070] L’un des avantages de l’invention est d’être compatible avec une cybersécurité renforcée à un très haut niveau car la fonction « logiciel-boot-recopie-boot» s’effectue entièrement en interne du calculateur.
[0071] Comme mentionné précédemment, l’invention met en œuvre, de façon préférentielle mais non obligatoire, une fonction « Robustification » du processus de boot. La fonction de « Robustification » va consister à gérer un deuxième exemplaire du logiciel-boot afin de maintenir un bon fonctionnement en cas de dégradation de ce logiciel-boot. Une telle dégradation pourrait survenir, par exemple, en cas de coupure d’alimentation pendant le rechargement du logiciel-boot.
[0072] Un des problèmes techniques posés par l’art antérieur et que l’invention permet de résoudre, réside dans le fait que l’on ne disposait pas de moyens permettant de gérer le calendrier de rechargement du logiciel-boot avant son oubli. Ainsi, dans le domaine automobile, par exemple, cette opération n’est pas prévue dans les opérations habituelles de maintenance.
[0073] Or, il est impératif d’effectuer cette opération avant la fin de la durée de rétention de la mémoire qui contient le logiciel-boot. Mais, il serait néanmoins abusif d’effectuer cette opération trop souvent car une mémoire-non-volatile a un nombre maximum d’écritures autorisées et, en cas de dépassement, elle devient inutilisable.
[0074] Le détail du processus de rechargement du logiciel-boot dans la mémoirenon-volatile (NVT) varie selon les caractéristiques de cette mémoire qui nécessitent un ensemble d’opérations plus complexes qu’une simple écriture. Par exemple, on peut se trouver confronté à une technologie de mémoire du type Flash NOR ou Flash NAND.
[0075] La mémoire de type Flash NOR est largement utilisée dans les calculateurs automobiles, notamment, parce qu’elle a une plus longue durée de rétention des informations que la mémoire Flash NAND.
[0076] La mémoire Flash NAND est plutôt utilisée, quant à elle, pour des clefs USB parce qu’elle est plus compacte, mais elle a une durée de rétention généralement plus courte que la mémoire de type Flash NOR.
[0077] Les processeurs utilisés dans le domaine automobile, par exemple les processeurs pour contrôle moteur de type « Infineon Aurix », utilisent de la mémoire Flash NOR qui est organisée en différentes zones. Or, il est connu qu’avant de pouvoir recharger des données dans une zone qui contient déjà des données, il est nécessaire d’effacer totalement l’ensemble des données de cette zone.
[0078] L’exemple d’implémentation de l’invention présentée dans le tableau 1, prend en compte cette caractéristique spécifique des mémoires Flash NOR.
[0079] L’avantage de l’invention est de tenir compte du fait que le nombre d’écriture d’un logiciel dans une mémoire-non-volatile d’un processeur (P.NVT) est limité avant l’usure de cette mémoire. Par exemple, pour l’automobile une mémoire flash de type NOR d’un processeur permet, aujourd’hui, d’effectuer de l’ordre de 1000 rechargements du logiciel.
[0080] D’autres avantages de l’invention sont décrits ci-après :
[0081] Ainsi, en associant une opération de rechargement du logiciel-boot au rechargement du logiciel-opérationnel d’un calculateur automobile, il est possible de bénéficier du calendrier de maintenance d’un véhicule pour faire cette opération en temps utile.
[0082] il n’ est pas nécessaire d’effectuer le rechargement du logiciel-boot de façon plus fréquente que celui du rechargement du logiciel-opérationnel du calculateur, ce qui assure une compatibilité de l’invention avec le nombre maximum de réécriture en mémoire-non-volatile.
[0083] Le tableau 1 illustre un exemple de mise en œuvre du procédé de l’invention, appliqué au domaine automobile au moment du rechargement du logicielopérationnel avec la recopie du logiciel-boot à partir de la zone (P.LB).
[0084] De préférence, mais de façon non obligatoire et lorsque cela est possible selon la définition du processeur choisi pour le calculateur, l’invention met en oeuvre un processus de « Robustification » du logiciel-boot.
[0085] Ce processus de « Robustification » est utile, notamment, en cas de coupure d’alimentation pendant le rechargement logiciel-boot en mémoire (P.LB) lors 10 de l’étape 2 du processus présenté sur le tableau 1. En effet, il y a un risque que le logiciel-boot contenu dans (P.LB) soit déjà effacé mais pas encore rechargé au moment de la coupure d’alimentation, ce qui ne permettrait plus un redémarrage du calculateur [0086] Afin de parer à cette éventualité, l’invention propose deux étapes 15 supplémentaires lors de la fabrication du calculateur : d’une part, de charger le logiciel-boot à l’identique en deux endroits, respectivement, en (P.LB) et en (P.LB bis) et, d’autre part, d’ajouter un logiciel complémentaire au logiciel boot-physique dénommé « boot-physique-choix-logiciel-boot».
[0087] Le « boot-physique-choix-logiciel-boot» pourra par exemple être chargé dans une zone de mémoire permanente programmable une seule fois (P.OTP) qui est disponible dans certains processeurs existants. Une autre possibilité est d’inclure dès la fabrication du processeur la fonction « boot-physique-choix-logiciel-boot» dans la 5 fonction boot-physique.
[0088] Le logiciel « boot-physique-choix-logiciel-boot» effectue un traitement en complément du traitement effectué par le logiciel boot-physique, comme présenté dans le tableau 2, afin d’utiliser un logiciel-boot non corrompu, soit en zone mémoire (P.LB), soit en zone mémoire (P.LB bis). Dans chacun de ces deux cas, le logiciel-boot 10 va travailler, respectivement, en zone mémoire (P.LB) ou en zone mémoire (P.LB bis) et en cas de rechargement du logiciel-opérationnel, la fonction logiciel-boot-copieboot, sera mise en œuvre respectivement selon le processus décrit dans le tableau 1 ou le tableau 3.
[0089] Tableau 2 - Complément de boot-physique pour sécurisation du processus 15 de logiciel-boot
[0090] Le Tableau 3 ci-dessous décrit le processus de rechargement du logicielboot, à partir de la zone mémoire (P.LB bis), en cas de corruption de la zone mémoire (P.LB).
Claims (9)
- Revendications1. Dispositif pour éviter l’obsolescence d’un calculateur (C) comprenant un processeur (P) pourvu ;- d’un logiciel de boot-physique inscrit dans une mémoire permanente (P.MP) comprenant une zone de mémoire programmable une seule fois (P.OTP) et,- d’un logiciel-boot stocké dans une zone de logiciel-boot (P.LB) d’une mémoire non-volatile temporaire (P.NVT) comprenant, en outre, une zone de logicielopérationnel (P.LO) et une zone libre (P.LB bis) de taille au moins égale à la taille de la zone de logiciel-boot (P.LB), caractérisé en ce qu’il comprend, dans la zone de logiciel-boot (P.LB), un logiciel de recopie systématique du logiciel-boot (L.BRB) activé à chaque téléchargement externe pour l’installation de la mise à jour du logicielopérationnel.
- 2. Dispositif selon la revendication 1, caractérisé en ce que la mémoire nonvolatile-temporaire est choisi parmi les mémoires Flash NOR et Flash NAND.
- 3. Dispositif selon l’une des revendications précédentes, caractérisé en ce que le logiciel-boot est chargé en deux exemplaires, respectivement, dans la zone (P.LB) de logiciel-boot et dans la zone libre (P.LB bis) à des fins de robustification.
- 4. Dispositif selon l’une des revendications précédentes, caractérisé en ce qu’il comprend un logiciel complémentaire du logiciel boot-physique chargé dans la zone de mémoire permanente (P.MP) et destiné à vérifier l’intégrité du logicielboot.
- 5. Dispositif selon la revendication précédente, caractérisé en ce que le logiciel complémentaire du logiciel boot-physique est chargé dans la zone (P.OTP).
- 6. Procédé pour la mise en œuvre du dispositif selon l’une des revendications précédentes, caractérisé en ce que, lors de l’installation de la mise à jour du logiciel-opérationnel, on efface la zone libre (P.LB bis) de la mémoire nonvolatile temporaire (P.NVT) et on y copie le contenu de la zone de logiciel-boot (P.LB), on active le logiciel de recopie systématique du logiciel-boot (L.BRB) à partir de sa copie dans la zone (P.LB bis), puis on efface la zone de logiciel-boot (P.LB) et on la recharge avec le contenu de la zone libre (P.LB bis) et on effectue l’installation de la mise à jour du logiciel-opérationnel.
- 7. Procédé selon la revendication précédente pour la mise en œuvre du dispositif selon la revendication 4 ou 5, caractérisé en ce que, préalablement à5 l’installation de la mise à jour du logiciel-opérationnel, on vérifie l’intégrité du logiciel-boot dans la zone (P.LB) au moyen du logiciel complémentaire du logiciel boot-physique chargé dans la zone de mémoire permanente (P.MP).
- 8. Procédé selon la revendication précédente, caractérisé en ce que, si le logicielboot est intègre et lisible en zone (P.LB), on effectue l’installation de la mise à10 jour du logiciel-opérationnel à partir de la zone (P.LB).
- 9. Procédé selon la revendication 7, caractérisé en ce que, si le logiciel-boot de la zone (P.LB) est corrompu, on vérifie l’intégrité du logiciel-boot dans la zone (P.LB bis) au moyen du logiciel complémentaire du logiciel boot-physique puis on effectue l’installation de la mise à jour du logiciel-opérationnel à partir de la
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1850675A FR3077399A1 (fr) | 2018-01-29 | 2018-01-29 | Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1850675A FR3077399A1 (fr) | 2018-01-29 | 2018-01-29 | Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee |
FR1850675 | 2018-01-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3077399A1 true FR3077399A1 (fr) | 2019-08-02 |
Family
ID=61521772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1850675A Withdrawn FR3077399A1 (fr) | 2018-01-29 | 2018-01-29 | Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3077399A1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248172A1 (en) * | 2003-06-24 | 2006-11-02 | Thomas Zurawka | Method for updating software of an electronic control device by flash programming via a serial interface and corresponding automatic state machine |
US20110283051A1 (en) * | 2010-05-14 | 2011-11-17 | Sandisk Il Ltd. | Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory |
US20150058979A1 (en) * | 2013-08-21 | 2015-02-26 | Nxp B.V. | Processing system |
US20160300064A1 (en) * | 2015-04-10 | 2016-10-13 | Vixs Systems Inc. | Secure processor for soc initialization |
-
2018
- 2018-01-29 FR FR1850675A patent/FR3077399A1/fr not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248172A1 (en) * | 2003-06-24 | 2006-11-02 | Thomas Zurawka | Method for updating software of an electronic control device by flash programming via a serial interface and corresponding automatic state machine |
US20110283051A1 (en) * | 2010-05-14 | 2011-11-17 | Sandisk Il Ltd. | Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory |
US20150058979A1 (en) * | 2013-08-21 | 2015-02-26 | Nxp B.V. | Processing system |
US20160300064A1 (en) * | 2015-04-10 | 2016-10-13 | Vixs Systems Inc. | Secure processor for soc initialization |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1647443A (zh) | 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作 | |
EP2940690B1 (fr) | Compteur bidirectionnel en mémoire flash | |
US8983072B2 (en) | Portable data carrier featuring secure data processing | |
EP1627362A1 (fr) | Methode de generation d'une cle de securite | |
FR3072195A1 (fr) | Procede de gestion d'un retour de produit pour analyse et produit correspondant | |
EP2958040B1 (fr) | Procédé et dispositif de codage de fichiers sources pour la livraison sécurisée de code source | |
EP0682315A1 (fr) | Procédé de déverrouillage d'accès à un calculateur par un outil de téléchargement d'un fichier | |
FR3017226A1 (fr) | Procede de securisation d'un code programme, systeme et processeur correspondants | |
WO2012107189A2 (fr) | Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile | |
FR3077399A1 (fr) | Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee | |
FR2823330A1 (fr) | Procede et systeme de gestion de donnees destinees a etre stockees dans une memoire, par exemple du code d'une application charge dans une carte a puce programmable | |
US7243227B1 (en) | Method and apparatus to copy protect software programs | |
EP3637266A1 (fr) | Procédé d'accès à une mémoire | |
WO1997041510A1 (fr) | Procede et dispositif permettant a un programme fige de pouvoir evoluer | |
WO2006030163A1 (fr) | Systeme et calculateur embarque permettant la mise en suspens du dechargement de donnees en cas d'arret du calculateur | |
FR3079945A1 (fr) | Procede de detection d’un risque de perte de donnees d’une memoire non volatile-temporaire dans un calculateur et de perennisation de ces donnees. | |
WO2021073990A1 (fr) | Procede d'aide a l'identification de secteurs vierges d'une memoire non-volatile d'un microcontroleur | |
EP3907638B1 (fr) | Contrôleur de démarrage sécurisé pour un système embarqué, système embarqué et procédé de démarrage sécurisé associés | |
CN117094016B (zh) | 基于国密Linux内核文件系统数据的加密方法及装置 | |
CA3179748A1 (fr) | Proced de verrouillage d'une memoire non-volatile reinscriptible et dispositif electronique mettant en oeuvre ledit procede | |
EP4303736A1 (fr) | Procédé de gestion de droits d'accès de régions mémoires et système sur puce correspondant | |
EP4032000A1 (fr) | Système sur puce et procédé garantissant la fraicheur des données stockées dans une mémoire extérieure | |
EP3131005A1 (fr) | Equipement électronique ferroviaire comprenant un programme de démarrage comportant une ou plusieurs partitions de démarrage, véhicule ferroviaire et système ferroviaire associés | |
EP3489833B1 (fr) | Procédé d'obtention d'un programme destiné à être exécuté par un dispositif électronique, tel qu'une carte à puce, comprenant une mémoire non volatile | |
FR3079946A1 (fr) | Procede de perennisation des informations stockees dans une memoire non volatile-temporaire d’un un calculateur. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20190802 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
ST | Notification of lapse |
Effective date: 20220905 |