-
Stand der Technik
-
Die vorliegende Erfindung betrifft ein Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung eines digitalen Steuergeräts für ein Kraftfahrzeug, wobei in der Speichereinrichtung Daten und Steuerprogramme zum Betrieb des Steuergeräts und zur Steuerung/ Regelung von bestimmten Funktion des Kraftfahrzeugs ablegbar sind. Die Erfindung betrifft schließlich ein digitales Steuergerät für ein Kraftfahrzeug, mit einer programmierbaren Speichereinrichtung zum Speichern von Daten und Steuerprogrammen zum Betrieb des Steuergeräts und zur Steuerung/ Regelung von bestimmten Funktionen des Kraftfahrzeugs.
-
Die
US 5 991 673 A offenbart ein Fahrzeugdiebstahlschutzsystem umfassend das Programmieren von Fahrzeugidentifikationsnummern in einem Nur-Lese-Speicherabschnitt eines jeden Computers an Bord des Fahrzeugs. Eine externe Überwachungsvorrichtung wird verwendet, um den Inhalt des Nur-Lese-Speicherabschnitts an jeder Komponente zu bestimmen, ob irgendeine der Komponenten aus einem anderen Fahrzeug gestohlen wurde.
-
Ein Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung der eingangs genannten Art ist bspw. aus der
DE 196 15 105 A1 bekannt. Ein dort offenbartes Steuergerät enthält einen Mikrocomputer, eine erste programmierbare Speichereinrichtung und eine zweite programmierbare Speichereinrichtung. Die erste Speichereinrichtung ist als ein löschbarer, nicht flüchtiger Flash-EPROM ausgebildet. Die zweite Speichereinrichtung ist als ein EEPROM ausgebildet. In der ersten programmierbaren Speichereinrichtung werden Daten und Steuerprogramme zum Betrieb des Steuergeräts und zur Steuerung/ Regelung von bestimmten Funktionen des Kraftfahrzeugs abgelegt. Der Mikrocomputer arbeitet zur Ausübung der ihm zugeteilten Steuerungs-/ Regelungsfunktion und zur Selbststeuerung die Steuerprogramme ab, die zusammen mit ggf. zu deren Ausführung benötigten Daten in der ersten Speichereinrichtung abgelegt sind.
-
Zum Programmieren/ Umprogrammieren des Steuergeräts ist ein externes Programmiergerät vorgesehen, das über eine serielle Schnittstelle mit dem Steuergerät verbunden ist. Das Programmiergerät veranlasst das Steuergerät die in der ersten Speichereinrichtung gespeicherten Daten und/ oder Steuerprogramme zu löschen und dann ein neues Steuerprogramm und/ oder neue Daten in der ersten programmierbaren Speichereinrichtung abzuspeichern.
-
Einhergehend mit der Programmierung/ Umprogrammierung der ersten Speichereinrichtung, d.h. vor, während und/ oder nach dem Löschen und/ oder Überschreiben der ersten Speichereinrichtung, wird der Programmierungs-/ Umprogrammierungsvorgang durch Abspeichern entsprechender Informationen in der zweiten programmierbaren Speichereinrichtung dokumentiert. Dabei ist dem Abspeichern der Informationen während des Programmier-/ Umprogrammiervorgangs der Vorzug gegeben, weil durch eine zeitliche Verschachtelung der Programmierung/ Umprogrammierung der ersten Speichereinrichtung und dem Abspeichern der Informationen in der zweiten Speichereinrichtung die Möglichkeiten einer Umprogrammierung der ersten Speichereinrichtung ohne Informationen über den Programmierungs-/ Umprogrammierungsvorgang in dem zweiten Speicherbereich abzuspeichern am geringsten sind.
-
Auf Grund der in der zweiten Speichereinrichtung abgespeicherten Informationen lassen sich verschiedene Aussagen treffen. Einerseits können Störungen bei der Programmierung/ Umprogrammierung des Steuergeräts auf Grund eines fehlerhaften externen Programmiergeräts schnell und fehlerfrei detektiert werden. Andererseits kann eine unbefugte Manipulation des Steuerprogramms in der ersten Speichereinrichtung erkannt und anhand der abgespeicherten Informationen u. U. sogar auf den unbefugten Manipulator zurückgeführt werden. Das Erkennen einer unbefugten Manipulation des Steuergeräts ist von Bedeutung, da durch ein fehlerhaftes bzw. ein nicht auf einen fehlerfreien Betrieb der Brennkraftmaschine des Kraftfahrzeugs ausgerichtetes Steuerprogramm Defekte an dem Steuergerät oder an den von dem Steuergerät gesteuerten bzw. geregelten Aggregaten des Kraftfahrzeugs auftreten können. Eine unbefugte Manipulation des Steuerprogramms führt in der Regel zu einem Ausschluss von Garantie- und Haftungsansprüchen.
-
Bei dem aus dem Stand der Technik bekannten Verfahren ist es nachteilig, dass es bei einem herkömmlichen Steuergerät, das nur die erste programmierbare Speichereinrichtung aufweist, nicht ohne weiteres einsetzbar ist. Das Steuergerät muss zunächst um die zweite programmierbare Speichereinrichtung erweitert werden. Zusätzlich muss der Mikrocomputer des Steuergeräts nicht nur Zugriff auf die erste Speichereinrichtung, sondern auch auf die zweite programmierbare Speichereinrichtung haben. Die in der zweiten Speichereinrichtung abzuspeichernden Informationen über den Programmierungs-/ Umprogrammierungsvorgang sind zudem sehr komplex, wodurch sich die Dauer zum Programmieren/ Umprogrammieren der Speichereinrichtung des Steuergeräts erheblich verlängert.
-
Weiterhin kommt hinzu, dass die zweite Speichereinrichtung vor dem Abspeichern der Informationen gelöscht werden muss. Das bedeutet, dass die zweite Speichereinrichtung von beliebigen Personen, die über entsprechende Kenntnisse und Hardware verfügen, auch unbefugterweise gelöscht und mit neuen Informationen überschrieben werden kann. Mit dem aus dem Stand der Technik bekannten Verfahren kann eine unbefugte Manipulation des Steuerprogramms des Steuergeräts somit nicht zuverlässig nachgewiesen werden.
-
Es ist somit die Aufgabe der vorliegenden Erfindung, ein Verfahren der eingangs genannten Art dahingehend auszugestalten und weiterzubilden, dass auf einfache Weise eine unbefugte Manipulation des Steuerprogramms in dem Steuergerät zuverlässig nachgewiesen werden kann.
-
Deshalb schlägt die Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, ein Verfahren gemäß Anspruch 1 auszuführen.
-
Vorteile der Erfindung
-
Das Verfahren hat den Vorteil, dass die Informationen über den Programmierungs-/ Umprogrammierungsvorgang nicht wie beim Stand der Technik in einer zweiten programmierbaren Speichereinrichtung, sondern innerhalb der programmierbaren Speichereinrichtung, in der auch das Steuerprogramm abgespeichert wird, abgespeichert werden. Die Informationen werden innerhalb der Speichereinrichtung in einem Speicherbereich abgespeichert, in dem nur gelesen und programmiert werden kann, der also nicht gelöscht werden kann. Dem Speicherbereich fehlen die hardwaremäßigen Voraussetzungen (z. B. eine Leitung zum Löschen), um ihn zu löschen. Deshalb ist es auch unter keinen Umständen möglich, diesen Speicherbereich der programmierbaren Speichereinrichtung zu löschen.
-
Die in dem Speicherbereich abgespeicherten Informationen über den Programmierungs-/ Umprogrammierungsvorgang können dokumentiert werden. Wenn das Kraftfahrzeug dann in eine Werkstatt kommt und Garantieansprüche geltend gemacht werden oder die Speichereinrichtung des Steuergeräts umprogrammiert werden soll, kann der Inhalt des separaten Speicherbereichs ausgelesen und mit dem dokumentierten Inhalt des Speicherbereichs verglichen werden. Falls die in dem separaten Speicherbereich gespeicherten Informationen mit den dokumentierten Informationen übereinstimmen, hat keine unbefugte Manipulation des Steuergeräts stattgefunden. Falls die aus dem Speicherbereich ausgelesenen Information nicht mit den dokumentierten Informationen übereinstimmen, hat eine unbefugte Manipulation des Steuergeräts stattgefunden. In einem solchen Fall können bspw. Gewährleistungs- oder Haftungsansprüche verweigert werden.
-
Weiterhin wird vorgeschlagen, dass in dem Speicherbereich der programmierbaren Speichereinrichtung Informationen über die kummulierte Anzahl der Programmierungs-/Umprogrammierungsvorgänge abgespeichert werden. Bei jedem Programmierungs-/ Umprogrammierungsvorgang wird also die in dem separaten Speicherbereich abgespeicherte Anzahl inkrementiert. Die Anzahl der Programmierungs-/ Umprogrammierungsvorgänge wird dokumentiert. Die in dem separaten Speicherbereich abgespeicherte Anzahl kann bei Bedarf ausgelesen und mit der dokumentierten Anzahl verglichen werden. Falls die beiden Zahlen nicht übereinstimmen, hat ein nicht dokumentierter und deshalb als unbefugt eingestufter Programmierungs-/Umprogrammierungsvorgang stattgefunden. Gemäß dieser Weiterbildung sind die in dem separaten Speicherbereich abgespeicherten Informationen auf die minimale Datenmenge reduziert, die zur Erkennung einer unbefugten Manipulation des Steuergeräts notwendig ist.
-
Weiterhin wird vorgeschlagen, dass die Informationen über den Programmierungs-/ Umprogrammierungsvorgang bei jedem Löschvorgang der programmierbaren Speichereinrichtung in dem separaten Speicherbereich abgespeichert werden. Gemäß dieser Ausführungsform wird von der Annahme ausgegangen, dass die programmierbare Speichereinrichtung vor dem Programmieren/ Umprogrammieren des Steuerprogramms gelöscht werden muss. Das Löschen der programmierbaren Speichereinrichtung vor dem Programmieren/ Umprogrammieren des Steuerprogramms ist auch dann notwendig, wenn das Steuerprogramm zusätzlich zu dem Verfahren noch mit einem aus dem Stand der Technik bekannten sog. Seed-and-Key-Verfahren gegen unbefugte Manipulation gesichert ist. Das Seed-and-Key-Verfahren ist ausführlich in der
DE 197 23 332 A1 beschrieben, auf die an dieser Stelle ausdrücklich Bezug genommen wird.
-
Bei dem Seed-and-Key-Verfahren wird von einem Programmierer einhergehend mit einer Programmierung/ Umprogrammierung des Steuergeräts in Abhängigkeit von dem Inhalt des programmierbaren Speicherbereichs und einem Schlüssel ein Vergleichswort gebildet und abgespeichert. Vor der Ausführung des Steuerprogramms wird steuergeräteintern aus dem Inhalt des programmierbaren Speicherbereichs und dem Schlüssel ein Codewort gebildet und mit dem Vergleichswort verglichen. Bei einer Übereinstimmung von Vergleichswort und Codewort wird das Steuerprogramm ausgeführt, anderenfalls wird es gesperrt, da davon ausgegangen wird, dass das Vergleichswort falsch ist, da der Programmierer den Schlüssel nicht kannte, und eine unbefugte Programmierung/ Umprogrammierung vorliegt. Falls der Inhalt der programmierbaren Speichereinrichtung nicht vor jedem Programmieren/ Umprogrammieren gelöscht wird, kann es bei der Bildung des Vergleichsworts oder des Codeworts zu Checksummenfehlern kommen.
-
Weiterhin wird vorgeschlagen, dass die Informationen durch Setzen von Bits in dem separaten Speicherbereich abgespeichert werden. So ist es bspw. denkbar, dass einhergehend mit jedem Programmierungs-/ Umprogrammierungsvorgang ein zusätzliches Bit in dem Speicherbereich gesetzt wird, um auf diese Weise die kummulierte Anzahl der Programmierungs-/ Umprogrammierungsvorgänge abzuspeichern. Diese Ausführungsform stellt eine besonders speicherplatzsparende und speicherzeitreduzierende Art dar, Informationen über den Programmierungs-/ Umprogrammierungsvorgang in dem separaten Speicherbereich abzuspeichern.
-
Weiterhin wird vorgeschlagen, dass die Informationen in einer One-Time-Programmable (OTP)-Region einer als Flash-Speicher ausgebildeten programmierbaren Speichereinrichtung abgespeichert werden. Bei der OTP-Region handelt es sich um eine oder mehrere Zellen des Flash-Speichers, die keine Leitung zum Löschen des Inhalts der Flash-Zellen aufweisen. Die Flash-Zellen der OTP-Region verfügen lediglich über Leitungen zum Programmieren bzw. zum Lesen des Inhalts der Flash-Zellen. Der Flash-Speicher ist bspw. als ein Flash-EPROM ausgebildet.
-
Ein Flash-Speicher wird vorzugsweise mit Hilfe eines externen Programmiergeräts, insbesondere mit Hilfe einer sog. State-Machine, programmiert bzw. umprogrammiert. In einer State-Machine sind die Verfahrensabläufe zum Programmieren/ Umprogrammieren der programmierbaren Speichereinrichtung eines Steuergeräts hardwaremäßig codiert. Auch die Verfahrensabläufe zum Abspeichern der Informationen in dem Speicherbereich sind hardwaremäßig in der State-Machine codiert. Auf diese Weise kann eine Manipulation des Abspeichervorgangs der Informationen in dem separaten Speicherbereich wirksam verhindert und eine Manipulation der Speichereinrichtung zuverlässig nachgewiesen werden.
-
Es wird vorgeschlagen, dass die Informationen von Mitteln des Steuergeräts zum Abspeichern von Informationen über den Programmierungs-/ Umprogrammierungsvorgang in dem separaten Speicherbereich abgespeichert werden. Gemäß dieser alternativen Ausführungsform werden die Informationen also einhergehend mit dem Programmierungs-/ Umprogrammierungsvorgang durch geeignete Mittel des Steuergeräts in dem Speicherbereich abgespeichert. Das Programmieren/ Umprogrammieren des Speicherbereichs kann bspw. nach wie vor durch ein externes Programmiergerät erfolgen. Die Mittel des Steuergeräts weisen bspw. einen in dem Steuergerät hardwaremäßig codierten Verfahrensablauf auf, der bei jedem Programmierungs-/ Umprogrammierungsvorgang der Speichereinrichtung zwangsläufig ein Abspeichern der Informationen in dem separaten Speicherbereich bewirkt.
-
Zur Durchführung des Verfahrens schlägt die Erfindung außerdem ausgehend von dem externen Programmiergerät der eingangs genannten Art vor, dass das Programmiergerät Mittel zur Durchführung des Verfahrens aufweist. Ein solches externes Programmiergerät wird auch als State-Machine bezeichnet. Eine State-Machine zeichnet sich dadurch aus, dass die Verfahrensabläufe zum Programmieren/ Umprogrammieren des Steuerprogramms in der Speichereinrichtung und zum Abspeichern der Informationen in dem separaten Speicherbereich hardwaremäßig codiert bzw. die Funktionalität in Very-High-Description-Language (VHDL) beschrieben ist. VHDL ist eine Hardware-Beschreibungssprache, die auf verschiedenen Ebenen, sog. levels (behaviour, Register Transfer Logic (RTL)), digitale Schaltungen beschreibt. Das externe Programmiergerät kann bspw. über eine serielle Schnittstelle oder über eine K-Leitung und einen Diagnosestecker mit dem Steuergerät verbunden werden.
-
Schließlich schlägt die Erfindung zur Durchführung des Verfahrens ausgehend von dem digitalen Steuergerät der eingangs genannten Art vor, dass das Steuergerät Mittel zur Durchführung des Verfahrens aufweist. Die Informationen über den Programmierungs-/ Umprogrammierungsvorgang werden also nicht durch externe Geräte, sondern durch interne Mittel, die Teil des Steuergeräts sind, in dem separaten Speicherbereich abgespeichert.
-
Figurenliste
-
Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung wird im Folgenden an Hand der Zeichnungen näher erläutert. Es zeigen:
- 1 ein digitales Steuergerät für ein Kraftfahrzeug zur Durchführung des Verfahrens gemäß einer bevorzugten Ausführungsform; und
- 2 ein digitales Steuergerät für ein Kraftfahrzeug mit einem externen Programmiergerät zur Durchführung des Verfahrens gemäß einer zweiten bevorzugten Ausführungsform.
-
Ausführungsbeispiele
-
Die nachstehenden Erläuterungen betreffen ein Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung eines digitalen Steuergeräts für ein Kraftfahrzeug, insbesondere zur Steuerung der Brennkraftmaschine, des Getriebes oder der Bremsen des Kraftfahrzeugs. In den 1 und 2 ist ein digitales Steuergerät in seiner Gesamtheit mit dem Bezugszeichen 1 bezeichnet. Es weist eine programmierbare Speichereinrichtung 2 auf, in der Daten und Steuerprogramme zum Betrieb des Steuergeräts 1 und zur Steuerung/ Regelung von bestimmten Funktionen des Kraftfahrzeugs abgelegt werden können. Das Steuergerät 1 weist außerdem einen Mikrocomputer 3 auf, der zur Ausübung der ihm zugeteilten Steuerungs-/ Regelungsfunktion und zur Selbststeuerung die Steuerprogramme abarbeitet, die in der Speichereinrichtung 2 abgelegt sind. Das Steuerprogramm und die für die Ausführung des Steuerprogramms benötigten Daten werden über eine Datenleitung 4 von der Speichereinrichtung 2 in den Mikrocomputer 3 übertragen.
-
Die Programmierung/ Umprogrammierung der Speichereinrichtung 2 des Steuergeräts 1 erfolgt über ein externes Programmiergerät 5, das bspw. über eine serielle Schnittstelle mit dem Steuergerät 1 verbunden ist. Das externe Programmiergerät 5 ist als eine sog. State-Machine ausgebildet, die sich dadurch auszeichnet, dass die Verfahrensabläufe zum Programmieren/ Umprogrammieren des Steuergeräts 1 hardwaremäßig codiert sind. In dem Ausführungsbeispiel aus 1 ist das externe Programmiergerät 5 über eine K-Leitung 6 und einen Diagnosestecker 7 an das Steuergerät 1 angeschlossen. Zum Programmieren/ Umprogrammieren des Steuergeräts 1 werden die neuen Daten und/ oder das neue Steuerprogramm über die K-Leitung 6, den Mikrocomputer 3 und die Datenleitung 4 in die programmierbare Speichereinrichtung 2 übertragen.
-
Die programmierbare Speichereinrichtung 2 ist als ein Flash-EPROM ausgebildet. Ein Flash-EPROM weist einen separaten Speicherbereich 8, die sog. One-Time-Programmable (OTP)-Region, auf. Dieser separate Speicherbereich 8 der programmierbaren Speichereinrichtung 2 weist mehrere Flash-Zellen auf, die keine Leitung zum Löschen des Speicherinhalts der Flash-Zellen aufweisen. Die Flash-Zellen des separaten Speicherbereichs 8 verfügen lediglich über Leitungen zum Programmieren und zum Lesen des Inhalts der Flash-Zellen.
-
Gemäß der vorliegenden Erfindung werden einhergehend mit jedem Programmierungs-/ Umprogrammierungsvorgang der programmierbaren Speichereinrichtung 2 Informationen über den Programmierungs-/ Umprogrammierungsvorgang in dem separaten Speicherbereich 8 der Speichereinrichtung 2 abgespeichert. Dazu weist das Steuergerät 1 Mittel 9 auf, die über eine Leitung 10 von dem Mikrocomputer 3 Informationen erhalten, wann die Speichereinrichtung 2 gelöscht bzw. programmiert wird. Die Mittel 9 speichern dann im Anschluss an jeden Löschvorgang bzw. Programmiervorgang der programmierbaren Speichereinrichtung 2 über eine Leitung 11 Informationen über den Programmierungs-/ Umprogrammierungsvorgang in dem separaten Speicherbereich 8 ab.
-
Die in dem Speicherbereich 8 abgespeicherten Informationen umfassen vorzugsweise die kumulierte Anzahl der Programmierungs-/ Umprogrammierungsvorgänge der Speichereinrichtung 2. Zum Abspeichern der kumulierten Anzahl der Programmierungs-/ Umprogrammierungsvorgänge wird für jeden durchgeführten Programmierungs-/ Umprogrammierungsvorgang ein Bit in dem separaten Speicherbereich 8 gesetzt.
-
Die in dem Speicherbereich 8 abgespeicherten Informationen über den Programmierungs-/ Umprogrammierungsvorgang werden dokumentiert. Wenn das Kraftfahrzeug in eine Werkstatt kommt und Garantieansprüche geltend gemacht werden oder die Speichereinrichtung 2 des Steuergeräts 1 umprogrammiert werden soll, kann der Inhalt des separaten Speicherbereichs 8 ausgelesen und mit den dokumentierten Informationen des Speicherbereichs 8 verglichen werden. Falls die in dem separaten Speicherbereich 8 gespeicherten Informationen mit den dokumentierten Informationen übereinstimmen, hat keine unbefugte Manipulation des Steuergeräts 1 stattgefunden. Falls die aus dem Speicherbereich 2 ausgelesenen Information nicht mit den dokumentierten Informationen übereinstimmen, hat eine unbefugte Manipulation des Steuergeräts 1 stattgefunden. In einem solchen Fall können bspw. Gewährleistungs- oder Haftungsansprüche verweigert werden.
-
Die in der Speichereinrichtung
2 gespeicherten Daten sind durch ein sog. Seed-and-Key-Verfahren gegen eine unbefugte Manipulation des Steuerprogramms geschützt, das in der
DE 197 23 332 A1 ausführlich beschrieben ist.
-
In 2 ist eine alternative Ausführungsform zur Realisierung des Verfahrens dargestellt. Im Unterschied zu der Ausführungsform gemäß 1 ist das externe Programmiergerät 5 bei dieser Ausführungsform über eine serielle Schnittstelle 12 und eine Datenleitung 13 mit dem Steuergerät 1 verbunden. Das Programmiergerät 5 weist Mittel 14 auf, durch die einhergehend mit jedem Programmierungs-/ Umprogrammierungsvorgang der programmierbaren Speichereinrichtung 2 Informationen über den Programmierungs-/ Umprogrammierungsvorgang in den separaten Speicherbereich 8 abgespeichert werden. Die Mittel 14 sind bspw. als eine elektrische Schaltung ausgebildet, die den Mikrocomputer 3 des Steuergeräts 1 vor, während oder nach dem Programmierungs-/ Umprogrammierungsvorgang veranlasst, über die Leitung 11 bestimmte Bits in dem Speicherbereich 8 zu setzen.