WO2007085987A1 - Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier - Google Patents

Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier Download PDF

Info

Publication number
WO2007085987A1
WO2007085987A1 PCT/IB2007/050171 IB2007050171W WO2007085987A1 WO 2007085987 A1 WO2007085987 A1 WO 2007085987A1 IB 2007050171 W IB2007050171 W IB 2007050171W WO 2007085987 A1 WO2007085987 A1 WO 2007085987A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
indicator
update
data
steps
Prior art date
Application number
PCT/IB2007/050171
Other languages
French (fr)
Inventor
Boris Skoric
Alphons A. M. L. Bruekers
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2007085987A1 publication Critical patent/WO2007085987A1/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]

Definitions

  • the present invention relates to a method for keeping track of upgrade safety of firmware in electronic devices comprising a memory and a processor. Furthermore, the present invention relates to an electronic device with upgradeable firmware, a server for providing firmware update software and a data carrier comprising firmware update software.
  • a known way of making sure that trustworthy firmware is installed is provided by means of a signature verification based on a signature appended to the firmware.
  • a practical implementation thereof is that the hardware of the electronics device checks the signature. Such a check will however prevent a potentially good but unsigned firmware update from being installed.
  • a manufacturer of an electronic device may however want to allow for uncontrolled firmware updates at the risk of the owner of the device without being liable for any damages to the device and/or subsequent damages by an operational error of the device.
  • the safety and/or other good operation of parts of a car, such as an engine or breaks are increasingly dependent on embedded software such as firmware. Unauthenticated tampering with such software, which is e.g.
  • WO 2004/031949 is a method for broadcasting of software applications that need to be updated, including a communication interface for receiving data from a broadcast communication system which stores software components executable by a CPU. In this method, also configuration information is stored for identifying the software components to be broadcasted. This method provides a solution to the problem that bugs in executable software applications are present. Based on this system the software can be updated based on software sent via the broadcasting system.
  • the present invention provides a method for keeping track of upgrade safety parameters of firmware in electronic devices comprising a memory and a processor, the method comprising steps for:
  • An advantage of such a method according to the present invention is that data pertaining to performed updates can be retrieved by reading out the indicator data.
  • the tamper proof indicator may be embodied in several ways, including embodiments comprising fusible digits or flags, embodiments requiring encryption or authentication by means of a signature for writing or changing data pertaining to the indicator, embodiments in which only ROM based software is allowed access to a memory space in which data pertaining to the indicator is stored, and combinations thereof.
  • Verification of a trust level of a firmware version is preferably performed by means of verification using at least a public key comprised by the device, e.g. in tamper- proof ROM memory.
  • a public key comprised by the device, e.g. in tamper- proof ROM memory.
  • an indicator may contain one digit of information by means of which it is possible to record one instance of unsafe firmware software.
  • a manufacturer may for example allow for such a digit to be overwritten when later on a safe firmware version is installed.
  • the manufacturer may provide a system in which the one indicator pertaining to an unsafe firmware update is permanent after one firmware update with firmware software of unknown origin.
  • an array of indicator digits is available for recording a number of subsequent update states. This may be embodied by means of a fixed window or by means of a moving window in which a fixed number of the most recent updates is recorded.
  • the recording hardware of the indicator data as write-once memory or memory that is only accessible from non-changeable updater programmes stored in ROM memory of the device. Because the program is stored in ROM it is impossible to be changed for allowing unauthenticated indicator changes.
  • a data recording space for recording data pertaining to one or more firmware updates. It may be desirable to store a hash of each firmware update. In such an embodiment, it is also possible to provide a moving window of the latest firmware updates. Next to the data pertaining to one or more firmware updates, a separate indicator with the above purposes may be associated thereto.
  • a method according to the present invention comprises steps for verifying a trust level, such as a signature authentication of the firmware update.
  • a trust level such as a signature authentication of the firmware update.
  • the method comprises steps for using the indicator as a boot flag or an install flag.
  • Use as an install flag provides the manufacturer the option to register an unauthenticated install as described in the above.
  • the indicator data and data recording space are only writable during the update process, and/or the indicator data and data recording space are of a write once type.
  • a switching step is comprised for providing a selection option to a person upgrading the device for choosing whether to allow unauthenticated firmware.
  • a message can be shown to the user of the device in which a choice is offered either to install an available unauthenticated or untrusted firmware version or proceed without an upgrade.
  • alternative versions that are authorised can be offered for download in such a switching step.
  • a user can be presented with consequences regarding warranty for the product or a liability limitation of the manufacturer of the device.
  • a switching step can be comprised by the invention for providing a selection option to a person for choosing whether to allow booting the device with unauthenticated firmware.
  • the device prevents booting of the device with unauthenticated firmware unless a user actively chooses to override the prevention, using the boot switch.
  • the indicator or flag is set to register this occurrence.
  • a user can therefore actively decide whether he wishes to use unauthenticated firmware or not. Such options effectively safeguard against unknowingly installing unsafe firmware by a user.
  • An identification of firmware update software can be made based on a hash thereof, which hash has a further advantage that it can be stored using a limited amount of storage space.
  • Such storage space of a hash can effectively function as a indicator or such storage space can be linked to data representing an indicator. Using such a hash, it is possible to identify firmware update versions.
  • a further aspect of the present invention provides a method for keeping track of upgrade safety of firmware in electronic devices comprising steps for providing a firmware update from a server on a network.
  • a further aspect of the present invention provides an electronic device with upgradeable firmware, where the device comprises:
  • firmware updater for updating software that is receivable via a transportable data carrier or a network
  • the flags or indicator data are preferably protected against tampering. Preferably this is achieved by storing the flags in tamper-proof or write-once memory.
  • tamper-proof memory is relatively costly and/or requires additional efforts being built into the device in a suitable manner.
  • the flag data can be stored in flash memory, e.g. by encrypting the data and e.g. signing the data by means of a signature of the device itself.
  • a protection against replay attacks is provided.
  • An embodiment for this is one in which the device has a secure counter; each time when flag data are stored, the secure counter is increased, and the updated counter value is included in signed indicator data.
  • the device accesses flag data, it checks its own signature and then checks if the counter stored in flash corresponds to the counter in secure memory.
  • a further aspect of the present invention provides a server for providing firmware update software to a device according to claim 13 for updating with a method according to one or more of the claims 1-12, comprising a memory and a processor and network connection means.
  • a further aspect of the present invention provides a data carrier comprising firmware update software for use in a method according to one or more of the claims 1-12.
  • Fig. 1 shows a schematic representation of a first embodiment according to the present invention
  • Fig. 2 shows a preferred embodiment of a device and system according to the present invention.
  • FIG. 1 A preferred embodiment according to the present invention is shown schematically in Fig. 1.
  • This embodiment is a method for keeping track of upgrade safety of an electronic device.
  • the method starts in step 1.
  • step 2 an update is acquired, either from a data carrier such as a (solid state) memory device or a CD-ROM or via a computer network or telecommunications network.
  • a data carrier such as a (solid state) memory device or a CD-ROM or via a computer network or telecommunications network.
  • suitable data carriers for providing firmware upgrade software can be any computer readable data carrier of any sort.
  • Suitable networks can comprise public telecoms networks such as mobile or fixed dial up networks, wide area computer networks, local area computer networks or even more local personal area networks, such as Bluetooth networks or the like.
  • step 3 the actual update process is started.
  • Such an update process for firmware is generally performed by means of a reboot of the device using a specific instruction for initiating the update process.
  • the firmware update software that has been acquired can be stored on erasable memory, such as flash memory or on a hard disc available in the device.
  • a public key for authenticating the firmware update software will be retrieved or read out of a ROM memory of the device as well as a software module that is able to write to a memory location for storing data pertaining to a flag to be used for purposes according to the present invention.
  • the firmware update software is provided with a signature identifying the trustworthiness and or the maker of the software.
  • the signature is valid.
  • use is made of the public key that was read out of the ROM memory of the device.
  • step 6 If in step 6 it is determined that the signature is a valid signature, the method continues in step 9 by installing the firmware upgrade and if required rebooting the system. In this case, when both a signature is present and the signature is valid, there is no need to change a flag from safe to unsafe.
  • a first option is to use a simple one-digit flag that is set to 0 (safe) as a default value when the device is initially produced and provided with a trusted firmware version.
  • safe a simple one-digit flag that is set to 0 (safe) as a default value when the device is initially produced and provided with a trusted firmware version.
  • this digit will be set to 1 (unsafe) in order to represent the fact that an unsafe firmware update was installed.
  • an array of such single-digit flags is present in order to keep track of either all updates or all unsafe updates, or in order to keep track of a moving 'window' of a number of updates or unsafe updates.
  • the user of the device will not be able to tamper with the indicator data in any way.
  • Another way of preventing undetected tampering is to use a one time fuse which indicates a trusted update when unfused and an untrusted update when fused.
  • a flag In case all updates are registered by means of a flag, a flag will need to be changed from zero to one in case an update is unsafe. In case an update is safe, no change needs to be recorded. Logically, in case an unsafe firmware update is installed, the flag needs to be changed in step 7, which will be described below.
  • information that is linked to a flag or a firmware update will be stored in a memory representing the flag or a separate memory linked to the flag.
  • An item that is stored in such embodiments may be a hash of the firmware update in order to identify the firmware update at a later stage, e.g. when a malfunction has occurred and a warranty claim has been registered with the manufacturer of the device, or an accident has happened due to unsafe firmware malfunction which will be investigated by an authority investigating the cause of such an accident.
  • step 7 it will be determined whether a flag is set to safe or unsafe.
  • the flag is determined to be set to unsafe, which may be the case when one flag is used for several updates, the process will continue in step 9 with the installation of the upgrade in step 9.
  • an additional prompt may be presented to the user on e.g. a screen or via voice information in order to make sure that the user wishes to proceed with the unsafe install.
  • step 8 the flag will be set to unsafe.
  • the user may be asked whether he wants to proceed with an unsafe firmware update, so that the user is given a chance to abort the process. If the user chooses to continue the process and the flag is set to unsafe in step 8, the process proceeds in step 9 as described in the above.
  • the device can be a consumer electronic device, an automotive device such as a motor management system or a break system or the like, a portable telephone or computer device, etc.
  • the device comprises a memory 11 for storing a public key to be used for verifying a signature of firmware update software.
  • the device comprises a processor and a RAM memory.
  • the device is equipped with a network interface 19.
  • the device is equipped with a flash memory or an EEPROM memory. In such a memory, general purpose programmes as well as firmware updates can be stored.
  • a memory module 16 comprising either a storage space for flag data such as a flag bit or an array of flag bits, and/or a memory module 17 for recording an upgrade table comprising information such as hash data pertaining to consecutively installed firmware updates.
  • a memory module 16 comprising either a storage space for flag data such as a flag bit or an array of flag bits, and/or a memory module 17 for recording an upgrade table comprising information such as hash data pertaining to consecutively installed firmware updates.
  • both of these memory modules can only be written by instructions that are not changeable such as instructions stored in ROM memory of the device.
  • the signature verifier 18 Connected with the processor there is the signature verifier 18, which can be embodied by means of a hardware module or a software component. As with the software for writing to the flag memory and the public key data memory 11 , this software is preferably tamper proof, since it carries out security operations.
  • the history of firmware upgrades will be retrievable to an extent necessary for determining whether the user has allowed firmware that has initiated unsafe flag registrations. Any malfunction or damage that was caused to the device and/or its environment after installation of unsafe firmware will therefore be attributable to other parties than the manufacturer of the device.
  • the manufacturer can associate a disclaimer to such an occurrence.
  • the device it is possible to prevent the device from booting at all using the switch 14.
  • One embodiment of the device is conceivable with merely the switch 14 without the flag such that firmware versions without a valid signature will be prevented at all from being installed or alternatively, the device can be prevented from being booted using firmware lacking a valid signature.
  • the signature verifier checks the signature before a requested update, or resp. before each boot up of the device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention provides a device and method for keeping track of unsafe firmware updates. The problem is that malfunction that is caused by faulty third party firmware can occur which can lead to damages for which a manufacturer of an electronic device is held liable. The solution is that any installation of untrusted software is traceable because of a tamper proof indicator or by preventing such firmware from being installed or from being executed.

Description

Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier
The present invention relates to a method for keeping track of upgrade safety of firmware in electronic devices comprising a memory and a processor. Furthermore, the present invention relates to an electronic device with upgradeable firmware, a server for providing firmware update software and a data carrier comprising firmware update software.
The complexity of firmware in electronic devices increases constantly. Therefore, it is increasingly desirable that possible errors in the firmware can be corrected. Such a correction is generally performed by means of firmware upgrades.
Besides firmware upgrades devised by the manufacturer of an electronic device, it is also possible that open source firmware is used in hardware devices. An advantage thereof is that bug-fixes may be available faster than a manufacturer's solution to a problem. A disadvantage of open source firmware is that malicious instructions may be present.
A known way of making sure that trustworthy firmware is installed, is provided by means of a signature verification based on a signature appended to the firmware. A practical implementation thereof is that the hardware of the electronics device checks the signature. Such a check will however prevent a potentially good but unsigned firmware update from being installed. A manufacturer of an electronic device may however want to allow for uncontrolled firmware updates at the risk of the owner of the device without being liable for any damages to the device and/or subsequent damages by an operational error of the device. For example in the car industry, the safety and/or other good operation of parts of a car, such as an engine or breaks, are increasingly dependent on embedded software such as firmware. Unauthenticated tampering with such software, which is e.g. performed in so called tuning shops, may affect safety precautions or good operations safeguarded by the manufacturer. It is therefore highly valuable to be able to assess the origin of firmware. Known from the WO 2004/031949 is a method for broadcasting of software applications that need to be updated, including a communication interface for receiving data from a broadcast communication system which stores software components executable by a CPU. In this method, also configuration information is stored for identifying the software components to be broadcasted. This method provides a solution to the problem that bugs in executable software applications are present. Based on this system the software can be updated based on software sent via the broadcasting system.
When updating firmware however, the problem arises who is responsible for errors in the update software. In case the software is made by the manufacturer of the device, this answer is relatively straightforward. In case the software is coming from a third party, the answer may not be straightforward and mired with legal issues.
In order to provide a solution to this problem, the present invention provides a method for keeping track of upgrade safety parameters of firmware in electronic devices comprising a memory and a processor, the method comprising steps for:
- accessing firmware update software by means of a transportable data carrier or via a network for performing the update,
- performing an update operation of the firmware with the accessed firmware update software, and
- setting an indicator for registering parameters regarding the update, wherein the indicator is tamper proof.
An advantage of such a method according to the present invention is that data pertaining to performed updates can be retrieved by reading out the indicator data.
The tamper proof indicator may be embodied in several ways, including embodiments comprising fusible digits or flags, embodiments requiring encryption or authentication by means of a signature for writing or changing data pertaining to the indicator, embodiments in which only ROM based software is allowed access to a memory space in which data pertaining to the indicator is stored, and combinations thereof.
Verification of a trust level of a firmware version is preferably performed by means of verification using at least a public key comprised by the device, e.g. in tamper- proof ROM memory. This way, use of another key and therefore the possibility of using unauthenticated firmware is prevented. In a simple embodiment, such an indicator may contain one digit of information by means of which it is possible to record one instance of unsafe firmware software. Depending on design parameters, a manufacturer may for example allow for such a digit to be overwritten when later on a safe firmware version is installed. In other cases, the manufacturer may provide a system in which the one indicator pertaining to an unsafe firmware update is permanent after one firmware update with firmware software of unknown origin.
In another embodiment, it is possible that an array of indicator digits is available for recording a number of subsequent update states. This may be embodied by means of a fixed window or by means of a moving window in which a fixed number of the most recent updates is recorded. In these embodiments, it is possible to devise the recording hardware of the indicator data as write-once memory or memory that is only accessible from non-changeable updater programmes stored in ROM memory of the device. Because the program is stored in ROM it is impossible to be changed for allowing unauthenticated indicator changes.
In further embodiments, it is possible to provide for a data recording space for recording data pertaining to one or more firmware updates. It may be desirable to store a hash of each firmware update. In such an embodiment, it is also possible to provide a moving window of the latest firmware updates. Next to the data pertaining to one or more firmware updates, a separate indicator with the above purposes may be associated thereto.
Preferably, a method according to the present invention comprises steps for verifying a trust level, such as a signature authentication of the firmware update. An advantage thereof is that is that it is specifically known what the origin of a firmware update is, or at least it may be determined that an update was not authorised by a trusted party.
By further preference, the method comprises steps for using the indicator as a boot flag or an install flag. Use as an install flag provides the manufacturer the option to register an unauthenticated install as described in the above.
Preferably, the indicator data and data recording space are only writable during the update process, and/or the indicator data and data recording space are of a write once type. Alternatively, it is possible to set a boot flag when the device is booted by means of unauthenticated firmware.
In a further preferred embodiment, a switching step is comprised for providing a selection option to a person upgrading the device for choosing whether to allow unauthenticated firmware. In such a case, a message can be shown to the user of the device in which a choice is offered either to install an available unauthenticated or untrusted firmware version or proceed without an upgrade. Possibly, alternative versions that are authorised can be offered for download in such a switching step. Also, a user can be presented with consequences regarding warranty for the product or a liability limitation of the manufacturer of the device.
A switching step can be comprised by the invention for providing a selection option to a person for choosing whether to allow booting the device with unauthenticated firmware. The device prevents booting of the device with unauthenticated firmware unless a user actively chooses to override the prevention, using the boot switch. Preferably, according to the present invention, in case the user overrides preventing booting the device with the unauthenticated software, also the indicator or flag is set to register this occurrence.
A user can therefore actively decide whether he wishes to use unauthenticated firmware or not. Such options effectively safeguard against unknowingly installing unsafe firmware by a user.
An identification of firmware update software can be made based on a hash thereof, which hash has a further advantage that it can be stored using a limited amount of storage space. Such storage space of a hash can effectively function as a indicator or such storage space can be linked to data representing an indicator. Using such a hash, it is possible to identify firmware update versions.
A further aspect of the present invention provides a method for keeping track of upgrade safety of firmware in electronic devices comprising steps for providing a firmware update from a server on a network. An advantage thereof is that a network device will always be able to connect to a network location in which firmware updates are stored, e.g. by the manufacturer of the device or trusted open source party.
A further aspect of the present invention provides an electronic device with upgradeable firmware, where the device comprises:
- a memory and a processor,
- a network connection or a data carrier interface,
- a firmware updater for updating software that is receivable via a transportable data carrier or a network,
- indicator data storage means for storage of indicator data for registering parameters regarding an update, wherein the indicator data storage means are tamper proof. Advantages of such an electronic device are indicated in the above in connection with a description of the method. As was described in the above, the flags or indicator data are preferably protected against tampering. Preferably this is achieved by storing the flags in tamper-proof or write-once memory. However, tamper-proof memory is relatively costly and/or requires additional efforts being built into the device in a suitable manner. Alternatively, the flag data can be stored in flash memory, e.g. by encrypting the data and e.g. signing the data by means of a signature of the device itself.
Preferably, a protection against replay attacks is provided. An embodiment for this is one in which the device has a secure counter; each time when flag data are stored, the secure counter is increased, and the updated counter value is included in signed indicator data. When the device accesses flag data, it checks its own signature and then checks if the counter stored in flash corresponds to the counter in secure memory.
A further aspect of the present invention provides a server for providing firmware update software to a device according to claim 13 for updating with a method according to one or more of the claims 1-12, comprising a memory and a processor and network connection means. An advantage thereof is that for networked devices any desired upgrade will always be available.
A further aspect of the present invention provides a data carrier comprising firmware update software for use in a method according to one or more of the claims 1-12.
Further advantages, features and details of the present invention will be described below with reference to the annexed drawings, in which:
Fig. 1 shows a schematic representation of a first embodiment according to the present invention;
Fig. 2 shows a preferred embodiment of a device and system according to the present invention.
A preferred embodiment according to the present invention is shown schematically in Fig. 1. This embodiment is a method for keeping track of upgrade safety of an electronic device. The method starts in step 1. In step 2, an update is acquired, either from a data carrier such as a (solid state) memory device or a CD-ROM or via a computer network or telecommunications network. Generally, suitable data carriers for providing firmware upgrade software can be any computer readable data carrier of any sort. Suitable networks can comprise public telecoms networks such as mobile or fixed dial up networks, wide area computer networks, local area computer networks or even more local personal area networks, such as Bluetooth networks or the like.
In step 3, the actual update process is started. Such an update process for firmware is generally performed by means of a reboot of the device using a specific instruction for initiating the update process. For purposes of the update, the firmware update software that has been acquired can be stored on erasable memory, such as flash memory or on a hard disc available in the device.
In step 5, a public key for authenticating the firmware update software will be retrieved or read out of a ROM memory of the device as well as a software module that is able to write to a memory location for storing data pertaining to a flag to be used for purposes according to the present invention. In step 5, it is determined whether the firmware update software is provided with a signature identifying the trustworthiness and or the maker of the software. In case it is determined that a signature is present in step 5, in step 6 it is determined whether the signature is valid. For determining the validity of the signature, use is made of the public key that was read out of the ROM memory of the device. For the purpose of determining the validity of the signature, use can be made of a chain of trust based on a root of trust. In case the signature was appended to the firmware update software by an authority not directly linked to the available public key, the chain of trust can be used to indirectly verify the validity of the signature.
If in step 6 it is determined that the signature is a valid signature, the method continues in step 9 by installing the firmware upgrade and if required rebooting the system. In this case, when both a signature is present and the signature is valid, there is no need to change a flag from safe to unsafe.
In a device making use of such a method, several kinds of indicators or data storage mechanisms with respect to firmware updates can be used. A first option is to use a simple one-digit flag that is set to 0 (safe) as a default value when the device is initially produced and provided with a trusted firmware version. When an unsafe firmware update is installed, this digit will be set to 1 (unsafe) in order to represent the fact that an unsafe firmware update was installed. In another embodiment an array of such single-digit flags is present in order to keep track of either all updates or all unsafe updates, or in order to keep track of a moving 'window' of a number of updates or unsafe updates. Preferably, the user of the device will not be able to tamper with the indicator data in any way. Therefore, a change of the indicator value is only possible by means of software present in the ROM of the device. Another way of preventing undetected tampering is to use a one time fuse which indicates a trusted update when unfused and an untrusted update when fused.
In case all updates are registered by means of a flag, a flag will need to be changed from zero to one in case an update is unsafe. In case an update is safe, no change needs to be recorded. Logically, in case an unsafe firmware update is installed, the flag needs to be changed in step 7, which will be described below.
In other embodiments, information that is linked to a flag or a firmware update will be stored in a memory representing the flag or a separate memory linked to the flag. An item that is stored in such embodiments may be a hash of the firmware update in order to identify the firmware update at a later stage, e.g. when a malfunction has occurred and a warranty claim has been registered with the manufacturer of the device, or an accident has happened due to unsafe firmware malfunction which will be investigated by an authority investigating the cause of such an accident.
If in step 5 it has been determined that no signature is present, or if in step 6 it has been determined that a signature that is present is invalid, in step 7 it will be determined whether a flag is set to safe or unsafe. In case the flag is determined to be set to unsafe, which may be the case when one flag is used for several updates, the process will continue in step 9 with the installation of the upgrade in step 9. Optionally, an additional prompt may be presented to the user on e.g. a screen or via voice information in order to make sure that the user wishes to proceed with the unsafe install.
If in step 7 it is determined that the flag was set to safe, in step 8 the flag will be set to unsafe. Optionally, the user may be asked whether he wants to proceed with an unsafe firmware update, so that the user is given a chance to abort the process. If the user chooses to continue the process and the flag is set to unsafe in step 8, the process proceeds in step 9 as described in the above.
In Fig. 2, an overview of a device in connection with a network and a server is schematically shown. The device can be a consumer electronic device, an automotive device such as a motor management system or a break system or the like, a portable telephone or computer device, etc. The device comprises a memory 11 for storing a public key to be used for verifying a signature of firmware update software. Furthermore, the device comprises a processor and a RAM memory. For connecting to a computer network with an attached server 10 for providing firmware upgrade software, the device is equipped with a network interface 19. For e.g. storage of programmes, the device is equipped with a flash memory or an EEPROM memory. In such a memory, general purpose programmes as well as firmware updates can be stored. An advantage of such memory is that data can be retained after a power down of the device. For storage of flag data, a memory module 16 comprising either a storage space for flag data such as a flag bit or an array of flag bits, and/or a memory module 17 for recording an upgrade table comprising information such as hash data pertaining to consecutively installed firmware updates. Preferably both of these memory modules can only be written by instructions that are not changeable such as instructions stored in ROM memory of the device.
Connected with the processor there is the signature verifier 18, which can be embodied by means of a hardware module or a software component. As with the software for writing to the flag memory and the public key data memory 11 , this software is preferably tamper proof, since it carries out security operations.
In a device according to the invention the history of firmware upgrades will be retrievable to an extent necessary for determining whether the user has allowed firmware that has initiated unsafe flag registrations. Any malfunction or damage that was caused to the device and/or its environment after installation of unsafe firmware will therefore be attributable to other parties than the manufacturer of the device. The manufacturer can associate a disclaimer to such an occurrence.
Also, it is possible to prevent the device from booting at all using the switch 14. One embodiment of the device is conceivable with merely the switch 14 without the flag such that firmware versions without a valid signature will be prevented at all from being installed or alternatively, the device can be prevented from being booted using firmware lacking a valid signature. For these embodiments, the signature verifier checks the signature before a requested update, or resp. before each boot up of the device.
The invention has been described with reference to the above embodiments. The person skilled in the art may combine several embodiments or use insights that are obvious to him within the disclosure of the present document. The invention is not limited to the above description. The rights are conferred by the annexed claims.

Claims

CLAIMS:
1. Method for keeping track of upgrade safety parameters of firmware in electronic devices comprising a memory and a processor, the method comprising steps for:
- accessing firmware update software by means of a transportable data carrier or via a network for performing the update,
- performing an update operation of the firmware with the accessed firmware update software, and
- setting an indicator for registering parameters regarding the update, wherein the indicator is tamper proof.
2. Method according to claim 1 comprising steps for verifying a trust level, such as an authenticating signature, of the firmware update.
3. Method according to claim 1 or 2 in which the step for setting the indicator comprises steps for fusing a fusible digit.
4. Method according to any of the preceding claims in which the step for setting the indicator comprises steps for protecting indicator data by means of encryption and/or authentication steps.
5. Method according to any of the preceding claims in which the step for setting the indicator comprises steps for accessing restricted access memory.
6. Method according to claim 1 or 2 comprising steps for determining at least one value of indicator data and proceeding with the method based on the determined value.
7. Method according to one or more of the preceding claims, in which the indicator is linkable to a data recording space for recording data pertaining to one or more firmware updates.
8. Method according to any of the preceding claims in which indicator data are only writable during the update process.
9. Method according to one or more of the preceding claims comprising a switching step for providing a selection option to a party updating the device for choosing whether or not to perform an update based on unauthenticated firmware.
10. Method according to one or more of the preceding claims comprising a switching step for providing a selection option to a party for choosing whether or not to proceed executing unauthenticated firmware.
11. Method according to one or more of the preceding claims in which the steps for providing a trust level comprise steps for verification using at least a public key comprised by the device.
12. Method according to one or more of the claims 4-11 in which the steps for providing verification of the trust level comprise steps for verifying a chain of trust based on a root of trust towards a certificate that is signed with a secret key corresponding to the public key comprised by the device.
13. Method according to one or more of the preceding claims comprising steps for identifying the firmware update software based on a hash thereof and/or for storing the hash in the data recording space.
14. Method according to one or more of the preceding claims in which the indicator comprises a tamper proof counter for keeping track of a number of updates or executions of firmware.
15. Electronic device with updateable firmware, comprising:
- a memory and a processor,
- a network connection or a data carrier interface,
- a firmware updater for updating software that is receivable via a transportable data carrier or a network, - indicator data storage means for storage of indicator data for registering parameters regarding an update, wherein the indicator data storage means are tamper proof.
16. Server for providing firmware update software to a device according to claim 15 for updating with a method according to one or more of the claims 1-14, comprising a memory and a processor and network connection means.
17. Data carrier comprising firmware update software for use in a method according to one or more of the claims 1-12.
PCT/IB2007/050171 2006-01-27 2007-01-18 Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier WO2007085987A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06100917.1 2006-01-27
EP06100917 2006-01-27

Publications (1)

Publication Number Publication Date
WO2007085987A1 true WO2007085987A1 (en) 2007-08-02

Family

ID=38009563

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2007/050171 WO2007085987A1 (en) 2006-01-27 2007-01-18 Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier

Country Status (1)

Country Link
WO (1) WO2007085987A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010004446A1 (en) 2010-01-13 2011-07-14 Giesecke & Devrient GmbH, 81677 Method for providing a secure counter on a terminal
US20220374511A1 (en) * 2017-02-21 2022-11-24 Timothy Raymond Pearson Systems and methods for assuring integrity of operating system and software components at runtime

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2205667A (en) * 1987-06-12 1988-12-14 Ncr Co Method of controlling the operation of security modules
US5579522A (en) * 1991-05-06 1996-11-26 Intel Corporation Dynamic non-volatile memory update in a computer system
US20030051090A1 (en) * 2001-09-10 2003-03-13 Bonnett William B. Apparatus and method for secure program upgrade
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
US20050216757A1 (en) * 2004-03-26 2005-09-29 Gardner Philip B Persistent servicing agent
WO2006003564A1 (en) * 2004-06-29 2006-01-12 Koninklijke Philips Electronics N.V. Safe flashing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2205667A (en) * 1987-06-12 1988-12-14 Ncr Co Method of controlling the operation of security modules
US5579522A (en) * 1991-05-06 1996-11-26 Intel Corporation Dynamic non-volatile memory update in a computer system
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
US20030051090A1 (en) * 2001-09-10 2003-03-13 Bonnett William B. Apparatus and method for secure program upgrade
US20050216757A1 (en) * 2004-03-26 2005-09-29 Gardner Philip B Persistent servicing agent
WO2006003564A1 (en) * 2004-06-29 2006-01-12 Koninklijke Philips Electronics N.V. Safe flashing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010004446A1 (en) 2010-01-13 2011-07-14 Giesecke & Devrient GmbH, 81677 Method for providing a secure counter on a terminal
WO2011085960A1 (en) 2010-01-13 2011-07-21 Giesecke & Devrient Gmbh Method for providing a secure counter on a terminal
US20220374511A1 (en) * 2017-02-21 2022-11-24 Timothy Raymond Pearson Systems and methods for assuring integrity of operating system and software components at runtime

Similar Documents

Publication Publication Date Title
US8560823B1 (en) Trusted modular firmware update using digital certificate
EP0849657B1 (en) Secure data processing method and system
US9251336B1 (en) Secure versioning of software packages
JP5038487B2 (en) Method and apparatus for protecting SIMlock information in an electronic device
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
TWI607376B (en) System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
US9055427B2 (en) Updating configuration parameters in a mobile terminal
FI114416B (en) Method for securing the electronic device, the backup system and the electronic device
US8528108B2 (en) Protecting secret information in a programmed electronic device
US8694761B2 (en) System and method to secure boot both UEFI and legacy option ROM's with common policy engine
JP5992457B2 (en) Protecting operating system configuration values
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US8566815B2 (en) Mechanism for updating software
US8756414B2 (en) Information processing apparatus, software verification method, and software verification program
CN111066016A (en) Application certificate
US20100100966A1 (en) Method and system for blocking installation of some processes
KR100660641B1 (en) Secure booting method for mobile terminal and mobile terminal for adopting the same
CN112613011B (en) USB flash disk system authentication method and device, electronic equipment and storage medium
CN111291425B (en) Chip protection method and device, storage medium and vehicle-mounted chip
WO2007085987A1 (en) Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier
CN115828273A (en) Vehicle safety starting method and device, electronic control unit and storage medium
US12019752B2 (en) Security dominion of computing device
CN114297679B (en) Method for encrypted transmission and upgrading of mirror image
CN117494232A (en) Method, device, system, storage medium and electronic equipment for executing firmware
JP2011028694A (en) Method for installing application by using secure medium, method for uninstalling application and method for updating application

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07700630

Country of ref document: EP

Kind code of ref document: A1