Stellen Sie sich das Beispiel einer elektronischen Steuereinheit (ECU) vor, die traditionelle statische eingebettete Software verwendet. Bootloader ist eine Softwarekomponente, die sowohl zum Initiieren des Hochfahrens der Steuergeräte-Hauptsoftware, einschließlich des Kopierens der Software in den Arbeitsspeicher, als auch zur Durchführung von Überprüfungen der Software vor dem Hochfahren verwendet wird. Der Bootloader ist auch verantwortlich für Software-Updates, Empfangen, Prüfen und Schreiben der aktualisierten Software in den Speicher, normalerweise Flash-Speicher. Daher wird auch der Begriff Flash-Bootloader häufig verwendet.
Werden dieselben Bootloader in der Entwicklung und Produktion verwendet?
Im Allgemeinen kann derselbe Bootloader bei der Entwicklung von Fahrzeugen und den zugehörigen Steuergeräten sowie in der normalen Produktion verwendet werden, mit Schutzmaßnahmen, die sicherstellen, dass bei Seriensteuergeräten viele Entwicklungsfunktionen oder technische Bootloader deaktiviert sind. Während der Fahrzeugentwicklung ist es oft wünschenswert, die Sicherheitsmechanismen der Serien-Bootloader zu entfernen, um eine schnelle Bereitstellung der Entwicklungssoftware zu ermöglichen.
Sicherer Bootloader
Zunehmend müssen alle Bootloader sicher sein. Traditionell war dies jedoch eine Unterscheidung, die in der Regel implementiert wurde, um Funktionen zu schützen, die Sicherheit und manchmal Leistung betreffen.
Bootloader überprüfen in der Regel den Softwarespeicher des Steuergeräts beim Hochfahren und bei empfangener Software vor einem Software-Update und danach im Speicher.
Zu den Mechanismen gehören in der Regel:
- Authentifizierung der beim Booten empfangenen und/oder im Speicher vorhandenen Software, wobei häufig ein Hash der Software-Binärdatei verwendet wird, um die Richtigkeit zu überprüfen, der aus einem sicheren Kompilierungsprozess offiziell veröffentlichter Softwareversionen generiert wurde.
- Authentifizierung des Absenders mit Seed und Key, Schutz sicherer Daten innerhalb des Steuergeräts mithilfe von gesichertem Speicher und Speicherzuordnungen zur Definition zugänglicher/wiederbeschreibbarer Bereiche.
Dualer Bootloader
Einige Implementierungen von Bootloadern bestehen aus zwei Teilen, daher der Begriff Dual-Bootloader. In diesem Fall ist der primäre Bootloader im Rahmen der Sicherung des Bootloaders nicht aktualisierbar. Es geht um das Hochfahren des Moduls und das Update des sekundären Bootloaders. Der sekundäre Bootloader kann über einen sicheren Prozess aktualisiert werden, wodurch Änderungen am Software-Aktualisierungsprozess möglich sind, zum Beispiel Memory Map, sodass diese normalerweise gesperrt werden können. Diese Art von Bootloader ist heute aufgrund neuer Methoden zur Sicherung des Aktualisierungsprozesses mit integrierter sicherer Hardware, zum Beispiel HSM (Hardware Secure Module), weniger verbreitet.
Hinweis, dieser Begriff ist wie Dual-Boot, wobei zwei Boot-Blöcke oder volle Speicher verfügbar sind, sodass ein Update auf der unbenutzten Version stattfinden kann, während eine Version aktiv ist. Dies erfordert zusätzlichen Speicher in jedem Steuergerät, das diese Aktualisierungsmethode unterstützt.
Capital Embedded Bootloader
Capital Embedded Bootloader unterstützt zuverlässige Steuergeräte-Updates während der Entwicklung, in der Fahrzeugproduktion und während der gesamten Lebensdauer des Fahrzeugs über vernetzte Diagnosetools oder Over-the-Air-Methoden. Das standardisierte ISO 14229 UDS-Protokoll wird über eine Reihe gängiger Fahrzeugnetzwerkbusse verwendet, Ethernet, CAN/CAN-FD, LIN, FlexRay, und es ist auch möglich, andere Methoden wie die ASAM-Kalibrierungsprotokolle zu verwenden. Cybersecurity ist ein wichtiger Aspekt des Software-Aktualisierungsablaufs und Funktionen, die die Softwareauthentifizierung ermöglichen, und sichere Startoptionen sind Teil der Lösung. Um die OEM- (Original Equipment Manufacturers) und MCU-spezifischen Anforderungen zu erfüllen, steht eine breite Unterstützung für eine Vielzahl von ECU-Projekten zur Verfügung.
Was ist der Unterschied zwischen OTA und FOTA?
Ein OTA-Update (over the air), oder FOTA (Firmware over the air), ist eine Methode, um den Empfang neuer Software für ein eingebettetes Gerät, zum Beispiel ein Automobilsteuergerät, aus der Ferne zu erreichen, nicht über ein direkt angeschlossenes Servicetool in einer Werkstatt. Dies erfordert möglicherweise einige Funktionen des integrierten Diagnosetesters in einem koordinierenden Steuergerät und/oder Wiederherstellungs- und Selbsttest-Fähigkeiten im Bootloader selbst.