DE10002203A1 - Verfharen zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten - Google Patents

Verfharen zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten

Info

Publication number
DE10002203A1
DE10002203A1 DE10002203A DE10002203A DE10002203A1 DE 10002203 A1 DE10002203 A1 DE 10002203A1 DE 10002203 A DE10002203 A DE 10002203A DE 10002203 A DE10002203 A DE 10002203A DE 10002203 A1 DE10002203 A1 DE 10002203A1
Authority
DE
Germany
Prior art keywords
microcomputer
memory
code
memory arrangement
arrangement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10002203A
Other languages
English (en)
Other versions
DE10002203B4 (de
Inventor
Martin Thomas
Klaus Schneider
Axel Aue
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE10002203A priority Critical patent/DE10002203B4/de
Priority to IT2001MI000019A priority patent/ITMI20010019A1/it
Priority to US09/766,102 priority patent/US7207066B2/en
Priority to JP2001011749A priority patent/JP4833417B2/ja
Publication of DE10002203A1 publication Critical patent/DE10002203A1/de
Application granted granted Critical
Publication of DE10002203B4 publication Critical patent/DE10002203B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechner-Systems (20, 23) gegen Manipulation von in einer Speicheranordnung (20) des Mikrorechner-Systems (20, 23) gespeicherten Daten, insbesondere zum Schutz eines in der Speicheranordnung (20) gespeicherten Programms, wobei das Mikrorechner-System (20, 23) einen der Speicheranordnung (20) zugeordneten Mikrorechner (23) aufweist, der zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung (20) zugreift. Um bei einem Mikrorechner (23), der nicht über einen internen Speicher verfügt, sondern auf eine externe Speicheranordnung (20) zugreift und darin gespeicherte Daten abarbeitet, die Manipulation der Daten zu verhindern, wird vorgeschlagen, dass vor dem Einsatz der Speicheranordnung (20) dem oder jedem zugeordneten Mikrorechner (23) oder der Speicheranordnung (20) eine individuelle Kennung zugewiesen wird, dass in Abhängigkeit der individuellen Kennung ein Vergleichscode generiert und in der Speicheranordnung (20) gespeichert wird und dass vor oder während dem Betrieb des Mikrorechner-Systems (20, 23) in Abhängigkeit der individuellen Kennung ein Sicherheitscode generiert und mit dem Vergleichscode verglichen wird.

Description

Stand der Technik
Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-System gespeicherten Daten. Die Erfindung betrifft insbesondere ein Verfahren zum Schutz eines in der Speicheranordnung gespeicherten Programms. Das Mikrorechner-System weist einen der Speicheranordnung zugeordneten Mikrorechner auf, der zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung zugreift. Die Erfindung betrifft außerdem eine Speicheranordnung, in der Daten, insbesondere ein Programm, gespeichert sind und der mindestens ein Mikrorechner zugeordnet ist, der zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung zugreift. Schließlich betrifft die Erfindung ein Mikrorechner-System mit mindestens einem Mikrorechner und einer dem oder jedem Mikrorechner zugeordneten Speicheranordnung, in der Daten, insbesondere ein Programm, gespeichert sind, wobei der oder jeder Mikrorechner zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung zugreift.
Das Mikrorechner-System mit dem Mikrorechner und der Speicheranordnung bildet bspw. einen Teil eines Steuergeräts für ein Kraftfahrzeug. Ein solches Steuergerät steuert unterschiedliche Funktionen in einem Kraftfahrzeug, bspw. die Brennkraftmaschine, das Getriebe, den Brems- und Antriebsstrang, die Fahrdynamikregelung u. a.. Das Steuergerät weist üblicherweise einen Mikrorechner mit einem internen nur-Lesespeicher und einem internen wiederbeschreibbaren Speicher auf. Ein Steuerprogramm des Steuergeräts ist zumindest teilweise in dem wiederbeschreibbaren Speicher gespeichert. Durch eine Umprogrammierung des Steuerprogramms ist es theoretisch möglich, die gesteuerten Funktionen in dem Kraftfahrzeug gezielt zu verändern. Durch eine Manipulation des Steuerprogramms für die Brennkraftmaschine lässt sich bspw. auf relativ einfache Weise eine Leistungssteigerung der Brennkraftmaschine erzielen (sog. Chip-Tuning). Dies geht jedoch häufig auf Kosten einer langen Lebensdauer und einer niedrigen Abgasemission der Brennkraftmaschine. Aus diesem Grund führt eine unautorisierte Umprogrammierung des Steuerprogramms eines Steuergeräts zum Ausschluss von Haftungs- und Gewährleistungsansprüchen.
Aus dem Stand der Technik sind verschiedene Verfahren zum Schutz von Mikrorechnern gegen eine Manipulation des Steuerprogramms und verschiedene geschützte Mikrorechner bekannt. In der DE 197 23 332 A1 wird das sog. Seed & Key- Verfahren beschrieben, das in der Praxis weit verbreitet ist. Bei diesem bekannten Verfahren wird ein Überprüfungsprogramm in dem internen nur-Lesespeicher des Mikrorechners gespeichert. Bei jedem Start des Mikrorechners wird das Überprüfungsprogramm ausgeführt, bei dem mit einem Schlüssel aus zumindest einem Teil des Speicherinhalts des wiederbeschreibbaren Speichers ein Codewort ermittelt und mit einem in dem wiederbeschreibbaren Speicher abgelegten Vergleichscodewort verglichen wird. Bei einer Übereinstimmung des Codeworts mit dem Vergleichscodewort wird der Mikrorechner zur Ausführung weiterer Programme freigegeben. Anderenfalls wird der Mikrorechner zumindest teilweise gesperrt.
Wenn nun das Steuerprogramm des Mikrorechners manipuliert wird, wird zunächst der wiederbeschreibbare Speicher gelöscht und mit einem manipulierten Steuerprogramm überschrieben. Dabei geht auch das ursprünglich in dem wiederbeschreibbaren Speicher gespeicherte Vergleichscodewort verloren. Zur Generierung eines neuen Codeworts wird der Schlüssel benötigt, der jedoch nicht frei verfügbar ist. Deshalb stimmen nach einer Manipulation des Steuerprogramms in der Regel das Vergleichscodewort und das Codewort nicht überein und der Mikrorechner wird gesperrt.
Das aus dem Stand der Technik bekannte Seed & Key-Verfahren setzt jedoch einen Mikrorechner mit einem internen nur- Lesespeicher voraus, in dem das Überprüfungsprogramm gespeichert wird. Das bekannte Verfahren funktioniert nicht bei einem Mikrorechner, der nicht über einen internen Speicher verfügt.
Deshalb ist es Aufgabe der vorliegenden Erfindung, bei einem Mikrorechner, der nicht über einen internen Speicher verfügt, sondern auf eine externe Speicheranordnung zugreift, die Manipulation des Speicherinhalts, d. h. von in der Speicheranordnung gespeicherten Daten oder eines gespeicherten Programms, zu verhindern.
Zur Lösung dieser Aufgabe wird ausgehend von dem Verfahren zum Schutz eines Mikrorechner-Systems der eingangs genannten Art vorgeschlagen, dass vor dem Einsatz der Speicheranordnung dem oder jedem zugeordneten Mikrorechner oder der Speicheranordnung eine individuelle Kennung zugewiesen wird, dass in Abhängigkeit der Kennung ein Vergleichscode generiert und in der Speicheranordnung gespeichert wird und dass vor oder während dem Betrieb des Mikrorechner-Systems in Abhängigkeit der Kennung ein Sicherheitscode generiert und mit dem Vergleichscode verglichen wird.
Vorteile der Erfindung
Vor dem Einsatz der Speicheranordnung wird jedem Mikrorechner eine individuelle Kennung zugewiesen. Alternativ oder zusätzlich kann auch der Speicheranordnung eine individuelle Kennung zugewiesen werden. Diese Kennung kann z. B. als Zufallszahl bei der Fertigung des Mikrorechners oder durch Brennen von Fuses beim Kunden eingestellt werden. Wenn das Programm in die Speicheranordnung programmiert wird, wird auch ein in Abhängigkeit der Kennung generierter Vergleichscode in den Speicher übertragen.
Vor oder während dem Betrieb des Mikrorechner-Systems wird in Abhängigkeit der Kennung des oder jeden Mikrorechners bzw. der Speicheranordnung ein Sicherheitscode generiert und mit dem Vergleichscode verglichen. Der Vergleich des Sicherheitscodes mit dem Vergleichscode kann durch die Speicheranordnung und/oder durch den Mikrorechner ausgeführt werden.
Wenn der Vergleich durch die Speicheranordnung ausgeführt wird, wird die Speicheranordnung gesperrt, falls der Sicherheitscode nicht mit dem Vergleichscode übereinstimmt. Eine Ausführung des in der Speicheranordnung gespeicherten Programms durch den Mikrorechner ist dann nicht möglich, da der Mikrorechner nicht auf das Programm zugreifen kann.
Wenn der Vergleich durch den Mikrorechner ausgeführt wird, wird der Mikrorechner, falls der Sicherheitscode nicht mit dem Vergleichscode übereinstimmt, derart gesperrt, dass eine Ausführung des in der Speicheranordnung gespeicherten Programms nicht möglich ist.
Im Rahmen einer Manipulation von in der Speicheranordnung gespeicherten Daten, wird zunächst die Speicheranordnung gelöscht und dann mit manipulierten Daten überschrieben. Durch das Löschen der Speicheranordnung wird auch der Vergleichscode gelöscht und muss erneut in die Speicheranordnung geschrieben werden. Da die Kennung des oder jeden zugeordneten Mikrorechners bzw. die Kennung der Speicheranordnung jedoch nicht frei zugänglich ist, kann davon ausgegangen werden, dass der Sicherheitscode nach der Manipulation der Daten nicht mit dem Vergleichscode übereinstimmt.
Die heutige Gehäusetechnik von Mikrorechnern und Speicheranordnungen (z. B. Ball-Grid-Array (BGA)-Gehäuse) lässt es nur unter extremem Aufwand zu, die Kommunikation zwischen dem Mikrorechner und der Speicheranordnung nach einem Rücksetzen abzuhören, um auf diese Weise die Kennung des oder jeden Mikrorechners bzw. der Speicheranordnung in Erfahrung zu bringen. Selbst wenn es einer unbefugten Person auf diese Weise gelänge, die Kennung zu ermitteln, könnten mit Hilfe dieser Kennung lediglich die Daten dieser einen Speicheranordnung manipuliert werden. Eine Übertragung auf andere Mikrorechner-Systeme ist nicht möglich, da die Speicheranordnung oder der Mikrorechner anderer Mikrorechner-Systeme eine andere Kennung aufweist.
Erfindungsgemäß erfolgt also eine individuelle Zuordnung von Speicheranordnung und Mikrorechner eines Mikrorechner- Systems. Diese Zuordnung bewirkt, dass eine bestimmte Speicheranordnung nur mit einem oder mehreren bestimmten zugeordneten Mikrorechnern zuverlässig zusammenarbeitet. Das Auslesen des Speichers, seine Modifikation und seine Duplizierung zum Zwecke der Manipulation der gespeicherten Daten ohne Kenntnis der individuellen Kennung des Mikrorechners oder der Speicheranordnung ist damit sinnlos.
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass vor dem Einsatz der Speicheranordnung die individuelle Kennung als Vergleichscode in der Speicheranordnung gespeichert wird und dass vor oder während dem Betrieb der Speicheranordnung überprüft wird, ob der Vergleichscode mit der als Sicherheitscode verwendeten Kennung des oder jeden zugeordneten Mikrorechners übereinstimmt. Diese Weiterbildung stellt eine wesentliche Vereinfachung des erfindungsgemäßen Verfahrens dar, ohne dass dadurch der Schutz der Speicheranordnung vor Manipulation des Programms beeinträchtigt wird.
Wenn der Vergleich des Sicherheitscodes mit dem Vergleichscode durch die Speicheranordnung ausgeführt wird, arbeitet vorteilhafterweise die Speicheranordnung mit dem oder jedem Mikrorechner nur dann ordnungsgemäß zusammen, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Anderenfalls wird die Speicheranordnung gesperrt, und der Mikrorechner kann nicht auf das in der Speicheranordnung gespeicherte Programm zugreifen bzw. das Programm kann nicht aus der Speicheranordnung ausgelesen werden.
Wenn der Vergleich des Sicherheitscodes mit dem Vergleichscode alternativ oder zusätzlich durch den Mikrorechner ausgeführt wird, arbeitet der Mikrorechner nur mit der Speicheranordnung zusammen, falls der Sicherheitscode mit dem Vergleichscode übereinstimmt. Anderenfalls wird der Mikrorechner derart gesperrt, dass eine Ausführung des in der Speicheranordnung gespeicherten Programms nicht möglich ist. Bei dieser Ausführungsform der Erfindung ist der Austausch der Speicheranordnung nicht möglich. Dies ist von besonderer Bedeutung, da es sonst für eine Person mit Manipulationsabsichten möglich wäre eine Speicheranordnung mit Schutzmerkmal gegen eine entsprechende Speicheranordnung ohne Schutzmerkmal auszustauschen. Um bei dieser Ausführungsform rein theoretisch eine Manipulation von in der Speicheranordnung gespeicherten Daten durchführen zu können, müsste sowohl der Mikrorechner als auch die Speicheranordnung gegen entsprechende Bauteile ohne Schutzmerkmale ausgetauscht werden. Das ist jedoch mit einem enormen Aufwand verbunden und wird deshalb in der Praxis kaum eine Rolle spielen.
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass der Sicherheitscode vor dem Betrieb der Speicheranordnung nach jedem Hochfahren der Speicheranordnung generiert und mit dem Vergleichscode verglichen wird. Die Speicheranordnung ist vorzugsweise als ein Flash-Speicher ausgebildet.
Vorteilhafterweise wird die Speicheranordnung in einen Modus versetzt, in dem sie nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand geschaltet wird, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Nach dem Rücksetzen der Speicheranordnung kann diese nur durch eine bestimmte Aufschlusssequenz aktiviert werden. Die Aufschlusssequenz wird nur dann erzeugt, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Falls die Speicheranordnung diese Aufschlusssequenz nach einem Rücksetzen nicht sieht, so bleibt die Speicheranordnung in einem inaktiven Zustand.
Alternativ oder zusätzlich wird vorgeschlagen, dass der Mikrorechner in einen Modus versetzt wird, in dem er nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand geschaltet wird, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Nach dem Rücksetzen des Mikrorechners kann dieser nur durch eine bestimmte Aufschlusssequenz aktiviert werden. Die Aufschlusssequenz wird nur dann erzeugt, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Falls der Mikrorechner diese Aufschlusssequenz nach einem Rücksetzen nicht sieht, so bleibt er in einem inaktiven Zustand.
Das erfindungsgemäße Verfahren kann bei Mikrorechnern ohne internen Speicher eingesetzt werden. Selbstverständlich kann es aber auch bei Mikrorechnern eingesetzt werden, die über einen internen Speicher verfügen. Derartige Mikrorechner können außer durch das erfindungsgemäße Verfahren zusätzlich noch durch aus dem Stand der Technik bekannte Verfahren vor einer Manipulation des Programms geschützt werden. Deshalb wird gemäß einer anderen vorteilhaften Weiterbildung der vorliegenden Erfindung vorgeschlagen, dass ein in einem nur-Lesespeicher des Mikrorechners gespeichertes Überprüfungsprogramm ausgeführt wird, bei dem mit einem Schlüssel aus zumindest einem Teil des Speicherinhalts der Speicheranordnung ein Codewort ermittelt und mit einem in der Speicheranordnung abgelegten Vergleichscodewort verglichen wird. Gemäß dieser Weiterbildung wird der Mikrorechner zusätzlich noch durch das sog. Seed & Key-Verfahren vor einer Manipulation des Programms geschützt. Beide Verfahren zusammen ergeben bei Mikrorechnern, die über einen internen Speicher verfügen einen besonders wirksamen Schutz vor Manipulation.
Zur Lösung der Aufgabe der vorliegenden Erfindung wird des Weiteren ausgehend von einer Speicheranordnung der eingangs genannten Art vorgeschlagen, dass in der Speicheranordnung ein in Abhängigkeit von einer dem oder jedem Mikrorechner und/oder der Speicheranordnung zugewiesenen individuellen Kennung generierter Vergleichscode gespeichert ist, und dass die Speicheranordnung Mittel aufweist, um vor oder während dem Betrieb des Mikrorechner-Systems in Abhängigkeit der individuellen Kennung einen Sicherheitscode zu generieren und mit dem Vergleichscode zu vergleichen.
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass die Speicheranordnung in einen Modus versetzbar ist, in dem sie nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand schaltet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
Die Speicheranordnung ist vorteilhafterweise als ein Flash- Speicher, insbesondere als ein Flash Erasable Programmable Read Only Memory (Flash-EPROM) ausgebildet.
Zur Lösung der Aufgabe der vorliegenden Erfindung wird schließlich ausgehend von einem Mikrorechner-System der eingangs genannten Art vorgeschlagen, dass in der Speicheranordnung ein in Abhängigkeit von einer dem Mikrorechner oder der Speicheranordnung zugewiesenen individuellen Kennung generierter Vergleichscode gespeichert ist, und dass der Mikrorechner Mittel aufweist, um vor oder während dem Betrieb des Mikrorechner-Systems in Abhängigkeit der individuellen Kennung einen Sicherheitscode zu generieren und mit dem Vergleichscode zu vergleichen.
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass der Mikrorechner in einen Modus versetzbar ist, in dem er nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand schaltet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
Zeichnung
Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird im Folgenden anhand der Zeichnungen näher erläutert.
Es zeigt:
Fig. 1 ein Ablaufdiagramm des erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und
Fig. 2 ein erfindungsgemäßes Mikrorechner-System gemäß einer bevorzugen Ausführungsform.
Beschreibung der Ausführungsbeispiele
In Fig. 1 ist ein Ablaufdiagramm des erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform dargestellt. Das Verfahren dient zum Schutz eines Mikrorechner-Systems gegen Manipulation von in der Speicheranordnung gespeicherten Daten, insbesondere zum Schutz gegen Manipulation eines gespeicherten Programms. Der Speicheranordnung ist ein Mikrorechner zugeordnet, der zur Abarbeitung des Programms auf die Speicheranordnung zugreift. Ein solches Verfahren kann bspw. zum Schutz eines Steuergeräts eines Kraftfahrzeugs vor Manipulation des Steuerprogramms eingesetzt werden.
Das Verfahren beginnt in einem Funktionsblock 10. Dann wird in einem Funktionsblock 11 dem Mikrorechner, der der Speicheranordnung zugeordnet ist, eine individuelle Kennung zugewiesen. Die Kennung kann zufällig oder gezielt gewählt werden. In einem nachfolgenden Funktionsblock 12 wird in Abhängigkeit der Kennung des Mikrorechners ein Vergleichscode generiert und in Funktionsblock 13 dann in der Speicheranordnung gespeichert. Im einfachsten Fall besteht der Vergleichscode aus der Kennung des Mikrorechners. Die Schritte 10 bis 13 werden vor dem Einsatz der Speicheranordnung, bspw. im Rahmen der Fertigung, ausgeführt.
Anschließend wird dann vor oder während dem Betrieb des Mikrorechner-Systems, bspw. nach jedem Hochfahren des Mikrorechner-Systems, in Funktionsblock 14 ein Sicherheitscode in Abhängigkeit der Kennung des Mikrorechners generiert. Im einfachsten Fall besteht der Sicherheitscode aus der Kennung des Mikrorechners. In einem nachfolgenden Abfrageblock 15 wird dann der Sicherheitscode in dem Mikrorechner mit dem Vergleichscode verglichen. Dazu findet eine Kommunikation zwischen dem Mikrorechner und der Speicheranordnung statt, in deren Verlauf der in der Speicheranordnung gespeicherte Vergleichscode von dem Mikrorechner gelesen wird. Falls der Sicherheitscode und der Vergleichscode übereinstimmen (ja), wird der Mikrorechner in Funktionsblock 16 freigegeben.
In dem Funktionsblock 16 findet außerdem eine Kommunikation zwischen dem Mikrorechner und der Speicheranordnung statt, in deren Verlauf der Sicherheitscode von dem Mikrorechner an die Speicheranordnung übertragen wird. In einem nachfolgenden Abfrageblock 17 wird dann der Sicherheitscode in der Speicheranordnung mit dem gespeicherten Vergleichscode verglichen. Falls der Sicherheitscode und der Vergleichscode übereinstimmen (ja), wird die Speicheranordnung in Funktionsblock 18 freigegeben. Das Steuergerät kann ganz normal seine Steuerungs- und Regelungsaufgaben erfüllen. Wenn die Speicheranordnung erneut hochgefahren wird (gestrichelte Linie), beginnt das erfindungsgemäße Verfahren wieder bei Funktionsblock 14. Die Speicheranordnung wird bspw. durch ein Reset (Funktionsblock 22) zurückgesetzt und anschließend wieder hochgefahren.
Für die vorliegende Erfindung entscheidend ist, dass eine individuelle Zuordnung von Speicheranordnung und Mikrorechner des Mikrorechner-Systems erfolgt. Dies kann, wie oben beschrieben, durch eine Kennung des oder der Mikrorechner des Mikrorechner-Systems erfolgen. Alternativ oder zusätzlich kann das erfindungsgemäße Verfahren aber auch mit einer individuellen Kennung der Speicheranordnung arbeiten, durch die ebenfalls eine individuelle Zuordnung von Speicheranordnung und Mikrorechner erfolgen kann.
Falls der Sicherheitscode und der Vergleichscode nicht übereinstimmen (nein) wird der Mikrorechner in Funktionsblock 19 und/oder die Speicheranordnung in Funktionsblock 20 gesperrt. Dadurch wird das Auslesen bzw. das Ausführen des in der Speicheranordnung gespeicherten Programms verhindert. Das Steuergerät kann seine Steuerungs- und Regelungsfunktion nicht erfüllen. In Funktionsblock 21 ist das erfindungsgemäße Verfahren beendet.
Der Sicherheitscode stimmt bspw. dann nicht mit dem Vergleichscode überein, wenn die in der Speicheranordnung gespeicherten Daten manipuliert wurden und der Vergleichscode falsch oder gar nicht in der Speicheranordnung gespeichert wurde. Da die Kennung des Mikrorechners nur autorisierten Personen zur Verfügung steht, kann eine Änderung der Daten in der Speicheranordnung auch nur von diesen autorisierten Personen durchgeführt werden. Sie kennen die Kennung des der Speicheranordnung zugeordneten Mikrorechners und können nach einer Änderung des Programms den richtigen Vergleichscode ermitteln und in der Speicheranordnung ablegen.
In Fig. 2 ist ein erfindungsgemäßes Mikrorechner-System gemäß einer bevorzugen Ausführungsform in ihrer Gesamtheit mit den Bezugszeichen 30 (Speicheranordnung) und 33 (Mikrorechner) bezeichnet. Die Speicheranordnung 30 weist einen wiederbeschreibbaren Speicher 31 auf, in dem zumindest ein Teil eines Programms gespeichert ist. Der Mikrorechner 33 greift mit seinem Mikrorechner-Kern 35 zur Abarbeitung des Programms auf den Speicher 31 zu. Der Mikrorechner 33 und die Speicheranordnung 30 sind bspw. Teil eines Steuergeräts für ein Kraftfahrzeug.
In dem Speicher 31 der Speicheranordnung 30 ist ein Vergleichscode gespeichert, der in Abhängigkeit von einer dem Mikrorechner 33 zugewiesenen individuellen Kennung generiert worden ist. Im einfachsten Fall kann der Vergleichscode die Kennung selbst sein. Vor oder während des Betriebs des Mikrorechner-Systems 30, 33, bspw. nach dem Hochfahren des Mikrorechner-Systems 30, 33, wird die Kennung des Mikrorechners 33 an die Speicheranordnung 30 übertragen. Die Speicheranordnung 30 weist Mittel 32 auf, um vor oder während dem Betrieb der Speicheranordnung 30 in Abhängigkeit der Kennung des Mikrorechners 33 den Sicherheitscode zu generieren. Im einfachsten Fall kann der Sicherheitscode die Kennung selbst sein.
Die Mittel 32, 34 vergleichen den Sicherheitscode mit dem gespeicherten Vergleichscode. Die Speicheranordnung 30 wird in einen Modus versetzt, in dem sie nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand geschaltet wird, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt (Funktionsblock 18). Nach dem Rücksetzen der Speicheranordnung 30 kann diese nur durch eine bestimmte Aufschlusssequenz aktiviert werden. Die Aufschlusssequenz wird nur dann erzeugt, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Falls die Speicheranordnung 30 diese Aufschlusssequenz nach einem Rücksetzen nicht sieht, so bleibt sie in einem inaktiven Zustand (Funktionsblock 20).
Analog hierzu weist der Mikrorechner 33 Mittel 34 auf, um einen Sicherheitscode zu generieren und zu überprüfen. Der Mikrorechner 33 wird in einen Modus versetzt, in dem er nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand umschaltet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt (Funktionsblock 16). Nach dem Rücksetzen des Mikrorechners 33 kann dieser nur durch eine bestimmte Aufschlusssequenz aktiviert werden. Die Aufschlusssequenz wird nur dann erzeugt, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt. Falls der Mikrorechner 33 diese Aufschlusssequenz nach einem Rücksetzen nicht sieht, so bleibt er in einem inaktiven Zustand (Funktionsblock 19).
Die Mittel 34 des Mikrorechners 33 überprüfen also die korrekte Identifiaktion der Speicheranordnung 30, die Mittel 32 der Speicheranordnung 30 überprüfen die korrekte Identifikation des Mikrorechners 33.

Claims (12)

1. Verfahren zum Schutz eines Mikrorechner-Systems (20, 23) gegen Manipulation von in einer Speicheranordnung (20) des Mikrorechner-System (20, 23) gespeicherten Daten, insbesondere zum Schutz eines in der Speicheranordnung (20) gespeicherten Programms, wobei das Mikrorechner-System (20, 23) einen der Speicheranordnung (20) zugeordneten Mikrorechner (23) aufweist, der zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung (20) zugreift, dadurch gekennzeichnet, dass vor dem Einsatz der Speicheranordnung (20) dem oder jedem zugeordneten Mikrorechner (23) oder der Speicheranordnung (20) eine individuelle Kennung zugewiesen wird, dass in Abhängigkeit der individuellen Kennung ein Vergleichscode generiert und in der Speicheranordnung (20) gespeichert wird und dass vor oder während dem Betrieb des Mikrorechner-Systems (20, 23) in Abhängigkeit der individuellen Kennung ein Sicherheitscode generiert und mit dem Vergleichscode verglichen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass vor dem Einsatz der Speicheranordnung (20) die individuelle Kennung als Vergleichscode in der Speicheranordnung (20) gespeichert wird und dass vor oder während dem Betrieb des Mikrorechner-Systems (20, 23) überprüft wird, ob der Vergleichscode mit der als Sicherheitscode verwendeten Kennung des oder jeden zugeordneten Mikrorechners (23) übereinstimmt.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Speicheranordnung (20) mit dem oder jedem Mikrorechner (23) nur dann ordnungsgemäß zusammenarbeitet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Sicherheitscode vor dem Betrieb der Speicheranordnung (20) nach jedem Hochfahren der Speicheranordnung (20) generiert und mit dem Vergleichscode verglichen wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Speicheranordnung (20) in einen Modus versetzt wird, in dem sie nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand geschaltet wird, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass der Mikrorechner (23) in einen Modus versetzt wird, in dem er nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand geschaltet wird, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass ein in einem nur-Lesespeicher des Mikrorechners (23) gespeichertes Überprüfungsprogramm ausgeführt wird, bei dem mit einem Schlüssel aus zumindest einem Teil des Speicherinhalts der Speicheranordnung (20) ein Codewort ermittelt und mit einem in der Speicheranordnung (20) abgelegten Vergleichscodewort verglichen wird.
8. Speicheranordnung (20), in der Daten, insbesondere ein Programm, gespeichert sind und der mindestens ein Mikrorechner (23) zugeordnet ist, der zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung (20) zugreift, dadurch gekennzeichnet, dass in der Speicheranordnung (20) ein in Abhängigkeit von einer dem oder jedem Mikrorechner (23) oder der Speicheranordnung (20) zugewiesenen individuellen Kennung generierter Vergleichscode gespeichert ist, und dass die Speicheranordnung (20) Mittel (22) aufweist, um vor oder während dem Betrieb der Speicheranordnung (20) in Abhängigkeit der individuellen Kennung einen Sicherheitscode zu generieren und mit dem Vergleichscode zu vergleichen.
9. Speicheranordnung (20) nach Anspruch 8, dadurch gekennzeichnet, dass die Speicheranordnung (20) in einen Modus versetzbar ist, in dem sie nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand schaltet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
10. Speicheranordnung (20) nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass die Speicheranordnung (20) als ein Flash-Speicher ausgebildet ist.
11. Mikrorechner-System (20, 23) mit einem Mikrorechner (23) und einer dem Mikrorechner (23) zugeordneten Speicheranordnung (20), in der Daten, insbesondere ein Programm, gespeichert sind, wobei der Mikrorechner (23) zur Abarbeitung der Daten bzw. des Programms auf die Speicheranordnung (20) zugreift, dadurch gekennzeichnet, dass in der Speicheranordnung (20) ein in Abhängigkeit von einer dem Mikrorechner (23) oder der Speicheranordnung (20) zugewiesenen individuellen Kennung generierter Vergleichscode gespeichert ist, und dass der Mikrorechner (23) Mittel (24) aufweist, um vor oder während dem Betrieb des Mikrorechner-Systems (20, 23) in Abhängigkeit der individuellen Kennung einen Sicherheitscode zu generieren und mit dem Vergleichscode zu vergleichen.
12. Mikrorechner (23) nach Anspruch 11, dadurch gekennzeichnet, dass der Mikrorechner (23) in einen Modus versetzbar ist, in dem er nach jedem Hochfahren nur dann aus einem inaktiven in einen aktiven Zustand schaltet, wenn der Sicherheitscode mit dem Vergleichscode übereinstimmt.
DE10002203A 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten Expired - Fee Related DE10002203B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE10002203A DE10002203B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
IT2001MI000019A ITMI20010019A1 (it) 2000-01-19 2001-01-09 Procedimento per proteggere un sistema microcalcolatore contro la manipolazione di dati memorizzati in una disposizione di memorie del siste
US09/766,102 US7207066B2 (en) 2000-01-19 2001-01-19 Method for protecting a microcomputer system against manipulation of data stored in a storage arrangement of the microcomputer system
JP2001011749A JP4833417B2 (ja) 2000-01-19 2001-01-19 マイクロコンピュータシステムの保護方法,メモリ装置,マイクロコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10002203A DE10002203B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten

Publications (2)

Publication Number Publication Date
DE10002203A1 true DE10002203A1 (de) 2001-07-26
DE10002203B4 DE10002203B4 (de) 2009-12-10

Family

ID=7628068

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10002203A Expired - Fee Related DE10002203B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten

Country Status (4)

Country Link
US (1) US7207066B2 (de)
JP (1) JP4833417B2 (de)
DE (1) DE10002203B4 (de)
IT (1) ITMI20010019A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007012477A1 (de) * 2007-03-15 2008-09-18 Agco Gmbh Veränderungserkennungs- und Veränderungsschutzvorrichtung und Veränderungserkennungs- und Veränderungsschutzverfahren von Steuerdaten einer gesteuerten Kraftfahrzeugeinrichtung
DE102008059684A1 (de) * 2008-11-29 2010-06-02 Deutz Ag Manipulationsschutz an einer Brennkraftmaschine

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10002204B4 (de) * 2000-01-19 2013-10-02 Robert Bosch Gmbh Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
DE10238093B4 (de) * 2002-08-21 2007-10-18 Audi Ag Fahrzeug-Steuergerät
AU2003246111A1 (en) * 2003-07-07 2005-01-21 Lg Electronics, Inc. Upgrade apparatus and its method for home network system
US7500108B2 (en) 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
US7506379B2 (en) 2004-11-04 2009-03-17 International Business Machines Corporation Method and system for storage-based intrusion detection and recovery
US20080195413A1 (en) * 2006-01-25 2008-08-14 Jeffrey Franke Design structure for tamper sensitive warranty management for autonomic computing systems
US20070174075A1 (en) * 2006-01-25 2007-07-26 International Business Machines Corporation Tamper sensitive warranty management for autonomic computing systems
CN104751456B (zh) * 2015-03-13 2017-10-20 深圳大学 基于条件直方图码书的盲图像质量评价方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59231650A (ja) * 1983-06-14 1984-12-26 Usac Electronics Ind Co Ltd ソフトウエア保護処理方式
JPS61123959A (ja) * 1984-11-20 1986-06-11 Sharp Corp 着脱自在なメモリモジユ−ルを有する電子機器
JPS61296433A (ja) * 1985-06-24 1986-12-27 Nintendo Co Ltd 外部記憶装置のソフトウエア管理システム
DE4419635C2 (de) * 1994-06-04 1996-08-29 Esd Vermoegensverwaltungsgesel Microcontrollersicherungsverfahren
US5599231A (en) * 1994-10-31 1997-02-04 Nintendo Co., Ltd. Security systems and methods for a videographics and authentication game/program fabricating device
EP0717337B1 (de) * 1994-12-13 2001-08-01 International Business Machines Corporation Verfahren und System zur gesicherten Programmenverteilung
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
DE19723332A1 (de) * 1997-06-04 1998-09-03 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechners und geschützter Mikrorechner
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
JP2954173B1 (ja) * 1998-06-22 1999-09-27 静岡日本電気株式会社 ページャー装置の不正使用防止方法および不正使用防止付きページャー装置
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6272629B1 (en) * 1998-12-29 2001-08-07 Intel Corporation Method and apparatus for establishing network connection for a processor without an operating system boot
US6571335B1 (en) * 1999-04-01 2003-05-27 Intel Corporation System and method for authentication of off-chip processor firmware code
US6823451B1 (en) * 2001-05-10 2004-11-23 Advanced Micro Devices, Inc. Integrated circuit for security and manageability

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007012477A1 (de) * 2007-03-15 2008-09-18 Agco Gmbh Veränderungserkennungs- und Veränderungsschutzvorrichtung und Veränderungserkennungs- und Veränderungsschutzverfahren von Steuerdaten einer gesteuerten Kraftfahrzeugeinrichtung
DE102007012477B4 (de) * 2007-03-15 2009-06-10 Agco Gmbh Veränderungserkennungs- und Veränderungsschutzsystem und Veränderungserkennungs- und Veränderungsschutzverfahren von Steuerdaten einer gesteuerten Kraftfahrzeugeinrichtung
DE102008059684A1 (de) * 2008-11-29 2010-06-02 Deutz Ag Manipulationsschutz an einer Brennkraftmaschine

Also Published As

Publication number Publication date
DE10002203B4 (de) 2009-12-10
US7207066B2 (en) 2007-04-17
JP2001256118A (ja) 2001-09-21
ITMI20010019A1 (it) 2002-07-09
JP4833417B2 (ja) 2011-12-07
US20010025347A1 (en) 2001-09-27

Similar Documents

Publication Publication Date Title
DE10002203B4 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
DE19963208B4 (de) Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung eines digitalen Steuergeräts
EP1262856A2 (de) Programmgesteuerte Einheit
EP2326959B1 (de) Verfahren zum freischalten von funktionen eines tachographen
DE19911794B4 (de) Verfahren und Vorrichtung zur Absicherung bei Veränderung des Speicherinhalts von Steuergeräten
EP0813723A1 (de) Chipkarte mit geschütztem betriebssystem
DE10002204B4 (de) Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
WO2004114131A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
DE19623145B4 (de) Verfahren zum Betreiben eines Steuergerätes mit einer über eine Programmiervorrichtung programmierbaren Speichereinrichtung
DE19626339A1 (de) Sicheres Laden von Anwendungen und Daten auf Chipkarten
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP0834175B1 (de) Verfahren zum betreiben eines steuergerätes mit einer programmierbaren speichereinrichtung
EP1293858B1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE19709975C2 (de) Mikrocomputer
EP1529257B1 (de) Übernehmen eines datensatzes in eine recheneinheit
EP0694840B1 (de) Kraftfahrzeug-Steuergerät mit elektrisch lösch- und programmierbarem Speicher
DE19925195A1 (de) Verfahren für die sichere Verwaltung eines Speichers
EP4107592B1 (de) Verfahren zur herstellung eines softwarekopierschutzes für ein lenkungssteuergerät in einem fahrzeug, lenkungssteuergerät und computerprogrammprodukt
DE4340027A1 (de) Schreibschutz-Verfahren für einen nichtflüchtigen Schreib-/Lesespeicher in einem elektronischen Steuergerät
DE10215626B4 (de) Verfahren zur Änderung von Verschlüsselungsalgorithmen bei geschützter Software oder geschützten Daten
WO2002093329A2 (de) Verfahren zum betreiben eines steuergeräts
WO2017089101A1 (de) Verfahren zum betreiben eines mikrocontrollers
EP1274097A2 (de) Überprufung von in einer Speicheranordnung abgelegten Daten
EP1329903B1 (de) Speichereinrichtung, die durch eine einen oder mehrere Schreibzugriffe umfassende Kommandosequenz in eine Testbetriebsart versetzbar ist
DE60027248T2 (de) Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee