-
STAND DER
TECHNIK
-
Die
vorliegende Erfindung betrifft ein gegen Manipulationen geschütztes Steuergerät mit einem Mikrocontroller
und einem externem Flash-Speicher, sowie ein Verfahren zum Manipulationsschutz
eines solchen Steuergerätes.
-
Motorsteuergeräte steuern
die Funktionen eines Kraftfahrzeugs, wie zum Beispiel Kraftstoffeinspritzung,
Zündzeitpunkt,
Wegfahrsperre, usw. Das Motorsteuergerät verfügt dabei über einen Mikrocontroller,
welcher ein vorbestimmtes Programm ausführt, sowie einen Speicher,
in dem beispielsweise bestimmte, in diesem Programm verwendete Fahrzeugparameter
oder dergl. gespeichert sind. Durch Manipulation der in diesem Speicher
gespeicherten Daten ist es beispielsweise möglich, die Performanz des Kraftfahrzeugs
zu steigern (so genanntes Tuning), was allerdings gleichzeitig zu
erhöhten
Sicherheitsrisiken im Straßenverkehr
führt und
daher vom Hersteller, auch im Hinblick auf klare Haftungsverhältnisse,
unerwünscht
ist. Es besteht daher ein Bedarf an einem Schutz vor solcher Manipulation.
-
Ein
bekannter Schutz gegen Manipulation kann dadurch erzielt werden,
dass der Mikrocontroller mit einem internen Flash-Speicher ausgestattet ist,
und weitere Schutzmaßnahmen,
wie z.B. die Verwendung von Passwörtern zum Lesen, Löschen oder Programmieren,
verwendet werden. Allerdings ist dies aufgrund der nötigen Flash-Technologie
mit erhöhten
Kosten verbunden, so dass eine Lösung
ohne internem Flash zu bevorzugen ist.
-
Im
Falle eines externen (also nicht im Mikrocontroller integrierten)
Flash-Speichers sind jedoch verschiedene Angriffe denkbar. Beispielsweise
kann ein Angreifer einen externen Flash-Speicher gegen einen manipulierten
Flash-Speicher austauschen. In der Praxis gestaltet sich dies als
relativ einfach, da die Pinanzahl des externen Flash-Speichers relativ gering
ist und somit auch das Gehäuse
relativ klein ist, so dass ein Herauslöten vergleichsweise unproblematisch
ist.
-
Ein
weiterer möglicher
Angriff besteht darin, die im externen Flash-Speicher abgelegten
Daten durch direkten Zugriff zu verändern. Moderne Flash-Bausteine
können
in der Regel im eingebauten Zustand (also ohne Auslöten) programmiert
werden, was die Angriffsmöglichkeiten
vereinfacht. Ein möglicher
Schutz gegen einen solchen Angriff wäre es, den Zugriff auf den
Flash-Speicher im eingebauten Zustand komplett zu verbieten. Allerdings
ist es vorteilhaft, einem befugten Benutzerkreis zu ermöglichen,
auf den Flash-Speicher zuzugreifen, um beispielsweise eine Neuprogrammierung
des Steuergerätes
beziehungsweise eine Aktualisierung der im Flash-Speicher gespeicherten
Daten vornehmen zu können.
-
Als
möglichen
Schutz vor einem solchen Angriff offenbart die US-Patentschrift
6,138,236 einen PROM-Speicher zur Initialisierung eines Computer-Systems,
wobei der PROM-Speicher einen programmierbaren Datenbereich und
einen Authentisierungsbereich mit einem Hash-Generator umfasst. Der
Hash-Generator erzeugt einen Hash-Wert des im programmierbaren Datenbereich
vorliegenden Codes, und der Authentisierungsbereich authentisiert den
Code mittels dieses Hash-Wertes. Allerdings besteht auch hier die
Möglichkeit
des erstgenannten Angriffes, nämlich
Austausch des gesamten PROM-Speichers, so dass ein umfassender Schutz ohne
weitere Schutzmaßnahmen
nicht gewährleistet werden
kann.
-
VORTEILE DER
ERFINDUNG
-
Demgemäß vorgesehen
ist ein Verfahren zum Manipulationsschutz eines Steuergeräts, insbesondere
eines Motorsteuergeräts,
mit einem Mikrocontroller und einem separat vom Mikrocontroller
vorgesehenen nichtflüchtigen
Speicher, welcher insbesondere als Flash-Speicher ausgebildet ist,
mit den folgenden Schritten:
- – Verschlüsseln von
unverschlüsselten
charakteristischen Informationen bezüglich des nichtflüchtigen
Speichers mittels eines asymmetrischen Verschlüsselungsverfahren und Speichern
der verschlüsselten
charakteristischen Informationen im nichtflüchtigen Speichers;
- – Übermitteln
der im nichtflüchtigen
Speicher gespeicherten Informationen an den Mikrocontroller;
- – Entschlüsseln der übermittelten
Informationen durch den Mikrocontroller; und
- – Vergleichen
der entschlüsselten
Informationen mit den unverschlüsselten
charakteristischen Informationen.
-
Unter „unverschlüsselten
Informationen" werden
hierbei Informationen verstanden, die noch nicht mit dem asymmetrischen
Verschlüsselungsverfahren
verschlüsselt
sind; es kann sich bei den unverschlüsselten Informationen also
um Informationen handeln, die anderweitig kodiert sind.
-
Ein
erfindungsgemäß gegen
Manipulationen geschütztes
Steuergerät
umfasst:
einen nichtflüchtigen
Speicher umfassend einen Speicherbereich, in welchem charakteristische
Informationen bezüglich
des nichtflüchtigen
Speichers mit einem privaten Schlüssel eines Schlüsselpaars
zur asymmetrischen Verschlüsselung
verschlüsselt
gespeichert sind; und
einen Mikrocontroller, der über eine
Datenleitung mit dem nichtflüchtigen
Speicher verbunden ist, und einen ROM-Speicher aufweist, in welchem
der öffentliche
Schlüssel
des Schlüsselpaars
zur asymmetrischen Verschlüsselung,
sowie ein Programm zur Entschlüsselung
von mit der asymmetrischen Verschlüsselung verschlüsselten
Daten gespeichert sind.
-
Der
der Erfindung zugrunde liegende Gedanke ist es, charakteristische
Informationen bezüglich
des nichtflüchtigen
Speichers (typischerweise ein Flash-Speicher) zu verschlüsseln und
im nichtflüchtigen
Speicher abzulegen. Während
des Betriebs werden diese Informationen dann vom Mikrocontroller ausgelesen,
entschlüsselt
und mit den unverschlüsselten
Informationen verglichen. Liegt ein Unterschied vor, dann ist das
ein starkes Indiz dafür,
dass einer der Bausteine oder die darin gespeicherten Informationen
manipuliert wurden.
-
Die
charakteristischen Informationen können beispielsweise die Seriennummer
des nichtflüchtigen Speichers
sein. Somit kann ein Schutz gegen das Austauschen des nichtflüchtigen
Speichers erzielt werden. Es ist vorteilhaft, dass die charakteristischen Informationen
ferner die Seriennummer des Mikrocontrollers umfassen. Dadurch können der
nichtflüchtige
Speicher und der Mikrocontroller miteinander gepaart werden, so
dass ein Schutz gegen den Austausch eines dieser beiden Bausteine
erzielt wird.
-
Die
charakteristischen Informationen können aber auch ein Hashwert
von im nichtflüchtigen
Speicher gespeicherten Daten sein. Somit wird ein Schutz gegen Manipulation
der im nichtflüchtigen
Speicher gespeicherten Daten erreicht.
-
Bei
Feststellen von Ungleichheit der entschlüsselten Informationen und der
unverschlüsselten
charakteristischen Informationen kann eine Fehlerreaktion, insbesondere
ein Reset, ausgeführt
werden.
-
Es
ist vorteilhaft, wenn der Schlüssel
zum Entschlüsseln
der Informationen durch den Mikrocontroller in einem ROM-Speicher
des Mikrocontrollers gespeichert ist, da dies den Schlüssel vor
Manipulationen schützt.
-
In
einer vorteilhaften Weiterbildung der Erfindung sind ferner folgende
Schritte vorgesehen:
- – Verschlüsseln von Daten durch den Mikrocontroller;
- – Speichern
der verschlüsselten
Daten im nichtfüchtigen
Speicher;
- – Auslesen
der im nichtflüchtigen
Speicher gespeicherten Daten durch den Mikrocontroller;
und - – Entschlüsseln der
ausgelesenen verschlüsselten
Daten durch den Mikrocontroller. Dadurch wird ein Schutz gegen das
Kopieren bzw. Klonen von sicherheitsrelevanten oder sensitiven Daten im
nichtflüchtigen
Speicher erreicht. Hierbei ist es vorteilhaft, dass das Verschlüsseln und
Entschlüsseln
von Daten durch den Mikrocontroller mit einem symmetrischen Verschlüsselungsverfahren
durchgeführt
wird, da ein symmetrisches Verschlüsselungsverfahren nicht nur
schneller sondern auch einfacher zu implementieren ist als ein asymmetrisches
Verschlüsselungsverfahren.
-
In
einer vorteilhaften Weiterbildung der Erfindung ist der Schlüssel zum
Verschlüsseln
und Entschlüsseln
von Daten durch den Mikrocontroller als Kombination von programmierbaren
Bits und fest verdrahteten Bits im Mikrocontroller gespeichert. Dies
macht es möglich,
eine hohe Schlüssellänge mit hoher
Variationsmöglichkeit
kostengünstig
zu realisieren.
-
ZEICHNUNGEN
-
Die
Erfindung wird nachfolgend anhand der in den schematischen Figuren
der Zeichnung angegebenen Ausführungsbeispiele
näher erläutert. Es zeigt
dabei:
-
1 ein
schematisches Diagramm eines Steuergerätes nach einer Ausführungsform
der vorliegenden Erfindung.
-
2 ein
Flussdiagramm eines ersten Verfahrens nach einer Ausführungsform
der vorliegenden Erfindung.
-
3 ein
Flussdiagramm eines zweiten Verfahrens nach einer Ausführungsform
der vorliegenden Erfindung.
-
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
-
In
allen Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente – sofern
nichts Anderes angegeben ist – mit
gleichen Bezugszeichen versehen worden.
-
1 zeigt
ein schematisches Diagramm eines Steuergerätes 1 nach einer Ausführungsform
der vorliegenden Erfindung. In der vorliegenden Ausführungsform
ist das Steuergerät 1 als
Motorsteuergerät ausgebildet,
welches die Funktionen eines Kraftfahrzeugs, wie zum Beispiel Kraftstoffeinspritzung,
Zündzeitpunkt,
Wegfahrsperre, usw., steuert. Das Motorsteuergerät 1 verfügt dabei über einen
Mikrocontroller 2 sowie einen separat vom Mikrocontroller 2 vorgesehenen
nichtflüchtigen
Speicher, der insbesondere als Flash-Speicher 3 ausgebildet
ist. Der Mikrocontroller 2 ist über eine Datenleitung 4 mit
dem Flash-Speicher 3 verbunden. Der Mikrocontroller 2 ist
ferner über
ein nicht näher
dargestelltes Interface und einen Datenbus (beispielsweise ein CAN-Bus) an
diverse Sensoren und Aktuatoren des Fahrzeuges (z.B. Drehzahlmesser,
Kraftstoffeinspritzung usw.) verbunden.
-
Der
Mikrocontroller 2 verfügt über eine
nicht änderbare
Seriennummer 5 und der Flash-Speicher 3 verfügt über eine
nicht änderbare
Seriennummer 6. Diese können
beispielsweise durch eine feste Verdrahtung in den jeweiligen Bausteinen
realisiert werden, so dass eine Manipulation dieser Seriennummern
nicht möglich
ist. Die Seriennummern sind typischerweise 123 Bits lang und sind
nicht frei programmierbar oder änderbar.
Ferner sind sie den Bausteinen eindeutig zugeordnet, das heißt, es gibt
nicht mehrere Bausteine mit denselben Seriennummern. Dies wird beispielsweise
dadurch erreicht, dass die Seriennummern Informationen über die
Fertigungsnummer, das Fertigungsdatum, die Wafernummer und/oder
die Position des Chips des jeweiligen Bausteins auf dem Wafer enthalten.
-
Der
Mikrocontroller 2 enthält
einen ROM-Speicherbereich 10, einen RAM-Speicherbereich 11 sowie
eine zentrale Prozessoreinrichtung (CPU) 12, welche ein
im ROM 10 gespeichertes Programm ausführt. Im ROM 10 ist
ferner ein Schlüssel 9 zum
Entschlüsseln
von mittels eines asymmetrischen Verfahrens verschlüsselten
Daten gespeichert. Ein Programm zum Entschlüsseln von Daten mit dem Schlüssel 9 ist
ebenfalls im ROM 10 abgespeichert. Als asymmetrisches Ver-/Entschlüsselungsverfahren
ist beispielsweise eine Implementierung des RSA-Algorithmuses geeignet.
-
Der
Flash-Speicher 3 enthält
einen Speicherbereich 20, in welchem verschiedene Daten gespeichert
sind, so zum Beispiel ein Bootcode 21, ein Programmcode 22 und
ein Datensatz 23 (der beispielsweise Fahrzeug- oder Motorparameter
enthält). Der
Bootcode 21, der Programmcode 22 und der Datensatz 23 sind
wie weiter unten erläutert
durch jeweilige Signaturen SIG21, SIG22 und SIG23 gesichert. Die
im Flash-Speicher 3 gespeicherten Daten werden im Betrieb über die
Datenleitung 4 an den Mikrocontroller 2 übermittelt
und von diesem zur Steuerung des Kraftfahrzeugs verwendet. Die Daten,
die im Flash-Speicher 3 abgespeichert sind, können auf relativ
einfache Weise von autorisierter Seite (z.B. vom Hersteller) aktualisiert
werden, ohne dass ein Austausch des gesamten Steuergerätes 1 notwendig ist.
-
Bei
der in 1 gezeigten Anordnung sind verschiedene Arten
von Angriffen denkbar, mit denen eine unautorisierte Partei versuchen
könnte,
die Daten im Flash-Speicher 3 zu ändern, beispielsweise durch
Austausch des Flash-Speichers 3 oder durch Umprogrammieren
des Flash-Speichers 3 im eingebauten Zustand. Ein Angreifer
könnte
ferner versuchen, im Flash-Speicher 3 gespeicherte sicherheitsrelevante
bzw. sensitive Daten auszulesen. Diese Angriffe werden erfindungsgemäß durch
die im Folgenden beschriebenen Verfahren verhindert.
-
2 zeigt
ein Flussdiagramm eines ersten Verfahrens nach einer Ausführungsform
der vorliegenden Erfindung. Mit diesem ersten Verfahren wird verhindert,
dass die Daten im Flash-Speicher 3 dadurch manipuliert
werden, dass der Flash-Speicher 3 komplett ausgetauscht
(also ausgelötet
und durch einen anderen Flash-Speicher ersetzt) wird. Dies wird durch
eine Paarung von Mikrocontroller 2 und Flash-Speicher 3 über deren
Seriennummern 5, 6 erreicht.
-
In
einem Schritt S1 werden werkseitig die jeweiligen Seriennummern 5 und 6 aus
dem Mikrocontroller 2 und dem Flash-Speicher 3 ausgelesen
und in einem Speicher einer (nicht näher dargestellten) Datenstation
oder Programmierstation gespeichert.
-
Im
nachfolgenden Schritt S2 werden die Seriennummern 5 und 6 miteinander
verkettet (also aneinander gehängt)
und mit einem Verschlüsselungsschlüssel 8 verschlüsselt. Dabei
ist der Verschlüsselungsschlüssel 8 Teil
eines Schlüsselpaars 8, 9 für ein asymmetrisches
Verschlüsselungsverfahren.
Der Verschlüsselungsschlüssel 8 ist
dabei ein geheimer Schlüssel,
der also nur werkseitig bekannt ist, während der im ROM 10 des
Mikrocontrollers 2 gespeicherte Entschlüsselungsschlüssel 9 ein öffentlicher Schlüssel ist,
der nicht geheim gehalten zu werden braucht.
-
Es
handelt sich bei den Seriennummmern 5 und 6 um
unverschlüsselte
Informationen bezüglich des
Flash-Speichers 3: Die Seriennummer 6 ist die Seriennummer
des Flashspeichers 3, während
die Seriennummer 5 die Seriennummer des Bausteines ist,
mit dem der Flashspeicher 3 eindeutig assoziiert wird.
Die durch die Verschlüsselung
mit dem Schlüssel 8 erhaltenen
verschlüsselten
charakteristischen Informationen werden im Folgenden als Zertifikat 7 bezeichnet.
-
In
Schritt S3 wird das Zertifikat 7 werkseitig im Speicherbereich 20 des
Flash-Speichers 3 gespeichert, was den werkseitig ausgeführten Teil
des Verfahrens abschließt.
-
In
Schritt S4 wird das Zertifikat 7 vom Flash-Speicher 3 über die
Datenleitung 4 in den RAM-Speicherbereich 11 des Mikrocontrollers 2 gelesen.
Dieser Schritt S4 kann beispielsweise jedes Mal wenn das Kraftfahrzeug
gestartet wird durchgeführt
werden.
-
In
Schritt S5 wird das Zertifikat 7 mit dem Entschlüsselungsschlüssel 9 des
Schlüsselpaars 8, 9 entschlüsselt und
in zwei Seriennummern getrennt.
-
In
Schritt S6 wird schließlich
geprüft,
ob die durch die Entschlüsselung
mit dem Schlüssel 9 erhaltenen
Seriennummern identisch sind mit den Seriennummern 5 und 6,
welche ja dem Mikrocontroller 2 unmittelbar zugänglich sind.
-
Sind
die durch die Entschlüsselung
mit dem Schlüssel 9 erhaltenen
Seriennummern identisch mit den Seriennummern 5 und 6,
dann bedeutet dies, dass der Flash-Speicher 3 nicht ausgetauscht
wurde und den darin gespeicherten Daten somit vertraut werden kann.
In diesem Falle springt die Prozedur zu Schritt S7, in welchem Parameter
und andere Daten aus dem Flash-Speicher 3 zur Weiterverarbeitung
in den RAM-Speicher des Mikrocontrollers geladen werden.
-
Sind
die durch die Entschlüsselung
mit dem Schlüssel 9 erhaltenen
Seriennummern nicht identisch sind mit den Seriennummern 5 und 6,
dann bedeutet dies, dass der Flash-Speicher 3 ausgetauscht wurde
und die darin gespeicherten Daten somit möglicherweise manipuliert wurden.
In diesem Falle springt die Prozedur zu Schritt S8, in welchem eine Fehlerreaktion
(Reset) durchgeführt
wird und beispielsweise im ROM-Speicher des Mikrocontrollers 2 gespeicherte
Grundeinstellung anstelle der Parameter und Daten im Flash-Speicher 3 in
den RAM-Speicher des Mikrocontrollers 2 geladen werden.
Alternativ dazu kann auch ein Warnsignal ausgegeben werden, welches
anzeigt, dass der Flash-Speicher 3 manipuliert
wurde. Dieses Warnsignal kann beispielsweise dann in einem nicht
näher dargestellten
Schritt so weiterverarbeitet werden, dass eine Wegfahrsperre aktiviert
wird, was bewirkt, dass das Kraftfahrzeug nicht mehr gestartet werden
kann, falls der Flash-Speicher 3 manipuliert wurde.
-
Durch
das oben beschriebene Verfahren wird erreicht, dass während der
Programmlaufzeit oder beim Starten des Steuergeräts 1 die verschlüsselten
Seriennummern (charakteristischen Informationen) mit dem Schlüssel 9 (Public-Key)
entschlüsselt und
mit den Seriennummern der tatsächlich
im Steuergerät 1 verbauten
Bauteilen verifiziert werden. Durch die Verwendung eines asymmetrischen Ver-/Entschlüsselungsverfahren
wird sichergestellt, dass mit den Steuergerät 1 gespeicherten
Informationen lediglich die Entschlüsselung der charakteristischen
Informationen durchgeführt
werden kann, nicht jedoch eine Verschlüsselung, die eine Paarung von
Bauteilen herstellen könnte.
Somit braucht der zur Entschlüsselung
verwendete Schlüssel 9 nicht geheim
gehalten zu werden.
-
Die
Verfahrensschritte S4 bis S7 werden durch ein im Mikrocontroller 2 gespeichertes
Programm realisiert. Dabei ist es vorteilhaft, wenn dieses Programm
im ROM-Speicher des Mikrocontrollers 2 gespeichert ist.
Somit kann sichergestellt werden, dass das Programm selbst nicht
manipuliert wird. Aus demselben Grunde ist es auch vorteilhaft,
wenn auch der Entschlüsselungsschlüssel 9 im
ROM-Speicher des
Mikrocontrollers 2 gespeichert ist. Da für ein ROM
keine aufwändigen
Fertigungsschritte notwendig sind, ist diese Lösung auch kostengünstig.
-
Es
sollte beachtet werden, dass im oben beschriebenen Ausführungsbeispiel
sowohl die Seriennummer 6 des Flash-Speichers 3 als
auch die Seriennummer 5 des Mikrocontrollers 2 zur
Paarung von Flash- Speicher
und Mikrocontroller verwendet wurden. Es ist jedoch auch möglich, dass
lediglich die Seriennummer des Flash-Speichers als Zertifikat 7 verschlüsselt abgespeichert
wird. In diesem Falle wird ein Schutz gegen einen Austausch des Flash-Speichers
realisiert. Es ist jedoch vorzuziehen, dass sowohl die Seriennummer
des Flash-Speichers als auch die Seriennummer des Mikrocontrollers
als Zertifikat 7 verschlüsselt abgespeichert werden,
da dann eine eindeutige Paarung zwischen Flash-Speicher und Mikrocontroller gegeben
ist, so dass auch Schutz gegen den Austausch des Mikrocontrollers gewährleistet
ist.
-
3 zeigt
ein Flussdiagramm eines zweiten Verfahrens nach einer Ausführungsform
der vorliegenden Erfindung. Mit diesem zweiten Verfahren wird verhindert,
dass die im Flash-Speicher 3 gespeicherten Daten manipuliert
werden können.
Dies wird dadurch erreicht, dass, die Daten im Flash-Speicher 3 mittels
Signaturen gesichert werden.
-
Zunächst werden
werkseitig die im Flash-Speicher zu speichernden Daten mit einer
Signatur versehen. Dazu wird in Schritt S1 unter Anwendung einer
Hashfunktion ein Hashwert der im Flash-Speicher zu speichernden
Daten, also beispielsweise des Bootcodes 21, des Programmcodes 22 und/oder
des Datensatzes 23 berechnet. Hierbei bezeichnet „Hashfunktion" eine nicht umkehrbare Funktion
(einen Algorithmus), die eine umfangreiche Datenmenge eindeutig
auf eine wesentlich kleinere Zielmenge abbildet. Beispiele für solche
Hashfunktionen sind der Message Digest MD4 oder die Familie der „Secure
Hash Algorithms" SHA.
Details zu diesen Hashfunktionen finden sich beispielsweise in Bruce Schneier „Applied
Cryptography", John
Wiley & Sons,
1996.
-
In
Schritt S2 wird der in Schritt S1 ermittelte Hashwert mit dem Verschlüsselungsschlüssel 8 verschlüsselt, wodurch
eine Signatur SIG21, SIG22 und/oder SIG23 erhalten wird.
-
In
Schritt S3 wird die in Schritt S2 ermittelt Signatur werkseitig
im Flash-Speicher 3 gespeichert. Es ist vorteilhaft, wenn
diese Schritte S1 bis S3 für alle
im Flash-Speicher 3 gespeicherten sensitiven Daten durchgeführt werden
und, wie in 1 dargestellt, sowohl der Bootcode 21,
der Programmcode 22 als auch der Datensatz 23 jeweils
mit einer Signatur SIG21, SIG22 bzw. SIG23 versehen werden.
-
Während der
Laufzeit wird in Schritt S4 die zu überprüfende Signatur SIG21, SIG22
und/oder SIG23 vom Flash-Speicher 3 über die Datenleitung 4 in
den RAM-Speicherbereich 11 des Mikrocontrollers 2 gelesen.
Dieser Schritt S4 kann beispielsweise jedes Mal durchgeführt werden
wenn das Kraftfahrzeug gestartet wird.
-
In
Schritt S5 wird die zu überprüfende Signatur
mit dem Entschlüsselungsschlüssel 9 des
Schlüsselpaars 8, 9 entschlüsselt, und
somit ein unverschlüsselter
Hashwert ermittelt.
-
In
Schritt S6 ermittelt der Mikrocontroller 2 den Hashwert
der zu verifizierenden Daten im Flash-Speicher 3, und zwar mit derselben Hash-Funktion,
die auch in Schritt S1 verwendet wurde. Dazu liest der Mikrocontroller 2 die
zu verifizierenden Daten aus dem Flash-Speicher 3 über die
Datenleitung 4 in den RAM-Speicher 11 und wendet
die Hash-Funktion auf diese Daten an, wodurch Hashwerte dieser Daten
erhalten werden.
-
In
Schritt S7 wird schließlich
geprüft,
ob die in Schritt S5 durch die Entschlüsselung mit dem Schlüssel 9 erhaltenen
Hashwerte identisch sind mit den in Schritt S6 erhaltenen Hashwerte.
-
Sind
die durch die Entschlüsselung
mit dem Schlüssel 9 in
Schritt S5 erhaltenen Hashwerte identisch mit den in Schritt S6
ermittelten Hashwerten, dann bedeutet dies, dass der Flash-Speicher 3 nicht manipuliert
wurde und den darin gespeicherten Daten somit vertraut werden kann.
In diesem Falle springt die Prozedur zu Schritt S8, in welchem Parameter
und andere Daten aus dem Flash-Speicher 3 zur Weiterverarbeitung
in den RAM-Speicher des Mikrocontrollers geladen werden.
-
Sind
die durch die Entschlüsselung
mit dem Schlüssel 9 in
Schritt S5 erhaltenen Hashwerte dagegen nicht identisch mit den
in Schritt S6 ermittelten Hashwerten, dann bedeutet dies, dass der Flash-Speicher 3 manipuliert
wurde und den darin gespeicherten Daten nicht vertraut werden kann.
In diesem Falle springt die Prozedur zu Schritt S9, in welchem eine
Fehlerreaktion (Reset) durchgeführt wird
und beispielsweise im ROM-Speicher des Mikrocontrollers 2 gespeicherte
Grundeinstellung anstelle der Parameter und Daten im Flash-Speicher 3 in
den RAM-Speicher des Mikrocontrollers 2 geladen werden.
Alternativ dazu kann auch ein Warnsignal ausgegeben werden, welches
anzeigt, dass der Flash-Speicher 3 manipuliert wurde. Dieses
Warnsignal kann beispielsweise dann in einem nicht näher dargestellten
Schritt so weiterverarbeitet werden, dass eine Wegfahrsperre aktiviert
wird, was bewirkt, dass das Kraftfahrzeug nicht mehr gestartet werden kann,
falls der Flash-Speicher 3 manipuliert wurde.
-
Durch
das oben beschriebene Verfahren wird erreicht, dass während der
Programmlaufzeit oder beim Starten des Steuergeräts 1 die im Flash-Speicher 3 gespeicherten
Daten verifiziert werden. Auch in diesem zweiten Verfahren wird
durch die Verwendung eines asymmetrischen Ver-/Entschlüsselungsverfahren
wird sichergestellt, dass mit den Steuergerät 1 gespeicherten
Informationen lediglich die Entschlüsselung der charakteristischen
Informationen durchgeführt
werden kann, nicht jedoch eine Verschlüsselung, die eine Paarung von
Bauteilen herstellen könnte.
Somit braucht der zur Entschlüsselung
verwendete Schlüssel 9 nicht
geheim gehalten zu werden.
-
Ein
weiterer möglicher
Angriff auf das Steuergerät 1 kann
darin bestehen, dass der Angreifer versucht, die im Flash-Speicher 3 abgespeicherten Daten
auszulesen, und zu kopieren bzw. zu klonen. Dies wird dadurch vereinfacht,
dass die Daten im Flash-Speicher 3 leicht auszulesen sind.
-
In
einer vorteilhaften Weiterbildung der oben erläuterten Ausführungsformen
sind daher Maßnahmen
vorgesehen, die ein Erkennen von Geheimnissen unterbinden. Konkret
kann dies dadurch geschehen, dass die im Flash-Speicher 3 gespeicherten
Daten verschlüsselt
abgespeichert werden und diese verschlüsselten Daten vom Mikrocontroller 2 entschlüsselt werden.
-
Wenn
also der Mikrocontroller 2 auf den Flash-Speicher 3 zugreift,
um dort Daten abzuspeichern, dann verschlüsselt der Mikrocontroller 2 diese Daten
vor dem Abspeichern. Der Algorithmus und der Schlüssel für diese
Datenverschlüsselung
sind wiederum im ROM 10 abgelegt, so dass sie gegen Manipulation
geschützt
sind. Wenn auf diese Weise verschlüsselte Daten vom Flash-Speicher 3 in
den Mikrocontroller ausgelesen werden, dann werden sie wiederum
zunächst
entschlüsselt,
bevor sie weiterverarbeitet werden.
-
Für die Ver-/Entschlüsselung
wird bevorzugt ein symmetrisches Ver-/Entschlüsselungsverfahren verwendet
wird, da ein solches Verfahren schneller ist als ein asymmetrisches
Verfahren. Bei symmetrischen Verfahren ist der zum Verschlüsseln verwendete
Schlüssel
identisch mit dem zum Entschlüsseln verwendete
Schlüssel,
so dass es vorteilhaft ist, diesen Schlüssel in einem Speicherbereich
des Mikrocontrollers 2 zu speichern, der von außen nicht
zugänglich
ist, also mit anderen Worten diesen Schlüssel auslesegeschützt zu speichern.
-
Es
ist wünschenswert,
dass der Schlüssel
für die
symmetrische Verschlüsselung
eine hohe Schlüssellänge hat,
da eine kurze Schlüssellänge anfällig ist
für so
genannte „Brote-Force"-Angriffe, in denen
der Angreifer den Schlüssel
durch wiederholtes Ausprobieren rät. Ferner ist es wünschenswert, dass
individuelle Schlüssel
erzeugt werden können und
projekt- bzw. kundenspezifische Variationsmöglichkeiten möglich sind.
Generell gibt es die Möglichkeit,
den Schlüssel
in Form von programmierbaren Bits, beispielsweise als so genannte „Halbleitersicherungen" (OTP bits – „one time
programmable bits") oder
als fest verdrahtete Bits vorzusehen.
-
Der
Vorteil von programmierbaren Bits ist, dass sie eine hohe Variationsmöglichkeit
bieten. Variationsmöglichkeiten
sind insbesondere dann wichtig, wenn Schlüssel korrumpiert, also bekannt
geworden sind. Programmierbare Bits sind jedoch relativ teuer und
für lange
Schlüssel
nur bedingt geeignet. Der Vorteil von fest verdrahteten Bits ist,
dass sie kostengünstig
sind und somit für
lange Schlüssellängen geeignet
sind. Allerdings bieten sie aufgrund der festen Verdrahtung keine
Variationsmöglichkeiten.
-
Erfindungsgemäß wird nun
vorgeschlagen, den Schlüssel
durch eine Kombination von programmierbaren Bits und fest verdrahteten
Bits zu realisieren. Somit ist es möglich, kostengünstig für das jeweilige
Steuergerät
individualisierte Schlüssel
mit hoher Schlüssellänge zu erzeugen.
-
Dabei
ist es günstig,
wenn beispielsweise bei einer Schlüssellänge von 16 Bytes etwa 10% der
Bits als OTP-Bits („one
time programmable bits")
und der Rest als fest verdrahtete Bits vorgesehen werden. Auf diese
Weise kann eine ausreichende Variationsmöglichkeit bei großer Schlüssellänge kostengünstig realisiert
werden. Werden beispielsweise 10 Bits des Schlüssels als OTP-Bits vorgesehen,
so sind dadurch 2^10 = 1024 Variationsmöglichkeiten gegeben.
-
Es
ist vorteilhaft, wenn die oben beschriebenen verschiedenen Maßnahmen
zum Schutz gegen Angriffe miteinander kombiniert werden. Auf diese Weise
kann ein vollständigerer
Schutz gegen die verschiedenen Arten von Angriffen (also beispielsweise Austausch
des Flash-Speichers 3 bzw. des Mikrocontrollers 2,
Manipulation der Daten im Flash-Speicher 3 sowie Kopieren
oder Klonen von sensitiven Daten im Flash-Speicher 3) erzielt
werden.