DE10002204B4 - Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens - Google Patents

Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens Download PDF

Info

Publication number
DE10002204B4
DE10002204B4 DE10002204A DE10002204A DE10002204B4 DE 10002204 B4 DE10002204 B4 DE 10002204B4 DE 10002204 A DE10002204 A DE 10002204A DE 10002204 A DE10002204 A DE 10002204A DE 10002204 B4 DE10002204 B4 DE 10002204B4
Authority
DE
Germany
Prior art keywords
state
program
devices
microcomputer
switched
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.)
Expired - Fee Related
Application number
DE10002204A
Other languages
English (en)
Other versions
DE10002204A1 (de
Inventor
Guenter Braun
Alireza Djahangard-Mahboob
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 DE10002204A priority Critical patent/DE10002204B4/de
Priority to FR0100650A priority patent/FR2806180B1/fr
Priority to US09/766,103 priority patent/US6604024B2/en
Publication of DE10002204A1 publication Critical patent/DE10002204A1/de
Application granted granted Critical
Publication of DE10002204B4 publication Critical patent/DE10002204B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/01Fittings or systems for preventing or indicating unauthorised use or theft of vehicles operating on vehicle systems or fittings, e.g. on doors, seats or windscreens
    • B60R25/04Fittings or systems for preventing or indicating unauthorised use or theft of vehicles operating on vehicle systems or fittings, e.g. on doors, seats or windscreens operating on the propulsion system, e.g. engine or drive motor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Mechanical Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Schutz eines Mikrorechners eines Steuergeräts für ein Kraftfahrzeug gegen Manipulation eines zumindest teilweise in einem wiederbeschreibbaren Speicher des Mikrorechners abgelegten Steuerprogrammes, indem ein in dem Mikrorechner abgelegtes Überprüfungsprogramm zum Erkennen einer unbefugten Manipulation des Steuerprogramms ausgeführt wird, wobei die Steuergeräte in Seriengeräte und Applikationsgeräte unterteilt werden, die sich durch eine elektronische Hardware-Kennung voneinander unterscheiden, dadurch gekennzeichnet, dass das Überprüfungsprogramm in den Applikationsgeräten mittels Standardbefehlen (4, 5) von einem deaktivierten Zustand (3) in einen einfach aktivierten Zustand (2) und von dem einfach aktivierten Zustand (2) in den deaktivierten Zustand (3) umgeschaltet wird, und das Überprüfungsprogramm in den Applikationsgeräten und in den Seriengeräten mittels eines Standardbefehls (6) von dem deaktivierten Zustand (3) in einen verriegelt aktivierten Zustand (1) umgeschaltet wird, aus dem es nur durch Sondermaßnahmen (7) in den deaktivierten Zustand (3) zurück geschaltet werden kann, wobei die Standardbefehle (4, 5, 6) frei und die Sondermaßnahmen (7) beschränkt zugänglich sind.

Description

  • Stand der Technik
  • Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechners eines Steuergeräts für ein Kraftfahrzeug gegen Manipulation eines zumindest teilweise in einem wiederbeschreibbaren Speicher des Mikrorechners abgelegten Steuerprogrammes, indem ein in dem Mikrorechner abgelegtes Überprüfungsprogramm zum Erkennen einer unbefugten Manipulation des Steuerprogramms ausgeführt wird. Die Erfindung betrifft außerdem ein Steuergerät für ein Kraftfahrzeug, mit einem Mikrorechner, der einen wiederbeschreibbaren Speicher aufweist, in dem ein Steuerprogramm zumindest teilweise ablegbar ist, und auf dem ein Überprüfungsprogramm zum Schutz des Mikrorechners gegen Manipulation des Steuerprogramms ablauffähig ist.
  • Aus der DE 197 53 730 A1 sind bereits Applikationssteuergeräte und Seriensteuergeräte bekannt.
  • Ein Verfahren der eingangs genannten Art ist bspw. aus der DE 197 23 332 A1 bekannt. Dort wird ein Verfahren zum Schutz eines Mikrorechners eines Steuergeräts für ein Kraftfahrzeug offenbart, bei dem ein in dem Mikrorechner abgelegtes Überprüfungsprogramm ausgeführt wird. Im Rahmen des Überprüfungsprogramms wird aus zumindest einem. Teil des Speicherinhalts eines wiederbeschreibbaren Speichers des Mikrorechners mit einem bestimmten Schlüssel, der in dem Mikrorechner abgelegt ist, ein Codewort gebildet. Das Codewort wird mit einem in dem wiederbeschreibbaren Speicher abgelegten Vergleichswort verglichen. Das Vergleichswort wird im Anschluß an eine Programmierung bzw. Umprogrammierung des wiederbeschreibbaren Speichers in Kenntnis des Schlüssels und des Speicherinhalts des wiederbeschreibbaren Speichers in diesem abgelegt. Dieses Verfahren zum Schutz des Mikrorechners gegen Manipulation seines Steuerprogramms ist in ISO 14230 normiert. Der Schlüssel ist herstellerabhängig und in der Regel nur dem Hersteller (zum Programmieren des Steuergeräts) und autorisierten Vertragswerkstätten (zum Umprogrammieren des Steuergeräts im Rahmen von Software-Updates) bekannt. Das Verfahren wird auch als Seed-and-Key-Verfahren bezeichnet.
  • Falls der wiederbeschreibbare Speicher von einem Unbefugten umprogrammiert wird, muss dieser im Anschluß an die Umprogrammierung auf jedem Fall ein Vergleichswort bilden und in dem wiederbeschreibbaren Speicher ablegen. Im Rahmen des Überprüfungsprogramms wird dann ein Codewort in Abhängigkeit von dem Schlüssels und dem Speicherinhalt des umprogrammierten wiederbeschreibbaren Speichers gebildet und dieses mit dem abgelegten Vergleichswort verglichen. Da der Unbefugte in der Regel den Schlüssel des Mikrorechners nicht kennt, ist das Vergleichswort wahrscheinlich ungültig und stimmt nicht mit dem Codewort überein. Auf diese Weise wird die unbefugte Manipulation des Steuerprogramms erkannt.
  • Manchmal kann es jedoch notwendig bzw. hilfreich sein, das Überprüfungsprogramm zu deaktivieren, um nicht nach jedem Umprogrammieren des wiederbeschreibbaren Speichers ein Vergleichswort aus dem Speicherinhalt und dem Schlüssel bilden und in dem wiederbeschreibbaren Speicher ablegen zu müssen. Das ist bspw. dann der Fall, wenn das Steuergerät zu Entwicklungs-, Prüf- oder Testzwecken häufig umprogrammiert werden muss, insbesondere in der Anfangsphase der Entwicklung des Steuergeräts oder des Steuerprogramms oder zur Variation von Einstellungen an einer von dem Steuergerät gesteuerten Brennkraftmaschine.
  • Der vorliegenden Erfindung liegt deshalb die Aufgabe zu Grunde, ein in einem Mikrorechner eines Kraftfahrzeug-Steuergeräts abgelegtes Überprüfungsprogramm zeitweilig deaktivieren zu können, ohne dass es durch die mögliche Deaktivierung des Überprüfungsprogramms zu einem verminderten Schutz eines in einem wiederbeschreibbaren Speicher des Mikrorechners abgelegten Steuerprogrammes kommt.
  • Zur Lösung dieser Aufgabe schlägt die Erfindung ausgehend von dem Verfahren zum Schutz eines Mikrorechners eines Steuergeräts der eingangs genannten Art vor, dass die Steuergeräte in Seriengeräte und Applikationsgeräte unterteilt werden, die sich durch eine elektronische Hardware-Kennung voneinander unterscheiden, wobei das Überprüfungsprogramm in den Applikationsgeräten mittels Standardbefehlen und in den Seriengeräten mittels Sondermaßnahmen bei Bedarf von einem aktivierten in einen deaktivierten Zustand umgeschaltet wird und wobei nur die Standardbefehle frei zugänglich sind.
  • Vorteile der Erfindung
  • Gemäß der vorliegenden Erfindung wird also ausgehend von der bekannten Software-Kennung des Seed-and-Key-Verfahrens eine Hardware-Kennung als Überbau zum Deaktivieren der Software-Kennung vorgeschlagen. Aufgrund der elektronischen Hardware-Kennung dient das Steuergerät selbst als Informationsträger für die Frage, ob es sich um ein Applikationsgerät oder um ein Seriengerät handelt.
  • In der Regel werden nur so viele Steuergeräte als Applikationsgeräte ausgebildet, wie für eine Entwicklung des Steuergeräts, des Steuerprogramms oder der Brennkraftmaschine, die von dem Steuergerät und dem Steuerprogramm gesteuert wird, notwendig sind. Die Anzahl und Verbreitung der Applikationsgeräte ist also stark eingeschränkt. Die Applikationsgeräte unterscheiden sich von den Seriengeräten insbesondere dadurch, dass die Überprüfungsprogramme mittels Standardbefehle, die frei zugänglich sind, zwischen einem aktivierten und einem deaktivierten Zustand umgeschaltet werden können.
  • Wenn sich das Überprüfungsprogramm in einem aktivierten Zustand befindet, muss nach jeder Umprogrammierung des wiederbeschreibbaren Speichers des Mikrorechners ein Vergleichswort ermittelt und in dem wiederbeschreibbaren Speicher abgelegt und die Software-Kennung durchgeführt werden. Bei einem deaktivierten Überprüfungsprogramm kann eine Umprogrammierung des wiederbeschreibbaren Speichers nahezu beliebig oft wiederholt werden, ohne jedesmal die Software-Kennung durchlaufen zu müssen.
  • Dagegen machen die Seriengeräte den weitaus größten Teil der Steuergeräte aus. Bei den Seriengeräten kann das Überprüfungsprogramm lediglich mittels Sondermaßnahmen, die nur beschränkt zugänglich sind, von einem aktivierten in einen deaktivierten Zustand umgeschaltet werden. Die Sondermaßnahmen sind vorzugsweise nur dem Hersteller der Steuergeräte bekannt.
  • Die Standardbefehle bei dem erfindungsgemäßen Verfahren entsprechen in etwa dem Deaktivierungscode bei dem aus dem Stand der Technik bekannten Verfahren. Der Unterschied zwischen dem erfindungsgemäßen Verfahren und dem Stand der Technik besteht jedoch darin, dass die Anzahl und Verbreitung von Applikationsgeräten, bei denen als einzige das Überprüfungsprogramm mit Standardbefehlen von einem aktivierten in einen deaktivierten Zustand umgeschaltet werden kann, stark beschränkt ist. Die weit verbreiteten Seriengeräte können dagegen nur mit den nicht frei zugänglichen, Sondermaßnahmen umgeschaltet werden.
  • Die Sicherheit des erfindungsgemäßen Verfahrens lässt sich noch weiter erhöhen, in dem die Zugänglichkeit der Standardbefehle zum Umschalten des Überprüfungsprogramms in den Applikationsgeräten von einem aktivierten in den deaktivierten Zustand eingeschränkt wird. Es ist denkbar, dass die Standardbefehle neben dem Hersteller der Steuergeräte nur einigen wenigen ausgewählten Entwicklern beim Kunden und den Mitarbeitern einiger weniger ausgewählter Vertragswerkstätten des Kunden bekannt sind. Außerdem kann die Verbreitung der Applikationsgeräte genau überwacht und gesteuert werden.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung beruht die Software-Kennung auf dem sog. Seed-and-Key-Verfahren, wobei im Rahmen des Überprüfungsprogramms aus zumindest einem Teil des Speicherinhalts des wiederbeschreibbaren Speichers mit einem Schlüssel ein Codewort gebildet und dieses mit einem in dem wiederbeschreibbaren Speicher abgelegten Vergleichswort verglichen. Dieses Verfahren ist ausführlich in der DE 197 23 332 A1 beschrieben.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass das Überprüfungsprogramm in den Applikationsgeräten und in den Seriengeräten mittels Standardbefehle von einem deaktivierten in einen aktivierten Zustand umgeschaltet wird. Da durch ein Umschalten des Überprüfungsprogramms eines Steuergeräts in einen aktivierten Zustand keine Gefahr der Manipulation des Steuerprogramms des Steuergeräts besteht, darf dieses Umschalten von jedermann mittels Standardbefehle ausgeführt werden.
  • Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung wird vorgeschlagen, dass das Überprüfungsprogramm in den Applikationsgeräten mittels Standardbefehlen von dem deaktivierten in einen verriegelt aktivierten Zustand und mittels Sondermaßnahmen von dem verriegelt aktivierten Zustand in den deaktivierten Zustand umgeschaltet wird. Gemäß dieser Ausführungsform des erfindungsgemäßen Verfahrens kann das Applikationsgerät also zwischen drei unterschiedlichen Zuständen umgeschaltet werden. Neben dem Zustand mit einfach aktivierter (nicht verriegelter) Software-Kennung und dem Zustand mit deaktivierter Software-Kennung kann das Applikationsgerät auch in einen Zustand mit verriegelt aktivierter Software-Kennung umgeschaltet werden. In diesem Zustand kann. das Applikationsgerät nach Abschluss der Applikations- und Entwicklungsphase als normales Seriengerät eingesetzt werden. Aus dem Zustand mit deaktivierter Software-Kennung wird das Applikationsgerät mittels Standardbefehle in den Zustand mit verriegelt aktivierter Software-Kennung umgeschaltet. Diesen Zustand kann das Applikationsgerät nur mittels Sondermaßnahmen verlassen. Diese sind nur beschränkt, bspw. nur dem Hersteller der Steuergeräte, zugänglich. Ein unbefugtes Modifizieren des Steuerprogramms in dem wiederbeschreibbaren Speicher eines Applikationsgeräts, indem der Zustand des Applikationsgerätes unbefugterweise in den Zustand mit deaktivierter Software-Kennung umgeschaltet wird, ist damit nahezu ausgeschlossen.
  • Wird bei Seriengeräten versucht, mit einem Standardbefehl das Überprüfungsprogramm von dem deaktivierten in den einfach aktivierten (nicht verriegelten) Zustand umzuschalten, wird das Überprüfungsprogramm gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung automatisch in den verriegelt aktivierten Zustand umgeschaltet. Dadurch wird sichergestellt, dass das Seriengerät nach Abschluß einer Umprogrammierung des Steuerprogramms auf jeden Fall wieder in den verriegelt aktivierten Zustand gelangt, um ein unbefugtes Manipulieren des Steuerprogramms zu verhindern.
  • Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass die Standardbefehle zum Aktivieren bzw. Deaktivieren des Überprüfungsprogramms über eine Kommunikationsschnittstelle an das Steuergerät übermittelt werden. Die Kommunikationsschnittstelle ist bspw. als ein Controller-Area-Network (CAN)-Bus oder eine K-Leitung ausgebildet. Zu Prüf- und Diagnosezwecken ist es aus dem Stand der Technik bekannt, eine K-Leitung zwischen dem Steuergerät und einem Diagnose- oder Prüfgerät anzuordnen. Über eine K-Leitung werden Daten nach dem Key Word Protocol 2000 (ISO 14 230) übertragen. Diese K-Leitung wird auch zum Übermitteln der Befehle zum Umschalten des Überprüfungsprogramms zwischen einem aktivierten und einem inaktivierten Zustand verwendet.
  • Als weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Steuergerät der eingangs genannten Art vorgeschlagen, dass das Steuergerät eine elektronische Hardware-Kennung zur Identifikation des Steuergeräts als Seriengerät oder als Applikationsgerät aufweist, wobei das Überprüfungsprogramm in einem Applikationsgerät mittels Standardbefehle und in einem Seriengerät mittels Sondermaßnahmen bei Bedarf von einem aktivierten Zustand in einen deaktivierten Zustand umschaltbar ist und die Standardbefehle frei und die Sondermaßnahmen beschränkt zugänglich sind.
  • Die elektronische Hardware-Kennung kann als ein beliebiges elektronisches Bauteil der Schaltung des Steuergeräts ausgebildet sein. Das elektronische Bauteil ist bspw. als ein EPROM, ein EEPROM oder als ein programmierbares logisches Bauteil (programmable logical device, PLD), als eine programmable array logic (PAL) oder als ein GAL ausgebildet sein. Die logischen Bauteile (PLDs) können für Applikationsgeräte und für Seriengeräte unterschiedlich programmiert sein. Nach außen ist eine Unterscheidung zwischen Applikationsgerät und Seriengerät nur im Rahmen der Umschaltung des Überprüfungsprogramms zwischen aktiviertem und deaktiviertem Zustand möglich.
  • Alternativ wird jedoch gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung vorgeschlagen, dass die elektronische Hardware-Kennung als mindestens ein in die Schaltung des Steuergeräts integriertes zusätzliches elektronisches Bauteil ausgebildet ist. Applikationsgeräte und Seriengeräte unterscheiden sich gemäß dieser Weiterbildung in einer unterschiedlich bestückten Schaltung. Die unterschiedliche Bestückung der Schaltung kann bspw. mittels Widerständen mit unterschiedlichen Widerstandswerten, mittels Spulen mit unterschiedlichen Induktivitäten, mittels Kondensatoren mit unterschiedlichen Kapazitäten, mit zusätzlichen Widerständen, Induktivitäten oder Kondensatoren, mit zusätzlichen Transistoren oder mit zusätzlichen logischen Bauteilen erzielt werden.
  • Zeichnungen
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung wird im Folgenden an Hand der Figuren näher erläutert. Es zeigen:
  • 1 ein Steuergerät mit einem Mikrorechner und wiederbeschreibbarem Speicher, optional mit Programmiergerät
  • 2 ein erfindungsgemäßes Verfahren gemäß einer bevorzugten Ausführungsform am Beispiel eines Applikationsgerätes;
  • 3 das erfindungsgemäße Verfahren aus 2 am Beispiel eines Steuergerätes;
  • 4 ein Zustandsdiagramm des erfindungsgemäßen Verfahrens gemäß 2; und
  • 5 ein Zustandsdiagramm des erfindungsgemäßen Verfahrens gemäß 3.
  • Beschreibung des Ausführungsbeispiels
  • Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Mikrorechners gegen unbefugte Umprogrammierung. Der Mikrorechner ist Teil eines Steuergerätes zur Steuerung der Brennkraftmaschine und/oder anderer Funktionen eines Kraftfahrzeugs. Diese anderen Funktionen sind bspw. Antiblockiersystem, Antriebsschlupfregelung, elektronisches Stabilitätsprogramm, Ein-/Ausschalten und Ausrichten von Scheinwerfern, usw. Durch die Bezeichnung Steuergerät und Steuerprogramm ist die Funktion des Steuergeräts nicht auf die Steuerung von bestimmten Kraftfahrzeugfunktionen beschränkt. Vielmehr kann das Steuergerät, für einen Fachmann ohne weiteres erkennbar, mit Hilfe des Steuerprogramms in dem Kraftfahrzeug auch Regelungsaufgaben übernehmen.
  • 1 zeigt ein Steuergerät 100 mit dem Mikrorechner 101 und einem darin enthaltenen wiederbeschreibbaren Speicher 102. In dem Steuergerät 100 kann ein weiterer Speicher 103 enthalten sein. Daneben können optional weitere Elemente 105, wie weitere Mikrorechner, Speicher, Ein-/Ausgabebaugruppen, etc. je nach Ausstattung und Variante des Steuergerätes 100 enthalten sein. Die einzelnen Elemente des Steuergerätes sind durch wenigstens ein steuergeräteinternes Bussystem 106 miteinander verbunden. Mit 104 ist eine Ein-/Ausgabebaugruppe für eine Kommunikationsschnittstelle 107 dargestellt über welche das Steuergerät mit externen Komponenten kommunizieren kann. Insbesondere eine Um- oder Neuprogrammierung des Steuergeräts, insbesondere bezüglich Speicher 102 und/oder Speicher 103, kann über diese Schnittstelle vorgenommen werden. Dies geschieht z. B. mit Hilfe eines externen Programmiergerätes 108.
  • Der Mikrorechner weist einen wiederbeschreibbaren Speicher auf, in dem ein Steuerprogramm zur Durchführung der Steuerungsaufgaben abgelegt ist. Der Mikrorechner verfügt über eine Software-Kennung, um eine unbefugte Manipulation des Steuerprogramms zu erkennen. Die Software-Kennung umfasst bspw. ein Überprüfungsprogramm, das nach der Umprogrammierung des wiederbeschreibbaren Speichers des Mikrorechners durchlaufen wird.
  • Nach dem Programmieren oder Umprogrammieren des wiederbeschreibbaren Speichers mit einem neuen Steuerprogramm wird zunächst aus dem Speicherinhalt des wiederbeschreibbaren Speichers unter Zuhilfenahme eines Schlüssels, der in dem Mikrorechner abgelegt ist, ein Vergleichswort gebildet und in dem wiederbeschreibbaren Speicher abgelegt. Im Rahmen des Überprüfungsprogramms wird dann aus zumindest einem Teil des Speicherinhalts des wiederbeschreibbaren Speichers und dem Schlüssel ein Codewort gebildet und dieses mit dem abgelegten Vergleichswort verglichen. Das Codewort und das Vergleichswort stimmen nur dann überein, wenn zu ihrer Bildung der gleiche Schlüssel verwendet wurde, wenn also bei der Bildung des Vergleichsworts der Schlüssel bekannt war. Stimmen das Codewort und das Vergleichswort nicht überein, wird von einer unbefugten Umprogrammierung des Steuerprogramms ausgegangen und das Steuergerät gesperrt. Dieses Verfahren wird als Seed-and-Key-Verfahren bezeichnet.
  • Unter bestimmten Voraussetzungen kann es jedoch notwendig bzw. hilfreich sein, das Seed-and-Key-Verfahren zu deaktivieren, um das Steuergerät mehrmals hintereinander umprogrammieren zu können, ohne jedesmal das Vergleichswort bestimmen und in dem wiederbeschreibbaren Speicher ablegen zu müssen. Die vorliegende Erfindung schlägt ein Verfahren und ein Steuergerät vor, bei denen das Seed-and-Key-Verfahren auf einfache Weise deaktiviert werden kann, ohne dass dadurch das Erkennen einer unbefugten Manipulation des Steuerprogramms durch das Seed-and-Key-Verfahren im aktivierten Zustand beeinträchtigt wird. Dadurch kann vermieden werden, dass bereits in der Entwicklungsphase eines Steuergeräts Tools mit dem Seed-and-Key-Verfahren bzw. der Schlüssel des Seed-and-Key-Verfahrens in großer Zahl an eine Vielzahl von Personen verteilt werden. Das erfindungsgemäße Verfahren führt somit zu einer Minderung des Risikos eines Missbrauchs der Tools oder des Schlüssels.
  • Die hergestellten Steuergeräte werden zunächst in Applikationsgeräte und in Seriengeräte unterteilt. Am Beginn einer Fertigungsserie und bei Bedarf auch mitten in einer Fertigungsserie werden eine beschränkte Anzahl von Steuergeräten als Applikationsgeräte gefertigt. Die Applikationsgeräte unterscheiden sich von den Seriengeräten durch eine unterschiedliche elektronische Hardware-Kennung. Die elektronische Hardware-Kennung kann als mindestens ein beliebiges elektronisches Bauteil der Schaltung des Steuergeräts oder aber als mindestens ein beliebiges in die Schaltung des Steuergeräts integriertes zusätzliches elektronisches Bauteil ausgebildet sein. Als elektronische Bauteile kommen bspw. Widerstände, Spulen, Kondensatoren, beliebige Speicherbauteile oder logische Bauteile in Betracht. Der Zustand der elektronischen Hardware-Kennung kann nur im Rahmen der Umschaltung des Überprüfungsprogramms zwischen aktiviertem und deaktiviertem Zustand abgefragt werden. Dazu wird vorzugsweise eine Kommunikationsschnittstelle, bspw. eine K-Leitung, an die externen Anschlüsse des Steuergeräts angeschlossen. Die Datenübertragung über die K-Leitung erfolgt nach dem sog. Key Word Protocol 2000 (ISO 14230). Die Kommunikationsschnittstelle kann auch als ein Controller-Area-Network (CAN)-Bus ausgebildet sein.
  • Gemäß der vorliegenden Erfindung ist das Steuergerät selbst (d. h. die Hardware des Steuergeräts) der Informationsträger zur Identifikation des Steuergeräts als Seriengerät oder als Applikationsgerät. Das Applikationsgerät weist drei Zustände auf, zwischen denen es umgeschaltet werden kann (vgl. 2). In einem ersten Zustand 1 ist die Software-Kennung verriegelt aktiviert. In einem zweiten Zustand ist die Software-Kennung einfach, d. h. nicht verriegelt, aktiviert. In einem dritten Zustand 3 ist die Software-Kennung deaktiviert. Der Auslieferungszustand des Applikationsgerätes ist der Zustand 2 mit einfach aktivierter Software-Kennung. In dem Zustand 2 kann eine Umprogrammierung des Steuerprogramms nur durchgeführt werden, wenn für jede Umprogrammierung das Seed-and-Key-Verfahren durchlaufen wird. Anders als in 2 dargestellt, ist es auch möglich, das Applikationsgerät in dem Zustand 3 mit deaktivierter Software-Kennung auszuliefern.
  • Aus dem Zustand 2 kann das Applikationsgerät mittels eines ersten Standardbefehls 4 in den Zustand 3 mit deaktivierter Software-Kennung umgeschaltet werden. Solange sich das Applikationsgerät in diesem Zustand 3 befindet, kann es nahezu beliebig häufig umprogrammiert werden, ohne dass nach jedem Umprogrammieren das Seed-and Key-Verfahren durchlaufen werden muss. Nach Abschluss einer Entwicklungs-, Erprobungs- oder Testphase kann das Applikationsgerät mittels eines zweiten Standardbefehls 5 wieder in den Zustand 2 mit einfach aktivierter Software-Kennung umgeschaltet werden. Aus diesem Zustand kann das Applikationsgerät mittels des ersten Standardbefehls 4 jederzeit wieder in den Zustand 3 umgeschaltet werden.
  • Falls abgesehen werden kann, dass eine weitere Entwicklungs-, Erprobungs- oder Testphase nicht nötig sein wird, kann das Applikationsgerät aus dem Zustand 3 mit deaktivierter Software-Kennung mittels eines dritten Standardbefehls 6 in den Zustand 1 mit verriegelt aktivierter Software-Kennung umgeschaltet werden. In diesem Zustand 1 ist eine Umprogrammierung des Steuerprogramms nur unter Durchlaufen des Seed-and-Key-Verfahrens im Anschluss an die Umprogrammierung möglich.
  • Es ist zwar theoretisch möglich, das Applikationsgerät aus dem Zustand 1 in den Zustand 3 umzuschalten. Dazu bedarf es aber einer Sondermaßnahme 7, bspw. eines Sonderbefehls, der im Gegensatz zu den Standardbefehlen 4, 5, 6 lediglich beschränkt zugänglich ist. Vorzugsweise ist der Sonderbefehl 7 nur dem Hersteller des Steuergerätes bekannt. Dadurch ist der Personenkreis, der Kenntnis von dem Sonderbefehl 7 hat, so weit eingeschränkt werden, dass ein Missbrauch oder eine Weitergabe des Sonderbefehls 7 an Unbefugte nahezu ausgeschlossen ist.
  • Zur Erhöhung der Sicherheit des erfindungsgemäßen Verfahrens kann die Verfügbarkeit des ersten Standardbefehls 4 ebenfalls auf den Hersteller der Steuergeräte und Mitarbeiter von Kunden beschränkt werden. Dann kann die Gefahr einer unbefugten. Umprogrammierung des Steuerprogramms vermindert werden, selbst wenn sich das Applikationsgerät nur in dem einfach aktivierten Zustand 2 und nicht in dem verriegelt aktivierten Zustand 1 befindet.
  • Im Gegensatz zu den Applikationsgeräten verfügen die Seriengeräte (vgl. 3) lediglich über zwei Zustände, zwischen denen sie umgeschaltet werden können. Die Seriengeräte werden in dem Zustand 1 mit verriegelt aktivierter Software-Kennung ausgeliefert. Aus diesem Zustand 1 können sie mittels des Sonderbefehls 7 lediglich in den Zustand 3 mit deaktivierter Software-Kennung umgeschaltet werden. Wenn versucht wird, das Seriengerät aus dem Zustand 3 mittels des zweiten Standardbefehls 5 in den Zustand 2 mit einfach aktivierter Software-Kennung umzuschalten, wird auf Grund der Hardware-Kennung erkannt, dass es sich bei dem vorliegenden Steuergerät um ein Seriengerät handelt, das nicht in den Zustand 2 umgeschaltet werden darf. Durch den zweiten Standardbefehl 5 wird das Seriengerät also nicht in den Zustand 2 mit einfach aktivierter Software-Kennung, sondern in den Zustand 1 mit verriegelt aktivierter Software-Kennung umgeschaltet. Der gleiche Effekt kann auch mittels des dritten Standardbefehls 6 erzielt werden.
  • Durch Umschalten der Applikationsgeräte in den Zustand 1 mit verriegelt aktivierter Software-Kennung können die Applikationsgeräte nach Abschluss der Entwicklungs-, Erprobungs- oder Testphase wie Seriengeräte als ganz normale Steuergeräte eingesetzt werden. Dadurch können die Kosten für die Entwicklung der Steuergerät reduziert werden.
  • Die Standardbefehle 4, 5, 6 und die Sondermaßnahmen 7 zum Aktivieren bzw. Deaktivieren der Software-Kennung werden bspw. über die K-Leitung an das Steuergerät übermittelt. In den 4 und 5 sind Zustandsdiagramme eines Applikationsgerätes (4) und eines Seriengerätes (5) dargestellt. Es ist deutlich zu erkennen, dass auf Grund des zweiten Standardbefehls 5 zum Umschalten des Steuergeräts aus dem Zustand 3 in den Zustand 2 in Abhängigkeit von der Hardware-Kennung bei dem Applikationsgerät in den Zustand 2 und bei dem Seriengerät in den Zustand 1 umgeschaltet wird.

Claims (6)

  1. Verfahren zum Schutz eines Mikrorechners eines Steuergeräts für ein Kraftfahrzeug gegen Manipulation eines zumindest teilweise in einem wiederbeschreibbaren Speicher des Mikrorechners abgelegten Steuerprogrammes, indem ein in dem Mikrorechner abgelegtes Überprüfungsprogramm zum Erkennen einer unbefugten Manipulation des Steuerprogramms ausgeführt wird, wobei die Steuergeräte in Seriengeräte und Applikationsgeräte unterteilt werden, die sich durch eine elektronische Hardware-Kennung voneinander unterscheiden, dadurch gekennzeichnet, dass das Überprüfungsprogramm in den Applikationsgeräten mittels Standardbefehlen (4, 5) von einem deaktivierten Zustand (3) in einen einfach aktivierten Zustand (2) und von dem einfach aktivierten Zustand (2) in den deaktivierten Zustand (3) umgeschaltet wird, und das Überprüfungsprogramm in den Applikationsgeräten und in den Seriengeräten mittels eines Standardbefehls (6) von dem deaktivierten Zustand (3) in einen verriegelt aktivierten Zustand (1) umgeschaltet wird, aus dem es nur durch Sondermaßnahmen (7) in den deaktivierten Zustand (3) zurück geschaltet werden kann, wobei die Standardbefehle (4, 5, 6) frei und die Sondermaßnahmen (7) beschränkt zugänglich sind.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Rahmen des Überprüfungsprogramms aus zumindest einem Teil des Speicherinhalts des wiederbeschreibbaren Speichers mit einem Schlüssel ein Codewort gebildet und dieses mit einem in dem wiederbeschreibbaren Speicher abgelegten Vergleichswort verglichen wird.
  3. Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass das Überprüfungsprogramm in den Seriengeräten bei einem Standardbefehl (5) zum Umschalten des Überprüfungsprogramms aus dem deaktivierten Zustand (3) in den einfach verriegelten Zustand (2) automatisch in den verriegelt aktivierten Zustand (1) umgeschaltet wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Standardbefehle (4, 5, 6) zum Aktivieren bzw. Deaktivieren des Überprüfungsprogramms über eine Kommunikationsschnittstelle an das Steuergerät übermittelt werden.
  5. Steuergerät für ein Kraftfahrzeug, mit einem Mikrorechner, der einen wiederbeschreibbaren Speicher aufweist, in dem ein Steuerprogramm zumindest teilweise ablegbar ist, und auf dem ein Überprüfungsprogramm zum Schutz des Mikrorechners gegen Manipulation des Steuerprogrammes ablauffähig ist, wobei das Steuergerät eine elektronische Hardware-Kennung zur Identifikation des Steuergeräts als Seriengerät oder als Applikationsgerät aufweist, dadurch gekennzeichnet dass das Steuergerät eingerichtet ist, das Überprüfungsprogramm in den Applikationsgeräten mittels Standardbefehlen (4, 5) von einem deaktivierten Zustand (3) in einen einfach aktivierten Zustand (2) und von dem einfach aktivierten Zustand (2) in den deaktivierten Zustand (3) umzuschalten, und das Überprüfungsprogramm in den Applikationsgeräten und in den Seriengeräten mittels eines Standardbefehls (6) von dem deaktivierten Zustand (3) in einen verriegelt aktivierten Zustand (1) umzuschalten, aus dem es nur durch Sondermaßnahmen (7) in den deaktivierten Zustand (3) zurück geschaltet werden kann, wobei die Standardbefehle (4, 5, 6) frei und die Sondermaßnahmen (7) beschränkt zugänglich sind.
  6. Steuergerät nach Anspruch 5, dadurch gekennzeichnet, dass die elektronische Hardware-Kennung als mindestens ein in die Schaltung des Steuergeräts integriertes zusätzliches elektronisches Bauteil ausgebildet ist.
DE10002204A 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens Expired - Fee Related DE10002204B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10002204A DE10002204B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
FR0100650A FR2806180B1 (fr) 2000-01-19 2001-01-18 Procede pour proteger un microcalculateur d'un appareil de commande contre une manipulation de programme, et dispositif de mise en oeuvre
US09/766,103 US6604024B2 (en) 2000-01-19 2001-01-19 Method for protecting a microcomputer of a control unit against the manipulation of a program and a device for carrying out the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10002204A DE10002204B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens

Publications (2)

Publication Number Publication Date
DE10002204A1 DE10002204A1 (de) 2001-07-26
DE10002204B4 true DE10002204B4 (de) 2013-10-02

Family

ID=7628069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10002204A Expired - Fee Related DE10002204B4 (de) 2000-01-19 2000-01-19 Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens

Country Status (3)

Country Link
US (1) US6604024B2 (de)
DE (1) DE10002204B4 (de)
FR (1) FR2806180B1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636859B2 (en) * 2001-01-04 2009-12-22 Cummins Inc. System and method for authorizing transfer of software into embedded systems
DE10131577A1 (de) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE10237715B4 (de) * 2002-08-17 2017-03-09 Robert Bosch Gmbh Vorrichtung zum Zugriff auf ein Fahrzeugssteuersystem über eine drahtlose Verbindung
DE10319365A1 (de) * 2003-04-29 2004-11-18 Volkswagen Ag Computersystem für ein Fahrzeug und Verfahren zum Kontrollieren des Datenverkehrs in ein solches Computersystem
DE10340411B4 (de) 2003-09-02 2005-10-13 Infineon Technologies Ag Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
SE526829C2 (sv) * 2004-03-30 2005-11-08 Scania Cv Ab Arrangemang, motorfordon, sätt och datorprogram för att ge tillträde till elektroniska styrenheter
WO2012105215A1 (ja) * 2011-01-31 2012-08-09 本田技研工業株式会社 車両用制御装置
US10026238B2 (en) * 2015-07-15 2018-07-17 GM Global Technology Operations LLC System and method for converting two diagnostic states of a controller to three diagnostic states
US10202958B2 (en) 2015-07-15 2019-02-12 GM Global Technology Operations LLC System and method for controlling ultra-capacitor charge and discharge in vehicles with auto start/stop systems
DE102022117149A1 (de) 2022-07-11 2024-01-11 Audi Aktiengesellschaft Verfahren zum Betrieb eines Steuergeräts eines Kraftfahrzeugs für einen Produktionsvorgang des Kraftfahrzeugs und Steuergerät

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19753730A1 (de) * 1997-12-04 1999-06-10 Bosch Gmbh Robert Verfahren und Vorrichtung zum Steuern einer Brennkraftmaschine

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717387A (en) * 1990-01-19 1998-02-10 Prince Corporation Remote vehicle programming system
DE59310118D1 (de) * 1993-03-31 2000-11-23 Siemens Ag Verfahren und Anordnung zum Neu- bzw. Nachladen von Prozessorsteuerprogrammen
DE4440127B4 (de) * 1994-11-10 2007-11-08 Robert Bosch Gmbh Steuergerät
JP3461234B2 (ja) * 1996-01-22 2003-10-27 株式会社東芝 データ保護回路
US5790664A (en) * 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
US5787367A (en) * 1996-07-03 1998-07-28 Chrysler Corporation Flash reprogramming security for vehicle computer
DE19723332A1 (de) * 1997-06-04 1998-09-03 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechners und geschützter Mikrorechner
DE10002203B4 (de) * 2000-01-19 2009-12-10 Robert Bosch Gmbh Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19753730A1 (de) * 1997-12-04 1999-06-10 Bosch Gmbh Robert Verfahren und Vorrichtung zum Steuern einer Brennkraftmaschine

Also Published As

Publication number Publication date
DE10002204A1 (de) 2001-07-26
FR2806180A1 (fr) 2001-09-14
US20010021886A1 (en) 2001-09-13
FR2806180B1 (fr) 2006-01-27
US6604024B2 (en) 2003-08-05

Similar Documents

Publication Publication Date Title
DE69719479T2 (de) Datenverarbeitungssystemsicherheit
DE10002204B4 (de) Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
EP1000824B1 (de) Fahrzeugsicherungsanordnung
WO2019072840A1 (de) Vorrichtung zur absicherung von diagnosebefehlen an ein steuergerät und entsprechendes kraftfahrzeug
DE69521561T2 (de) Verfahren zum Entriegeln des Zugriffs auf einen Rechner von einem Fernladungssystem einer Datei
EP1262856B1 (de) Programmgesteuerte Einheit
EP1804144A1 (de) Überprüfung des Steuerprogramms eines Steuergerätes für eine Maschine
EP0981467A2 (de) Verfahren zur manipulationssicheren konfigurierung eines kfz-steuergerätes sowie steuergerät
WO2021233696A1 (de) Verfahren zur sicheren nutzung von kryptografischem material
DE19963208A1 (de) Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung eines digitalen Steuergeräts
WO1995008802A1 (de) Mikrorechner mit überwachungsschaltung
DE10002203B4 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
EP1563358B1 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
DE102009047724A1 (de) Verfahren zur Programmlaufkontrolle
WO2005048103A1 (de) Sichere erfassung von eingabewerten
EP0553472B1 (de) Verfahren und Vorrichtung zum Prüfen einer Einrichtung, die wenigstens einen Mikrorechner enthält
EP1293858B1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE19616053A1 (de) Verfahren zum Betreiben eines Steuergerätes mit einer programmierbaren Speichereinrichtung
EP2646670B1 (de) Verfahren zum reversiblen, manipulationssicheren codieren eines motorsteuergeräts für ein kraftfahrzeug und motorsteuergerät
EP1274097B1 (de) Überprüfung von in einer Speicheranordnung abgelegten Daten
DE102007062915A1 (de) Verfahren zum Betreiben einer speicherprogrammierbaren Steuerung
DE19722015B4 (de) Verfahren und Vorrichtung zur Steuerung einer Brennkraftmaschine
DE102006020793A1 (de) Schaltungsanordnung und Verfahren zum Betrieb einer Schaltungsanordnung
EP1055983B1 (de) Steuergerät mit mindestens zwei Steuereinheiten, davon eine mit externer Schnittstelle
EP4107592B1 (de) Verfahren zur herstellung eines softwarekopierschutzes für ein lenkungssteuergerät in einem fahrzeug, lenkungssteuergerät und computerprogrammprodukt

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R019 Grant decision by federal patent court
R020 Patent grant now final

Effective date: 20140103

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee