[go: up one dir, main page]

DE102006006109A1 - Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät - Google Patents

Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät Download PDF

Info

Publication number
DE102006006109A1
DE102006006109A1 DE200610006109 DE102006006109A DE102006006109A1 DE 102006006109 A1 DE102006006109 A1 DE 102006006109A1 DE 200610006109 DE200610006109 DE 200610006109 DE 102006006109 A DE102006006109 A DE 102006006109A DE 102006006109 A1 DE102006006109 A1 DE 102006006109A1
Authority
DE
Germany
Prior art keywords
microcontroller
characteristic information
memory
key
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200610006109
Other languages
English (en)
Inventor
Klaus Schneider
Axel Aue
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200610006109 priority Critical patent/DE102006006109A1/de
Priority to PCT/EP2007/050384 priority patent/WO2007090712A1/de
Publication of DE102006006109A1 publication Critical patent/DE102006006109A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

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, umfasst: - Verschlüsseln von unverschlüsselten charakteristischen Informationen bezüglich des nichtflüchtigen Speichers mittels eines asymmetrischen Verschlüsselungsverfahrens und Speichern der verschlüsselten charakteristischen Informationen im nichtflüchtigen Speicher; - Ü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. Ferner wird ein gegen Manipulation geschütztes Steuergerät bereitgestellt.

Description

  • 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.

Claims (15)

  1. Verfahren zum Manipulationsschutz eines Steuergeräts (1), insbesondere eines Motorsteuergeräts, mit einem Mikrocontroller (2) und einem separat vom Mikrocontroller (2) vorgesehenen nichtflüchtigen Speicher (3), welcher insbesondere als Flash-Speicher (3) ausgebildet ist, mit den folgenden Schritten: – Verschlüsseln von unverschlüsselten charakteristischen Informationen bezüglich des nichtflüchtigen Speichers (2) mittels eines asymmetrischen Verschlüsselungsverfahren und Speichern der verschlüsselten charakteristischen Informationen (7, SIG21, SIG22, SIG23) im nichtflüchtigen Speicher (3); – Übermitteln der im nichtflüchtigen Speicher gespeicherten Informationen (7, SIG21, SIG22, SIG23) an den Mikrocontroller (2); – Entschlüsseln der übermittelten Informationen (7, SIG21, SIG22, SIG23) durch den Mikrocontroller (2); und – Vergleichen der entschlüsselten Informationen mit den unverschlüsselten charakteristischen Informationen durch den Mikrocontroller (2).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die charakteristischen Informationen eine Seriennummer (6) des nichtflüchtigen Speichers (3) umfassen.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die charakteristischen Informationen eine Seriennummer (5) des Mikrocontrollers (2) umfassen.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die charakteristischen Informationen einen Hashwert von im nichtflüchtigen Speicher (3) gespeicherten Daten umfassen.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei Feststellen von Ungleichheit der entschlüsselten Informationen und der unverschlüsselten charakteristischen Informationen eine Fehlerreaktion, insbesondere ein Reset, ausgeführt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein weiterer Schritt zum Speichern des Schlüssels (9) zum Entschlüsseln der Informationen durch den Mikrocontroller (2) in einem ROM-Speicher (10) des Mikrocontrollers (2) vorgesehen ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass weiterhin folgende Schritte vorgesehen sind: – Verschlüsseln von Daten durch den Mikrocontroller (2); – Speichern der verschlüsselten Daten im nichtflüchtigen Speicher (3); – Auslesen der im nichtflüchtigen Speicher (3) gespeicherten Daten durch den Mikrocontroller (2); und – Entschlüsseln der ausgelesenen verschlüsselten Daten durch den Mikrocontroller (2).
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass das Verschlüsseln und Entschlüsseln von Daten durch den Mikrocontroller (2) mit einem symmetrischen Verschlüsselungsverfahren durchgeführt wird.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Schlüssel zum Verschlüsseln und Entschlüsseln von Daten durch den Mikrocontroller (2) als Kombination von programmierbaren Bits und fest verdrahteten Bits im Mikrocontroller (2) gespeichert ist.
  10. Gegen Manipulationen geschütztes Steuergerät (1) mit: einem nichtflüchtigen Speicher (3) umfassend einen Speicherbereich (20), in welchem charakteristische Informationen bezüglich des nichtflüchtigen Speichers (3) mit einem privaten Schlüssel (8) eines Schlüsselpaars (8, 9) zur asymmetrischen Verschlüsselung verschlüsselt gespeichert sind; und einem Mikrocontroller (2), der über eine Datenleitung (4) mit dem nichtflüchtigen Speicher (3) verbunden ist, und einen ROM-Speicher (10) aufweist, in welchem der öffentliche Schlüssel (9) des Schlüsselpaars (8, 9) zur asymmetrischen Verschlüsselung, sowie ein Programm zur Entschlüsselung von mit der asymmetrischen Verschlüsselung verschlüsselten Daten gespeichert sind.
  11. Steuergerät nach Anspruch 10, dadurch gekennzeichnet, dass die charakteristischen Informationen eine Seriennummer (6) des nichtflüchtigen Speichers (3) umfassen.
  12. Steuergerät nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass die charakteristischen Informationen ferner eine Seriennummer (5) des Mikrocontrollers (2) umfassen.
  13. Steuergerät nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, dass die charakteristischen Informationen einen Hashwert von im nichtflüchtigen Speicher (3) gespeicherten Daten umfassen.
  14. Steuergerät nach einem der Ansprüche 10 bis 13, dadurch gekennzeichnet, dass im ROM-Speicher (11) des Mikrocontrollers (2) ferner ein symmetrischer Schlüssel zum symmetrischen Verschlüsseln von im nichtflüchtigen Speicher zu speichernden Daten gespeichert ist.
  15. Steuergerät nach Anspruch 14, dadurch gekennzeichnet, dass der symmetrische Schlüssel programmierbare Bits und fest verdrahtete Bits enthält.
DE200610006109 2006-02-10 2006-02-10 Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät Withdrawn DE102006006109A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200610006109 DE102006006109A1 (de) 2006-02-10 2006-02-10 Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät
PCT/EP2007/050384 WO2007090712A1 (de) 2006-02-10 2007-01-16 Verfahren zum manipulationsschutz eines steuergeräts sowie gegen manipulationen geschütztes steuergerät

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610006109 DE102006006109A1 (de) 2006-02-10 2006-02-10 Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät

Publications (1)

Publication Number Publication Date
DE102006006109A1 true DE102006006109A1 (de) 2007-08-16

Family

ID=37877022

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610006109 Withdrawn DE102006006109A1 (de) 2006-02-10 2006-02-10 Verfahren zum Manipulationsschutz eines Steuergeräts sowie gegen Manipulationen geschütztes Steuergerät

Country Status (2)

Country Link
DE (1) DE102006006109A1 (de)
WO (1) WO2007090712A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011109426A1 (de) 2011-08-04 2012-12-27 Daimler Ag Verfahren zur Erkennung von Datenänderungen in einem Steuergerät
US9471770B2 (en) 2011-05-24 2016-10-18 Siemens Aktiengesellschaft Method and control unit for recognizing manipulations on a vehicle network
US9479329B2 (en) 2011-03-22 2016-10-25 Audi Ag Motor vehicle control unit having a cryptographic device
AT526879A1 (de) * 2023-02-03 2024-08-15 Btv Tech Gmbh Verfahren zum Beschreiben von Daten auf einen IC sowie System zur Ausführung des Verfahrens

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767553B (zh) * 2020-05-29 2024-04-12 上海橙群微电子有限公司 数据加密解密方法、mcu及电子设备、可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138236A (en) 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
DE10200288A1 (de) * 2002-01-07 2003-07-17 Scm Microsystems Gmbh Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung
DE10311249A1 (de) * 2003-03-14 2004-09-23 Robert Bosch Gmbh Mikroprozessorsystem und Verfahren zum Erfassen des Austauschs von Bausteinen des Systems
DE10340861A1 (de) * 2003-09-04 2005-04-07 Infineon Technologies Ag Prozessorschaltung und Verfahren zum Zuordnen eines Logikchips zu einem Speicherchip

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479329B2 (en) 2011-03-22 2016-10-25 Audi Ag Motor vehicle control unit having a cryptographic device
US9471770B2 (en) 2011-05-24 2016-10-18 Siemens Aktiengesellschaft Method and control unit for recognizing manipulations on a vehicle network
DE102011109426A1 (de) 2011-08-04 2012-12-27 Daimler Ag Verfahren zur Erkennung von Datenänderungen in einem Steuergerät
AT526879A1 (de) * 2023-02-03 2024-08-15 Btv Tech Gmbh Verfahren zum Beschreiben von Daten auf einen IC sowie System zur Ausführung des Verfahrens

Also Published As

Publication number Publication date
WO2007090712A1 (de) 2007-08-16

Similar Documents

Publication Publication Date Title
DE60202605T2 (de) Verfahren zur sicherung eines elektronischen geräts, sicherheitssystem und elektronisches gerät
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
EP1128242B1 (de) Signaturverfahren
DE60126968T2 (de) System zum schutz von dynamischen und statischen daten gegen unerlaubten manipulationen
EP1184771B1 (de) Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE60308990T2 (de) Schutz eines gerätes gegen unerwünschte verwendung in einem sicheren umfeld
EP1959606A1 (de) Sicherheitseinheit
EP3337085B1 (de) Nachladen kryptographischer programminstruktionen
WO2013026663A1 (de) System zur sicheren übertragung von daten und verfahren
EP1399797B1 (de) Steuereinheit
EP1532510B1 (de) VERFAHREN ZUM SCHUTZ VOR MANIPULATIONEN AN EINEM STEUERGERÄT FÜR MINDESTENS EINE Kfz-KOMPONENTE
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
EP2235598B1 (de) Feldgerät und verfahren zu dessen betrieb
EP1273994A2 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
WO2007090712A1 (de) Verfahren zum manipulationsschutz eines steuergeräts sowie gegen manipulationen geschütztes steuergerät
EP1532511B1 (de) Fahrzeug-Steuergerät für eine Kfz-Komponente mit Schutz vor Manipulationen
DE102012224194B4 (de) Steuersystem für ein Kraftfahrzeug
EP1661069B1 (de) Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip
EP2434424A1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online Diensten
DE102015207765A1 (de) Verfahren und Sicherheitsmodul zum Erzeugen von mindestens einem Sicherheitsschlüssel
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung
DE102022202688A1 (de) Verfahren zur Validierung von Daten in einer Recheneinheit
DE102023117029A1 (de) Elektronische datenverarbeitungsvorrichtung
DE10131579A1 (de) Verfahren zum Programmieren einer Speicheranordnung eines Mikrorechner-Systems mit Daten
DE60314815T2 (de) Fernprogrammierungsverfahren eines Mobiltelefons und System dafür

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee