WO2007104899A1 - Method for robust software updating - Google Patents

Method for robust software updating Download PDF

Info

Publication number
WO2007104899A1
WO2007104899A1 PCT/FR2007/050932 FR2007050932W WO2007104899A1 WO 2007104899 A1 WO2007104899 A1 WO 2007104899A1 FR 2007050932 W FR2007050932 W FR 2007050932W WO 2007104899 A1 WO2007104899 A1 WO 2007104899A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer program
hardware component
updating
firmware
integrated
Prior art date
Application number
PCT/FR2007/050932
Other languages
French (fr)
Inventor
Clément MOREAU
Xavier Debreuil
Cédric HUTCHINGS
Original Assignee
Thomson Licensing
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thomson Licensing filed Critical Thomson Licensing
Publication of WO2007104899A1 publication Critical patent/WO2007104899A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

The invention concerns a method for updating a computer programme integrated in a hardware component comprising a non-volatile memory; said computer programme is separated into at least two parts, one of which, or vital firmware, being completely self-contained, a correct image of the vital firmware being stored in said non-volatile memory during the entire updating process. Based on the nominal operation, the multiple parts of said computer programme are used jointly and interact to provide the entire service required for said component; and the computer programme comprises an intrinsic integrative mechanism operating by means of keys. The invention is characterized in that the different parts of the computer programme are signed with different keys. The invention also concerns a device comprising a non-volatile memory and a computer programme.

Description

PROCEDE DE MISE A JOUR ROBUSTE DE LOGICIEL METHOD FOR ROBUST SOFTWARE UPDATING
Domaine de l' inventionField of the invention
La présente invention se rapporte au domaine des technologies de l'information.The present invention relates to the field of information technology.
La présente invention se rapporte plus particulièrement à un procédé de mise à jour robuste de logiciel .The present invention relates more particularly to a robust software update method.
Le procédé selon la présente invention est particulièrement adapté à la mise à jour du Firmware (ou logiciel embarqué) des passerelles résidentielles.The method according to the present invention is particularly suitable for updating the firmware (or embedded software) of residential gateways.
Etat de la techniqueState of the art
Les passerelles résidentielles sont mises à jour à distance afin de corriger les bugs et ajouter de nouvelles fonctionnalités. La mise à jour est déclenchée de façon automatique et régulière.Residential gateways are updated remotely to fix bugs and add new features. The update is triggered automatically and regularly.
Une contrainte forte pour la mise à jour est la quantité de mémoire volatile (RAM) et non-volatile (Flash) disponible sur l'équipement : a) Mémoire volatile : avant d'être écrite dans la mémoire flash, la nouvelle image « firmware » (logiciel intégré dans un composant matériel) est téléchargée dans la RAM. Afin de libérer de la mémoire, quelques applications en fonctionnement doivent être interrompues. Un inconvénient est donc l'interruption de certains services utilisateurs pendant la mise à jour. b) Mémoire non-volatile : l'espace de mémoire flash ne supporte pas la capacité de sauvegarder deux logiciels complets en fonctionnement (ce qui est appelé mémoire firmware « dual-bank ») . Par conséquent, le logiciel récemment téléchargé est enregistré dans la mémoire flash en remplacement de l'image courante sauvegardée. Ceci a pour conséquence qu'il existe une courte période de temps pendant laquelle l'équipement ne peut pas récupérer de façon autonome si la mise à jour est interrompue durant une phase critique spécifique.A strong constraint for the update is the amount of volatile memory (RAM) and non-volatile (Flash) available on the equipment: a) Volatile memory: before being written in the flash memory, the new image "firmware "(Software embedded in a hardware component) is downloaded to the RAM. In order to free up memory, some applications in operation must be interrupted. A disadvantage is the interruption of some user services during the update. b) Non-volatile memory: the flash memory space does not support the ability to back up two complete software programs in operation (what is called memory dual-bank firmware). As a result, the newly downloaded software is saved to flash memory instead of the current saved image. This has the consequence that there is a short period of time during which the equipment can not recover autonomously if the update is interrupted during a specific critical phase.
Bien souvent, ces problèmes sont fortement corrélés. En effet, dans un scénario typique, un utilisateur qui subit une interruption de service redémarre son équipement, ce qui interrompt le processus de mise à jour.Often, these problems are strongly correlated. Indeed, in a typical scenario, a user who experiences a service interruption restarts his equipment, which interrupts the update process.
Les deux inconvénients précités sont le résultat d'un compromis de nature économique. Bien qu'il soit techniquement réalisable de doubler la taille des mémoires volatiles et non-volatiles afin de résoudre ces inconvénients, il est supposé ici que les espaces mémoires volatiles et non-volatiles ne sont pas dimensionnés pour remédier à ces inconvénients de manière simple .The two aforementioned drawbacks are the result of a compromise of an economic nature. Although it is technically feasible to double the size of the volatile and non-volatile memories in order to solve these disadvantages, it is assumed here that the volatile and nonvolatile memory spaces are not dimensioned to overcome these disadvantages in a simple manner.
Dans une passerelle connue de l'état de la technique, toutes les données non volatiles sont stockées dans un unique composant flash. Le secteur est divisé en cinq partitions indépendantes (ou clusters) :In a known gateway of the state of the art, all the nonvolatile data are stored in a single flash component. The sector is divided into five independent partitions (or clusters):
• Zone « Bootloader » (environ 200 Ko) : cette partie est enregistrée en usine et est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal.• Bootloader area (approx. 200 KB): This part is registered at the factory and is read only (write not allowed) in its normal operating mode.
• Zone de table de partition (environ 60 Ko) : cette partie est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal et contient une table de partition de toute la mémoire flash.• Partition table area (approximately 60 KB): this part is read only (write not allowed) in its mode of normal operation and contains a partition table of all flash memory.
• Zone de paramètres (640 Ko) : cette partie est en lecture et en écriture. Le logiciel accède à cette zone pour enregistrer ou extraire des paramètres de configuration, tels que des paramètres définis par l'utilisateur, qui ont besoin d'être récupérés après un démarrage de l ' équipement .• Parameter area (640 KB): this part is read and write. The software accesses this area to save or retrieve configuration settings, such as user-defined settings, that need to be retrieved after a device startup.
• Zone du firmware (environ 7000 Ko) : cette partie est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal. Elle contient une image compressée du firmware. Au démarrage, le « bootloader » extrait le firmware et le charge dans la mémoire volatile (RAM) pour l ' exécuter .• Firmware area (approximately 7000 KB): this part is read only (write not allowed) in its normal operating mode. It contains a compressed image of the firmware. At startup, the bootloader extracts the firmware and loads it into volatile memory (RAM) to execute it.
• Zone de personnalisation (4 Ko) : cette partie est en lecture uniquement (écriture non autorisée) et contient des données qui identifient de façon unique l'équipement (par exemple une passerelle) et sont indépendantes du chargement du firmware, comme une adresse MAC ou un numéro de série.• Customization area (4 KB): This part is read-only (write not allowed) and contains data that uniquely identifies the device (eg a gateway) and are independent of firmware loading, such as a MAC address or a serial number.
Lorsqu'une mise à jour à distance d'un firmware est lancée, les événements suivants, relatifs à la mémoire volatile et non volatile, ont lieu :When a remote update of a firmware is launched, the following events, relating to the volatile and non-volatile memory, take place:
1. Les services sont interrompus afin de libérer de l'espace RAM.1. Services are interrupted to free up RAM space.
2. Un RAMDISK est installé par le firmware et l'image du nouveau firmware compressé est téléchargée de l'Internet dans cette zone de mémoire .2. A RAMDISK is installed by the firmware and the image of the new compressed firmware is downloaded from the Internet into this memory area.
3. L'image compressée est copiée dans la partition de zone de firmware de la mémoire flash, remplaçant ainsi l'image du firmware. Cette phase peut prendre jusqu'à deux minutes .3. The compressed image is copied to the firmware zone partition of the memory flash, thus replacing the firmware image. This phase can take up to two minutes.
4. L'équipement redémarre en utilisant la séquence de démarrage normale.4. The device reboots using the normal boot sequence.
Un des inconvénients de ce mécanisme de mise à jour connu de l'état de la technique est que les services doivent nécessairement être interrompus pour libérer temporairement de l'espace RAM. La notion de mise à jour partielle ou de « patch » de firmware est inconnue : chaque mise à jour est invasive pour l'utilisateur, quelle que soit la portée de la mise à jour.One of the drawbacks of this update mechanism known from the state of the art is that the services must necessarily be interrupted to temporarily release RAM space. The notion of partial update or "patch" firmware is unknown: each update is invasive for the user, regardless of the scope of the update.
Un autre inconvénient de ce mécanisme de mise à jour connu de l'état de la technique est que la séquence de démarrage normale n'est pas disponible si la mise à jour est interrompue alors que la mémoire flash est dans l'état Fl : aucun firmware qui permette un démarrage n'est disponible. L'équipement ne peut revenir de façon autonome à son état de fonctionnement précédent.Another disadvantage of this update mechanism known from the state of the art is that the normal boot sequence is not available if the update is interrupted while the flash memory is in the Fl state: none firmware that allows a boot is available. The equipment can not return autonomously to its previous operating state.
L'art antérieur connaît, par la demande de brevet PCT WO 98/54642 (Philips) , un procédé pour la mise à jour d'un logiciel de récepteur/décodeur à partir d'un serveur dans un réseau. Ce procédé ne requiert pas de mémoire additionnelle. Le logiciel possède une partition primaire et une partition secondaire. La partition primaire contient le logiciel nécessaire pour télécharger la partition secondaire, ainsi que le logiciel pour télécharger une nouvelle partition primaire. A tout moment, une copie vérifiée de l'ancienne ou de la nouvelle partition primaire est présente en mémoire, permettant ainsi de ré-exécuter le processus de téléchargement, en cas d'interruption du processus de téléchargement ou bien lorsque la partition reçue est inexploitable . Expose de l'inventionThe prior art knows, by the PCT patent application WO 98/54642 (Philips), a method for updating a receiver / decoder software from a server in a network. This method does not require additional memory. The software has a primary partition and a secondary partition. The primary partition contains the software needed to download the secondary partition, as well as the software to download a new primary partition. At any time, a verified copy of the old or new primary partition is present in memory, thus allowing to re-execute the download process, in case of interruption of the download process or when the received partition is unusable. . Expose the invention
La présente invention permet d'une part de ne pas interrompre les services et d'autre part d'avoir une disponibilité continue de firmware sur lequel on peut démarrer. La résolution des inconvénients cités ne nécessite pas l'augmentation des espaces de mémoires du composant matériel, dans le cadre de la présente invention .The present invention makes it possible on the one hand not to interrupt the services and on the other hand to have a continuous availability of firmware on which one can start. The resolution of the disadvantages mentioned does not require the increase of the memory spaces of the hardware component, in the context of the present invention.
Afin d'identifier différentes parties d'un programme informatique, il est courant dans l'état de la technique d'utiliser une table de validité. Un inconvénient d'une telle table de validité est l'utilisation d'espace mémoire.In order to identify different parts of a computer program, it is common in the state of the art to use a validity table. A disadvantage of such a validity table is the use of memory space.
Au vu du document de l'état de la technique WO 98/54642, le problème technique objectif que se propose de résoudre la présente invention consiste à proposer un moyen pour identifier différentes parties d'un programme informatique tout en minimisant l'espace mémoire utilisé.In view of the prior art document WO 98/54642, the objective technical problem that the present invention proposes to solve is to propose a means for identifying different parts of a computer program while minimizing the memory space used. .
A cet effet, la présente invention concerne, dans son acception la plus générale, un procédé de mise à jour d'un programme informatique intégré dans un composant matériel comportant une mémoire non-volatile ; dans lequel ledit programme informatique est séparé en au moins deux parties, l'une d'entre elles, dite firmware vital, étant totalement autonome, une image correcte du firmware vital étant stockée dans ladite mémoire non- volatile durant tout le processus de mise à jour ; dans lequel, en fonctionnement nominal, les multiples parties dudit programme informatique sont utilisées conjointement et interagissent pour fournir l'ensemble du service requis pour ledit composant ; et dans lequel le programme informatique comporte un mécanisme intrinsèque d' intégrité fonctionnant au moyen de clés ; caractérisé en ce que les différentes parties du programme informatique sont signées avec des clés différentes.For this purpose, the present invention relates, in its most general sense, to a method of updating a computer program integrated in a hardware component comprising a non-volatile memory; wherein said computer program is separated into at least two parts, one of them, called vital firmware, being completely autonomous, a correct image of the vital firmware being stored in said non-volatile memory during the whole process of setting day; wherein, in nominal operation, the multiple portions of said computer program are used together and interact to provide the entire service required for said component; and wherein the computer program has an intrinsic mechanism integrity using keys; characterized in that the different parts of the computer program are signed with different keys.
De préférence, les multiples parties dudit programme informatique sont permutées pendant la mise à jour, ce qui permet notamment de réduire la durée de la procédure .Preferably, the multiple parts of said computer program are exchanged during the update, which in particular makes it possible to reduce the duration of the procedure.
Selon un mode de réalisation, la mise à jour est effectuée par téléchargement depuis un serveur distant .According to one embodiment, the update is performed by downloading from a remote server.
Avantageusement, ladite mémoire non-volatile est une mémoire de type flash.Advantageously, said non-volatile memory is a flash type memory.
Ledit composant matériel peut être un modem ou une passerelle résidentielle, par exemple.The hardware component may be a modem or a residential gateway, for example.
Avantageusement, c'est un équipement compatible ADSL et/ou W-LAN et/ou VoIP (voix sur IP) .Advantageously, it is a compatible ADSL and / or W-LAN and / or VoIP (voice over IP).
Selon une première variante, de multiples parties, de tailles différentes, dudit programme informatique sont utilisées.According to a first variant, multiple parts of different sizes of said computer program are used.
Selon une seconde variante, les multiples parties dudit programme informatique sont de tailles égales .According to a second variant, the multiple parts of said computer program are of equal sizes.
Selon un mode de mise en œuvre particulier, les multiples parties dudit programme informatique sont au nombre de deux .According to a particular mode of implementation, the multiple parts of said computer program are two in number.
La présente invention se rapporte également à un dispositif comportant une mémoire non-volatile et un programme informatique ; dans lequel ledit programme informatique est séparé en au moins deux parties, l'une d'entre elles, dite firmware vital, étant totalement autonome, une image correcte du firmware vital étant stockée dans ladite mémoire non-volatile durant tout le processus de mise à jour ; dans lequel, en fonctionnement nominal, les multiples parties dudit programme informatique sont utilisées conjointement et interagissent pour fournir l'ensemble du service requis pour ledit composant ; et dans lequel le programme informatique comporte un mécanisme intrinsèque d'intégrité fonctionnant au moyen de clés ; caractérisé en ce que les différentes parties du programme informatique sont signées avec des clés différentes.The present invention also relates to a device comprising a non-volatile memory and a computer program; wherein said computer program is separated into at least two parts, one of them, called vital firmware, being completely autonomous, a correct image of the vital firmware being stored in said non-volatile memory during the entire process of updating. day; wherein, in nominal operation, the multiple portions of said computer program are used together and interact to provide the entire service required for said component; and wherein the computer program includes an intrinsic integrity mechanism operating by means of keys; characterized in that the different parts of the computer program are signed with different keys.
Le procédé selon la présente invention permet de :The method according to the present invention makes it possible to:
• corriger un bug• fix a bug
• ajouter une nouvelle fonctionnalité ou activer un service• add a new feature or activate a service
• remettre une passerelle à sa configuration d'usine par défaut.• reset a gateway to its factory default configuration.
Il peut également correspondre à une évolution dans le réseau du fournisseur de service.It can also be an evolution in the service provider's network.
Les principes du procédé selon la présente invention concernent particulièrement la gestion de la mémoire du composant matériel et sont indépendants de la plate-forme du fournisseur de mise à jour ou d'un quelconque protocole.The principles of the method according to the present invention relate particularly to the management of the memory of the hardware component and are independent of the platform of the update provider or any protocol.
Brève description des dessinsBrief description of the drawings
On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées : la Figure 1 illustre une mémoire flash selon l'art antérieur ; la Figure 2 illustre un mécanisme de mise à jour selon l'art antérieur ; la Figure 3 illustre le fait que la disponibilité d'un firmware sur lequel on peut démarrer est discontinue avec les mécanismes de l'art antérieur ; la Figure 4 illustre une mémoire flash selon la présente invention ; la Figure 5 illustre un scénario de mise à jour partielle dans le cadre du procédé selon la présente invention ; la Figure 6 illustre un scénario de mise à jour complète dans le cadre du procédé selon la présente invention ; la Figure 7 illustre le fait que la disponibilité d'un firmware sur lequel on peut démarrer est continue avec le mécanisme selon la présente invention ; et la Figure 8 illustre un second scénario de mise à jour complète dans le cadre du procédé selon la présente invention.The invention will be better understood from the following description, given purely for explanatory purposes, of one embodiment of the invention, with reference to the appended figures: Figure 1 illustrates a flash memory according to the prior art; Figure 2 illustrates an update mechanism according to the prior art; Figure 3 illustrates that the availability of firmware on which one can start is discontinuous with the mechanisms of the prior art; Figure 4 illustrates a flash memory according to the present invention; Figure 5 illustrates a partial update scenario in the context of the method according to the present invention; Figure 6 illustrates a complete update scenario in the context of the method according to the present invention; Figure 7 illustrates that the availability of bootable firmware is continuous with the mechanism of the present invention; and Figure 8 illustrates a second full update scenario in the context of the method according to the present invention.
Description détaillée des modes de réalisation de l'inventionDETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION
Selon l'invention, une mémoire flash, illustrée Figure 4, est divisée en six partitions :According to the invention, a flash memory, illustrated in FIG. 4, is divided into six partitions:
• Zone « Bootloader » (environ 200 Ko) : cette partie est enregistrée en usine et est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal. Cette partie est utilisée pour démarrer des périphériques matériels, décompresser et lancer dans la RAM une image firmware stockée dans la zone firmware ou dans la zone firmware étendu.• Bootloader area (approx. 200 KB): This part is registered at the factory and is read only (write not allowed) in its normal operating mode. This part is used to boot hardware devices, uncompress and launch a firmware image in RAM stored in the firmware zone or in the extended firmware zone.
• Zone de table de partition (environ 60 Ko) : cette partie est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal et contient une table de partition de toute la mémoire flash.• Partition table area (approximately 60 KB): This part is read-only (write not allowed) in its normal operating mode and contains a partition table of all flash memory.
• Zone de paramètres (640 Ko) : cette partie est en lecture et en écriture. Le logiciel accède à cette zone pour enregistrer ou extraire des paramètres de configuration, tels que des paramètres définis par l'utilisateur, qui ont besoin d'être récupérés après un démarrage de l ' équipement .• Parameter area (640 KB): this part is read and write. The software accesses this area to save or retrieve configuration settings, such as user-defined settings, that need to be retrieved after a device startup.
• Zone du firmware 1 (environ 3500 Ko) : cette partie est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal. Elle contient une image compressée du firmware vital ou étendu. Au démarrage, le « bootloader » extrait le firmware et le charge dans la mémoire volatile (RAM) pour l'exécuter.• Firmware area 1 (approximately 3500 KB): This part is read only (write not allowed) in its normal operating mode. It contains a compressed image of the vital or extended firmware. At startup, the "bootloader" extracts the firmware and loads it into volatile memory (RAM) to execute it.
• Zone du firmware 2 (environ 3500 Ko) : cette partie est en lecture uniquement (écriture non autorisée) dans son mode de fonctionnement normal. Elle contient une image compressée du firmware vital ou étendu. Au démarrage, le « bootloader » extrait le firmware et le charge dans la mémoire volatile (RAM) pour l'exécuter.• Firmware area 2 (approximately 3500 KB): This part is read-only (write not allowed) in its normal operating mode. It contains a compressed image of the vital or extended firmware. At startup, the "bootloader" extracts the firmware and loads it into volatile memory (RAM) to execute it.
• Zone de personnalisation (4 Ko) : cette partie est en lecture uniquement (écriture non autorisée) et contient des données qui identifient de façon unique l'équipement (par exemple une passerelle) et sont indépendantes du chargement du firmware, comme une adresse MAC ou un numéro de série.• Customization area (4 KB): This part is read-only (write not allowed) and contains data that uniquely identifies the device (eg a gateway) and are independent of firmware loading, such as a MAC address or serial number.
Le firmware vital supporte les services « basiques » de l'équipement. Au minimum, les services « basiques » signifient :The vital firmware supports the "basic" services of the equipment. At a minimum, "basic" services mean:
• Peut être lancé et fonctionner à partir du « bootloader »• Can be started and run from the bootloader
• Capacités de routage LAN (Local Area Network) (sur une connectivité Ethernet)• Local Area Network (LAN) routing capabilities (on Ethernet connectivity)
• Accès haut débit DSL (en utilisant les paramètres de configuration stockés dans la zone de paramètres)• DSL broadband access (using the configuration settings stored in the settings area)
• Mise à jour à distance du logiciel client• Remote update of the client software
• Support du lancement et de l'activation d'un firmware étendu• Support for launching and activating extended firmware
• Fourniture d'une interface graphique utilisateur LAN afin de permettre de configurer manuellement la passerelle lorsqu' aucune connectivité au serveur distant de mise à jour ne peut être établie de manière automatique• Provide a LAN GUI to manually configure the gateway when no connectivity to the remote update server can be established automatically
Le firmware vital peut également supporter des services additionnels comme des services de voix sur IP (VoIP) , des services de réseau local sans-fil (Wireless LAN ou W-LAN) etc. La portée du portefeuille de services supportés par le firmware vital est choisie de façon à minimiser la fréquence de mise à jour du firmware vital.The vital firmware can also support additional services such as voice over IP (VoIP) services, wireless LAN services (Wireless LAN or W-LAN) etc. The scope of the service portfolio supported by the vital firmware is chosen to minimize the update frequency of the vital firmware.
La taille de l'image compressée du firmware vital est inférieure à Min (Zone de firmware vital, zone de firmware étendu) . Le firmware étendu supporte le service consistant en la capacité à lancer et faire fonctionner l'équipement à partir du firmware vital.The size of the compressed image of the vital firmware is less than Min (Vital firmware area, Extended firmware area). The extended firmware supports the service consisting of the ability to launch and operate the equipment from the vital firmware.
Un scénario de mise à jour partielle consiste en le remplacement du firmware étendu tout en conservant le firmware vital. Ce mécanisme de mise à jour partielle est illustré Figure 5. L'intérêt majeur d'une telle mise à jour est que l'interruption de service pour l'utilisateur est relativement limitée, car la moitié de la mémoire RAM est nécessaire pour télécharger temporairement et stocker le nouveau firmware, ce qui est différent du mécanisme de mise à jour connu de l'état de la technique décrit ci -dessus.A partial update scenario is the replacement of the extended firmware while keeping the firmware alive. This partial update mechanism is illustrated in Figure 5. The major advantage of such an update is that the service interruption for the user is relatively limited because half of the RAM is needed to temporarily download. and store the new firmware, which is different from the update mechanism known from the state of the art described above.
Une fois que le nouveau firmware étendu est stocké dans la mémoire flash, le firmware vital l'extrait et le charge dans la RAM. Aucun redémarrage n'est nécessaire .Once the new extended firmware is stored in the flash memory, the vital firmware extracts it and loads it into the RAM. No reboot is necessary.
De plus, il n'y pas de phase dans laquelle la récupération est impossible. En particulier, si la mise à jour est interrompue à l'état 1, illustré Figure 4, le firmware vital sera capable au prochain démarrage de retélécharger une image de firmware étendu correcte sans intervention externe.In addition, there is no phase in which recovery is impossible. In particular, if the update is interrupted in state 1, illustrated in Figure 4, the vital firmware will be able to restart the next boot correct extended firmware image without external intervention.
Un mécanisme de mise à jour complète est également prévu dans le cas où le firmware vital pourrait également exiger une mise à jour. Ce mécanisme est illustré Figure 6.A full update mechanism is also provided in case the vital firmware might also require an update. This mechanism is illustrated in Figure 6.
Comme cela est illustré Figure 7, il n'y a pas d'état dans lequel la récupération est impossible, car dans tout le processus, une image correcte du vital firmware est stockée dans la mémoire flash. L'entité appelée « bootloader » utilise le mécanisme de vérification d'intégrité implémenté dans le dispositif pour découvrir quelle partition contient une image de firmware vital. Les différentes parties du logiciel ne sont pas signées avec la même clé, ce qui permet au « bootloader » d'identifier les différentes parties du logiciel.As shown in Figure 7, there is no state in which recovery is impossible, because throughout the process, a correct image of vital firmware is stored in the flash memory. The entity called "bootloader" uses the integrity check mechanism implemented in the device to discover which partition contains a vital firmware image. The different parts of the software are not signed with the same key, which allows the bootloader to identify the different parts of the software.
Aucune mémoire supplémentaire n'est requise pour assurer une caractéristique de mémoire « dual- bank », car le firmware a été séparé en deux parties, l'une d'entre elles étant totalement autonome (le firmware vital) .No additional memory is required to provide a "dual-bank" memory feature because the firmware has been separated into two parts, one of which is completely autonomous (the vital firmware).
L'interruption de service pour l'utilisateur est minimisée grâce à la permutation des firmware vital et étendu entre l'état FO et l'état F4 , comme illustré Figure 6.Service interruption for the user is minimized by permutation of vital and extended firmware between FO and F4, as shown in Figure 6.
Ainsi, la présente invention permet des mises à jour de logiciel robuste, tout en minimisant les interruptions de service pour l'utilisateur.Thus, the present invention enables robust software updates, while minimizing downtime for the user.
Le procédé selon la présente invention est une alternative efficace aux deux principes suivants :The method according to the present invention is an effective alternative to the following two principles:
• Mémoire non-volatile du type « dual- bank » : ce type de mémoire n'est pas optimisé en terme de coût car elle exige une quantité de mémoire flash égale au double de la taille d' image totale du firmware ;• Non-volatile memory type "dual-bank": this type of memory is not optimized in terms of cost because it requires a quantity of flash memory equal to twice the total image size of the firmware;
• Un système de fichiers en lecture/écriture qui comporte de nombreuses limitations : i) La gestion du journal de lecture/écriture est complexe et devrait être prise en charge par chaque application mise à jour ; ii) Non « atomicité » ; iii) Difficulté de concevoir des systèmes de fichiers compressés, car il est difficile de prévoir la taille réelle sur la mémoire flash.• A read / write file system that has many limitations: i) The management of the read / write log is complex and should be supported by each updated application; (ii) No "atomicity"; iii) Difficulty in designing compressed file systems, as it is difficult to predict the actual size on the flash memory.
Le procédé selon la présente invention garantit un niveau de service semblable aux deux mécanismes connus précités sans en présenter les inconvénients.The method according to the present invention guarantees a level of service similar to the two aforementioned known mechanisms without presenting the disadvantages thereof.
Selon un mode de réalisation, illustré Figure 8, les deux parties (firmware vital et firmware étendu) possèdent des tailles différentes.According to one embodiment, illustrated in Figure 8, the two parts (vital firmware and extended firmware) have different sizes.
L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet. The invention is described in the foregoing by way of example. It is understood that the skilled person is able to realize different variants of the invention without departing from the scope of the patent.

Claims

REVENDICATIONS
1. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel comportant une mémoire non-volatile ; dans lequel ledit programme informatique est séparé en au moins deux parties, l'une d'entre elles, dite firmware vital, étant totalement autonome, une image correcte du firmware vital étant stockée dans ladite mémoire non-volatile durant tout le processus de mise à jour ; dans lequel, en fonctionnement nominal, les multiples parties dudit programme informatique sont utilisées conjointement et interagissent pour fournir l'ensemble du service requis pour ledit composant ; et dans lequel le programme informatique comporte un mécanisme intrinsèque d' intégrité fonctionnant au moyen de clés ; caractérisé en ce que les différentes parties du programme informatique sont signées avec des clés différentes.A method of updating an integrated computer program in a hardware component comprising a non-volatile memory; wherein said computer program is separated into at least two parts, one of them, called vital firmware, being completely autonomous, a correct image of the vital firmware being stored in said non-volatile memory during the entire process of updating. day; wherein, in nominal operation, the multiple portions of said computer program are used together and interact to provide the entire service required for said component; and wherein the computer program includes an intrinsic mechanism of integrity operating by means of keys; characterized in that the different parts of the computer program are signed with different keys.
2. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon la revendication 1 caractérisé en ce que les multiples parties dudit programme informatique sont permutées pendant la mise à jour.2. A method of updating a computer program integrated in a hardware component according to claim 1 characterized in that the multiple parts of said computer program are exchanged during the update.
3. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon la revendication 1 ou 2, caractérisé en en ce que la mise à jour est effectuée par téléchargement depuis un serveur distant .3. A method of updating a computer program integrated in a hardware component according to claim 1 or 2, characterized in that the update is performed by downloading from a remote server.
4. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon la revendication 1, 2 ou 3 , caractérisé en en ce que ladite mémoire non-volatile est une mémoire de type flash. 4. A method of updating a computer program integrated in a hardware component according to claim 1, 2 or 3, characterized in that said non-volatile memory is a flash type memory.
5. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications précédentes, caractérisé en en ce que ledit composant matériel est un modem.5. A method of updating a computer program integrated in a hardware component according to any one of the preceding claims, characterized in that said hardware component is a modem.
6. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 1 à 5, caractérisé en en ce que ledit composant matériel est une passerelle résidentielle .6. A method of updating a computer program integrated in a hardware component according to any one of claims 1 to 5, characterized in that said hardware component is a residential gateway.
7. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 5 à 6, caractérisé en ce que le composant matériel est un équipement compatible ADSL.7. A method of updating a computer program integrated in a hardware component according to any one of claims 5 to 6, characterized in that the hardware component is an ADSL compatible equipment.
8. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 5 à 7, caractérisé en ce que le composant matériel est un équipement compatible W-LAN.8. A method of updating a computer program integrated in a hardware component according to any one of claims 5 to 7, characterized in that the hardware component is a W-LAN compatible equipment.
9. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 5 à 8, caractérisé en ce que le composant matériel est un équipement compatible VoIP (voix sur IP) .9. A method of updating a computer program integrated in a hardware component according to any one of claims 5 to 8, characterized in that the hardware component is a VoIP compatible equipment (voice over IP).
10. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications précédentes caractérisé en ce que les multiples parties dudit programme informatique sont de tailles différentes. 10. A method of updating a computer program integrated in a hardware component according to any one of the preceding claims characterized in that the multiple parts of said computer program are of different sizes.
11. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 1 à 9 caractérisé en ce que les multiples parties dudit programme informatique sont de tailles égales.11. A method of updating a computer program integrated in a hardware component according to any one of claims 1 to 9 characterized in that the multiple parts of said computer program are of equal sizes.
12. Procédé de mise à jour d'un programme informatique intégré dans un composant matériel selon l'une quelconque des revendications 1 à 11 caractérisé en ce que les multiples parties dudit programme informatique sont au nombre de deux .12. A method of updating an integrated computer program in a hardware component according to any one of claims 1 to 11 characterized in that the multiple parts of said computer program are two in number.
13. Dispositif comportant une mémoire non- volatile et un programme informatique ; dans lequel ledit programme informatique est séparé en au moins deux parties, l'une d'entre elles, dite firmware vital, étant totalement autonome, une image correcte du firmware vital étant stockée dans ladite mémoire non-volatile durant tout le processus de mise à jour ; dans lequel, en fonctionnement nominal, les multiples parties dudit programme informatique sont utilisées conjointement et interagissent pour fournir l'ensemble du service requis pour ledit composant ; et dans lequel le programme informatique comporte un mécanisme intrinsèque d'intégrité fonctionnant au moyen de clés ; caractérisé en ce que les différentes parties du programme informatique sont signées avec des clés différentes. 13. Device comprising a non-volatile memory and a computer program; wherein said computer program is separated into at least two parts, one of them, called vital firmware, being completely autonomous, a correct image of the vital firmware being stored in said non-volatile memory during the entire process of updating. day; wherein, in nominal operation, the multiple portions of said computer program are used together and interact to provide the entire service required for said component; and wherein the computer program includes an intrinsic integrity mechanism operating by means of keys; characterized in that the different parts of the computer program are signed with different keys.
PCT/FR2007/050932 2006-03-16 2007-03-15 Method for robust software updating WO2007104899A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650893 2006-03-16
FR0650893 2006-03-16

Publications (1)

Publication Number Publication Date
WO2007104899A1 true WO2007104899A1 (en) 2007-09-20

Family

ID=36601225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/050932 WO2007104899A1 (en) 2006-03-16 2007-03-15 Method for robust software updating

Country Status (1)

Country Link
WO (1) WO2007104899A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502281A (en) * 2019-07-19 2019-11-26 浙江万胜智能科技股份有限公司 A kind of method of embedded device starting linux kernel and file system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998054642A1 (en) * 1997-05-30 1998-12-03 Koninklijke Philips Electronics N.V. Failsafe method for upgrading set-top system software from a network server
EP0961193A2 (en) * 1998-05-29 1999-12-01 Texas Instruments Incorporated Secure computing device
EP1087294A2 (en) * 1999-09-27 2001-03-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
FR2816729A1 (en) * 2000-11-14 2002-05-17 Gemplus Card Int Method for verification before activation of a program loaded into a smart card, uses hash value of the program stored in first memory and computes hash of program loaded into second memory to determine whether the program will be activated
WO2002084484A2 (en) * 2001-04-18 2002-10-24 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
WO2003025742A2 (en) * 2001-09-17 2003-03-27 Soma Networks, Inc. Software update method, apparatus and system
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US7069578B1 (en) * 2000-02-04 2006-06-27 Scientific-Atlanta, Inc. Settop cable television control device and method including bootloader software and code version table for maintaining and updating settop receiver operating system software

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998054642A1 (en) * 1997-05-30 1998-12-03 Koninklijke Philips Electronics N.V. Failsafe method for upgrading set-top system software from a network server
EP0961193A2 (en) * 1998-05-29 1999-12-01 Texas Instruments Incorporated Secure computing device
EP1087294A2 (en) * 1999-09-27 2001-03-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US7069578B1 (en) * 2000-02-04 2006-06-27 Scientific-Atlanta, Inc. Settop cable television control device and method including bootloader software and code version table for maintaining and updating settop receiver operating system software
FR2816729A1 (en) * 2000-11-14 2002-05-17 Gemplus Card Int Method for verification before activation of a program loaded into a smart card, uses hash value of the program stored in first memory and computes hash of program loaded into second memory to determine whether the program will be activated
WO2002084484A2 (en) * 2001-04-18 2002-10-24 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
WO2003025742A2 (en) * 2001-09-17 2003-03-27 Soma Networks, Inc. Software update method, apparatus and system
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502281A (en) * 2019-07-19 2019-11-26 浙江万胜智能科技股份有限公司 A kind of method of embedded device starting linux kernel and file system

Similar Documents

Publication Publication Date Title
EP2150891B1 (en) Robust firmware upgrade in a network terminal
US8997083B2 (en) Managing a network of computer systems using a version identifier generated based on software packages installed on the computing systems
US8640119B2 (en) Determining compatibility of a software package update using a version identifier
CN105335171A (en) Method and device for long residence of application program in background of operating system
US20090037717A1 (en) Firmware retrieval across a network
EP2449751B1 (en) Method of starting up a computing device in a network, server and network of computing devices for the implementation thereof
EP3540602B1 (en) Method for updating a boot loader for a multiprocessor device
WO2011117516A1 (en) Method, computer program and device for optimizing loading and booting of an operating system in a computer system via a communication network
US20170068529A1 (en) Capturing and Deploying an Operation System in a Computer Environment
CN102314421A (en) Self-rescuing method and self rescuing device for file system after being damaged
EP2876551A1 (en) Method, computer program and device for configuring or maintaining of an information system in a cluster
US20110131566A1 (en) Systems and methods for managing a network of computer system using a version identifier generated based on software packages installed on the computing systems
US8453141B1 (en) High performance install update
EP1908305B1 (en) Method for detecting errors during initialization of an electronic appliance and apparatus therefor
WO2007104899A1 (en) Method for robust software updating
US10911304B1 (en) Client-server transaction protocol for compatibility verification
WO2006072747A1 (en) Automatic internet connection device
EP2162821A1 (en) Storage method
FR2950171A1 (en) Method for securing data integrity in unique memory i.e. flash memory, of electronic device, involves loading parameters in zone of memory, and loading parameters of zone in work zone of memory during functioning of electronic device
WO2004074959A2 (en) Method for the production of a data processing cluster and computer system for operating in cluster mode
EP4343568A1 (en) An entity for implementing a service in a network, an application device, and a method for performing an operation of a service
EP2353277A1 (en) Method and system for synchronizing a set of software modules of a computing system distributed as a cluster of servers
FR2903791A1 (en) Software module i.e. complete software or file, downloading method, involves storing downloaded software module in storing zone that is defined as new execution zone, and defining memory zone by switching variable
FR3041450A1 (en) CUSTOMER / SERVER ARCHITECTURE FOR THE ADMINISTRATION OF A SUPERCALCULATOR
EP2077500A1 (en) High-availability computer system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07731748

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07731748

Country of ref document: EP

Kind code of ref document: A1