Neem het voorbeeld van een elektronische besturingseenheid (ECU) die traditionele statische geïntegreerde software gebruikt. Bootloader is een softwarecomponent dat zowel wordt gebruikt om het opstarten van de hoofdsoftware van de ECU te starten, inclusief het kopiëren van de software naar het RAM-geheugen, als om eventuele controles uit te voeren op de software vóór het opstarten. De bootloader is ook verantwoordelijk voor het updaten van de software, het ontvangen, controleren en schrijven van de bijgewerkte software naar het geheugen, meestal Flash-geheugen. Daarom wordt de term Flash Bootloader ook vaak gebruikt.
Worden bij de ontwikkeling en productie dezelfde bootloaders gebruikt?
Gewoonlijk kan dezelfde bootloader worden gebruikt bij de ontwikkeling van voertuigen en de bijbehorende ECU's en bij normale productie, met beveiliging om ervoor te zorgen dat productie-ECU's over veel ontwikkelingscapaciteiten beschikken of dat de technische bootloaders zijn gedeactiveerd. Tijdens de ontwikkeling van voertuigen is het vaak wenselijk om de beveiligingsmechanismen van productieschotels te verwijderen om een snelle implementatie van ontwikkelingssoftware mogelijk te maken.
Veilige bootloader
In toenemende mate moeten alle bootloaders beveiligd zijn. Van oudsher was dit echter een onderscheid, dat meestal werd toegepast om functionaliteit te beschermen die betrekking heeft op beveiliging, veiligheid en soms prestaties.
Bootloaders controleren gewoonlijk het softwaregeheugen van de ECU tijdens het opstarten en ontvangen software vóór een software-update en in het geheugen daarna.
Mechanismen omvatten gewoonlijk:
- Authenticatie van de software die tijdens het opstarten is ontvangen en/of in het geheugen aanwezig is, waarbij vaak een hash van het binaire bestand van de software wordt gebruikt om de juistheid te controleren, gegenereerd op basis van een veilig compilatieproces van officieel uitgebrachte softwareversies.
- Authenticatie van de afzender met behulp van een seed en key, beveiliging van beveiligde gegevens in de ECU met behulp van beveiligd geheugen en geheugenkaarten om toegankelijke/herschrijfbare gebieden te definiëren.
Dubbele bootloader
Sommige implementaties van bootloaders bestaan uit twee delen, vandaar de term dubbele bootloader. In dit geval kan de primaire bootloader niet worden bijgewerkt, als onderdeel van de beveiliging van de bootloader. Dit betreft het opstarten van de module en het updaten van de secundaire bootloader. De secundaire bootloader kan via een beveiligd proces worden bijgewerkt, waardoor wijzigingen in het software-updateproces mogelijk zijn, bijvoorbeeld de geheugenkaart, zodat deze normaal kunnen worden vergrendeld. Dit type bootloader komt nu minder vaak voor vanwege nieuwe methoden om het updateproces te beveiligen met behulp van ingebouwde beveiligde hardware, bijvoorbeeld HSM (Hardware Secure Module).
Let op, deze term lijkt op dual-boot, waarbij twee opstartblokken of volledige geheugens beschikbaar zijn, waardoor een update kan plaatsvinden op de ongebruikte versie terwijl één versie actief is. Hiervoor is extra geheugen nodig in elke ECU die deze updatemethode ondersteunt.
Capital Embedded Bootloader
Capital Embedded Bootloader ondersteunt betrouwbare ECU-updates tijdens de ontwikkeling, in de autoproductie en tijdens de levensduur van het voertuig, via aangesloten diagnosetools of draadloze methodologieën. Het gestandaardiseerde ISO 14229 UDS-protocol wordt gebruikt voor een reeks veelgebruikte voertuignetwerkbussen, Ethernet, CAN/CAN-FD, LIN, FlexRay, en het is ook mogelijk om andere methoden te gebruiken, zoals de ASAM-kalibratieprotocollen. Cyberbeveiliging is een belangrijk aspect van de software-updatestroom en functies die softwareauthenticatie en veilige opstartopties mogelijk maken, maken deel uit van de oplossing. Om te voldoen aan de specifieke eisen van OEM (Original Equipment Manufacturers) en MCU is er brede ondersteuning beschikbaar voor een breed scala aan ECU-projecten.
Wat is het verschil tussen OTA en FOTA?
Een OTA-update (over the air), of FOTA (firmware over the air), is een methode om nieuwe software voor een ingebouwd apparaat, bijvoorbeeld een ECU voor auto's, op afstand te ontvangen, en niet via een rechtstreeks aangesloten servicetool in een werkplaats. Hiervoor is mogelijk enige ingebouwde diagnostische testercapaciteit nodig in een coördinerende ECU en/of herstel- en zelftestmogelijkheden in de bootloader zelf.