[go: up one dir, main page]

DE10131578A1 - Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten - Google Patents

Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten

Info

Publication number
DE10131578A1
DE10131578A1 DE10131578A DE10131578A DE10131578A1 DE 10131578 A1 DE10131578 A1 DE 10131578A1 DE 10131578 A DE10131578 A DE 10131578A DE 10131578 A DE10131578 A DE 10131578A DE 10131578 A1 DE10131578 A1 DE 10131578A1
Authority
DE
Germany
Prior art keywords
microcomputer system
memory arrangement
data
memory
stored
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.)
Withdrawn
Application number
DE10131578A
Other languages
English (en)
Inventor
Michael Beuten
Klaus Schneider
Bernd Illg
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 DE10131578A priority Critical patent/DE10131578A1/de
Priority to US10/187,815 priority patent/US7313703B2/en
Publication of DE10131578A1 publication Critical patent/DE10131578A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechner-Systems (30) gegen Manipulation von in einer Speicheranordnung (32) des Mikrorechner-Systems (30) abgelegten Daten (33), insbesondere eines dort abgelegten Steuerprogramms. Zu vorgebbaren Zeitpunkten werden Prüfmechanismen zum Überprüfen einer Manipulation der Daten (33) ausgeführt. Um beim Überprüfen von in einer Speicheranordnung (32) eines Mikrorechner-Systems (30) abgelegten Daten (33) eine möglichst lückenlose Testabdeckung innerhalb einer akzeptablen Zeit zu erzielen, wird vorgeschlagen, dass die Speicheranordnung (32) in mehrere logische Blöcke (1, 2, ..., 16) unterteilt wird, mindestens einer der Blöcke (1, 2, ..., 16) ausgewählt wird und die Prüfmechanismen lediglich für den oder jeden ausgewählten Block der Speicheranordnung (32) ausgeführt werden.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von Daten, die in einer Speicheranordnung des Mikrorechner-Systems abgelegt sind. Als Daten ist insbesondere ein Steuerprogramm dort abgelegt. Zu vorgebbaren Zeitpunkten werden Prüfmechanismen zum Überprüfen einer Manipulation der Daten ausgeführt.
  • Die Erfindung betrifft außerdem ein Mikrorechner-System mit einem Rechengerät, insbesondere einem Mikroprozessor, mit einer Speicheranordnung, in der Daten, insbesondere ein Steuerprogramm, ablegbar sind, und mit zu vorgebbaren Zeitpunkten ausführbaren Prüfmechanismen zum Überprüfen einer Manipulation der Daten.
  • Stand der Technik
  • Aus dem Stand der Technik sind Verfahren zum Schutz von in einer Speicheranordnung eines Mikrorechner-Systems abgelegten Daten, insbesondere zum Schutz eines dort abgelegten Steuerprogramms, vor einer Manipulation bekannt. Ein solches Verfahren ist z. B. aus der DE 197 23 332 A1 bekannt. Derartige Verfahren werden bspw. zur Verhinderung einer unbefugten Manipulation eines in einem Steuergerät eines Kraftfahrzeugs abgelegten Steuerprogramms oder von dort abgelegten Daten eingesetzt. Das Steuerprogramm steuert oder regelt bestimmte Funktionen in dem Kraftfahrzeug, bspw. eine Brennkraftmaschine, eine Fahrdynamikregelung, ein Antiblockiersystem (ABS) oder ein elektronisches Lenksystem (Steer-by-Wire). Aufgrund einer Manipulation des Steuerprogramms kann es zu einem Defekt der gesteuerten oder geregelten Einheit des Kraftfahrzeugs kommen. Deshalb sollte eine Manipulation des Steuerprogramms oder der Daten nach Möglichkeit verhindert werden, 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.
  • Trotz der Gefahr einer Manipulation des Steuerprogramms oder der Daten durch unbefugte Personen, ist es nicht sinnvoll, den Zugriff auf die Speicheranordnung des Steuergeräts völlig zu verbieten. Um bspw. eine Neuprogrammierung des Steuergeräts vornehmen zu können, muss es einem befugten Benutzerkreis möglich sein, auf die Speicheranordnung zuzugreifen. Es kann nämlich erforderlich sein, von Zeit zu Zeit eine neue Version eines Steuerprogramms oder neue Parameter oder Grenzwerte in dem Steuergerät abzulegen, um bspw. Fehler in der Software zu beseitigen oder neuen gesetzlichen Vorgaben Rechnung zu tragen.
  • Bei Kraftfahrzeugsteuergeräten wird zwischen Seriengeräten und Applikationsgeräten unterschieden. Üblicherweise werden Steuergeräte nach der Fertigung als Seriengeräte ausgeliefert. Bei Seriengeräten sind Prüfmechanismen zum Überprüfen einer Manipulation der in der Speicheranordnung des Steuergeräts abgelegten Daten aktiviert. Manipulierte Daten werden von diesen Mechanismen üblicherweise erkannt und die Daten können gesperrt werden. Die Mechanismen können ganz unterschiedlich ausgebildet sein. Aus dem Stand der Technik sind verschiedene Prüfmechanismen bekannt.
  • In bestimmten Situationen, insbesondere während der Entwicklungs- und Erprobungsphase der Steuergeräte, ist es erforderlich, die Prüfmechanismen zu deaktivieren, damit verschiedene Daten schnell und einfach in der Speicheranordnung abgelegt werden können. Ein Steuergerät mit deaktivierten Prüfmechanismen wird als ein Applikationsgerät bezeichnet.
  • Um eine lückenlose Testabdeckung der in der Speicheranordnung abgelegten Daten sicherstellen zu können, müssen im Serienfall und im Applikationsfall die gleichen Daten, insbesondere muss das gleiche Steuerprogramm, in der Speicheranordnung des Steuergeräts abgelegt sein. Deshalb muss es möglich sein, ein Steuergerät von einem Serienfall in einen Applikationsfall umschalten zu können, ohne andere Daten in die Speicheranordnung laden zu müssen. Ein Umschalten vom Applikationsfall zurück in den Serienfall ist nicht erwünscht und sollte nach Möglichkeit sogar unmöglich sein, um zu verhindern, dass Steuergeräte in Umlauf sind, deren Steuerprogramm von dem Hersteller der Steuergeräte nicht getestet und genehmigt wurde.
  • Nach dem Stand der Technik werden beim Hochfahren des Steuergeräts die Prüfmechanismen zum Überprüfen der Speicheranordnung aktiviert. Falls eine Manipulation der in der Speicheranordnung abgelegten Daten detektiert wird, werden die Daten gesperrt. Um eine möglichst lückenlose Testabdeckung der Daten zu erreichen, überprüfen die Prüfmechanismen den gesamten Speicherbereich der Speicheranordnung, was u. U. einige Zeit in Anspruch nehmen kann. Für das Hochfahren des Steuergeräts einschließlich der Überprüfung der Speicheranordnung steht jedoch nicht beliebig viel Zeit zur Verfügung. Schließlich soll nach dem Umdrehen eines Zündschlüssels oder dem Drücken eines Startknopfes (Beginn Hochfahren Steuergerät) der Motor des Kraftfahrzeugs möglichst bald starten (Ende Hochfahren Steuergerät). Das bedeutet also, dass mit zunehmender Größe der in Steuergeräten eingesetzten Speicheranordnungen eine Überprüfung des gesamten Speicherbereichs innerhalb eines akzeptablen Zeitraums zunehmend schwieriger, wenn nicht gar unmöglich wird.
  • Deshalb ist es eine Aufgabe der vorliegenden Erfindung, in einer Speicheranordnung eines Mikrorechner-Systems abgelegte Daten einerseits innerhalb einer möglichst kurzen Zeit zu überprüfen und andererseits eine möglichst lückenlose Testabdeckung zu erzielen.
  • Zur Lösung dieser Aufgabe schlägt die Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, dass die Speicheranordnung in mehrere logische Blöcke unterteilt wird, mindestens einer der Blöcke ausgewählt wird und die Prüfmechanismen lediglich für den oder jeden ausgewählten Block der Speicheranordnung ausgeführt werden.
  • Vorteile der Erfindung
  • Gemäß der vorliegenden Erfindung wird also ein Verfahren vorgeschlagen, das auch bei ungünstigen Performance- Verhältnissen zwischen der Rechenleistung eines Mikroprozessors des Mikrorechner-Systems und der Größe der Speicheranordnung eine Überprüfung des Speicherbereichs innerhalb einer akzeptablen Zeit ermöglicht. Das wird dadurch erzielt, dass beim Aktivieren der Prüfmechanismen nicht der gesamte Speicherbereich sondern nur ein Teil davon, nämlich mindestens ein ausgewählter Block, überprüft wird. Bei jedem Aktivieren der Prüfmechanismen bzw. bei jedem Hochfahren des Mikrorechner-Systems können verschiedene Blöcke der Speicheranordnung, d. h. verschiedene Teile der Daten überprüft werden, so dass sich nach mehrmaligem Ausführen der Prüfmechanismen eine zumindest nahezu lückenlose Testabdeckung ergibt.
  • Bei der vorliegenden Erfindung wird die Speicheranordnung in mehrere logische Blöcke segmentiert. Die Größe der Blöcke kann in Abhängigkeit von den Performance- Verhältnissen frei gewählt werden. Die Blöcke sollten höchstens so groß gewählt werden, dass sie von den Prüfmechanismen noch innerhalb einer akzeptablen Zeit überprüft werden können. Die Laufzeit zum Überprüfen der Speicheranordnung verringert sich entsprechend der gewählten Blockgröße drastisch. Damit ist es möglich, eine Überprüfung der Speicheranordnung bspw. beim Hochfahren des Mikrorechner-Systems auszuführen.
  • Die verschiedenen Blöcke der Speicheranordnung können bei jedem Ausführen der Prüfmechanismen nach einem feststehend Auswahlalgorithmus oder zufällig ausgewählt werden. Beim Einsatz eines Auswahlalgorithmus läßt genau vorhersagen, wann eine lückenlose Testabdeckung erreicht ist. Bei einer zufälligen Auswahl der Blöcke läßt sich die Testabdeckung mit Hilfe der Wahrscheinlichkeitsrechnung ermitteln. Die Prüfmechanismen können zu beliebigen Zeitpunkten aktiviert werden. Dies kann bspw. vor (beim Hochfahren des Steuergeräts), während oder nach dem Betrieb des Steuergeräts sein. Die Überprüfung der Speicheranordnung durch die Prüfmechanismen wird sinnvollerweise auf diejenigen Blöcke beschränkt, in denen bei der letzten Neu- oder Umprogrammierung tatsächlich Daten abgelegt worden sind.
  • Falls bei der Ausführung der Prüfmechanismen eine Manipulation der in der Speicheranordnung bzw. in dem überprüften Block abgelegten Daten erkannt wird, werden die in der Speicheranordnung abgelegten Daten zumindest teilweise gesperrt, so dass eine Nutzung der Daten bzw. eine Ausführung des Steuerprogramms nicht mehr möglich ist. Um ein geordnetes Herunterfahren des Mikrorechner-Sytems ohne Datenverlust zu ermöglichen, wäre es auch denkbar, nach der Detektion einer Manipulation einen entsprechenden Eintrag in einen geheimen oder nicht beschreibbaren Speicherbereich der Speicheranordnung zu hinterlegen und das Mikrorechner-System ansonsten normal weiter zu betreiben. U. U. kann einem Anwender, bspw. dem Fahrer eines Kraftfahrzeugs, in dem das Mikrorechner-System als ein Steuergerät implementiert ist, ein entsprechender Warnhinweis ausgegeben werden. Bei jedem nachfolgenden Versuch, das Mikrorechner-System hochzufahren wird der Eintrag überprüft und ein Hochfahren des Systems verhindert. Nach dem geordneten Herunterfahren des Mikrorechner-Systems ist dieses also bis auf weiteres blockiert.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass die Prüfmechanismen beim Hochfahren des Mikrorechner-Systems ausgeführt werden.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass der mindestens eine Block der Speicheranordnung, für den die Prüfmechanismen ausgeführt werden, zufällig ausgewählt wird. Dazu kann in dem Mikrorechner-System bspw. eine Zufallszahl generiert werden und in Abhängigkeit von der Zufallszahl mindestens ein Block der Speicheranordnung ausgewählt werden, für den die Prüfmechanismen ausgeführt werden sollen.
  • Da das Generieren einer Zufallszahl in manchen Mikrorechner-Systemen nicht trivial ist, werden gemäß einer anderen vorteilhaften Weiterbildung der vorliegenden Erfindung verschiedene Möglichkeiten zum Generieren einer Zufallszahl vorgeschlagen. Zum einen wird vorgeschlagen, dass ein Rauschsignal an einem Analog/Digital (A/D)-Eingang des Mikrorechner-Systems gelesen wird und eine Zufallszahl in Abhängigkeit von dem Rauschsignal erzeugt wird. Der A/D- Eingang liefert ein zufälliges Rauschsignal, wenn er unbeschaltet ist. Zum anderen wird vorgeschlagen, dass eine Summe über den Inhalt der Speicheranordnung gebildet wird und eine Zufallszahl in Abhängigkeit von der Summe erzeugt wird. Der Inhalt der Speicheranordnung ist vor dem Hochfahren des Mikrorechner-Sytems ungeordnet oder anders ausgedrückt zufällig geordnet. Des weiteren wird vorgeschlagen, dass ein rechnerinterner Zeitgeber (Timer) ausgelesen wird, der beim Hochfahren des Mikrorechner- Systems nicht zurückgesetzt wird, und eine Zufallszahl in Abhängigkeit von dem Stand des Zeitgebers erzeugt wird. Schließlich wird vorgeschlagen, dass eine von einem Fahrer eines Kraftfahrzeugs, in das das Mikrorechner-System integriert ist, beeinflussbare Größe herangezogen wird und eine Zufallszahl in Abhängigkeit von der Größe erzeugt wird. Als von dem Fahrer beeinflussbare Größe kann bspw. die Stellung eines Fahrpedals oder eine Größe eines adaptiven Fahrerkennfelds herangezogen werden.
  • Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass nach Ausführung der Prüfmechanismen ein Eintrag in einem Speicherbereich der Speicheranordnung schreibgeschützt und nicht auslesbar abgelegt wird, wobei der Speicherbereich bei einer Neu- oder Umprogrammierung der Speicheranordnung gelöscht wird, und beim Hochfahren des Mikrorechner-Systems der Eintrag überprüft wird. Falls bei der Ausführung der Prüfmechanismen eine Manipulation der in der Speicheranordnung abgelegten Daten detektiert wird, wird ein entsprechender Eintrag vorgesehen. Der Eintrag kann in einem geheimen Speicherbereich und/oder schreib- und lesegeschützt abgelegt sein, um eine Manipulation des Eintrags zu verhindern. Bei jedem Hochfahren des Mikrorechner-Systems werden manipulierte Daten durch einen entsprechenden Eintrag erkannt. Dann kann das Hochfahren des Rechner-Systems abgebrochen oder eine anschließende Ausführung oder Nutzung der Daten blockiert werden.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Mikrorechner-System der eingangs genannten Art vorgeschlagen, dass das Mikrorechner-System Mittel zum Unterteilen der Speicheranordnung in mehrere logische Blöcke, zur Auswahl mindestens eines der Blöcke und zur Ausführung der Prüfmechanismen lediglich für den oder jeden ausgewählten Block der Speicheranordnung aufweist.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass das Mikrorechner-System als ein Steuergerät für ein Kraftfahrzeug zur Steuerung und/oder Regelung von Kraftfahrzeugfunktionen ausgebildet ist.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass das Mikrorechner-System Mittel zur Ausführung des erfindungsgemäßen Verfahrens aufweist. Vorteilhafterweise ist in der Speicheranordnung ein Computerprogramm abgelegt, das auf dem Rechengerät ablauffähig und zur Ausführung des erfindungsgemäßen Verfahrens geeignet ist.
  • Vorzugsweise ist die Speicheranordnung auf dem gleichen Halbleiterbauelement ausgebildet wie das Rechengerät. Bei einem solchen sog. On-Chip-Speicher kann der Programmspeicher bzw. können die darauf abgelegten Daten nicht von außen manipuliert werden, wodurch das Mikrorechner-System zusätzlich gegen Manipulation der auf der Speicheranordnung abgelegten Daten geschützt ist.
  • Zeichnungen
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung. Es zeigen:
  • Fig. 1 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und
  • Fig. 2 ein erfindungsgemäßes Mikrorechner-System gemäß einer bevorzugten Ausführungsform.
  • Beschreibung der Ausführungsbeispiele
  • Ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens zum Schutz eines Mikrorechner-Systems 30 aus Fig. 2 gegen Manipulation von Daten 33, die in einer Speicheranordnung 32 des Mikrorechner-Systems 30 abgelegt sind, ist in Fig. 1 dargestellt. Das Mikrorechner-System 30 ist bspw. als ein Steuergerät eines Kraftfahrzeugs zur Steuerung und/oder Regelung bestimmter Kraftfahrzeugfunktionen ausgebildet. Die Daten 33 sind bspw. als ein Steuerprogramm, als Grenzwerte oder als Parameter ausgebildet.
  • Das Steuergerät 30 umfasst einen Mikroprozessor 31 zur Abarbeitung eines in der Speicheranordnung 32 abgelegten Steuerprogramms 33 und/oder zur Verarbeitung der dort abgelegten Daten 33. Um die Daten 33 von der Speicheranordnung 32 zu dem Mikroprozessor 31 zu übertragen, ist zwischen dem Prozessor und dem Speicher eine Datenübertragungsverbindung 34 vorgesehen. Die Daten 33 werden schrittweise oder als ganzes zur Verarbeitung an den Mikroprozessor 31 übertragen. Ergebnisse von Berechnungen o. ä. werden von dem Mikroprozessor 31 an die Speicheranordnung 32 übertragen. Die Speicheranordnung 32 ist auf dem gleichen Halbleiterbauelement ausgebildet wie der Mikroprozessor 31 (On-Chip-Speicher). Dem Steuergerät 30 werden Sensorsignale 35 von verschiedenen Sensoren zum Erfassen des Zustands des Kraftfahrzeugs zugeführt. Das Steuergerät 30 ermittelt aus den Sensorsignalen 35 und in Abhängigkeit von dem Steuerprogramm und den Daten 33 Ausgangssignale 36 für Aktoren zur Beeinflussung des Zustands des Kraftfahrzeugs.
  • Von Zeit zu Zeit kann es erforderlich sein, eine Neu- oder Umprogrammierung des Steuergeräts 30 bzw. der in der Speicheranordnung abgelegten Daten 33 vorzunehmen. Eine Neu- oder Umprogrammierung kann erforderlich sein, um eine neue Version eines Steuerprogramms oder neue Parameter oder Grenzwerte in dem Steuergerät 30 abzulegen, um bspw. Fehler in der Software zu beseitigen oder um neuen gesetzlichen Vorgaben Rechnung zu tragen. Zur Neu- bzw. Umprogrammierung wird die Speicheranordnung 32 zunächst gelöscht und dann mit neuen Daten 33 beschrieben.
  • Die neuen Daten 33 werden auf Manipulation überprüft. Dies geschieht bspw. mittels geeigneter Prüfmechanismen (z. B. Checksummenbildung), die zu vorgebbaren Zeitpunkten ausgeführt werden. Derartige Prüfmechanismen sind an sich aus dem Stand der Technik bekannt und sollen hier nicht im Detail beschrieben werden.
  • Das in Fig. 1 dargestellte erfindungsgemäße Verfahren beginnt in einem Funktionsblock 40. In einem Funktionsblock 41 wird mit dem Hochfahren des Mikrorechner-Systems 30, bspw. durch Drehen eines Zündschlüssels eines Kraftfahrzeugs, in dem das Mikrorechner-System 30 als Steuergerät angeordnet ist, oder durch Drücken eines Starterknopfes begonnen. In einem Abfrageblock 42 wird überprüft, ob neue Daten 33 zur Neu- oder Umprogrammierung der Speicheranordnung 32 anliegen. Falls nein, wird zu einem Funktionsblock 45 verzweigt.
  • Falls jedoch Daten 33 zur Neu- oder Umprogrammierung der Speicheranordnung 32 anliegen, werden die neuen Daten 33 in einem Funktionsblock 43 an das Steuergerät 30 übertragen und dort in der Speicheranordnung 32 abgelegt. In einem Funktionsblock 44 wird die Speicheranordnung 32 in 16 logische Blöcke 1 bis 16 segmentiert. Es versteht sich, dass die Speicheranordnung auch in mehr oder weniger als 16 Blöcke unterteilt werden kann. Die Anzahl und Größe der Blöcke 1 bis 16 kann in Abhängigkeit von der Rechenleistung des Mikroprozessors 31 des Mikrorechner-Systems 30 und der Größe der Speicheranordnung 32 so gewählt werden, dass eine Überprüfung der in einem Block abgelegten Daten 33 auf Manipulation (Funktionsblock 96) innerhalb einer akzeptablen Zeit ohne eine unzumutbare Verzögerung des Hochfahrvorgangs möglich ist.
  • In einem Funktionsblock 45 wird mindestens einer der Blöcke 1 bis 16 ausgewählt. Die Auswahl eines Blocks kann auf diejenigen Blöcke 1 bis 11 beschränkt werden, in denen tatsächlich neue Daten 33 abgelegt sind. Die Auswahl eines Blocks kann zufällig oder nach einem festgelegten Algorithmus erfolgen. Anschließend werden in einem Funktionsblock 46 die in dem mindestens einen ausgewählten Block abgelegten Daten 33 auf Manipulation überprüft. Dazu werden an sich aus dem Stand der Technik bekannte Algorithmen eingesetzt, wie bspw. Checksummenbildung, die hier jedoch nicht näher erläutert werden.
  • Ein wesentlicher Vorteil der vorliegenden Erfindung ist darin zu sehen, dass beim Hochfahren des Mikrorechner- Systems 30 nicht die gesamten in der Speicheranordnung 32 abgelegten Daten 33 auf Manipulation überprüft werden, sondern lediglich der Teil der Daten 33. Welcher Teil genau überprüft wird und wie groß der zu prüfende Teil ist, kann beliebig festgelegt werden. Wichtig ist, dass bei aufeinanderfolgendem Hochfahren des Mikrorechner-Systems 33 nach Möglichkeit unterschiedliche Teile der Daten 33 überprüft werden, so dass sich stochastisch gesehen mit der Zeit eine nahezu lückenlose Testabdeckung ergibt.
  • In einem Abfrageblock 47 wird überprüft, ob eine Manipulation der überprüften Daten 33 vorliegt. Falls ja, wird zu einem Funktionsblock 48 verzweigt, wo die in der Speicheranordnung 32 abgelegten neuen Daten 33 blockiert werden. Das Blockieren der Daten 33 kann auf unterschiedliche Weise erfolgen. Aus dem Stand der Technik sind dazu verschiedene Verfahren bekannt, die hier nicht im Detail erläutert werden. Eine bevorzugte Möglichkeit stellt ein Verfahren dar, bei dem zu Beginn des Hochfahrens des Mikrorechner-Systems 30 (Funktionsblock 41) ein Teil der Daten 33 aus der Speicheranordnung 32 in einen flüchtigen Speicher (z. B. Random-Access-Memory, RAM) kopiert werden. Die kopierten Daten 33 werden in der Speicheranordnung 32 gelöscht und nur dann aus dem flüchtigen Speicher 37 wieder zurück in den vorgesehenen Speicherbereich der Speicheranordnung 32 kopiert, falls eine Überprüfung der Daten 33 ergeben hat, dass die Daten 33 nicht manipuliert sind. Falls die Daten 33 jedoch manipuliert wurden, verbleiben sie in dem flüchtigen Speicher und gehen verloren, sobald die Versorgungsspannung unterbrochen wird. Dadurch kann ein wirksames und kaum umgehbares Blockieren der Daten 33 erreicht werden.
  • Falls keine Manipulation der Daten 33 vorliegt, wird zu einem Funktionsblock 49 verzweigt und das erfindungsgemäße Verfahren beendet. Das Mikrorechner-System 30 wird weiter ganz normal hochgefahren und anschließend ganz normal bspw. zur Steuerung oder Regelung von Kraftfahrzeugfunktionen betrieben.

Claims (10)

1. Verfahren zum Schutz eines Mikrorechner-Systems (30) gegen Manipulation von in einer Speicheranordnung (32) des Mikrorechner-Systems (30) abgelegten Daten (33), insbesondere eines dort abgelegten Steuerprogramms, wobei zu vorgebbaren Zeitpunkten Prüfmechanismen zum Überprüfen einer Manipulation der Daten (33) ausgeführt werden, dadurch gekennzeichnet, dass die Speicheranordnung (32) in mehrere logische Blöcke (1, 2, . . ., 16) unterteilt wird, mindestens einer der Blöcke (1, 2, . . ., 16) ausgewählt wird und die Prüfmechanismen lediglich für den oder jeden ausgewählten Block der Speicheranordnung (32) ausgeführt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Prüfmechanismen beim Hochfahren des Mikrorechner- Systems (30) ausgeführt werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der mindestens eine Block der Speicheranordnung (32), für den die Prüfmechanismen ausgeführt werden, zufällig ausgewählt wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass ein Rauschsignal an einem Analog/Digital (A/D)-Eingang des Mikrorechner-Systems (30) gelesen wird und eine Zufallszahl in Abhängigkeit von dem Rauschsignal erzeugt wird, eine Summe über den Inhalt der Speicheranordnung (32) gebildet wird, der vor dem Hochfahren ungeordnet ist, und eine Zufallszahl in Abhängigkeit von der Summe erzeugt wird, ein rechnerinterner Zeitgeber ausgelesen wird, der beim Hochfahren nicht zurückgesetzt wird, und eine Zufallszahl in Abhängigkeit von dem Stand des Zeitgebers erzeugt wird, oder eine von einem Fahrer eines Kraftfahrzeugs, in das das Mikrorechner-System (30) integriert ist, beeinflussbare Größe herangezogen wird und eine Zufallszahl in Abhängigkeit von der Größe erzeugt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass nach Ausführung der Prüfmechanismen ein Eintrag in einem Speicherbereich der Speicheranordnung (32) schreibgeschützt und nicht auslesbar abgelegt wird, wobei der Speicherbereich bei einer Neu- oder Umprogrammierung der Speicheranordnung (32) gelöscht wird, und beim Hochfahren des Mikrorechner-Systems (30) der Eintrag überprüft wird.
6. Mikrorechner-System (30) mit einem Rechengerät (31), insbesondere einem Mikroprozessor, mit einer Speicheranordnung (32), in der Daten (33), insbesondere ein Steuerprogramm, ablegbar sind, und mit zu vorgebbaren Zeitpunkten ausführbaren Prüfmechanismen zum Überprüfen einer Manipulation der Daten (33), dadurch gekennzeichnet, dass das Mikrorechner-System (30) Mittel zum Unterteilen der Speicheranordnung (32) in mehrere logische Blöcke (1, 2, . . ., 16), zur Auswahl mindestens eines der Blöcke und zur Ausführung der Prüfmechanismen lediglich für den oder jeden ausgewählten Block der Speicheranordnung (32) aufweist.
7. Mikrorechner-System (30) nach Anspruch 6 dadurch gekennzeichnet, dass das Mikrorechner-System (30) als ein Steuergerät für ein Kraftfahrzeug zur Steuerung und/oder Regelung von Kraftfahrzeugfunktionen ausgebildet ist.
8. Mikrorechner-System (30) nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass das Mikrorechner-System (30) Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 2 bis 5 aufweist.
9. Mikrorechner-System (30) nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass in der Speicheranordnung (32) ein Computerprogramm abgelegt ist, das auf dem Rechengerät (31) ablauffähig und zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 5 geeignet ist.
10. Mikrorechner-System (30) nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, dass die Speicheranordnung (32) auf dem gleichen Halbleiterbauelement wie das Rechengerät (31) ausgebildet ist.
DE10131578A 2001-07-02 2001-07-02 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten Withdrawn DE10131578A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10131578A DE10131578A1 (de) 2001-07-02 2001-07-02 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten
US10/187,815 US7313703B2 (en) 2001-07-02 2002-07-01 Method for protecting a microcomputer system against manipulation of data stored in a storage assembly

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10131578A DE10131578A1 (de) 2001-07-02 2001-07-02 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten

Publications (1)

Publication Number Publication Date
DE10131578A1 true DE10131578A1 (de) 2003-01-16

Family

ID=7690035

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10131578A Withdrawn DE10131578A1 (de) 2001-07-02 2001-07-02 Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten

Country Status (2)

Country Link
US (1) US7313703B2 (de)
DE (1) DE10131578A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10238094B4 (de) * 2002-08-21 2007-07-19 Audi Ag Verfahren zum Schutz gegen Manipulationen in einem Steuergerät für mindestens eine Kfz-Komponente und Steuergerät
JP2006513481A (ja) * 2003-01-10 2006-04-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 不正操作から電子構成部品を保護する回路構成および方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4726024A (en) * 1986-03-31 1988-02-16 Mieczyslaw Mirowski Fail safe architecture for a computer system
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
DE4010305A1 (de) * 1990-03-30 1991-10-02 Gao Ges Automation Org Zufallszahlengenerator
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
DE19723332A1 (de) 1997-06-04 1998-09-03 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechners und geschützter Mikrorechner
US6421790B1 (en) * 1999-05-10 2002-07-16 Delphi Technologies, Inc. Method and circuit for analysis of the operation of a microcontroller using signature analysis of data and instructions
DE10008973B4 (de) * 2000-02-25 2004-10-07 Bayerische Motoren Werke Ag Autorisierungsverfahren mit Zertifikat
US6421780B2 (en) * 2000-08-14 2002-07-16 Clyde L. Tichenor System for creating high and low speed non-algorithmic random numbers for encryption/decryption

Also Published As

Publication number Publication date
US7313703B2 (en) 2007-12-25
US20030018902A1 (en) 2003-01-23

Similar Documents

Publication Publication Date Title
DE69203233T2 (de) Verriegelungsverfahren fuer eine speicherkarte.
DE10126451A1 (de) Verfahren zum Aktivieren oder Deaktivieren von in einer Speicheranordnung eines Mikrorechner-Systems abgelegten Daten
DE112016002785T5 (de) Elektronische Steuereinheiten für Fahrzeuge
EP1262856B1 (de) Programmgesteuerte Einheit
DE10131575A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
WO2014056794A1 (de) Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät
EP1804144A1 (de) Überprüfung des Steuerprogramms eines Steuergerätes für eine Maschine
DE10002204B4 (de) Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
DE10131578A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten
DE10131300B4 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten und Mikrorechner-System
EP1563358B1 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP1274097B1 (de) Überprüfung von in einer Speicheranordnung abgelegten Daten
EP1293858B1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE69916682T2 (de) Verfahren zum Entriegeln des Zugriffs auf einen Rechner von einem Fernladungssystem einer Datei
DE102006045153A1 (de) System und Verfahren zum Verteilen und Ausführen von Programmcode in einem Steuergerätenetzwerk
EP4078314A1 (de) Vorrichtung mit einer schnittstelle und verfahren zum betreiben einer vorrichtung mit einer schnittstelle
DE10200242A1 (de) Verfahren zur Funktionsüberwachung eines Steuergeräts
DE102008039121A1 (de) Verfahren zur Codierung einer Zeichenkette für ein Fahrzeug sowie entsprechend ausgestaltetes Steuergerät und Fahrzeug
EP1248965B1 (de) Verfahren zur verhinderung von fehlfunktionen in einem signalverarbeitenden system und prozessorsystem
DE10131579A1 (de) Verfahren zum Programmieren einer Speicheranordnung eines Mikrorechner-Systems mit Daten
DE102018219700B4 (de) Steuervorrichtung
DE102022128183B3 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug
DE102022125619A1 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug
DE102023115928A1 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee