-
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. Dabei bilden alle beschriebenen
oder dargestellten Merkmale für sich oder in beliebiger
Kombination den Gegenstand der Erfindung, unabhängig von
ihrer Zusammenfassung in den Patentansprüchen oder deren
Rückbeziehung sowie unabhängig von ihrer Formulierung bzw.
Darstellung in der Beschreibung bzw. in der Zeichnung. Es
zeigen:
-
Fig. 1 ein Ablaufdiagramm eines erfindungsgemäßen
Verfahrens gemäß einer bevorzugten
Ausführungsform; und
-
Fig. 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 Fig. 2 gegen
Manipulation von Daten 33, die in einer Speicheranordnung
32 des Mikrorechner-Systems 30 abgelegt sind, ist in Fig.
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, müssen ü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 Fig. 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.