up
EP 1274097:
Verification of data in a memory device
- Equivalents:
-
- EC Classification:
-
- IPC Classification:
- G11C29/00; G06F11/10
- Priority Number(s):
- DE20011031574 20010702
- Application Number:
- EP20020012755 20020608
- Requested Patent:
- [_] EP1274097
- Applicant(s):
- BOSCH GMBH ROBERT (DE)
- Inventor(s):
- FEILEN OLIVER (DE); LOECHEL NORBERT (DE); PISCHKE JUERGEN (DE)
- Publication date:
- 2003-01-08
- Patent Number:
- EP1274097
- Invention:
- Verification of data in a memory device
Description
[0001] Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben
eines Mikrorechner-Systems. Bei dem Verfahren wird zumindest ein Teil
einer Speicheranordnung des Mikrorechner-Systems auf Manipulation von
in der Speicheranordnung abgelegten Daten überprüft. In Abhängigkeit
von dem Ergebnis der Überprüfung werden Massnahmen zur Verhinderung
einer Abarbeitung der Daten in dem Mikrorechner-System ausgeführt,
falls die Massnahmen aktiviert sind. Die Massnahmen werden in
Abhängigkeit von dem Inhalt eines Festwertspeichers des
Mikrorechner-Systems aktiviert oder deaktiviert.
[0002] Die Erfindung betrifft ausserdem ein Speicherelement für ein
Mikrorechner-System, insbesondere für ein Steuergerät eines
Kraftfahrzeugs, auf dem ein Computerprogramm abgespeichert ist. Das
Computerprogramm ist auf einem Rechengerät des Mikrorechner-Systems,
insbesondere auf einem Mikroprozessor, ablauffähig. Das
Speicherelement ist beispielsweise als ein Read-Only-Memory, als ein
Random-Access-Memory oder ein Flash-Memory ausgebildet.
[0003] Die vorliegende Erfindung betrifft des weiteren ein
Computerprogramm, das auf einem Rechengerät, insbesondere auf einem
Mikroprozessor, eines Mikrorechner-Systems ablauffähig ist.
[0004] Schliesslich betrifft die Erfindung auch ein
Mikrorechner-System mit einer Speicheranordnung, in der Daten,
insbesondere ein Steuerprogramm, Parameter oder Grenzwerte, abgelegt
sind. Das Mikrorechner-System umfasst des weiteren ein Rechengerät,
insbesondere einen Mikroprozessor, zur Abarbeitung der Daten.
Ausserdem umfasst das Mikrorechner-System Prüfmittel zur Überprüfung
der Daten auf Manipulation, Blockiermittel zur Verhinderung einer
Abarbeitung der Daten in Abhängigkeit von dem Ergebnis der Überprüfung
und erste Betätigungsmittel zur Überprüfung des Inhalts eines
Festwertspeichers des Mikrorechner-Systems und zur Aktivierung oder
Deaktivierung der Blockiermittel in Abhängigkeit von dem Inhalt des
Festwertspeichers.
Stand der Technik
[0005] Aus dem Stand der Technik ist ein Mikrorechner-System der
eingangs genannten Art bekannt, das als ein Kraftfahrzeugsteuergerät
ausgebildet ist. Das Steuergerät dient zur Steuerung und/oder Regelung
von Funktionen oder Einheiten des Kraftfahrzeugs, beispielsweise einer
Brennkraftmaschine, eines Antiblockiersystems (ABS), eines
elektronischen Lenksystems (Steer-by-Wire), eines elektronischen
Bremssystems (Brake-by-Wire) oder einer Klimatisierungsautomatik. Das
Steuergerät weist eine Speicheranordnung auf, die als ein
wiederbeschreibbarer Speicher, insbesondere als ein Flash-Speicher,
ausgebildet ist. In dem Flash-Speicher sind Daten in Form eines
Steuerprogramms oder in Form von Paramtern und Grenzwerten abgelegt.
[0006] 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,
zumindest aber sollte die Manipulation im Nachhinein erkennbar sein,
damit die Ursache eines Defekts einer gesteuerten oder geregelten
Einheit festgestellt werden kann bzw. damit Gewährleistungsansprüche
richtig zugeordnet werden können.
[0007] 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
beispielsweise eine Neuprogrammierung des Steuergeräts vornehmen zu
können, muss es einem befugten Benuzerkreis 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
beispielsweise Fehler in der Software zu beseitigen oder neuen
gesetzlichen Vorgaben Rechnung zu tragen.
[0008] Das bekannte Steuergerät verfügt über Prüfmittel zur
Überprüfung zumindest eines Teils der in dem Flash-Speicher abgelegten
Daten auf Manipulation. Aus dem Stand der Technik sind
unterschiedliche Verfahren zur Überprüfung von in einer
Speicheranordnung abgelegten Daten auf Manipulation bekannt, die alle
im Rahmen der vorliegenden Erfindung Anwendung finden können. Aus der
DE 197 23 332 A1 ist es beispielsweise bekannt, über zumindest einen
Teil der Speicheranordnung ein Codewort, beispielsweise eine
Checksumme, zu bilden und diese mit einem Vergleichscodewort zu
vergleichen, das in dem Flash-Speicher gespeichert ist. Falls das
Codewort nicht gleich dem Vergleichscodewort ist, wird von einer
Manipulation der Daten ausgegangen.
[0009] Das bekannte Steuergerät verfügt ausserdem über aktivierbare
und deaktivierbare Blockiermittel zur Verhinderung einer Abarbeitung
des Steuerprogramms oder einer Nutzung der Parameter oder Grenzwerte,
falls im Rahmen der Überprüfung eine Manipulation der Daten erkannt
wird. Die Abarbeitung der Daten wird nur dann verhindert, wenn die
Blockiermittel aktiviert sind. Zur Aktivierung bzw. Deaktivierung der
Blockiermittel wird bei dem bekannten Steuergerät der Inhalt eines
Festwertspeichers des Steuergeräts überprüft. Der Festwertspeicher ist
beispielsweise als ein EEPROM (Electronically Erasable Programmable
Read Only Memory) ausgebildet. Das Steuergerät verfügt über erste
Betätigungsmittel, die die Blockiermittel in Abhängigkeit von dem
Inhalt des Festwertspeichers aktivieren oder deaktivieren. Bei
aktivierten Blockiermitteln kann im Falle einer Manipulation der Daten
die Abarbeitung der Daten entweder sofort oder zu einem späteren
Zeitpunkt, beispielsweise beim nächsten Fahrzyklus, blockiert werden.
[0010] Die bekannten Steuergeräte werden standardmässig mit
aktivierten Blockiermitteln als sogenannte Seriengeräte ausgeliefert,
so dass die Abarbeitung des Steuerprogramms blockiert wird, falls eine
Manipulation des in dem Flash-Speicher abgelegten Steuerprogramms oder
der dort abgelegten Parameter oder Grenzwerte festgestellt wird. In
bestimmten Situationen, insbesondere während der Entwicklungs- und
Erprobungsphase eines Steuergerätes oder eines Steuerprogramms, ist es
jedoch erforderlich, ein Blockieren der Abarbeitung der Daten zu
deaktivieren, damit verschiedene Daten schnell und einfach in der
Speicheranordnung abgelegt werden können. Ein Steuergerät mit
deaktivierten Blockiermitteln wird als ein Applikationsgerät
bezeichnet.
[0011] Nach dem Stand der Technik ist bei Seriengeräten in einem
vorgebbaren Speicherbereich des Festwertspeichers mindestens ein
Default-Wert abgelegt. Bei Applikationsgeräten wird mindestens einer
der Default-Werte durch ein vorgebbares Prüfmuster überschrieben. Die
Programmierung dieses Speicherbereichs geschieht im Anschluss an die
Fertigung vor der Auslieferung des Steuergeräts. Die ersten
Betätigungsmittel zur Überprüfung des Inhalts dieses Speicherbereichs
sind in den Daten, d. h. in dem Steuerprogramm realisiert, das in dem
Flash-Speicher des Steuergeräts abgelegt ist. Während der Laufzeit des
Steuerprogramms wird der Inhalt des Festwertspeichers überprüft. Falls
in dem vorgebbaren Speicherbereich des Festwertspeichers nur
Default-Werte abgelegt sind, handelt es sich bei dem Steuergerät um
ein Seriengerät und die Blockiermittel werden aktiviert. Falls die
Prüfmittel also eine Manipulation der in dem Flash-Speicher abgelegten
Daten erkennen, wird die Abarbeitung der Daten verhindert. Falls in
dem vorgebbaren Speicherbereich des Festwertspeichers mindestens ein
vorgebbares Prüfmuster abgelegt ist, handelt es sich bei dem
Steuergerät um ein Applikationsgerät und die Blockiermittel werden
deaktiviert. Die Abarbeitung der Daten wird also selbst dann nicht
verhindert, wenn die Prüfmittel eine Manipulation des Steuerprogramms,
der Parameter oder Grenzwerte erkennen.
[0012] Der Inhalt des vorgebbaren Speicherbereichs des
Festwertspeichers wird auch als eine Hardware-Kennung bezeichnet, da
der Inhalt dieses Speicherbereichs nicht ohne weiteres geändert werden
kann. Die in dem vorgebbaren Speicherbereich des Festwertspeichers
abgelegten Default-Werte und Prüfmuster müssen nämlich auf die
Hardware-Umgebung und auf die in dem Flash-Speicher abgelegten Daten
abgestimmt sein. Bei dem aus dem Stand der Technik bekannten
Steuergerät besteht dennoch die Gefahr, dass unbefugte Dritte ein
Blockieren der Abarbeitung manipulierter Daten umgehen, indem der
Inhalt des vorgebbaren Speicherbereichs des Festwertspeichers
manipuliert wird und ein Seriengerät auf diese Weise als
Applikationsgerät gekennzeichnet wird.
[0013] Der vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde,
den Manipulations- bzw. Tuningschutz von in einer Speicheranordnung
eines Mikrorechner-Systems abgelegten Daten zu verbessern,
insbesondere die Wirksamkeit und Zuverlässigkeit des Manipulations-
bzw. Tuningschutzes zu erhöhen.
[0014] Zur Lösung dieser Aufgabe schlägt die Erfindung ausgehend von
dem Verfahren der eingangs genannten Art vor, dass in den Daten ein
Codewort abgelegt wird, das während des Betriebs des
Mikrorechner-System überprüft wird, und die Massnahmen auch in
Abhängigkeit von dem Ergebnis der Überprüfung des in den Daten
abgelegten Codeworts aktiviert oder deaktiviert werden.
Vorteile der Erfindung
[0015] Erfindungsgemäss wird also vorgeschlagen, ausser der bereits
aus dem Stand der Technik bekannten Hardware-Kennung eine
Software-Kennung einzuführen, die neben der Hardware-Kennung während
der Abarbeitung der in der Speicheranordnung abgelegten Daten
überprüft wird. Die Massnahmen zur Verhinderung einer Abarbeitung der
Daten, falls eine Manipulation der in der Speicheranordnung abgelegten
Daten erkannt wird, werden in Abhängigkeit des Ergebnisses der
Überprüfung der Hardware-Kennung und des Ergebnisses der
Software-Kennung aktiviert bzw. deaktiviert. Neben Applikationsgeräten
und Seriengeräten wird erfindungsgemäss auch zwischen
Applikationsdaten und Seriendaten unterschieden. Die Massnahmen zur
Verhinderung einer Abarbeitung der Daten werden vorzugsweise
aktiviert, wenn ein Seriengerät erkannt wurde, wenn Seriendaten
erkannt wurden oder wenn ein Seriengerät und Seriendaten erkannt
wurden. Die Massnahmen werden somit nur dann deaktiviert, wenn
Applikationsdaten auf einem Applikationsgerät ablaufen.
[0016] Im Rahmen der Erstellung der Daten wird bereits festgelegt, ob
die Daten für den Applikationsfall oder für den Serienfall bestimmt
sein sollen. Je nachdem wird ein vorgebbares Codewort in einem
bestimmten Bereich der Daten abgelegt. Das in den Daten abgelegte
Codewort kann auf eine besondere Weise ermittelt werden, so dass es
von unbefugten Dritten nicht einfach ausgelesen und manipuliert werden
kann, um die Daten als Applikationsdaten zu kennzeichnen. Wenn die
Daten beispielsweise ein Steuerprogramm umfassen, sind in dem
Steuerprogramm auch zweite Betätigungsmittel zur Überprüfung des
Codeworts vorgesehen. Das Steuerprogramm überprüft sich also quasi
selbst und ermittelt, ob es als ein Steuerprogramm für den
Applikationsfall oder für den Serienfall gekennzeichnet ist. Eine
Manipulation der Hardware-Kennung alleine reicht bei der vorliegenden
Erfindung nun nicht mehr aus, um die Massnahmen zur Verhinderung einer
Abarbeitung der Daten zu deaktivieren.
[0017] Gemäss einer vorteilhaften Weiterbildung der vorliegenden
Erfindung wird vorgeschlagen, dass die Massnahmen aktiviert werden,
falls in einem vorgebbaren Speicherbereich des Festwertspeichers ein
vorgebbares Prüfmuster nicht abgelegt ist. Ein Mikrorechner-System
kann als Seriengerät mit aktivierten Massnahmen zur Verhinderung der
Abarbeitung der Daten gekennzeichnet werden, indem in dem vorgebbaren
Speicherbereich des Festwertspeichers kein Prüfmuster abgelegt ist.
Bei Applikationsgeräten ist dagegen das vorgebbare Prüfmuster in dem
Festwertspeicher abgelegt.
[0018] Gemäss einer bevorzugten Ausführungsform der vorliegenden
Erfindung wird vorgeschalgen, dass die Massnahmen aktiviert werden,
falls ein Codewort in den Daten abgelegt ist. Zur Kennzeichnung von
Applikationsdaten sind in einem vorgebbaren Bereich der Daten einer
oder mehrere Default-Werte abgelegt. Zur Kennzeichnung von Seriendaten
wird mindestens einer dieser Default-Werte durch ein Codewort ersetzt.
Das Codewort ist beispielsweise eine Checksumme. Aus
Sicherheitsgründen werden in diesem Fall die Massnahmen zur
Verhinderung der Abarbeitung der Daten aktiviert.
[0019] Vorteilhafterweise wird auf eine Manipulation der Daten
geschlossen, falls das Codewort einem in Äbhängigkeit der Daten mit
Hilfe eines vorgebbaren Verschlüsselungsalgorithmus ermittelten
Referenz-Codewort nicht entspricht. Durch einen Vergleich des
Codeworts mit dem vorgebbaren Referenz-Codewort können die in der
Speicheranordnung abgelegten Daten zusätzlich auf Manipulation
überprüft werden. Das Referenz-Codewort wird im Vorfeld der
Abarbeitung der Daten ermittelt und in der Speicheranordnung oder in
einem anderen Speicher des Mikrorechner-Systems abgelegt. Eine
fehlende Übereinstimmung des Codeworts mit dem Referenz-Codewort
bedeutet, dass entweder die in der Speicheranordnung abgelegten Daten
oder das in den Daten abgelegten Codewort manipuliert wurden. Als eine
mögliche Massnahme bei einer erkannten Manipulation kann die
Abarbeitung der Daten blockiert werden.
[0020] Vorteilhafterweise ist das Codewort abhängig von zumindest
einem Teil der in der Speicheranordnung abgelegen Daten. Das Codewort
wird vorzugsweise anhand eines asymmetrischen
Verschlüsselungsverfahrens gebildet und überprüft.
[0021] Gemäss einer anderen vorteilhaften Weiterbildung der
vorliegenden Erfindung wird vorgeschlagen, dass zumindest ein Teil der
Daten anhand eines Komprimierungsalgorithmus auf einen Fingerprint
reduziert wird, der mit Hilfe eines lediglich einem beschränkten
Personenkreis zugänglichen privaten Schlüssels zu einer Signatur
verschlüsselt wird, und die Signatur als das Codewort in den Daten
abgelegt wird. Durch diese Massnahme ergibt sich eine zusätzliche
Sicherheit gegen eine Manipulation der Software-Kennung.
[0022] Gemäss einer weiteren bevorzugten Ausführungsform der Erfindung
wird vorgeschlagen, dass die Signatur mit Hilfe eines frei
zugänglichen öffentlichen Schlüssels zu einem entschlüsselten
Fingerprint entschlüsselt wird, aus demselben Teil der Daten und
anhand desselben Komprimierungsalgorithmus wie bei der Bildung der
Signatur ein Referenz-Fingerprint gebildet wird und der entschlüsselte
Fingerprint mit dem Referenz-Fingerprint verglichen wird. Es wird
vorzugsweise auf manipulierte Daten geschlossen, falls der
entschlüsselte Fingerprint nicht gleich dem Referenz-Fingerprint ist.
[0023] Von besonderer Bedeutung ist die Realisierung des
erfindungsgemässen Verfahrens in der Form eines Speicherelements, das
für ein Mikrorechner-System, insbesondere für ein Steuergerät eines
Kraftfahrzeugs, vorgesehen ist. Dabei ist auf dem Speicherelement ein
Computerprogramm abgespeichert, das auf einem Rechengerät des
Mikrorechner-Systems, insbesondere auf einem Mikroprozessor,
ablauffähig und zur Ausführung des erfindungsgemässen Verfahrens
geeignet ist. In diesem Fall wird also die Erfindung durch ein auf dem
Speicherelement abgespeichertes Computerprogramm realisiert, so dass
dieses mit dem Computerprogramm versehene Speicherelement in gleicher
Weise die Erfindung darstellt wie das Verfahren, zu dessen Ausführung
das Computerprogramm geeignet ist. Als Speicherelement kann
insbesondere ein elektrisches Speichermedium zur Anwendung kommen,
beispielsweise ein Read-Only-Memory, ein Random-Access-Memory oder ein
Flash-Memory.
[0024] Die Erfindung betrifft auch ein Computerprogramm der eingangs
genannten Art, das zur Ausführung des erfindungsgemässen Verfahrens
geeignet ist, wenn es auf dem Rechengerät abläuft. Besonders bevorzugt
ist dabei, wenn das Computerprogramm auf einem Speicherelement,
insbesondere auf einem Flash-Memory, abgespeichert ist.
[0025] Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung
wird ausgehend von dem Mikrorechner-System der eingangs genannten Art
vorgeschlagen, dass in den Daten ein Codewort abgelegt ist und das
Mikrorechner-System zweite Betätigungsmittel zur Überprüfung des
Codeworts während der Abarbeitung der Daten und zur Aktivierung oder
Deaktivierung der Blockiermittel in Abhängigkeit von dem Codewort
aufweist.
[0026] Während die ersten Betätigungsmittel zur Überprüfung der
Hardware-Kennung vorgesehen sind, dienen die zweiten Betätigungsmittel
zur Überprüfung der erfindungsgemäss vorgesehenen Software-Kennung.
Wenn eines der beiden Betätigungsmittel oder aber auch beide
Betätigungsmittel eine Aktivierung der Blockiermittel anzeigen, werden
die Massnahmen zur Verhinderung der Abarbeitung der Daten aktiviert.
Sobald dann eine Manipulation der in der Speicheranordnung abgelegten
Daten erkannt wird, wird die Abarbeitung dieser Daten verhindert. Die
Abarbeitung der Daten kann entweder sofort oder aber erst zu einem
späteren Zeitpunkt, beispielsweise beim nächsten Fahrzyklus, blockiert
werden.
Zeichnungen
[0027] 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:
Figur 1 ein erfindungsgemässes Mikrorechner-System gemäss einer
bevorzugten Ausführungsform;
Figur 2 ein Ablaufdiagramm eines erfindungsgemässen Verfahrens zum
Überprüfen einer Software-Kennung; und
Figur 3 ein Ablaufdiagramm des gesamten erfindungsgemässen Verfahrens
gemäss einer bevorzugten Ausführungsform.
Beschreibung der Ausführungsbeispiele
[0028] In Figur 1 ist ein erfindungsgemässes Mikrorechner-System in
seiner Gesamtheit mit dem Bezugszeichen 1 bezeichnet. Das
Mikrorechner-System 1 ist als ein Steuergerät für ein Kraftfahrzeug
ausgebildet. Das Steuergerät dient zur Steuerung und/oder Regelung von
Funktionen oder Einheiten in einem Kraftfahrzeug, beispielsweise einer
Brennkraftmaschine, eines Antiblockiersystems (ABS), eines
elektronischen Lenksystems (Steer-by-Wire) oder eines elektronischen
Bremssystems (Brake-by-Wire). Das Mikrorechner-System 1 weist ein
Rechengerät 2 auf, das als ein Mikroprozessor ausgebildet ist.
Ausserdem verfügt das Mikrorechner-System 1 über eine
Speicheranordnung 3, die als ein wiederbeschreibbarer Speicher,
insbesondere als ein Flash-Speicher, ausgebildet ist. Darüber hinaus
umfasst das Mikrorechner-System 1 einen Festwertspeicher 4, der als
ein EEPROM (Electronically Erasable Programmable Read Only Memory)
ausgebildet ist.
[0029] In der Speicheranordnung 3 sind Daten 5 abgelegt, die von dem
Rechengerät 2 zur Realisierung der Steuerungs- oder Regelungsaufgabe
des Steuergeräts 1 abgearbeitet werden können. Die Daten 5 sind
beispielsweise als ein Steuerprogramm, als Parameter oder als
Grenzwerte ausgebildet. Zwischen dem Rechengerät 2 und der
Speicheranordnung 3 ist eine bidirektionale
Datenübertragungsverbindung 6 vorgesehen, über die zum einen die zu
verarbeitenden Daten 5 aus der Speicheranordnung 3 an das Rechengerät
2 und zum anderen in der Speicheranordnung 3 abzulegende Werte, wie
beispielsweise die Ergebnisse von Berechnungen, von dem Rechengerät 2
an die Speicheranordnung 3 übertragen werden können. In dem
Festwertspeicher 4 sind vertrauliche Daten, wie beispielsweise
Informationen über eine Wegfahrsperre eines Kraftfahrzeugs, abgelegt.
Diese Angaben können über eine Datenübertragungsverbindung 7 von dem
Festwertspeicher 4 an das Rechengerät 2 übertragen werden.
[0030] Dem Mikrorechner-System 1 werden Eingangssignale 8 zugeführt,
die dem Mikrorechner-System 1 Informationen über den Zustand von zu
steuernden bzw. zu regelnden Funktionen oder Einheiten liefern. Die
Eingangssignale 8 werden beispielsweise von Sensoren oder
Messwertaufnehmern (nicht dargestellt) erfasst. Im Rahmen der
Abarbeitung des in der Speicheranordnung 3 ebenfalls abgelegten
Steuerprogramms und unter Verarbeitung der Eingangssignale 8 und der
in der Speicheranordnung 3 abgelegten Parameter oder Grenzwerte
erzeugt das Mikrorechner-System 1 Ausgangssignale 9, die an die zu
steuernden bzw. zu regelnden Funktionen oder Einheiten geleitet
werden. Über die Ausgangssignale 9 kann der Zustand von zu steuernden
oder zu regelnden Funktionen oder Einheiten beeinflusst werden.
[0031] In dem Mikrorechner-System 1 sind Prüfmittel zur Überprüfung
zumindest eines Teils der in der Speicheranordnung 3 abgelegten Daten
5 auf Manipulation vorgesehen. Falls eine Manipulation der Daten 5
erkannt wird, kann die Abarbeitung der Daten 5 in dem Rechengerät 2
durch Blockiermittel verhindert werden. Die Abarbeitung der Daten 5
kann unmittelbar nach der Detektion einer Manipulation der Daten 5
oder aber erst zu einem vorgebbaren späteren Zeitpunkt, beispielsweise
beim nächsten Fahrzyklus, blockiert werden. Die Blockiermittel können
aktiviert und deaktiviert werden. Bei einem als Applikationsgerät
gekennzeichneten Mikrorechner-System 1 sind die Blockiermittel
deaktiviert. Applikationsgeräte werden insbesondere in der
Entwicklungs- und Erprobungsphase eines Kraftfahrzeugsteuergeräts 1
oder des in der Speicheranordnung 3 abgelegten Steuerprogramms 5
eingesetzt. Bei einem als Seriengerät gekennzeichneten
Mikrorechner-System 1 sind die Blockiermittel dagegen aktiviert, so
dass bei einer Detektion von manipulierten Daten 5 die Abarbeitung der
Daten 5 blockiert wird. Die aktivierten Blockiermittel in
Seriengeräten sollen verhindern, dass das Mikrorechner-System 1 mit
manipulierten Daten 5 betrieben wird oder zumindest einen Nachweis
einer Manipulation der Daten 5 ermöglichen.
[0032] Zur Kennzeichnung eines Mikrorechner-Systems 1 als
Applikationsgerät ist in einem vorgebbaren Speicherbereich 10 des
Festwertspeichers 4 ein vorgebbares Prüfmuster 11 abgelegt. Während
der Abarbeitung der Daten 5 in dem Rechengerät 2, d. h. während der
Laufzeit des Steuerprogramms wird der Inhalt des Speicherbereichs 10
des Festwertspeichers 4 überprüft. Falls das vorgebbare Prüfmuster 11
in dem Speicherbereich 10 abgelegt ist, wird davon ausgegangen, dass
das Mikrorechner-System 1 ein Applikationssgerät ist und die
Blockiermittel werden deaktiviert. Anderenfalls wird davon
ausgegangen, dass das Mikrorechner-System 1 ein Seriengerät ist und
die Blockiermittel werden aktiviert. Die Überprüfung des Inhalts des
Speicherbereichs 10 des Festwertspeichers 4 wird durch erste
Betätigungsmittel ausgeführt. Die Prüfmittel, die Blockiermittel und
die ersten Betätigungsmittel zur Überprüfung des Speicherbereichs 10
des Festwertspeichers 4 sind Teil der Daten 5 und vorzugsweise in dem
Steuerprogramm realisiert, das auf dem Rechengerät 2 ablauffähig ist.
[0033] Zur Verbesserung des Schutzes vor Manipulation der in der
Speicheranordnung 3 abgelegten Daten 5 wird gemäss der vorliegenden
Erfindung vorgeschlagen, neben der sogenannten Hardware-Kennung
(Prüfmuster 11) eine Software-Kennung vorzusehen und die
Blockiermittel in Abhängigkeit der Hardware-Kennung und der
Software-Kennung zu aktivieren bzw. zu deaktivieren. Als
Software-Kennung wird der Inhalt von vorgebbaren Bereichen 12 und 13
der Daten 5 bezeichnet. Durch die Software-Kennung können die Daten 5
als Applikationsdaten oder als Seriendaten gekennzeichnet werden. Bei
Applikationsdaten sind in den Bereichen 12, 13 der Daten 5
Default-Werte 14 abgelegt. Die Default-Werte 14 sind von aussen als
Teil des in der Speicheranordnung 3 abgelegten Steuerprogramms 5 ohne
Kenntnis der Speicheradressen der Bereiche 12, 13 nicht von dem
übrigen Steuerprogramm 5 zu unterscheiden. Bei Seriendaten ist
mindestens einer der Default-Werte 14 durch ein Codewort 15 ersetzt.
Die Überprüfung der Software-Kennung erfolgt durch zweite
Betätigungsmittel, die ebenfalls in den Daten 5, bspw. in dem
Steuerprogramm, realisiert sind.
[0034] Gemäss der vorliegenden Erfindung werden die Blockiermittel zur
Verhinderung der Abarbeitung der Daten 5 aktiviert, falls in dem
vorgebbaren Speicherbereich 10 des Festwertspeichers 4 das Prüfmuster
11 nicht abgelegt ist, falls das Codewort 15 in mindestens einem der
Bereiche 12, 13 der Daten 5 abgelegt ist oder falls beide Bedinungen
zutreffen. In diesen Fällen wird also die Abarbeitung der Daten 5
blockiert, sofern eine Manipulation der Daten 5 erkannt wurde. Nur
falls keine der Bedingungen zutrifft, werden die Blockiermittel
deaktiviert, so dass während der Entwicklungs- oder Erprobungsphase
des Mikrorechner-Systems 1 oder der Daten 5 in der Speicheranordnung 3
beliebige Daten 5 abgelegt werden können, ohne dass eine Blockierung
der Abarbeitung der Daten 5 eintritt. Anders ausgedrückt, werden die
Blockiermittel nur dann deaktiviert, wenn Applikationsdaten auf einem
Applikationsgerät ablaufen.
[0035] Ein weiterer Aspekt der vorliegenden Erfindung besteht darin,
dass zur Detektion einer Manipulation der Daten 5 das in den Bereichen
12, 13 der Daten 5 abgelegte Codewort 15 herangezogen wird. Dazu wird
das Codewort 15 als Referenz-Codewort vor der Laufzeit der Daten 5 in
Abhängigkeit von nicht manipulierten Daten 5 nach einem vorgebbaren
Verschlüsselungsalgorithmus ermittelt. Während der Laufzeit der Daten
5 wird in Abhängigkeit von den in der Speicheranordnung 3 abgelegten
Daten 5 oder eines Teils davon ein weiteres Codewort ermittelt, das
mit dem Referenz-Codwort verglichen wird. Falls das ermittelte
Codewort gleich dem Referenz-Codewort ist, sind die Daten 5 in
Ordnung. Anderenfalls wird auf manipulierte Daten 5 geschlossen.
[0036] In Figur 2 ist ein Ablaufdiagramm des Teils des
erfindungsgemässen Verfahrens dargestellt, das die Software-Kennung
und die Überprüfung der Daten 5 auf Manipulation betrifft. Die in der
Speicheranordnung 3 des Mikrorechner-Systems 1 abzulegenden Daten 5
werden ausserhalb des Mikrorechner-Systems 1, beispielsweise in einem
Programmiergerät oder beim Ersteller 28 der Daten 5, zumindest
teilweise anhand eines Komprimierungsalgorithmus 16 auf einen
Fingerprint 17 reduziert. Der Fingerprint 17 wird anhand eines
Verschlüsselungsalgorithmus 18 mit Hilfe eines lediglich einem
beschränkten Personenkreis zugänglichen privaten Schlüssels 19
verschlüsselt. Der verschlüsselte Fingerprint wird als Signatur 20
bezeichnet. In einem Funktionsblock 21 wird die Signatur 20 an die
Daten 5 angehängt, d. h. als Codewort in mindestens einem der Bereiche
12, 13 der Daten 5 abgelegt. Danach werden die Daten 5 mit der
Signatur 20 bspw. über ein Programmiergerät an das Mikrorechner-System
1 übertragen.
[0037] In dem Mikrorechner-System 1 wird die Signatur 20 dann anhand
eines Entschlüsselungsalgorithmus 22 und mit Hilfe eines frei
zugänglichen öffentlichen Schlüssels 23 zu einem entschlüsselten
Fingerprint 24 entschlüsselt. Aus dem Teil der Daten 5, die für die
Bildung der Signatur 20 ausserhalb des Mikrorechner-Systems 1
herangezgogen wurden, wird anhand desselben Komprimierungsalgorithmus
16 ein Referenz-Fingerprint 25 erzeugt. In einem Funktionsblock 26
wird überprüft, ob der entschlüsselte Fingerprint 24 gleich dem
Referenz-Fingerprint 25 ist.
[0038] In Abhängigkeit von dem Ergebnis der in dem Funktionsblock 26
ausgeführten Abfrage wird ein Schaltelement 27 angesteuert, durch das
die Daten 5 als manipuliert oder nicht manipuliert gekennzeichnet
werden. Falls der entschlüsselte Fingerprint 24 gleich dem
Referenz-Fingerprint 25 ist, war die Überprüfung der Signatur 20
erfolgreich und die Daten 5 sind nicht manipuliert, bzw. es wurde
keine Manipulation der Daten 5 erkannt. Anderenfalls werden die Daten
5 als manipuliert gekennzeichnet. In diesem Fall wird bspw. die
Abarbeitung der Daten 5 blockiert.
[0039] In Figur 3 ist ein Ablaufdiagramm des gesamten
erfindungsgemässen Verfahrens dargestellt. Das Verfahren beginnt in
einem Funktionsblock 30. Es wird im Rahmen der Abarbeitung der Daten
5, beispielsweise zur Laufzeit eines Steuerprogramms, ausgeführt.
Zunächst wird die Hardware-Kennung überprüft. In einem Funktionsblock
31 wird der Inhalt des Speicherbereichs 10 des Festwertspeichers 4
eingelesen. In einem Abfrageblock 32 wird dann überprüft, ob der
Inhalt des Speicherbereichs 10 gleich dem Prüfmuster 11 ist. Falls
nein (Serienfall), wird zu einem Funktionsblock 33 verzweigt, in dem
die Massnahmen zur Verhinderung einer Abarbeitung der Daten 5
aktiviert werden.
[0040] Falls der Inhalt des Speicherbereichs 10 gleich dem Prüfmuster
11 ist, wird die Software-Kennung überprüft. Es wird zu einem
Funktionsblock 34 verzweigt, in dem der Inhalt der Bereiche 12, 13 der
Daten 5 eingelesen wird. Anschliessend wird in einem Abfrageblock 35
überprüft, ob in den Bereichen 12, 13 der Daten 5 das Codewort 15
abgelegt ist. Falls ja (Serienfall), wird zu dem Funktionsblock 33
verzweigt, in dem die Massnahmen zur Verhinderung einer Abarbeitung
der Daten 5 aktiviert werden. Falls in den Bereichen 12, 13 der Daten
5 kein Codewort 15 abgelegt ist, d. h. es sind nur Default-Werte 14 in
den Bereichen 12, 13 abgelegt, wird zu einem Funktionsblock 36
verzweigt, in dem die Massnahmen zur Verhinderung der Abarbeitung der
Daten 5 deaktiviert werden (Applikationsfall).
[0041] Im Applikationsfall können die Daten 5 ganz normal abgearbeitet
werden. Deshalb wird von dem Funktionsblock 36 zu einem Funktionsblock
37 verzweigt, in dem die Daten 5 abgearbeitet werden, d. h. das
Steuerprogramm ganz normal ausgeführt wird. Im Serienfall wird dagegen
überprüft, ob die Daten 5 manipuliert sind. Deshalb wird von dem
Funktionsblock 33 zu einem Abfrageblock 38 verzweigt, in dem die Daten
5 auf Manipulation geprüft werden. Zur Überprüfung einer Manipulation
der Daten 5 sind aus dem Stand der Technik eine Vielzahl
unterschiedlicher Verfahren bekannt, die im Rahmen der vorliegenden
Erfindung eingesetzt werden können.
[0042] Die Abfrageblöcke 35 und 38 können auch zu einem gemeinsamen
Abfrageblock zusammengefasst werden, in dem dann das in Figur 2
dargestellte Verfahren ausgeführt wird. Wenn in mindestens einem der
Bereiche 12, 13 das Codewort 15 abgelegt ist, bedeutet dies, dass der
Serienfall vorliegt. Entspricht das Codewort 15 darüber hinaus nicht
einem Referenz-Codewort, liegt eine Manipulation der Daten 5 vor.
[0043] Falls in dem Abfrageblock 38 eine Manipulation der Daten 5
erkannt wird, wird zu einem Funktionsblock 39 verzweigt, in dem die
Massnahmen zu Verhinderung der Abarbeitung der Daten 5 aktiviert
werden. Danach wird zu einem Funktionsblock 40 verzweigt, und das
Verfahren ist beendet. Falls in dem Abfrageblock 38 keine Manipulation
der Daten 5 erkannt wird, wird zu dem Funktinosblock 37 verzweigt und
die Daten 5 werden in dem Funktionsblock 37 ganz normal abgearbeitet.
_________________________________________________________________
Data supplied from the esp@cenet database - l2
Claims
1. Verfahren zum Betreiben eines Mikrorechner-Systems (1), bei dem
zumindest ein Teil einer Speicheranordnung (3) des
Mikrorechner-Systems (1) auf Manipulation von in der Speicheranordnung
(3) abgelegten Daten (5) überprüft wird und in Abhängigkeit von dem
Ergebnis der Überprüfung Massnahmen zur Verhinderung einer Abarbeitung
der Daten (5) in dem Mikrorechner-System (1) ausgeführt werden, falls
die Massnahmen aktiviert sind, wobei die Massnahmen in Abhängigkeit
von dem Inhalt eines Festwertspeichers (4) des Mikrorechner-Systems
(1) aktiviert oder deaktiviert werden, dadurch gekennzeichnet, dass in
den Daten (5) ein Codewort (15) abgelegt wird, das während des
Betriebs des Mikrorechner-Systems (1) überprüft wird, und die
Massnahmen auch in Abhängigkeit von dem Ergebnis der Überprüfung des
in den Daten (5) abgelegten Codeworts (15) aktiviert oder deaktiviert
werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die
Massnahmen aktiviert werden, falls in einem vorgebbaren
Speicherbereich (10) des Festwertspeichers (4) ein vorgebbares
Prüfmuster (11) nicht abgelegt ist.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die
Massnahmen aktiviert werden, falls ein Codewort (15) in den Daten (5)
abgelegt ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass auf eine
Manipulation der Daten (5) geschlossen wird, falls das Codewort (15)
einem in Äbhängigkeit von den Daten (5) mit Hilfe eines vorgebbaren
Verschlüsselungsalgorithmus ermittelten Referenz-Codewort nicht
entspricht.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,
dass das Codewort (15) abhängig ist von zumindest einem Teil der in
der Speicheranordnung (3) abgelegten Daten (5).
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das
Codewort (15) anhand eines asymmetrischen Verschlüsselungsverfahrens
gebildet und überprüft wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass zumindest
ein Teil der Daten (5) anhand eines Komprimierungsalgorithmus (16) auf
einen Fingerprint (17) reduziert wird, der mit Hilfe eines lediglich
einem beschränkten Personkreis zugänglichen privaten Schlüssels (19)
zu einer Signatur (20) verschlüsselt wird, und die Signatur (20) als
das Codewort (15) in den Daten (5) abgelegt wird.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die
Signatur (20) mit Hilfe eines frei zugänglichen öffentlichen
Schlüssels (23) zu einem entschlüsselten Fingerprint (24)
entschlüsselt wird, aus demselben Teil der Daten (5) und anhand
desselben Komprimierungsalgorithmus (16) wie bei der Bildung der
Signatur (20) ein Referenz-Fingerprint (25) gebildet wird und der
entschlüsselte Fingerprint (24) mit dem Referenz-Fingerprint (25)
verglichen wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass auf eine
Manipulation der Daten (5) geschlossen wird, falls der entschlüsselte
Fingerprint (24) nicht gleich dem Referenz-Fingerprint (25) ist.
10. Speicherelement, insbesondere Read-Only-Memory,
Random-Access-Memory oder Flash-Memory, für ein Mikrorechner-System
(1), insbesondere für ein Steuergerät eines Kraftfahrzeugs, auf dem
ein Computerprogramm (5) abgespeichert ist, das auf einem Rechengerät
(2) des Mikrorechner-Systems, insbesondere auf einem Mikroprozessor,
abblauffähig und zur Ausführung eines Verfahrens nach einem der
Ansprüche 1 bis 9 geeignet ist.
11. Computerprogramm, das auf einem Rechengerät (2), insbesondere auf
einem Mikroprozessor, eines Mikrorechner-Sytsems (1) ablauffähig ist,
dadurch gekennzeichnet, dass das Computerprogramm zur Ausführung eines
Verfahrens nach einem der Ansprüche 1 bis 9 geeignet ist, wenn es auf
dem Rechengerät (2) abläuft.
12. Computerprogramm nach Anspruch 11, dadurch gekennzeichnet, dass
das Computerprogramm auf einem Speicherelement, insbesondere auf einem
Flash-Memory, abgespeichert ist.
13. Mikrorechner-System (1) mit einer Speicheranordnung (3), in der
Daten (5), insbesondere ein Steuerprogramm, Parameter oder Grenzwerte,
abgelegt sind, mit einem Rechengerät (2), insbesondere einem
Mikroprozessor, zur Abarbeitung der Daten (5), mit Prüfmitteln zur
Überprüfung zumindest eines Teils der Daten (5) auf Manipulation, mit
Blockiermitteln zur Verhinderung einer Abarbeitung der Daten (5) in
Abhängigkeit von dem Ergebnis der Überprüfung und mit ersten
Betätigungsmitteln zur Überprüfung des Inhalts eines Festwertspeichers
(4) des Mikrorechner-Systems (1) und zur Aktivierung oder
Deaktivierung der Blockiermittel in Abhängigkeit von dem Inhalt des
Festwertspeichers (4), dadurch gekennzeichnet, dass in den Daten (5)
ein Codewort (15) abgelegt ist und das Mikrorechner-System (1) zweite
Betätigungsmittel zur Überprüfung des Codeworts (15) während der
Abarbeitung der Daten (5) und zur Aktivierung oder Deaktivierung der
Blockiermittel in Abhängigkeit von dem Codewort (15) aufweist.
_________________________________________________________________
Data supplied from the esp@cenet database - l2