Betrachten Sie das Beispiel eines elektronischen Steuergeräts (ECU), das herkömmliche statische Embedded Software verwendet. 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 in den Flash-Speicher, verantwortlich. Daher wird auch häufig der Begriff Flash Bootloader verwendet.
Werden in der Entwicklung und Produktion die gleichen Bootloader verwendet?
Üblicherweise kann derselbe Bootloader in der Entwicklung von Fahrzeugen und den dazugehörigen Steuergeräten und in der normalen Produktion verwendet werden, wobei Schutzmechanismen dafür sorgen, dass bei Produktionssteuergeräten viele Funktionen von Entwicklungs- oder Konstruktions-Bootloadern deaktiviert sind. Während der Fahrzeugentwicklung ist es oft wünschenswert, Sicherheitsmechanismen von Produktions-Bootloadern zu entfernen, um eine schnelle Bereitstellung von Entwicklungssoftware zu ermöglichen.
Sicherer Bootloader
Die Sicherung von Bootloadern ist eine zunehmende Anforderung. Traditionell handelt es sich jedoch um eine Unterscheidung, die in der Regel implementiert wird, um Funktionen zu schützen, die die Sicherheit und manchmal auch die Leistung betreffen.
Bootloader überprüfen in der Regel den Softwarespeicher des Steuergeräts beim Booten und die empfangene Software vor einem Software-Update und danach im Speicher.
Zu den Mechanismen gehören in der Regel:
- Authentifizierung der empfangenen und/oder beim Bootvorgang im Speicher vorhandenen Software, oft unter Verwendung eines Hashs der Software-Binärdatei zur Überprüfung der Korrektheit, der aus einem sicheren Kompilierungsprozess offiziell freigegebener Softwareversionen generiert wurde.
- Authentifizierung des Absenders mittels Seed und Schlüssel, Schutz sicherer Daten innerhalb des Steuergeräts mittels gesichertem Speicher und Speicherkarten zur Definition von zugänglichen/wiederbeschreibbaren Bereichen.
Dualer Bootloader
Einige Implementierungen von Bootloadern bestehen aus zwei Teilen, daher der Begriff Dual-Bootloader. In diesem Fall kann der primäre Bootloader im Rahmen der Sicherung des Bootloaders nicht aktualisiert werden. Dabei geht es um das Hochfahren des Moduls und das Update des sekundären Bootloaders. Der sekundäre Bootloader kann über einen gesicherten Prozess aktualisiert werden, sodass Änderungen an der Softwareaktualisierung möglich sind, z. B. an der Speicherkarte, die normalerweise gesperrt werden kann. Dieser Bootloader-Typ ist heute weniger gebräuchlich, da neue Methoden zur Sicherung des Aktualisierungsprozesses mithilfe von integrierter sicherer Hardware, z. B. HSM (Hardware Secure Module), verwendet werden.
Beachten Sie, dass dieser Begriff mit Dual-Boot vergleichbar ist, bei dem zwei Boot-Blöcke oder volle Speicher zur Verfügung stehen, sodass eine Aktualisierung auf der unbenutzten Version stattfinden kann, während eine Version aktiv ist. Dies erfordert zusätzlichen Speicher in jedem Steuergerät, das diese Methode der Aktualisierung unterstützt.
Capital Embedded Bootloader
Capital Embedded Bootloader unterstützt zuverlässige Steuergeräte-Updates während der Entwicklung, der Fahrzeugproduktion und während der Lebensdauer des Fahrzeugs über vernetzte Diagnosetools oder Over-the-Air-Methoden. Das standardisierte ISO 14229 UDS-Protokoll wird über eine Reihe gängiger Fahrzeugnetz-Busse, Ethernet, CAN/CAN-FD, LIN, FlexRay oder andere Methoden wie die ASAM-Kalibrierungsprotokolle verwendet. Cybersicherheit ist ein wichtiger Aspekt des Ablaufs der Software-Updates und Features, der Softwareauthentifizierung ermöglicht, und sichere Startoptionen sind Teil der Lösung. Um OEM- (Original Equipment Manufacturers) und MCU-spezifische Anforderungen zu erfüllen, steht umfangreiche Unterstützung für eine breite Palette von Steuergeräteprojekten zur Verfügung.
Was ist der Unterschied zwischen OTA und FOTA?
OTA-Update (Over-the-Air) oder FOTA (Firmware-Over-the-Air) ist eine Methode, um den Empfang neuer Software für ein Embedded-Device, zum Beispiel ein Automotive-Steuergerät, auf ferngesteuerte Weise zu ermöglichen, und nicht über ein direkt angeschlossenes Service-Tool in einer Werkstatt Dies kann eine gewisse Onboard-Diagnosetester-Funktion in einem koordinierenden Steuergerät und/oder Wiederherstellungs- und Selbsttestfunktionen im Bootloader selbst erfordern.