-
Die Erfindung betrifft elektronische Steuereinheiten für Fahrzeuge und Verfahren zum Betreiben solcher elektronischen Steuereinheiten.
-
Moderne Fahrzeuge verwenden in der Regel eine oder mehrere elektronische Steuereinheiten (ECU) zur Steuerung der Funktionen des Fahrzeugs. In einem Automobil würden diese in der Regel unter anderem Brems- und/oder Lenkaktuatoren umfassen. Es ist wünschenswert, insbesondere wenn die ECU mit externen Datennetzwerken verbunden werden können, sicherzustellen, dass die von dem Prozessor solcher ECU ausgeführten Daten nicht modifiziert werden, sei es aus Versehen oder in böser Absicht.
-
Während in der Vergangenheit vorgeschlagen wurde, ob der Code in dem nicht flüchtigen Speicher eines ECU-Prozessors manipuliert wurde, durch Überprüfen zu bestimmen, ob er korrekt einer kryptographischen Signatur entspricht (unter Verwendung eines Hardware-Sicherheitsmoduls - HSM - das ein manipulationssicherer Teil des Prozessors ist und Schlüssel und Algorithmen zur Authentifizierung und Verschlüsselung/Entschlüsselung speichert), wobei die Antwort auf eine Bestimmung, dass dies nicht der Fall ist, bis jetzt entweder zur Folge hatte, den Prozessor anzuhalten oder die Ausführung der Daten in dem Wissen fortzuführen, dass diese eventuell korrumpiert sind. Keine dieser Optionen ist in einem Fahrzeug, das funktionsfähige ECU braucht, für einen sicheren Betrieb angenehm, selbst in einem „Notlauf“modus. Eine weitere Option, die in der Vergangenheit vorgestellt wurde, ist die Beschränkung des Zugriffs auf Verschlüsselungsschlüssel, wenn festgestellt wird, dass die Software korrumpiert ist. Obgleich dies das System gegen schädliche Softwareversendungsnachrichten schützt, die vertrauenswürdig erscheinen, schützt es jedoch nicht die lokalen Funktionen vor der Ausführung der schädlichen Software, was Sicherheitsprobleme mit sich bringen kann,
-
Das HSM ist in der Regel der einzig vertrauenswürdige Teil des Systems und kann als die Grundlage für einen sicheren Start eines Systems durch Authentifizierung des Bootloaders auf dem untersten Niveau und dann das Ermöglichen eines Startes davon ausgehend dienen (siehe beispielsweise die Bachelorarbeit „Secure Boot of an Embedded Multicore Processor System“ von Benjamin Nagel an der Ruhr Universität Bochum). Es ist nicht möglich, dass die Anwendungssoftware, die auf dem Prozessor einer ECU läuft, das HSM sicher durchsucht und dann auf Grundlage des Ergebnisses dieser Untersuchung arbeitet, da die Anwendungssoftware bereits suspekt sein kann (so programmiert sein kann, dass das „Fehler“ergebnis von dem HSM einfach ignoriert wird).
-
Die Absicht von Sicherheitsmaßnahmen ist die Verhinderung von Schäden. Diese Schäden könnten beispielsweise physisch, finanziell, datenschutzrechtlich oder rufschädigend sein.
-
Ein zentraler Schaden, der hinsichtlich der potentiellen Reaktion auf so einen Verstoß gegen die Sicherheit berücksichtigt werden muss, ist ein „Denial of Service“; hier könnte ein Auto extern fahruntüchtig gemacht werden, was indirekt zu Schaden führt, ob physisch, wenn sich das Fahrzeug an einer gefährlichen Stelle befindet, von der der Fahrer schnell wegkommen muss, oder rufschädigend, wenn der Fahrzeughersteller aufgrund von Berichten, dass das Fahrzeug nicht startet, Schaden erleidet.
-
Schaden kann auch von Peripheriegerätschaft entstehen (die Weise, wie die Verarbeitungseinheiten die Außenwelt wahrnehmen und beeinflussen). Beispielsweise kann die Anwendungssoftware Impulse in bestimmten Zeiten, um eine Drehmomentanforderung in einem Lenksystem bereitzustellen, oder Nachrichten, die von einem Driver-Assist-System(DAS)-Sensor zu senden sind, oder Information, die mit einem Internetdienst geteilt werden soll, anfordern. Fehler in jeglichen dieser Einrichtungen würden ein Problem darstellen (entweder durch einen Fehler oder durch die Aktivität eines bösartigen Akteurs).
-
(Für manche ECU) ist es wesentlich, dass die Funktion der ECU, selbst im Fall von Software, die manipuliert wurde, intakt bleibt. Möglicherweise ist ein Notlaufmodus oder eine reduzierte Funktionalität akzeptabel.
-
Ein Beispiel für Notlauffunktionalität:
- • DAS-Systeme (zum Beispiel Radar) könnten einfach ihren Betrieb einstellen, obgleich dies nicht akzeptabel ist, da Fahrzeuge zunehmend autonom werden.
- • Brems-ECU könnten (zum Beispiel) nur noch nicht aktive Funktionen wie beispielsweise Schlupfüberwachung bereitstellen. Die Brems-ECU kann jedoch dafür verantwortlich sein, dem Rest des Fahrzeugs (beispielsweise dem Armaturenbrett) Nachrichten über die Fahrzeuggeschwindigkeit bereitzustellen, so dass die Schnittstelle von den Sensoren zu den Datenübertragungen intakt und frei von Manipulation bleiben muss.
- • Motor und Lenk-ECU erfordern beide, dass die Peripheriegerätschaft sehr präzise gesteuerte dynamische Aktivitäten ausführt, selbst in einem Notlaufmodus, so dass eine reine Blockierung des Zugriffs auf Peripheriegerätschaft nicht möglich ist.
-
Gemäß einem ersten Aspekt der vorliegenden Erfindung wird eine elektronische Steuereinheit für ein Fahrzeug bereitgestellt, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen;
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das zum Lesen und Schreiben mit dem Speicher gekoppelt ist; und
- • eine externe Schnittstelle;
wobei die elektronische Steuereinheit ferner einen weiteren Speicher umfasst, der durch die externe Schnittstelle mit dem Prozessor verbunden ist und weitere Daten enthält; wobei das Hardware-Sicherheitsmodul so angeordnet ist, dass es eine Bestimmung bewirkt, ob die Daten in dem Speicher manipuliert wurden, und auf eine Bestimmung hin, dass die Daten manipuliert wurden, bewirkt, dass die weiteren Daten aus dem weiteren Speicher über die externe Schnittstelle in den Speicher geladen werden.
-
Somit kann, wenn bestimmt werden sollte, dass die Daten in dem Speicher manipuliert wurden, die elektronische Steuereinheit (ECU) das Hardware-Sicherheitsmodul verwenden, um zu bewirken, dass neue Daten in den Speicher geladen werden. In der Regel ist die Wahrscheinlichkeit geringer, dass die weiteren Daten manipuliert wurden.
-
In der Regel wird das Hardware-Sicherheitsmodul auch dafür vorgesehen sein, eine Bestimmung zu bewirken, ob die weiteren Daten manipuliert wurden, nachdem sie in den Speicher geschrieben wurden. Wenn bestimmt wird, dass die weiteren Daten manipuliert wurden, kann das Hardware-Sicherheitsmodul bewirken, dass zusätzliche Daten aus dem weiteren Speicher in den Speicher zur Ausführung durch den Prozessorkern geladen werden, und kann auch eine Bestimmung bewirken, ob die zusätzlichen Daten manipuliert wurden. Alternativ oder zusätzlich kann, wenn bestimmt wird, dass die weiteren Daten oder die zusätzlichen Daten manipuliert wurden, das Hardware-Sicherheitsmodul dafür vorgesehen sein, den Prozessor und/oder den Prozessorkern anzuhalten.
-
Die elektronische Steuereinheit kann so vorgesehen sein, dass die Bestimmung, ob die Daten (oder die weiteren Daten oder zusätzlichen Daten) manipuliert wurden, eine Überprüfung umfasst, ob die Daten (oder die weiteren Daten oder zusätzlichen Daten) eine Signatur haben, die unter Verwendung eines Schlüssels verifiziert werden kann, der (in der Regel sicher) in dem Hardware-Sicherheitsmodul gespeichert ist. Somit werden die Daten nur ausgeführt werden dürfen, wenn die Signatur (in der Regel kryptographisch) korrekt verifiziert wird.
-
Bei normaler Verwendung kann der Speicher Daten enthalten, die eine erste Anwendung zur Ausführung durch den Prozessor enthalten. Die weiteren Daten können eine Ersatzanwendung zur Ausführung durch den Prozessor darstellen, die eine reduzierte Funktionalität haben können - eine „Notlauf“funktion - im Vergleich zu der ersten Anwendung. Alternativ könnte dies eine vollständige nicht modifizierte Kopie der ersten Anwendung sein.
-
In der Regel wird der weitere Speicher außerhalb des Prozessors angeordnet sein. Der Prozessor kann eine einzelne integrierte Schaltung sein, wobei sich der weitere Speicher auf einer anderen integrierten Schaltung befindet. Dies ermöglicht eine Reduzierung der Speichermenge in den Prozessor, während die Vorteile der weiteren Daten dennoch weiter aufrecht erhalten bleiben können.
-
Der Speicher und der weitere Speicher können beide nicht flüchtige Speicher sein, die vorgesehen sind, um darin gespeicherte Daten zu erhalten, wenn die Versorgung mit elektrischer Energie von der elektronischen Steuereinheit getrennt wird.
-
Jede von dem Hardware-Sicherheitsmodul bewirkte Bestimmung kann von dem Hardware-Sicherheitsmodul, dem Prozessorkern oder beiden ausgeführt werden.
-
In einer Ausführungsform wird jede von dem HSM bewirkte Bestimmung von dem HSM ausgeführt, da dies der einzige vertrauenswürdige Teil des Systems ist. In einigen Systemen steuert das HSM den kompletten Startprozess und wird der Anwendungsprozessor so blockiert, dass er keinerlei Aufgaben ausführt, bis das HSM den Code validiert hat, dass der Prozessor läuft.
-
In einer weiteren Ausführungsform wird nur ein kleiner sogenannter „Bootloader“ von dem HSM überprüft und wird der Anwendungsprozessor dann diesen Code ausführen. In diesem Code (der jetzt vertrauenswürdig ist) befinden sich die Funktionen, die den Rest des Codes überprüfen (der in der Regel die Anwendung des Systems bildet). Die Funktionen, die den Rest des Codes überprüfen, verwenden die Funktionen des HSM zur Bereitstellung von Bestimmungen, ob der Anwendungscode (und jegliche zugehörigen Daten) manipuliert wurden.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Betreiben einer elektronischen Steuereinheit eines Fahrzeugs vorgesehen, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen;
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das zum Lesen und Schreiben mit dem Speicher gekoppelt ist; und
- • eine externe Schnittstelle;
wobei die elektronische Steuereinheit ferner einen weiteren Speicher umfasst, der durch die externe Schnittstelle mit dem Prozessor verbunden ist und weitere Daten enthält; wobei das Verfahren die Bestimmung bewirkt, ob die Daten in dem Speicher manipuliert wurden, und auf eine Bestimmung hin, dass die Daten manipuliert wurden, bewirkt, dass die weiteren Daten aus dem weiteren Speicher über die externe Schnittstelle in den Speicher geladen werden.
-
Somit kann, wenn bestimmt werden sollte, dass die Daten in dem Speicher manipuliert wurden, das Verfahren das Hardware-Sicherheitsmodul verwenden, um zu bewirken, dass neue Daten in den Speicher geladen werden. In der Regel ist die Wahrscheinlichkeit geringer, dass die weiteren Daten manipuliert wurden.
-
Sollte bestimmt werden, dass die Daten in dem Speicher manipuliert wurden, kann das Verfahren somit das Hardware-Sicherheitsmodul verwenden, das bewirken kann, dass neue Daten in den Speicher geladen werden. In der Regel ist die Wahrscheinlichkeit geringer, dass die weiteren Daten manipuliert wurden.
-
In der Regel wird das Verfahren auch das Bestimmen umfassen, ob die weiteren Daten manipuliert wurden, nachdem sie in den Speicher geschrieben wurden. Wenn bestimmt wird, dass die weiteren Daten manipuliert wurden, können zusätzliche Daten aus dem weiteren Speicher in den Speicher zur Ausführung durch den Prozessorkern geladen werden, und kann auch bestimmt werden, ob die zusätzlichen Daten manipuliert wurden. Alternativ oder zusätzlich kann, wenn bestimmt wird, dass die weiteren Daten oder die zusätzlichen Daten manipuliert wurden, das Verfahren umfassen, den Prozessor und/oder den Prozessorkern anzuhalten.
-
Die Bestimmung, ob die Daten (oder die weiteren Daten oder zusätzlichen Daten) manipuliert wurden, kann eine Überprüfung umfassen, ob die Daten (oder die weiteren Daten oder zusätzlichen Daten) eine Signatur haben, die unter Verwendung eines Schlüssels verifiziert werden kann, der (in der Regel sicher) in dem Hardware-Sicherheitsmodul gespeichert ist. Somit werden die Daten nur ausgeführt werden dürfen, wenn die Signatur (in der Regel kryptographisch) korrekt verifiziert wird.
-
In der Regel wird der weitere Speicher außerhalb des Prozessors angeordnet sein. Der Prozessor kann eine einzelne integrierte Schaltung sein, wobei sich der weitere Speicher auf einer anderen integrierten Schaltung befindet. Dies ermöglicht eine Reduzierung der Speichermenge in den Prozessor, während die Vorteile der weiteren Daten dennoch weiter aufrecht erhalten bleiben können.
-
Jede von dem Hardware-Sicherheitsmodul bewirkte Bestimmung kann von dem Hardware-Sicherheitsmodul, Prozessorkern oder beiden ausgeführt werden.
-
Bei normaler Verwendung kann der Speicher Daten enthalten, die eine erste Anwendung zur Ausführung durch den Prozessor darstellen. Die weiteren Daten können eine Ersatzanwendung zur Ausführung durch den Prozessor darstellen, die eine reduzierte Funktionalität haben kann - eine „Notlauf“funktion - im Vergleich zu der ersten Anwendung.
-
Der Speicher und der weitere Speicher können beide nicht flüchtige Speicher sein, die vorgesehen sind, um darin gespeicherte Daten zu erhalten, wenn die Versorgung mit elektrischer Energie von der elektronischen Steuereinheit getrennt wird.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird eine elektronische Steuereinheit für ein Fahrzeug bereitgestellt, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen; und
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das mit dem ersten Speicher zum Lesen gekoppelt ist;
wobei der erste Speicher einen verschlüsselten Bootloader speichert, wobei das Hardware-Sicherheitsmodul vorgesehen ist, um beim Start der elektronischen Steuereinheit den verschlüsselten Bootloader aus dem ersten Speicher zu lesen und ihn in dem Hardware-Sicherheitsmodul zu entschlüsseln, um einen entschlüsselten Bootloader zu bilden, wobei der Prozessorkern vorgesehen ist, um den entschlüsselten Bootloader beim Start der elektronischen Steuereinheit zu lesen und laufen zu lassen.
-
Somit kann das Hardware-Sicherheitsmodul (HSM) einen verschlüsselten Bootloader entschlüsseln, der wahrscheinlich schwerer zu korrumpieren ist als ein nicht verschlüsselter.
-
Das Hardware-Sicherheitsmodul kann vorgesehen sein, um eine Bestimmung zu bewirken, ob der entschlüsselte Bootloader manipuliert wurde. Es kann auch vorgesehen sein, um, sollte bestimmt worden sein, dass der entschlüsselte Bootloader manipuliert wurde, zu verhindern, dass der Prozessorkern den entschlüsselten Bootloader laufen lässt. Somit ist dies ein weiterer Schritt zur Gewährleistung der Integrität des Bootloaders.
-
Die elektronische Steuereinheit kann einen zweiten Speicher umfassen und das Hardware-Sicherheitsmodul kann vorgesehen sein, um den entschlüsselten Bootloader in den zweiten Speicher zu schreiben, und der Prozessorkern kann vorgesehen sein, um den entschlüsselten Bootloader aus dem zweiten Speicher zu lesen. Alternativ kann das Hardware-Sicherheitsmodul den entschlüsselten Bootloader an den Prozessorkern senden, um von dem Prozessorkern ausgeführt zu werden.
-
Der erste Speicher kann auch nur von dem Prozessorkern durch das Hardware-Sicherheitsmodul lesbar und oder schreibbar sein. In einem solchen Fall kann ein dritter Speicher in dem Prozessor vorgesehen sein, der von dem Prozessorkern ohne Eingreifen des Prozessorkerns gelesen werden kann.
-
In einer Alternative ist der Prozessorkern vorgesehen, um Daten aus dem ersten Speicher sowohl durch das Hardware-Sicherheitsmodul (in der Regel, wenn Entschlüsselung erforderlich ist) als auch ohne Eingreifen des Hardware-Sicherheitsmoduls zu lesen. Somit können sowohl gesicherte als auch ungesicherte Daten in dem Speicher gespeichert werden.
-
Der erste Speicher kann ein nicht flüchtiger Speicher sein, der vorgesehen ist, um darin gespeicherte Daten zu erhalten, wenn die Versorgung mit elektrischer Energie von dem Prozessor getrennt wird. Der zweite Speicher ist in der Regel ein flüchtiger Speicher des Prozessors, der darin gespeicherte Daten verliert, wenn die Versorgung mit elektrischer Energie von dem Prozessor getrennt wird.
-
Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Steuern einer elektronischen Steuereinheit eines Fahrzeugs bereitgestellt, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen ersten Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen; und
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das mit dem ersten Speicher zum Lesen gekoppelt ist;
wobei der erste Speicher einen verschlüsselten Bootloader speichert wobei das Verfahren umfasst, dass beim Start der elektronischen Steuereinheit das Hardware-Sicherheitsmodul den verschlüsselten Bootloader aus dem ersten Speicher liest und ihn in dem Hardware-Sicherheitsmodul entschlüsselt, um einen entschlüsselten Bootloader zu bilden, wobei der Prozessorkern den entschlüsselten Bootloader liest und laufen lässt.
-
Somit kann das Hardware-Sicherheitsmodul (HSM) einen verschlüsselten Bootloader entschlüsseln, der wahrscheinlich schwerer zu beschädigen ist als ein nicht verschlüsselter.
-
Das Verfahren kann das Bestimmen umfassen, ob der entschlüsselte Bootloader manipuliert wurde. Das Verfahren kann auch, auf eine Bestimmung hin, dass der entschlüsselte Bootloader manipuliert wurde, das Verhindern umfassen, dass der Prozessorkern den entschlüsselten Bootloader laufen lässt. Somit ist dies ein weiterer Schritt zur Gewährleistung der Integrität des Bootloaders.
-
Die elektronische Steuereinheit kann einen zweiten Speicher umfassen und das Verfahren kann das Schreiben des entschlüsselten Bootloader in den zweiten Speicher umfassen, und der Prozessorkern kann vorgesehen sein, um den entschlüsselten Bootloader aus dem zweiten Speicher zu lesen. Alternativ kann das Verfahren umfassen, dass das Hardware-Sicherheitsmodul den entschlüsselten Bootloader an den Prozessorkern sendet und der Prozessor den entschlüsselten Bootloader ausführt.
-
Das Verfahren kann das Lesen aus und/oder das Schreiben in den ersten Speicher durch den Prozessorkern nur durch das Hardware-Sicherheitsmodul umfassen. In einem solchen Fall kann ein dritter Speicher in dem Prozessor vorgesehen sein, der von dem Prozessorkern ohne Eingreifen des Prozessorkerns gelesen werden kann.
-
In einer Alternative umfasst das Verfahren das Lesen von Daten aus dem ersten Speicher durch den Prozessorkern sowohl über das Hardware-Sicherheitsmodul (in der Regel, wenn Entschlüsselung erforderlich ist) als auch ohne Eingreifen des Hardware-Sicherheitsmoduls. Somit können sowohl gesicherte als auch ungesicherte Daten in dem Speicher gespeichert werden.
-
Der erste Speicher kann ein nicht flüchtiger Speicher sein, der vorgesehen ist, um darin gespeicherte Daten zu erhalten, wenn die Versorgung mit elektrischer Energie von dem Prozessor getrennt wird. Der zweite Speicher ist in der Regel ein flüchtiger Speicher des Prozessors, der darin gespeicherte Daten verliert, wenn die Versorgung mit elektrischer Energie von dem Prozessor getrennt wird.
-
Gemäß einem fünften Aspekt der vorliegenden Erfindung wird eine elektronische Steuereinheit für ein Fahrzeug bereitgestellt, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen; und
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das mit dem Speicher zum Lesen und Schreiben gekoppelt ist;
wobei das Hardware-Sicherheitsmodul vorgesehen ist, um eine Korrektur kryptographischer Fehler auf den Daten auszuführen, wenn sie aus dem Speicher gelesen werden, um zur Ausführung an den Prozessorkern weitergeleitet zu werden.
-
Somit können Fehler, mindestens bis zu einer gewissen Größe, seien sie aus Versehen oder bösartig verursacht, in dem Code vor der Ausführung korrigiert werden.
-
In der Regel ist die elektronische Steuereinheit mit einem Schlüsselspeicher versehen, der mindestens einen ersten kryptographischen Schlüssel speichert. Die Daten können in mindestens einen Block unterteilt werden, wobei jeder Block mit einem zweiten kryptographischen Schlüssel signiert wird, der dem ersten kryptographische Schlüssel entspricht, so dass die Korrektur des kryptographischen Fehlers bei der Ausführung der Korrektur des kryptographischen Fehlers auf dem zweiten kryptographischen Schlüssel beruht, um anzugeben, ob jeder Datenblock mit einem entsprechenden ersten kryptographischen Schlüssel signiert wurde, und ob der Datenblock seit der Signatur geändert wurde, und wenn ja, sämtliche Änderungen an den Daten zu korrigieren.
-
Der erste und zweite kryptographische Schlüssel, die sich entsprechen, können identisch sein; in einer bevorzugten Ausführungsform sind sie jedoch ein öffentlicher und ein privater Schlüssel, die sich entsprechen, wobei der erste kryptographische Schlüssel der öffentliche Schlüssel ist und der zweite kryptographische Schlüssel der private Schlüssel ist. Somit ist es auch möglich, dass die elektronische Steuereinheit jeden zweiten kryptographischen Schlüssel nicht speichert.
-
Der Prozessorkern kann mit einem Cache für die Daten versehen sein, der vorgesehen ist, um die Daten in Cachezeilen zu lesen; jeder Block kann eine Cachezeile von Daten nach der Korrektur kryptographischer Fehler darstellen.
-
In der Regel ist die elektronische Steuereinheit so vorgesehen, dass es dem Prozessorkern nicht möglich ist, die Daten zu lesen, außer durch das Hardware-Sicherheitsmodul. Dies stellt sicher, dass sämtliche Daten vor ihrer Ausführung auf Fehler überprüft werden.
-
Gemäß einem sechsten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Steuern einer elektronischen Steuereinheit für ein Fahrzeug bereitgestellt, wobei die elektronische Steuereinheit einen Prozessor umfasst, der umfasst:
- • einen Prozessorkern;
- • einen Speicher, wobei der Speicher Daten speichert, die Befehle für den Prozessorkern umfassen; und
- • ein manipulationssicheres Hardware-Sicherheitsmodul, das mit dem Speicher zum Lesen und Schreiben gekoppelt ist;
wobei das Verfahren das Ausführen der Korrektur kryptographischer Fehler, in der Regel durch das Hardware-Sicherheitsmodul, auf den Daten, wenn sie aus dem Speicher gelesen werden, um zur Ausführung an den Prozessorkern weitergeleitet zu werden, umfasst.
-
Somit können Fehler, mindestens bis zu einer gewissen Größe, seien sie aus Versehen oder bösartig verursacht, in dem Code vor der Ausführung korrigiert werden.
-
In der Regel wird das Verfahren das Speichern mindestens eines ersten kryptographischen Schlüssels in der elektronischen Steuereinheit umfassen. Die Daten können in mindestens einen Block unterteilt werden, wobei der erste Block mit einem zweiten kryptographischen Schlüssel signiert wird, der dem ersten kryptographischen Schlüssel entspricht, so dass die Korrektur des kryptographischen Fehlers bei der Ausführung der Korrektur des kryptographischen Fehlers auf dem zweiten kryptographischen Schlüssel beruht, um anzugeben, ob jeder Datenblock mit einem entsprechenden ersten kryptographischen Schlüssel signiert wurde, und ob der Datenblock seit der Signatur geändert wurde, und wenn ja, sämtliche Änderungen an den Daten zu korrigieren.
-
Der erste und zweite kryptographische Schlüssel, die sich entsprechen, können identisch sein; in einer bevorzugten Ausführungsform sind sie jedoch ein öffentlicher und ein privater Schlüssel, die sich entsprechen, wobei der erste kryptographische Schlüssel der öffentliche Schlüssel ist und der zweite kryptographische Schlüssel der private Schlüssel ist. Somit ist es möglich, dass die elektronische Steuereinheit jeden zweiten kryptographischen Schlüssel nicht speichert.
-
Wenn der Prozessorkern mit einem Cache für die Daten versehen ist, kann das Verfahren das Lesen der Daten in Cachezeilen umfassen; jeder Block kann eine Cachezeile von Daten nach der Korrektur kryptographischer Fehler darstellen.
-
In der Regel umfasst das Verfahren nicht das Laden der Daten in den Prozessorkern, außer durch das Hardware-Sicherheitsmodul. Dies stellt sicher, dass sämtliche Daten vor ihrer Ausführung auf Fehler überprüft werden.
-
Gemäß einem siebten Aspekt der vorliegenden Erfindung ist ein Fahrzeug vorgesehen, das die elektronische Steuereinheit aus einem des ersten, dritten oder fünften Aspekts der vorliegenden Erfindung umfasst.
-
In der Regel kann das Fahrzeug mit mindestens einem Aktuator versehen sein, der von der elektronischen Steuereinheit gesteuert wird. Die Aktuatoren können aus der Gruppe ausgewählt sein, die Bremsaktuatoren, Lenkaktuatoren und Aktuatoren zur Steuerung der Leistung eines Verbrennungsmotors des Fahrzeugs umfasst.
-
Außerdem kann das Fahrzeug mit mindestens einem Sensor versehen sein, der mit der elektronischen Steuereinheit gekoppelt ist, um der elektronischen Steuereinheit Daten zu liefern. Die Sensoren können aus der Gruppe ausgewählt sein, die Geschwindigkeitssensoren, Positionssensoren und Sensoren, die zur Erfassung der Position anderer Objekte vorgesehen sind (wie zum Beispiel Radar-, Sonar- oder Lidar-Sensoren), umfasst.
-
Das Fahrzeug kann einen Fahrzeugbus (beispielsweise einen CAN-Bus umfassen), an dem die elektronische Steuereinheit angebracht ist. In der Regel würde das Fahrzeug auch Peripheriegerätschaft umfassen, die mit dem Fahrzeugbus verbunden ist. Mindestens eines der Peripheriegeräte kann mit einem Anschluss versehen sein, um den Zugriff auf Daten außerhalb des Fahrzeugs zu ermöglichen; der Anschluss kann eine Netzwerkschnittstelle, in der Regel eine Funknetzwerkschnittstelle, sein, die eine Verbindung zu einem externen Netzwerk, wie beispielsweise dem Internet, ermöglicht. Die elektronische Steuereinheit kann vorgesehen sein, um an dem Netzwerkanschluss empfangene Daten in den Speicher schreiben zu können.
-
Das Fahrzeug kann ein Straßenfahrzeug sein, wie beispielsweise ein Automobil, oder ein Schienenfahrzeug, wie beispielsweise ein Zug. Alternativ kann es ein Flugzeug sein.
-
Jetzt folgt rein beispielhaft eine Beschreibung von Ausführungsformen der vorliegenden Erfindung, die unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben werden. In denen zeigen
- 1 eine beispielhafte elektronische Steuereinheit, wie sie in verschiedenen Ausführungsform der vorliegenden Erfindung verwendet werden kann;
- 2 die elektronische Steuereinheit gemäß 1, die gemäß einer ersten Ausführungsform der vorliegenden Erfindung verwendet wird;
- 3 die elektronische Steuereinheit gemäß 1, die gemäß einer zweiten Ausführungsform der vorliegenden Erfindung verwendet wird;
- 4 die elektronische Steuereinheit gemäß 1, die gemäß einer dritten Ausführungsform der vorliegenden Erfindung verwendet wird; und
- 5 die elektronische Steuereinheit gemäß 1, die gemäß einer vierten Ausführungsform der vorliegenden Erfindung verwendet wird.
-
Eine elektronische Steuereinheit (ECU) 1 ist in 1 in einem Fahrzeug 100 der beiliegenden Zeichnungen gezeigt, die in den verschiedenen Ausführungsformen der vorliegenden Erfindung verwendet werden kann. Das Fahrzeug ist in diesem Fall ein Automobil. Die elektronische Steuereinheit 1 umfasst einen Prozessor 2, der eine einzelne integrierte Schaltung ist, die mit externen Schnittstellen 3, 4 in der ECU 1 verbunden ist. Die externe Schnittstelle 3 verbindet die ECU 1 mit einem CAN-Bus 5, mit dem andere Einheiten (wie beispielsweise eine Brems-ECU 6, eine Lenk-ECU 7 und ein Gateway 10 verbunden sind). Die externe Schnittstelle 4 verbindet die ECU 1 mit Aktuatoren 8 (zum Beispiel Brems- oder Lenkaktuatoren) und Sensoren 9 (beispielsweise Geschwindigkeits- oder Positionssensoren) des Fahrzeugs 100.
-
Das Gateway 10 (das ein Teil eines Funksystems des Fahrzeugs sein kann) hat eine drahtlose Netzwerkschnittstelle 11, die Kommunikation mit einem externen Netzwerk 12, in diesem Fall dem Internet, ermöglicht. Somit ermöglicht dies ein Weiterleiten von Daten über das externe Netzwerk 12 über den CAN-Bus 5 an die ECU 1, was ein potentielles Sicherheitsrisiko darstellt, wenn ein schädlicher Code gespeichert und auf dem Prozessor 1 ausgeführt wird. In der Regel ist das Gateway vorgesehen, um viele übliche Sicherheitsrisiken zu minimieren, aber es besteht immer die Möglichkeit eines Einbrechens durch das Gateway.
-
Der Prozessor 2 selber umfasst, wie vorstehend beschrieben, eine einzelne integrierte Schaltung mit mehreren Merkmalen. Er hat einen Prozessorkern 13, der die meisten der Verarbeitungsfunktionen der ECU 1 ausführt. Er hat einen Speicher 14, in dem Daten und Programmbefehle gespeichert sind. Es gibt mehrere interne Peripheriegeräte 16, wie beispielsweise Watchdog-Zeitgeber, Signalverarbeitungsbeschleunigungsvorrichtungen, Steuereinrichtungen mit direktem Speicherzugriff (DMA). Es gibt Kommunikationsperipheriegeräte, die mit der externen Schnittstelle 3 kommunizieren. Es gibt auch einen Satz von Peripheriegeräten, wie beispielsweise Analog-Digitalwandler (ADC), Zeitgeber und dergleichen, die mit der externen Schnittstelle 4 kommunizieren.
-
Der Prozessor 2 hat außerdem ein Hardware-Sicherheitsmodul (HSM) 15, das manipulationssicher ist; während manipulationssichere HSM in der Technik gut bekannt sind und der Fachmann ein solches HSM leicht implementieren könnte, (siehe beispielsweise die Techniken, die in Kapitel 16 des Buchs „Security Engineering" (zweite Ausgabe) von Ross Anderson, ISBN 978-0470068526, beschrieben werden), kann das HSM in einem Beispiel manipulationssicher gemacht werden, indem es auf der gleichen Fläche der integrierten Siliziumschaltung angeordnet wird wie der Prozessorkern. In der integrierten Schaltung können Metallschichten hinzugefügt werden, um Sondierungsversuche zu erfassen, und Spannungssensoren, um Spannungsstörimpulse zu erfassen, die Fehlfunktionen mit boshafter Absicht bewirken können. Dies führt verschiedene Funktionen aus, wie vorstehend bezüglich der verschiedenen Ausführungsformen beschrieben.
-
In einer ersten Ausführungsform der vorliegenden Erfindung, die in 2 der beiliegenden Zeichnungen gezeigt ist, ist der Speicher 14 des Prozessors 2 als ein flüchtiger Speicher 14a (der seinen Inhalt verliert, wenn er keinen Strom bekommt) und ein nicht-flüchtiger Speicher 14b (der seinen Inhalt nicht verliert, wenn er keinen Strom bekommt) vorgesehen. In dieser Ausführungsform vermittelt das Hardware-Sicherheitsmodul 15 zwischen dem Prozessorkern 13 und dem nicht-flüchtigen Speicher 14b, so dass sämtliche Lesevorgänge des nicht-flüchtigen Speichers 14b das Hardware-Sicherheitsmodul 15 durchlaufen.
-
Somit führt das HSM eine Korrektur kryptographischer Fehler auf allen aus dem nicht-flüchtigen Speicher 14b zur Ausführung durch den Prozessorkern 13 gelesenen Daten aus. Die Korrektur kryptographischer Fehler ist eine Technik, die kryptographische Schlüssel verwendet, um Fehler in Daten zu korrigieren, wie in der Dissertation (PhD) Christopher Jason Peikert vom Massachusetts Institute of Technology mit dem Titel „Cryptographic Error Correction“ beschrieben.
-
Im vorliegenden Fall wurde jede Cachezeile von in dem nicht-flüchtigen Speicher 14b gespeicherten Daten, die aus dem nicht-flüchtigen Speicher 14b gelesen werden sollen, zuvor mit einem (in der Regel privaten) Schlüssel signiert, der nicht in der ECU 1 gespeichert ist. Wenn diese Daten aus dem nicht-flüchtigen Speicher 14b gelesen werden, verwendet das HSM 15 entsprechende (in der Regel öffentliche) Schlüssel, die in dem HSM 15 gespeichert sind, um die Integrität dieser Daten zu überprüfen. Wenn dann Fehler gefunden werden, können diese Fehler bis zu einer gewissen Größe der Fehler korrigiert werden. Somit können kleine Änderungen an den Daten - die oft ausreichen, damit Akteure mit böser Absicht Schaden anrichten können - korrigiert werden.
-
In der Regel würden die in dem HSM gespeicherten Schlüssel in dem HSM bei der Herstellung sicher gespeichert und wäre es nur möglich, die in dem HSM gespeicherten Schlüssel durch ein sicheres Protokoll zu aktualisieren.
-
In einer zweiten Ausführungsform, die in 3 der beiliegenden Zeichnungen gezeigt ist, ist der Speicher 14 der ECU 1 als ein flüchtiger Speicher 14a, ein nicht-flüchtiger Hauptspeicher 14b und ein nicht-flüchtiger Startspeicher 14c vorgesehen. Das HSM 15 vermittelt sämtliche Lesevorgänge aus dem nicht-flüchtigen Startspeicher 14c. Der nicht-flüchtige Startspeicher 14c speichert einen Bootloader für die ECU 1; das bedeutet, der erste Code, der von dem Prozessorkern 13 beim Starten der ECU 1 ausgeführt wird. Der Bootloader wird unter Verwendung eines Schlüssels verschlüsselt, der in dem HSM 15 gespeichert ist.
-
Zum Starten entschlüsselt das HSM 15 den Bootloader unter Verwendung des in dem HSM 15 gespeicherten Schlüssels (obgleich stattdessen ein Paar aus einem öffentlichen/privaten Schlüssel verwendet werden könnte). Das HSM überträgt den entschlüsselten Bootloader an den Prozessorkern 13 zur Ausführung durch den Prozessorkern. Das HSM kann auch unter Verwendung des gleichen Schlüssels, den das HSM speichert, überprüfen, ob der Bootloader korrekt entschlüsselt wurde und ob der entschlüsselte Bootloader seiner kryptographischen Signatur entspricht. Das HSM 15 wird dem Prozessorkern 13 die Ausführung des entschlüsselten Bootloaders nur erlauben, wenn der entschlüsselte Bootloader auf diese Weise erfolgreich authentifiziert wurde.
-
Es ist anzumerken, dass sämtliche Lesevorgänge aus dem nicht-flüchtigen Startspeicher 14c durch das HSM geschehen. Es ist möglich, dass das Schreiben in den nicht-flüchtigen Startspeicher 14c auf ähnliche Weise eingeschränkt ist oder sogar nach der Herstellung verhindert wird, wie beispielsweise durch Durchbrennen einer Sicherung auf Schreibleitungen in den nicht-flüchtigen Startspeicher 14c.
-
Die dritte Ausführungsform der vorliegenden Erfindung ist der zweiten Ausführungsform ähnlich, abgesehen davon, dass der verschlüsselte Bootloader 20 in dem nicht-flüchtigen Haupt-Speicher 14b gespeichert ist und es keinen nicht-flüchtigen Startspeicher 14c gibt. Der Prozessorkern kann den nicht-flüchtigen Speicher 14b direkt oder durch das HSM 15 auslesen. Er verwendet das HSM 15 zum Entschlüsseln des verschlüsselten Bootloaders 20, wie vorstehend beschrieben; dieser kann zur Ausführung durch den Prozessorkern 13 in den flüchtigen Speicher 14a geschrieben werden. Ansonsten funktioniert diese Ausführungsform wie die zweite Ausführungsform.
-
In der vierten Ausführungsform der vorliegenden Erfindung, die in 5 der beiliegenden Zeichnungen gezeigt ist, kann der Prozessorkern 13 direkt aus dem und in den nicht-flüchtigen Speicher 14b lesen und schreiben. Das HSM 15 überprüft jedoch regelmäßig die Inhalte des nicht-flüchtigen Speichers 14b. In der Regel tut es dies immer dann, wenn es sonst im Leerlauf wäre.
-
Jeder Datenblock in dem nicht-flüchtigen Speicher 14b wird unter Verwendung eines (in der Regel privaten) Schlüssels signiert worden sein, der nicht in der ECU 1 gespeichert ist. Bei jeder Überprüfung überprüft das HSM 15 unter Verwendung eines Schlüssels (in der Regel öffentlichen), der in dem HSM 15 gespeichert ist, ob die Signatur jedes Blocks die Inhalte jedes Blocks verifiziert.
-
Wenn bestimmt wird, dass die Daten in dem nicht-flüchtigen Speicher 14b dessen Signatur nicht entsprechen, liest das HSM 15 ein Sicherungsbild aus einem externen Speicher 21. Der externe Speicher ist noch in der ECU 1 enthalten, aber befindet sich auf einer anderen integrierten Schaltung als der Prozessor 2. Dieses Sicherungsbild wird in den nicht-flüchtigen Speicher 14b geschrieben. Das Sicherungsbild wird auch signiert und das HSM 15 verwendet seinen Schlüssel zur Verifizierung, dass die Inhalte des Sicherungsbildes nicht manipuliert wurden. Nur dann wird das HSM 15 dem Prozessorkern 13 erlauben, das Sicherungsbild auszuführen.
-
In der Regel wird das Sicherungsbild eine beschränktere Anwendung für die ECU 1 umfassen als die sonst in dem nicht-flüchtigen Speicher 14b gespeicherten Daten. Beispielsweise kann es in einem Lenksystem nur Kraftverstärkung für den Fahrer bereitstellen und keine autonomen Fahrfunktionen zu lassen. In einem Bremssystem kann es beispielsweise nur grundlegende Bremstätigkeiten und keine weiteren Funktionen wie beispielsweise Stabilitätskontrolle oder Autonomie bereitstellen. Vorausgesetzt, dass das Sicherungsbild sowohl verschlüsselt als auch signiert ist, wird es für Dritte schwierig sein, die von der ECU 1 ausgeführte Software in böser Absicht zu ändern, da jegliche Änderungen zur Ausführung eines vertrauenswürdigen Codes führen werden.
-
Wenn das HSM 15 bestimmt, dass die Inhalte des Sicherheitsbildes nicht durch seine Signatur verifiziert sind, wird das HSM dem Prozessorkern 13 deren Ausführung nicht erlauben und kann stattdessen ein weiteres Sicherungsbild aus dem externen Speicher 21 laden oder den Prozessorkern 13 einfach anhalten.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- „Security Engineering“ (zweite Ausgabe) von Ross Anderson, ISBN 978-0470068526 [0064]