Embedded Security bildet die Grundlage für Automotive Cyber Security. Warum hochsichere Datenspeicherung die Basis für eine zuverlässige Prävention gegen immer komplexere Cyberangriffe liefert? Die Gründe sind ebenso einfach wie einleuchtend. Und genau diese stellen wir heute vor.
Embedded Security: Welche Use Cases von Flash Memory sind relevant?
Schon bei der verteilten Fahrzeugarchitektur hat es begonnen: an einer Vielzahl von Stellen wird in jedem Fahrzeug Flash Memory in Embedded Systems genutzt. In den aktuellen Fahrzeugen werden bereits mehrere Millionen Zeilen Code eingesetzt, doch die Entwicklung geht weiter und mit der steigenden Komplexität der Systeme steigt auch die Menge an Code und der Umfang des nötigen Data Storage.
Jedes der Subsysteme in den Domänen des Fahrzeugs benötigt Embedded Systems, ohne die ein Arbeiten in Echtzeit nicht möglich wäre. Dies betrifft Fahrerassistenzsysteme (advanced driver-assistance systems / ADAS) genauso wie Fahrerersatzsysteme, Infotainment oder Antrieb.
In heutigen ADAS-Anwendungen basieren komplexe Algorithmen und Prozesse mit künstlicher Intelligenz auf dem gespeicherten Code und den Daten im Flash-Speicher. Der Speicher benötigt ein Höchstmaß an Ausfallsicherheit und Security, da eine Fehlfunktion des Systems oder ein böswilliger Cyber-Angriff zu schweren und im schlimmsten Fall zu tödlichen Verletzungen führen kann.
Die Anforderungen an die Embedded Security waren noch nie so hoch wie zur Zeit. Und je autonomer Fahrzeuge werden, um so höher sind die Bedürfnisse an Sicherheit, um ein Hacking zu verhindern. Flash Memory dient als Code Storage, File System Storage oder als Speicher für eine Microcontroller Unit (MCU), auf welchem Code direkt ausgeführt wird. Soll ein System sicher sein, muss zuerst der Flash Memory sicher sein.
Die zwei schwachen Momente von Flash Memory-Devices
Will ein Hacker Schwachstellen des Flash Memory suchen und für ein Eindringen nutzen, hat er genau zwei ganz unterschiedliche Zeitpunkte, an denen er ansetzen kann.
- Bei Firmware-Over-the-Air-Update (FOTA)
- Im laufenden Betrieb
Das Firmware-Over-The-Air-Update ist insofern ein besonders kritischer Zeitpunkt, weil hier zentrale Software-Komponenten in den Devices geladen werden. Gelingt es einem Hacker, hier maliziösen Code einzuschleusen, kann er sich künftig von vertrauenswürdiger Position aus im System weiter vorarbeiten. Für Embedded Security Experten ist dies eines der größten anzunehmenden Desaster.
Embedded Security gerettet: sicheres FOTA-Update mit dem High-Performance Computer von Conti
Der Automobilzulieferer Continental hat mit seinem vorgestellten High-Performance Computer neben weiteren Features einen ganz wesentlichen Baustein für mehr Embedded Security geliefert. Gerade für Over-The-Air-Updates bietet der High-Performance Computer von Conti eine End-zu-End-Channel-Security. Sämtliche ECUs im Fahrzeug können mithilfe des High-Performance Computer sicher aktualisiert werden. Die Continentaltöchter Argus Cyber Security und Elektrobit entwickelten dieses Feature. Die Sicherheitslösungen der beiden Unternehmen sind zur Vorintegration in Telematikeinheiten, Infotainmentsysteme oder Gateways verfügbar.
cadian Sync von Elektrobit koordiniert OTA-Updates
Die Embedded Systems in einem Fahrzeug stammen von unterschiedlichen Zulieferern. Nimmt der Fahrzeughersteller Updates vor, benötigt er einen Update-Master, welcher für jedes Fahrzeug der Flotte steuern kann, welche Updates dort benötigt werden. Dies schließt die Versionsstände für ECUs der verschiedenen Zulieferer ein.
Mit dem Produkt cadian Sync von Elektrobit steht hier nun ein Tool bereit, das in der Lage ist, FOTA-Updates zu organisieren. Für die Planung und Durchführung der Firmware-Over-The-Air-Updates bietet cadian Sync grafische Tools. Die Back-End-Lösung cadian Sync für das Flotten-, Software- und Kampagnenmanagement stellt mit seinem Update-Master als zentrale Steuerungseinheit auch Testoptionen bereit.
Mehr Hintergrundinformationen im Netz
- High-Performance Computer von Continental
Mehr über sichere FOTA-Updates mit Continentals Hochleistungscomputer „High-Performance Computer“ liefert diese Seite auf Contis Homepage.
- eMMC 5.0 Standard
Informationen zum eMMC 5.0 Standard liefert der Artikel auf Computer Weekly. Und die Spezifikation von Phison.
- UltraSoC und AESIN
UltraSoC und AESIN (Automotive Electronics Systems Innovation Network) kooperieren, um Automobilsysteme mit Embedded Analytics zu überwachen und zu sichern.
Embedded Security beginnt bei sicherem Flash-Memory
Hersteller von Flash-Speichern bieten seit vielen Jahren reine Datenspeicherung an. Für diese Anwendungen sind Ausdauer und Haltbarkeit die beiden Hauptkriterien für die Qualität von Flash-Speichern. Embedded Security ist bisher in keinem dieser Flash-Speicher implementiert. Dies bedeutet, dass die Daten auf dem Flash-Speicher entweder überhaupt nicht oder mit Befehlssätzen ohne Authentifizierung geschützt sind.
Einige Flash-Speicher bieten grundlegende Schutzfunktionen über einfache Befehlssätze, wie z.B. nichtflüchtigen und flüchtigen Schutz von Sektoren vor Schreib- oder Löschvorgängen, Kennwortschutz für Schreib- oder Lesevorgänge usw. Diese Funktionen sind gut, jedoch leider nicht ausreichend, um raffinierte Angriffe zu verhindern. Wenn Angreifer auf die Busschnittstelle des Flash-Speichers zugreifen können, können sie problemlos Daten auf dem Gerät auslesen oder verändern.
Um wirklich sicher zu sein, muss ein Flash-Speicher den gespeicherten Code und die Daten vor verschiedenen Arten von Angriffen schützen. Im Folgenden werden die Angriffe kurz dargestellt, gegen die ein Flash-Speicher geschützt werden muss.
Angriffsszenario “Man-in-the-Middle-Angriffe” (MIM)
Bei MIM-Angriffen ahmen Hacker häufig den Absender des Kommunikationskanals nach, um Befehle oder Nachrichten an die andere Seite zu senden, um Daten zu stehlen oder zu ändern. Daher muss jede Nachricht zwischen dem Host und dem Flash-Gerät authentifiziert werden. Die Authentifizierung kann mithilfe eines gemeinsamen geheimen Schlüssels sowohl auf dem Host als auch auf dem Flash erfolgen, um einen Nachrichtenauthentifizierungscode (Message Authentication Code, MAC) zusammen mit der eigentlichen Nachricht zu generieren. Der Empfänger kann dann den MAC überprüfen, bevor er auf die Nachricht reagiert.
Um zu verhindern, dass ein System dauerhaft beschädigt wird, wenn ein geheimer Schlüssel kompromittiert wird, ist es häufig wünschenswert, einen kurzlebigen Schlüssel zu verwenden. Ein kurzlebiger Schlüssel läuft innerhalb eines bestimmten Zeitraums oder nach einer festgelegten Anzahl von Transaktionen ab. Auf diese Weise werden Angriffe auf ein Minimum reduziert, die versuchen, den Schlüssel mit der Differential Power Analysis (DPA) oder anderer iterativer Angriffsmethoden zu entschlüsseln.
Eine andere Art von MIM-Angriff besteht darin, eine abgefangene legitime Nachricht nach einer bestimmten Zeit erneut zu senden. Um derlei Angriffe durch Nachrichtenwiederholungen (Replay-Angriff) zu verhindern, müssen der Host und der Flash-Speicher einen monotonen Zähler verwenden, dessen Wert bei jeder Nachricht erhöht wird, um den MAC zu generieren. Wird eine bereits gesendete Nachricht erneut gesendet, wird die MAC-Überprüfung diese nicht durchgehen lassen, da sich der aktuelle monotone Zählerwert von jenem der vorherigen Nachricht unterscheidet.
Angriffsszenario “Klonen”
Einige Hacker können mithilfe hoch entwickelter Technologie den gesamten Inhalt eines Flash-Geräts auslesen und die Inhalte klonen. Um solche Angriffe zu verhindern, muss jeder Flash-Speicher über ein Unique Device Secret (UDS) verfügen, das von niemandem gelesen werden kann. Der UDS-Wert ist ein eindeutiger und echter Zufallswert in jedem der Speichergeräte. Zudem gibt es keine Zuordnung zwischen dem UDS in einem Gerät und jenem einem anderen.
Aus dem UDS kann eine zusammengesetzte Gerätekennung (Compound Device Identifier, CDI) abgeleitet werden, auf deren Grundlage ein Gerätekennungszertifikat gemäß der DICE-Spezifikation (Device Identifier Composition Engine) der TCG (Trusted Computing Group) erstellt wird. In der Regel generiert das Gerät für alle Schlüsselableitungen mit dem Host auch ein Alias-Schlüsselpaar aus privatem und öffentlichem Schlüssel basierend auf der CDI. Daher darf der private Schlüssel der Geräte-ID nicht öffentlich verfügbar gemacht werden.
Mit den UDS- und DICE-Prozessen können Hacker das Gerät nicht klonen, da der UDS physisch nicht klonbar ist.
Angriffsszenario “Lauschen”
Eine weitere Form des Angriffs ist das passive Zuhören. Durch Abhören des Busses kann der Angreifer sensible Informationen aus den über den Bus übertragenen Daten entnehmen. Um wichtige Daten zu schützen, können Benutzer diese verschlüsseln, bevor sie über den Bus gesendet und auf dem Flash-Speicher gespeichert werden. Wenn der Host die Daten vom Speicher abruft, sollten die Daten ebenfalls verschlüsselt werden, damit sie zu keinem Zeitpunkt dem Zugriff von Hackern ausgesetzt sind.
Man könnte jetzt argumentieren, dass keine Verschlüsselungsmethode erforderlich ist, da ja der Host die Daten verschlüsseln und direkt verschlüsselt im Flash Memory speichern kann. Nur der Host kann in diesem Fall die Daten entschlüsseln.
Dies hat jedoch gewisse Nachteile. Einer davon ist, dass der Host den Chiffrierungsschlüssel nicht einfach erneuern kann. Werden Daten mit Schlüssel “XY” verschlüsselt und im Flash Memory gespeichert und wird der Schlüssel “XY” später ersetzt, weil er beispielsweise kompromittiert wurde, hat der Host ein Problem.
Den neuen Schlüssel “Z” kann der Host benutzen, um die nächsten Daten zu chiffrieren. Allerdings muss der Host den Schlüssel “XY” aufbewahren, da er ihn zum Entschlüsseln der noch von früher im Flash Memory vorhandenen Daten benötigt.
Alternativ muss der Host die im Flash Memory vorhandenen und it “XY” verschlüsselten Daten löschen und durch mit “Z” verschlüsselte Daten ersetzen. Dieser Vorgang ist in der Praxis nicht einfach umzusetzen und birgt Risiken.
Wenn ein Flash-Memory mit hinreichender Embedded Security Ver- und Entschlüsselungsfunktionen bietet, kann dieser Klardaten sicher in seinem Secure Memory speichern und die Daten erst dann verschlüsseln, bevor sie an den Host zurückgesendet werden. Wenn der aktuelle Chiffrierungsschlüssel kompromittiert ist, kann der Host einfach einen neuen Schlüssel mit dem Speichergerät austauschen. Die Daten im Speicher bleiben so intakt und sicher, was viel einfacher ist, als das Speichern verschlüsselter Daten.
Schutzmaßnahmen
Im Folgenden finden Sie verschiedene Schritte zum Entwickeln eines sicheren Flash-Speichers.
Partitionierbarer Flash-Memory als flexible Speicherstruktur
In modernen Multicore-Embedded-Systems können mehrere MCUs oder HSMs (Hardware Secure Module) auf denselben Flash-Memory zugreifen. Es ist wünschenswert, dass der Flash-Memory eine flexible Speicherstruktur bereitstellt, die partitioniert und so vor allem bereitgestellt werden kann, dass verschiedene Speicherbereiche über verschiedene Kerne verwaltet werden können. Diese verschiedenen Speicherbereiche können unterschiedliche Sicherheitsstufen abbilden – oder auch überhaupt keine Sicherheit, wenn diese nicht benötigt wird.
Anhand der eMMC-(Embedded Multi Media Card-) und UFS-(Universal Flash Storage-)Standards können wir sicherlich den Trend erkennen, mehrere sichere Bereiche zu unterstützen. Der aktuelle eMMC-Standard spezifiziert einen RPMB-Block (Replay Protected Memory Block). Der neueste UFS (v3.0)-Standard unterstützt bereits vier RPMB-Partitionen, die von vier verschiedenen Schlüsseln verwaltet werden können. Eine solche Speicherstrukturflexibilität ist in Multicore-SoC-(System On a Chip-)Umgebungen besser geeignet.
Schnelles und sicheres Booten
Viele eingebettete Systeme speichern den Bootcode in Flash-Memory. Einige von ihnen erfordern eine sehr schnelle Startzeit. So muss ein Kfz-Subsystem CAN-Nachrichten innerhalb von 100 ms nach dem Power-On-Reset (POR) verarbeiten. Das System muss also nicht nur sicher starten (also den Startcode überprüfen), sondern auch schnell. Dies ist eine große Herausforderung für Embedded-Designer.
In der Regel liest der Host bei Verwendung eines SnD-Modells (Store-and-Download) den Bootloader aus dem Flash Memory aus und spiegelt ihn zur Ausführung im RAM. Für eine ausreichende Embedded Security genügt dies jedoch nicht.
Um sicher zu starten, muss der gesamte Bootloader-Code überprüft und authentifiziert werden, um sicherzustellen, dass er vertrauenswürdig ist. Dieser Vorgang benötigt Zeit auf der MCU. Ein sicherer Flash-Memory, der eine Bootload-Authentifizierung ermöglicht, trägt auch wesentlich zur Verkürzung der Bootzeit bei.
Ein sicheres Flash-Memory-Device kann eine interne sichere Hash-Funktion verwenden, um den Bootloader zu überprüfen und den Hash-Wert bereitzustellen, den der Host überprüfen soll. Wenn sich der Hash-Wert nicht geändert hat, bedeutet dies, dass der Bootloader nicht manipuliert wurde und somit sicher gebootet werden kann.
Bereitstellung sicherer Firmware-Over-the-Air-Updates (FOTA)
Upgrades im laufenden Betrieb sind in modernen Embedded Applications eine notwendige Funktion. Durch ein Remote-Upgrade der Firmware oder Software des Systems können Hersteller Probleme schnell beheben, zusätzliche Funktionen bereitstellen und die User Experience verbessern. Remote-Upgrades stellen jedoch eine Sicherheitsbedrohung für Systeme dar. Niemand möchte, dass ein Hacker den festgelegten Update-Channel verwendet, um das System dazu zu bringen, schädliche Firmware oder Software auszuführen.
Anstatt sich ausschließlich auf die CPU zu verlassen, um diese Sicherheit zu gewährleisten, macht eine sichere Engine im Flash-Gerät FOTA-Update-Prozesse viel sicherer. Mit der sicheren Engine kann das Flash-Memory-Device, das den Bootcode-Speicher bereitstellt, den Firmware-Anbieter nicht nur mit dem Host des Flash-Memory-Device, sondern möglicherweise auch mit der entfernten Cloud authentifizieren. Auf diese Weise kann eine End-to-End-Channel-Security eingerichtet werden, um die Firmware oder Software im Flash Memory zu aktualisieren. Weiter oben in diesem Artikel haben wir hierzu bereits auf den High-Performance Computer von Continental verwiesen.
Moderne eingebettete Systeme in der Automobil-, Industrie- und Kommunikationsbranche erfordern eine hochsichere Datenspeicherung. Embedded-Designer stehen vor der Herausforderung, sichere Systeme zu entwickeln, die Cyberangriffen standhalten. Flash Memory mit integrierter Sicherheit wie Sempre Flash von Cypress ermöglichen eine höhere Gesamtsystemsicherheit, indem es vor den einer ganzen Reihe von Angriffen schützt, die auf Embedded Systems ausgeübt werden können.
Bildnachweis: © hutterstock – Titelbild Audrius Merfeldas, #2 Continental AG