-
Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von Daten, die in einer Speicheranordnung des Mikrorechner-Systems abgelegt sind. Als Daten ist insbesondere ein Steuerprogramm dort abgelegt. Zu vorgebbaren Zeitpunkten werden Prüfmechanismen zum Überprüfen einer Manipulation der Daten ausgeführt.
-
Die Erfindung betrifft außerdem ein Mikrorechner-System mit einem Rechengerät, insbesondere einem Mikroprozessor, mit einer Speicheranordnung, in der Daten, insbesondere ein Steuerprogramm, ablegbar sind, und mit zu vorgebbaren Zeitpunkten ausführbaren Prüfmechanismen zum Überprüfen einer Manipulation der Daten.
-
Stand der Technik
-
Aus dem Stand der Technik sind Verfahren zum Schutz von in einer Speicheranordnung eines Mikrorechner-Systems abgelegten Daten, insbesondere zum Schutz eines dort abgelegten Steuerprogramms, vor einer Manipulation bekannt. Ein solches Verfahren ist z. B. aus der
DE 197 23 332 A1 bekannt. Derartige Verfahren werden bspw. zur Verhinderung einer unbefugten Manipulation eines in einem Steuergerät eines Kraftfahrzeugs abgelegten Steuerprogramms oder von dort abgelegten Parametern oder Grenzwerten eingesetzt. Das Steuerprogramm steuert oder regelt bestimmte Funktionen in dem Kraftfahrzeug, bspw. eine Brennkraftmaschine, eine Fahrdynamikregelung, ein Antiblockiersystem (ABS) oder ein elektronisches Lenksystem (Steer-by-Wire). Aufgrund einer Manipulation des Steuerprogramms kann es zu einem Defekt der gesteuerten oder geregelten Einheit des Kraftfahrzeugs kommen. Deshalb sollte eine Manipulation des Steuerprogramms oder der Daten nach Möglichkeit verhindert werden.
-
Trotz der Gefahr einer Manipulation des Steuerprogramms oder der Daten durch unbefugte Personen, ist es nicht sinnvoll, den Zugriff auf die Speicheranordnung des Steuergeräts völlig zu verbieten. Um bspw. eine Neuprogrammierung des Steuergeräts vornehmen zu können, muss es einem befugten Benutzerkreis möglich sein, auf die Speicheranordnung zuzugreifen. Es kann nämlich erforderlich sein, von Zeit zu Zeit eine neue Version eines Steuerprogramms oder neue Parameter oder Grenzwerte in dem Steuergerät abzulegen, um bspw. Fehler in der Software zu beseitigen oder neuen gesetzlichen Vorgaben Rechnung zu tragen.
-
Bei Kraftfahrzeugsteuergeräten wird zwischen Seriengeräten und Applikationsgeräten unterschieden. Üblicherweise werden Steuergeräte nach der Fertigung als Seriengeräte ausgeliefert. Bei Seriengeräten sind Prüfmechanismen (bspw. Checksummenbildung) zum Überprüfen einer Manipulation der in der Speicheranordnung des Steuergeräts abgelegten Daten aktiviert. Manipulierte Daten werden von diesen Mechanismen üblicherweise erkannt und die Daten können blockiert werden. Die Prüfmechanismen sind an sich in verschiedenen Ausgestaltungen aus dem Stand der Technik bekannt.
-
In bestimmten Situationen, insbesondere während der Entwicklungs- und Erprobungsphase der Steuergeräte, ist es erforderlich, die Prüfmechanismen zu deaktivieren, damit verschiedene Daten schnell und einfach in der Speicheranordnung abgelegt werden können. Ein Steuergerät mit deaktivierten Prüfmechanismen wird als ein Applikationsgerät bezeichnet.
-
Um eine lücklose Testabdeckung der in der Speicheranordnung abgelegten Daten sicherstellen zu können, müssen im Serienfall und im Applikationsfall die gleichen Daten, insbesondere muss das gleiche Steuerprogramm, in der Speicheranordnung des Steuergeräts abgelegt sein. Deshalb muss es möglich sein, ein Steuergerät von einem Serienfall in einen Applikationsfall umschalten zu können, ohne andere Daten in die Speicheranordnung laden zu müssen. Ein Umschalten vom Applikationsfall zurück in den Serienfall ist nicht erwünscht und sollte nach Möglichkeit sogar unmöglich sein, um zu verhindern, dass Steuergeräte in Umlauf sind, deren Steuerprogramm von dem Hersteller der Steuergeräte nicht getestet und genehmigt wurde.
-
Nach dem Stand der Technik wird zum Blockieren von manipulierten Daten eine Kennung (sog. Marker) definiert. Die Kennung ist ein Speicherbereich in einem nichtflüchtigen Speicher des Mikrorechner-Systems, der zur Kennzeichnung eines Blocks (Code- oder Datenbereich) als logisch gültig oder ungültig dient. Gewöhnlich wird auf diesem Speicherbereich ein Prüfmuster (sog. Pattern) programmiert, um die Kennung gültig oder ungültig zu setzen. Die Kennung wird verwendet, um das Ergebnis der Manipulationsprüfung zu speichern. Dadurch kann bei einer späteren Prüfung auf Manipulation Zeit gespart werden, da keine komplette Überprüfung der Speicheranordnung mehr ausgeführt werden muss, sondern nur die Kennung ausgewertet werden muss.
-
Die Kennung wird am Anfang der Neu- oder Umprogrammierung als ungültig definiert. Danach wird die Speicheranordnung neu- oder umprogrammiert und werden anschließend die neuen Daten durch die Prüfmechanismen auf Manipulation überprüft. Falls die Überprüfung der Speicheranordnung in Ordnung ist, wird die Kennung auf logisch gültig gesetzt. Anderenfalls wird die Kennung nicht programmiert und bleibt logisch ungültig.
-
Beim Hochfahren des Mikrorechner-Systems wird überprüft, ob die Kennung gesetzt (logisch gültig) ist. Falls ja, ist die Überprüfung erfolgreich durchgeführt worden, die Daten können ganz normal genutzt werden. Ist die Kennung jedoch nicht gesetzt (logisch ungültig), ist entweder die Überprüfung gescheitert oder wurde bspw. durch eine Unterbrechung der Spannungsversorgung (power down) unterbrochen.
-
Die Kennung muss in einem Speicherbereich liegen, der einerseits von außen unzugänglich, andererseits jedoch änderbar (auf gültig bzw. ungültig setzbar) ist. Diese Bedingungen werden erfüllt, wenn die Kennung in demjenigen Speicherbereich der Speicheranordnung abgelegt wird, in dem auch die Daten abgelegt sind bzw. in den bei einer Neu- oder Umprogrammierung neue Daten abgelegt werden. Es besteht die Gefahr, dass die Kennung während der Neu- oder Umprogrammierung mit manipulierten Daten ebenfalls programmiert und auf gültig gesetzt wird und nach der Neu- oder Umprogrammierung das Steuergerät abgeschaltet wird, um eine Ausführung der Prüfmechanismen im Anschluß an die Neu- oder Umprogrammierung zu verhindern. Beim nächsten Hochfahren des Rechners hat die Kennung den Wert gültig und die neu programmierten Daten können ganz normal genutzt werden, obwohl es sich um manipulierte Daten handelt.
-
Deshalb ist es eine Aufgabe der vorliegenden Erfindung, ein wirksames Blockieren von Daten in einer Speicheranordnung eines Mikrorechner-Systems zu ermöglichen, falls die Daten manipuliert wurden.
-
Zur Lösung dieser Aufgabe schlägt die Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, dass bei einer Neu- oder Umprogrammierung der Speicheranordnung neue Daten zumindest teilweise in einem flüchtigem Speicher, insbesondere in einem Random-Access-Memory (RAM), abgelegt werden, die Prüfmechanismen ausgeführt werden, und der in dem flüchtigen Speicher enthaltene Teil der neuen Daten in die Speicheranordnung kopiert wird, falls keine Manipulation der neuen Daten erkannt worden ist.
-
Vorteile der Erfindung
-
Erfindungsgemäß werden also bei einer Neu- oder Umprogrammierung zunächst nicht die gesamten neuen Daten in die dafür eigentlich vorgesehene Speicheranordnung übertragen. Vielmehr wird ein Teil der Daten in einen flüchtigen Speicher kopiert, der bei einer Unterbrechung der Versorgungsspannung seine Daten verliert. Erst nach erfolgreicher Ausführung der Prüfmechanismen ohne Detektion einer Manipulation der Daten werden die restlichen neuen Daten aus dem flüchtigen Speicher in die Speicheranordnung kopiert.
-
Falls eine Manipulation der Daten detektiert wird, werden die restlichen Daten nicht von dem flüchtigen Speicher in die Speicheranordnung kopiert. Falls die Spannungsversorgung während oder nach der Ausführung der Prüfmechanismen unterbrochen wird (power down), gehen die in dem flüchtigen Speicher abgelegten Daten verloren und werden nicht in die Speicheranordnung kopiert. In beiden Fällen sind die in der Speicheranordnung abgelegten Daten unvollständig und können nicht genutzt bzw. ausgeführt werden. Das erfindungsgemäße Verfahren ermöglicht eine zuverlässige und kaum zu umgehende Blockade von manipulierten Daten in der Speicheranordnung eines Mikrorechner-Systems. Es kann die Ausführung eines manipulierten Steuerprogramms oder die Nutzung von manipulierten Daten wirksam verhindern. Das Verfahren ist völlig unabhängig von äußeren Einflüssen wie bspw. einer Unterbrechung der Spannungsversorgung (power down).
-
Die Prüfmechanismen können den gesamten Inhalt der Speicheranordnung oder nur einen Teil der dort abgelegten Daten auf Manipulation überprüfen. Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird jedoch vorgeschlagen, dass von den Prüfmechanismen der Inhalt des flüchtigen Speichers auf Manipulation überprüft wird.
-
Die Auswahl des Teils der Daten, der im Rahmen der Neu- oder Umprogrammierung in dem flüchtigen Speicher abgelegt wird, kann bspw. anhand eines definierten Algorithmus erfolgen. Durch die Auswahl des Teils der Daten, der in dem flüchtigen Speicher abgelegt wird, kann auch der Teil der Daten bestimmt werden, der auf Manipulation überprüft werden soll. Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird jedoch vorgeschlagen, dass der Teil der Daten, der bei einer Neu- oder Umprogrammierung der Speicheranordnung in dem flüchtigen Speicher abgelegt wird zufällig ausgewählt wird.
-
Da das Generieren einer Zufallszahl in manchen Mikrorechner-Systemen nicht trivial ist, werden verschiedene Möglichkeiten zum Generieren einer Zufallszahl vorgeschlagen. Zum einen kann ein Rauschsignal an einem Analog/Digital(A/D)-Eingang des Mikrorechner-Systems gelesen und eine Zufallszahl in Abhängigkeit von dem Rauschsignal erzeugt werden. Der A/D-Eingang liefert ein zufälliges Rauschsignal, wenn er unbeschaltet ist. Zum anderen kann eine Summe über den Inhalt der Speicheranordnung gebildet und eine Zufallszahl in Abhängigkeit von der Summe erzeugt werden. Der Inhalt der Speicheranordnung ist vor dem Hochfahren des Mikrorechner-Sytems ungeordnet oder anders ausgedrückt zufällig geordnet. Des weiteren kann ein rechnerinterner Zeitgeber (Timer) ausgelesen werden, der beim Hochfahren des Mikrorechner-Systems nicht zurückgesetzt wird, und eine Zufallszahl in Abhängigkeit von dem Stand des Zeitgebers erzeugt werden. Schließlich kann eine von einem Fahrer eines Kraftfahrzeugs, in das das Mikrorechner-System integriert ist, beeinflussbare Größe herangezogen und eine Zufallszahl in Abhängigkeit von der Größe erzeugt werden. Als von dem Fahrer beeinflussbare Größe kann bspw. die Stellung eines Fahrpedals oder eine Größe eines adaptiven Fahrerkennfelds herangezogen werden.
-
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Mikrorechner-System der eingangs genannten Art vorgeschlagen, dass das Mikrorechner-System einen flüchtigen Speicher, in den bei einer Neu- oder Umprogrammierung der Speicheranordnung zumindest ein Teil der neuen Daten ablegbar ist, und Mittel zum Kopieren des in dem flüchtigen Speicher abgelegten Teils der neuen Daten in die Speicheranordnung aufweist, falls zuvor ausgeführte Prüfmechanismen ergeben, dass die neuen Daten nicht manipuliert sind. Der flüchtige Speicher ist vorzugsweise als ein Random-Access-Memory (RAM) ausgebildet.
-
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass das Mikrorechner-System als ein Steuergerät für ein Kraftfahrzeug zur Steuerung und/oder Regelung von Kraftfahrzeugfunktionen ausgebildet ist.
-
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass das Mikrorechner-System Mittel zur Ausführung des erfindungsgemäßen Verfahrens aufweist. Vorteilhafterweise ist in der Speicheranordnung ein Computerprogramm abgelegt, das auf dem Rechengerät ablauffähig und zur Ausführung des erfindungsgemäßen. Verfahrens geeignet ist.
-
Vorzugsweise ist die Speicheranordnung auf dem gleichen Halbleiterbauelement ausgebildet wie das Rechengerät. Bei einem solchen sog. On-Chip-Speicher kann der Programmspeicher bzw. können die darauf abgelegten Daten nicht von außen manipuliert werden, wodurch das Mikrorechner-System zusätzlich gegen Manipulation der auf der Speicheranordnung abgelegten Daten geschützt ist.
-
Zeichnungen
-
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in der Zeichnung dargestellt sind. Es zeigen:
-
1 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und
-
2 ein erfindungsgemäßes Mikrorechner-System gemäß einer bevorzugten Ausführungsform.
-
Beschreibung der Ausführungsbeispiele
-
Ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens zum Schutz eines Mikrorechner-Systems 30 aus 2 gegen Manipulation von Daten 33, die in einer Speicheranordnung 32 des Mikrorechner-Systems 30 abgelegt sind, ist in 1 dargestellt. Das Mikrorechner-System 30 ist bspw. als ein Steuergerät eines Kraftfahrzeugs zur Steuerung und/oder Regelung bestimmter Kraftfahrzeugfunktionen ausgebildet. Die Daten 33 sind bspw. als ein Steuerprogramm, als Grenzwerte oder als Parameter ausgebildet.
-
Das Steuergerät 30 umfasst einen Mikroprozessor 31 zur Abarbeitung eines in der Speicheranordnung 32 abgelegten Steuerprogramms 33 und/oder zur Verarbeitung der dort abgelegten Daten 33. Um die Daten 33 von der Speicheranordnung 32 zu dem Mikroprozessor 31 zu übertragen, ist zwischen dem Prozessor und dem Speicher eine Datenübertragungsverbindung 34 vorgesehen. Die Daten 33 werden schrittweise oder als ganzes zur Verarbeitung an den Mikroprozessor 31 übertragen. Ergebnisse von Berechnungen o. ä. werden von dem Mikroprozessor 31 an die Speicheranordnung 32 übertragen. Die Speicheranordnung 32 ist auf dem gleichen Halbleiterbauelement ausgebildet wie der Mikroprozessor 31 (On-Chip-Speicher). Dem Steuergerät 30 werden Sensorsignale 35 von verschiedenen Sensoren zum Erfassen des Zustands des Kraftfahrzeugs zugeführt. Das Steuergerät 30 ermittelt aus den Sensorsignalen 35 und in Abhängigkeit von den Daten 33 (Steuerprogramm, Parameter und/oder Grenzwerte) Ausgangssignale 36 für Aktoren zur Beeinflussung des Zustands des Kraftfahrzeugs.
-
Von Zeit zu Zeit kann es erforderlich sein, eine Neu- oder Umprogrammierung des Steuergeräts 30 bzw. der in der Speicheranordnung 32 abgelegten Daten 33 vorzunehmen. Eine Neu- oder Umprogrammierung kann erforderlich sein, um eine neue Version eines Steuerprogramms oder neue Parameter oder Grenzwerte in dem Steuergerät 30 abzulegen, um bspw. Fehler in der Software zu beseitigen oder um neuen gesetzlichen Vorgaben Rechnung zu tragen. Zur Neu- bzw. Umprogrammierung wird die Speicheranordnung 32 zunächst gelöscht und dann mit neuen Daten 33 beschrieben. Ein Pfeil 38 verdeutlicht die Übertragung der neuen Daten 33 von einem Programmiergerät an das Steuergerät 30. Bevor die neuen Daten 33 genutzt werden dürfen, muss überprüft werden, ob es sich um manipulierte Daten handelt. Dies geschieht durch Ausführen geeigneter Prüfmechanismen bspw. einer Checksummenbildung zu vorgebbaren Zeitpunkten. Derartige Prüfmechanismen sind an sich aus dem Stand der Technik bekannt und sollen hier nicht im Detail beschrieben werden.
-
Das in 1 dargestellte erfindungsgemäße Verfahren beginnt in einem Funktionsblock 40. In einem Funktionsblock 41 wird mit dem Hochfahren des Mikrorechner-Systems 30, bspw. durch Drehen eines Zündschlüssels des Kraftfahrzeugs, in den das Mikrorechner-System 30 als Steuergerät integriert ist, oder durch Drücken eines Starterknopfes begonnen. In einem Abfrageblock 42 wird überprüft, ob neue Daten 33 zur Neu- oder Umprogrammierung der Speicheranordnung 32 anliegen. Falls nein, wird zu einem Funktionsblock 48 verzweigt, das erfindungsgemäße Verfahren beendet und das Hochfahren des Mikrorechner-Systems 30 ganz normal fortgesetzt und das Mikrorechner-Systems 30 ganz normal betrieben.
-
Falls jedoch Daten 33 zur Neu- oder Umprogrammierung der Speicheranordnung 32 anliegen, werden die neuen Daten 33 in einem Funktionsblock 43 an das Steuergerät 30 übertragen und dort zum Teil in der Speicheranordnung 32 und zum Teil in einem flüchtigen Speicher (z. B. Random Access Memory, RAM) 37 des Mikrorechner-Systems 30 abgelegt. Die in dem flüchtigen Speicher 37 abgelegten Daten 33 gehen bei einer Unterbrechung der Spannungsversorgung verloren. In einem Funktionsblock 44 werden die in dem flüchtigen Speicher 37 abgelegten Daten 33 anhand von an sich aus dem Stand der Technik bekannten Prüfmechanismen (z. B. Checksummenbildung) auf Manipulation überprüft. In einem Abfrageblock 45 wird abgefragt, ob die geprüften Daten 33 manipuliert wurden oder nicht. Falls ja, wird zu dem Funktionsblock 48 verzweigt und das erfindungsgemäße Verfahren beendet. Das bedeutet, dass nach wie vor ein Teil der Daten 33 in dem flüchtigen Speicher 37 und nicht in der eigentlich dafür vorgesehenen Speicheranordnung 32 abgelegt sind. Sobald die Spannungsversorgung unterbrochen wird, werden diese Daten 33 verloren gehen. Somit sind die in der Speicheranordnung 32 abgelegten Daten 33 nicht vollständig; ein neues Steuerprogramm wäre nicht oder nicht fehlerfrei ausführbar und neue Parameter oder Grenzwerte wären fehlerhaft oder unvollständig. Das erfindungsgemäße Verfahren ermöglicht also eine wirksame Blockierung der Daten 33, für den Fall dass eine Manipulation der Daten 33 erkannt wurde.
-
Falls keine Manipulation der Daten 33 detektiert wurde, werden in einem Funktionsblock 46 die restlichen Daten 33 aus dem flüchtigen Speicher 37 in die Speicheranordnung 32 kopiert. Die in der Speicheranordnung 32 enthaltenen Daten sind nun vollständig; ein Steuerprogramm kann normal ausgeführt werden, Parameter oder Grenzwerte sind voll nutzbar. In dem Funktionsblock 48 ist das erfindungsgemäße Verfahren beendet. Das Hochfahren des Mikrorechner-Systems 30 wird ganz normal fortgesetzt, und das Mikrorechner-System 30 wird ganz normal betrieben.