up

EP 1274097:
Verification of data in a memory device

Data Sheet

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

Application

Description


   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


   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