Medical grade bootloader for ARM microcontrollers
The process of installing firmware updates in the field is challenging for many products, especially medical devices. Our CSA bootloader saves a lot of development time during embedded projects, creating added value in terms of performing secure (remote) updates in the field.
The CSA bootloader implements the functionality needed for installing, updating and protecting firmware against modification and reverse engineering. Combined with specially designed hardware, this minimises the risk to patients from age-related, environmental and malicious modification of a medical device's firmware. The bootloader is primarily used in systems consisting of a host computer (PC) and one or more microcontrollers. The bootloader and the respective application firmware implement a proprietary RPC interface; this enables them to be controlled by application software on the host computer.
The CSA bootloader meets the following requirements (see the next section for technical details):
- Installation of firmware during production
- Updating the firmware and bootloader in the field (in-application programming)
- Resistance to errors and prevention of devices being rendered unusable, or at least ensuring the recoverability of the device in the event of failed updates (e.g. during a power failure)
- Resistance to attacks
- Limiting the damage of a successful attack (e.g. reading out keys from the microcontroller)
Optional:
- Downgrade prevention: preventing the installation of older firmware versions
- Device-specific firmware: firmware is linked to the hardware of a device (e.g. via the unique identifier of the microcontroller)
Under development:
- Integrity and authenticity checks on the firmware during start up
- Protecting the device against the installation of unauthorised firmware
- Protection against the installation of firmware onto unauthorised devices
- Protection against modification of the firmware or the firmware update
- Protection against reverse engineering of the firmware or the firmware update
- Production keys – ensuring that devices or components that have “fallen off the back of a lorry” on the way from the electronics manufacturer to the assembling company, for example, cannot be used
For more details, see the "Asymmetric cryptography" section.
The bootloader is equipped with ARM Compiler Version 5. Launched as part of the CSA Boostcamp 2022, the transition to GCC is currently in the planning phase. In addition, the Boostcamp also laid the foundation for automatic code generation for RPC commands using clean JSON files.
CSA offers a ready-to-use, licensable bootloader solution, as well as customer-specific adaptation and development as a service. The bootloader has been developed, documented and verified in accordance with IEC 62304.
For applications involving integration into a customer product, the integration plans and protocols can be supplied, which enable the customer or CSA to adapt them to the respective product. We would be happy to show you the bootloader's full range of functions. If you are interested, please contact our sales team, who will arrange for you to meet with an expert.
You can find further interesting details on implementation, hardware requirements and information on establishing communication below.
Figure 1 Overview of STM32L4 regions in flash memory
In the current implementation, both bootloaders and the firmware have a checksum for verification purposes. For the option with asymmetric cryptography, the checksum is replaced by a cryptographic signature.
Bootloader update
In addition to the application firmware, the bootloader can also be updated securely in the field. To ensure that the device remains usable or recoverable even in the event of a failed update, there are two copies of the bootloader on the target system. A bootloader can only ever overwrite the other copy, which guarantees a fallback should an error occur.
Asymmetric cryptography (under development)
By using asymmetric cryptography to encrypt and decrypt firmware as well as to generate and verify digital signatures, keys extracted from one device by an attacker cannot be used directly for further attacks on other devices or the entire system. A key that is stored in the device’s memory to verify a signature, for example, cannot be used to generate valid signatures.
Figure 2 Typical application with daisy chain topology
Restrictions
As the bootloader is usually stored in the normal program memory (like the application firmware itself), we recommend using hardware measures to protect it against malicious modification (e.g. via JTAG). Most microcontrollers contain a variety of options for doing this by default.