Betrachten wir das Beispiel einer elektronischen Steuereinheit (ECU) mit herkömmlicher statischer Embedded-Software. Der Bootloader ist eine Softwarekomponente, die sowohl zum Initiieren des Bootens der Hauptsoftware des Steuergeräts, einschließlich des Kopierens der Software in den RAM, als auch zum Durchführen von Überprüfungen der Software vor dem Booten verwendet wird. Der Bootloader ist auch für die Softwareaktualisierung, den Empfang, die Überprüfung und das Schreiben der aktualisierten Software in den Speicher, in der Regel den Flash-Speicher, verantwortlich. Daher wird auch häufig der Begriff Flash-Bootloader verwendet.
Werden die gleichen Bootloader in Entwicklung und Produktion verwendet?
Üblicherweise kann derselbe Bootloader bei der Entwicklung von Fahrzeugen und den zugehörigen Steuergeräten und in der normalen Produktion verwendet werden, wobei Schutzmaßnahmen ergriffen werden, um sicherzustellen, dass Produktionssteuergeräte viele Funktionen für die Entwicklung oder Entwicklung von Bootloadern deaktiviert haben. Während der Fahrzeugentwicklung ist es oft wünschenswert, die Sicherheitsmechanismen von Serien-Bootloadern zu entfernen, um eine schnelle Bereitstellung von 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 sich auf Sicherheit und manchmal auch auf Leistung beziehen.
Bootloader überprüfen in der Regel den Softwarespeicher des Steuergeräts beim Booten und der empfangenen Software vor einem Software-Update und danach im Speicher.
Zu den Mechanismen gehören in der Regel:
- Authentifizierung der empfangenen und/oder im Speicher vorhandenen Software beim Booten, häufig unter Verwendung eines Hashs der Software-Binärdatei, um die Richtigkeit zu überprüfen, die aus einem sicheren Kompilierungsprozess offiziell freigegebener Softwareversionen generiert wurde.
- Authentifizierung des Absenders mit Seed und Schlüssel, Schutz sicherer Daten innerhalb des Steuergeräts durch gesicherten 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 kann der primäre Bootloader nicht aktualisiert werden, um den Bootloader zu sichern. Dies betrifft das Booten des Moduls und das Update des sekundären Bootloaders. Der sekundäre Bootloader kann über einen gesicherten Prozess aktualisiert werden, wodurch Änderungen am Software-Update-Prozess möglich sind, z. B. die Speicherzuordnung, so dass diese normalerweise gesperrt werden können. Diese Art von Bootloader ist heute weniger verbreitet, da neue Methoden zur Sicherung des Update-Prozesses mit integrierter sicherer Hardware verwendet werden, z. B. HSM (Hardware Secure Module).
Beachten Sie, dass dieser Begriff wie Dual-Boot ist, bei dem Zwei-Boot-Blöcke oder volle Speicher verfügbar sind, so dass 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 Lebensdauer des Fahrzeugs über vernetzte Diagnosetools oder Over-the-Air-Methoden. Das standardisierte UDS-Protokoll nach ISO 14229 wird über eine Reihe gängiger Fahrzeugnetzwerkbusse, Ethernet, CAN/CAN-FD, LIN, FlexRay und es ist auch möglich, andere Methoden wie die ASAM-Kalibrierungsprotokolle zu verwenden. Cybersicherheit ist ein Schlüsselaspekt des Software-Update-Flusses, und Funktionen, die die Softwareauthentifizierung und sichere Startoptionen ermöglichen, sind Teil der Lösung. Um OEM- (Original Equipment Manufacturers) und MCU-spezifische Anforderungen zu erfüllen, steht eine breite Palette von Steuergeräteprojekten zur Verfügung.
Was ist der Unterschied zwischen OTA und FOTA?
OTA (Over the Air) Update oder FOTA (Firmware over the Air) ist eine Methode, um den Empfang neuer Software für ein Embedded-Gerät, z. B. ein Kfz-Steuergerät, aus der Ferne zu erreichen, nicht über ein direkt angeschlossenes Service-Tool in einer Werkstatt. Dies kann einige Onboard-Diagnosetester-Fähigkeiten in einem koordinierenden Steuergerät und/oder Wiederherstellungs- und Selbsttest-Fähigkeiten im Bootloader selbst erfordern.