[go: up one dir, main page]

DE10357032A1 - Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher - Google Patents

Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher Download PDF

Info

Publication number
DE10357032A1
DE10357032A1 DE10357032A DE10357032A DE10357032A1 DE 10357032 A1 DE10357032 A1 DE 10357032A1 DE 10357032 A DE10357032 A DE 10357032A DE 10357032 A DE10357032 A DE 10357032A DE 10357032 A1 DE10357032 A1 DE 10357032A1
Authority
DE
Germany
Prior art keywords
software
key
signature
control unit
memory area
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.)
Ceased
Application number
DE10357032A
Other languages
English (en)
Inventor
Burkhard Kuhls
Thomas Kalverkamp
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.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
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 Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE10357032A priority Critical patent/DE10357032A1/de
Priority to JP2006515763A priority patent/JP2007507020A/ja
Priority to EP04730255A priority patent/EP1636700A1/de
Priority to KR1020057023774A priority patent/KR20060008338A/ko
Priority to PCT/EP2004/004664 priority patent/WO2004114131A1/de
Publication of DE10357032A1 publication Critical patent/DE10357032A1/de
Priority to US11/315,186 priority patent/US7584350B2/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

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

Abstract

Die Erfindung bezieht sich auf ein Verfahren zum Nachladen einer Updatesoftware (22) in einen beschreibbaren Speicherbereich (20) eines Bootsektors eines programmierbaren Steuergerätes (1) eines Fahrzeugs, umfassend die folgenden Schritte: Bereitstellen einer in einen außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich (10) des programmierbaren Steuergerätes (1) ladbaren Nachladesoftware (121, 122, 123), die in der Lage ist, im Steuergerät (1) die Installation der Updatesoftware (22) in den beschreibbaren Speicherbereich (20) des Bootsektors zu steuern, Laden der Nachladesoftware (121, 122, 123) und der Updatesoftware (22) in den außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich (10), Ausführen der Nachladesoftware (121, 122, 123) im Steuergerät zur Installation der Updatesoftware (22) in den beschreibbaren Speicherbereich (20) des Bootsektors.

Description

  • Die Erfindung bezieht sich auf ein Verfahren zum Nachladen einer Updatesoftware in einen beschreibbaren Speicherbereich im Bootsektor eines programmierbaren Steuergeräts eines Fahrzeugs.
  • Aus DE 100008974 A1 ist ein Verfahren zum Nachladen von Software in einen beschreibbaren Speicherbereich eines programmierbaren Steuergeräts eines Fahrzeugs bekannt, wobei die einzuspielende Software vor ihrer Übertragung in das Steuergerät mit Hilfe eines Public-Key-Verfahrens unter Verwendung eines ersten Schlüssels eines komplementären Schlüsselpaars gegen Verfälschung signiert wird und die signierte einzuspielende Software nach ihrer Übertragung in das Steuergerät durch dieses unter Verwendung eines zweiten Schlüssels des Schlüsselpaars auf ihre Unverfälschtheit hin überprüft wird.
  • Das Signaturverfahren dient dazu, zu verhindern, dass in das Steuergerät unkontrolliert Software nachgeladen werden kann. Dieses Verfahren setzt jedoch voraus, dass im Steuergerät ein Sicherheitsmechanismus vorhanden ist, der die genannte Überprüfung der signierten einzuspielenden Software durchführt. Um wirksame Sicherheit zu bieten, ist dieser Sicherheitsmechanismus selbst gegen unbefugte Eingriffe zu schützen.
  • Hierzu wird besagter Sicherheitsmechanismus üblicherweise in den Bootsektor des Steuergeräts eingebettet und der Bootsektor generell gegen nachträgliche Software-Änderungen geschützt.
  • Häufig geschieht dieses dadurch, dass der Bootsektor in einem nicht beschreibbaren Speicherbereich (ROM) des Steuergeräts angesiedelt ist. Der Speicherinhalt kann nachträglich nicht mehr verändert werden und ist insoweit gegen unbefugte Eingriffe gesichert.
  • Dies hat den Nachteil, dass der Bootsektor auch für befugte Eingriffe unzugänglich ist. So können in einem solchen Steuergerät weder Programmierfehler behoben, noch Sicherheitsmechanismen aktualisiert oder eventuell bekannt gewordene Schlüssel ausgetauscht werden. Auch besteht keine Möglichkeit zur Wiederherstellung des Bootsektors nach Veränderungen, die durch unkontrollierte physikalische Einwirkungen oder Alterungseffekte ausgelöst wurden, so genanntes „Bit-Kippen". Somit ist zur Einspielung von Software in den Bootsektor eines solchen Steuergeräts das bekannte Verfahren nicht anwendbar.
  • Um diesen Nachteil zu überwinden, kann der Bootsektor in einem veränderbaren nicht-flüchtigen, beispielsweise flashbaren, Speicherbaustein eingebettet werden. Dann muss der Bootsektor jedoch auf andere Weise gegen unbefugte Eingriffe gesichert werden.
  • Hierfür bekannte Schutzmechanismen sind jedoch unbefriedigend. Beispielsweise ist aus US 005937063A ein Verfahren bekannt, bei dem eine Boot-Up-Firmware, beispielsweise RIOS, gegen unautorisierten Eingriff dadurch geschützt wird, dass sie in einer gesicherten Boot-Vorrichtung eingebettet ist. Diese interagiert während des Bootens mit einem Host-Prozessor, wobei Boot-Up-Instruktionen ver- und entschlüsselt werden unter Verwendung eines geheimen Schlüssels, den die gesicherte Boot-Vorrichtung und der Host-Prozessor gemeinsam nutzen. Jenes sehr komplexe Verfahren ist für Steuergeräte in einem Fahrzeug zu langwierig, kostenaufwendig und insgesamt ungeeignet. Außerdem bleibt die Aufgabenstellung ungelöst, den steuergeräteseitigen Sicherheitsmechanismus, etwa besagten geheimen Schlüssel, aktualisieren zu können.
  • Aus US 005825878A ist ein anderes Verfahren bekannt, bei dem die Übertragung von Instruktionen und Daten in ein Steuergerät in verschlüsselter Form erfolgt und hierfür verwendete Sicherheitsmechanismen steuergeräteseitig wenigstens teilweise in einer physikalisch gesicherten Einheit eingebettet sind. Auch dort bleibt die Aufgabenstellung ungelöst, den steuergeräteseitigen Sicherheitsmechanismus, etwa einen geheimen Schlüssel, aktualisieren zu können.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zum Nachladen einer Updatesoftware in einen beschreibbaren Speicherbereich eines Bootsektor eines programmierbaren Steuergeräts eines Fahrzeugs bereitzustellen, das die genannten Nachteile überwindet, es insbesondere ermöglicht, auch steuergeräteseitige Sicherheitsmechanismen im Bootbereich auf gesicherte Weise aktualisieren zu können.
  • Diese Aufgabe wird gemäß Anspruch 1 durch ein Verfahren gelöst, welches die folgenden Schritte umfasst: Bereitstellen einer in einen außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich des programmierbaren Steuergerätes ladbaren Nachladesoftware, die in der Lage ist, im Steuergerät die Installation der Updatesoftware in den beschreibbaren Speicherbereich des Bootsektor zu steuern, Laden der Nachladesoftware und der Updatesoftware in den außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich, Ausführen der Nachladesoftware im Steuergerät zur Installation der Update-Software in den beschreibbaren Speicherbereich des Bootsektors.
  • Die Grundidee der vorliegenden Erfindung besteht darin, den Bootbereich durch bekannte Mechanismen so zu gestalten, dass auf ihn nicht direkt, sondern nur mittels einer eigens hierfür vorgesehenen Nachladesoftware zugegriffen werden kann. Die Ausführung der Nachladesoftware, durch welche die eigentliche Installation der Updatesoftware im Bootbereich gesteuert wird, kann dann von geeigneten Sicherheitskriterien abhängig gemacht werden, von denen besonders bevorzugte Gegenstand der abhängigen Ansprüche sind.
  • Beispielsweise kann vorgesehen sein, dass die Ausführung der Nachladesoftware nur unter Beachtung bereits im Steuergerät vorhandener Sicherheitsmechanismen für das Nachladen von Applikationen in das Steuergerät ermöglicht wird. Andererseits können auch mit der Nachladesoftware neue Sicherheitsmechanismen in das Steuergerät eingebracht werden, die die im Steuergerät vorhandenen Sicherheitsmechanismen aktualisieren oder ergänzen. Damit kann das Nachladen der Updatesoftware durch neu eingeführte Sicherheitsmechanismen abgesichert werden.
  • Nachlade- und Updatesoftware könne grundsätzlich zwar getrennt voneinander in das Steuergerät geladen werden; meist ist es jedoch günstiger, wenn die Updatesoftware in der Nachladesoftware enthalten ist, da dies die Komplexität im Vorfeld des Nachladevorgangs erhöht ohne den eigentlichen Nachladevorgang zu erschweren und somit den Sicherheitsgrad des Gesamtkonzeptes steigert ohne die Anwenderfreundlichkeit zu reduzieren.
  • Eine besonders günstige Variante des erfindungsgemäßen Verfahrens zeichnet sich dadurch aus, dass wenigstens auf einen Teil der Nachladesoftware und/oder der Updatesoftware ein Signaturverfahren angewendet wird, wobei die Software vor ihrer Übertragung in das Steuergerät mittels eines ersten Signaturschlüssels signiert und nach ihrer Übertragung in das Steuergerät mittels eines zweiten, im Steuergerät abgelegten Signaturschlüssels, auf ihre Unverfälschtheit hin überprüft wird. Damit kann sichergestellt werden, dass nur vom Inhaber des ersten Signaturschlüssels genehmigte und nach Signierung nicht weiter modifizierte Nachladesoftware im Steuergerät ausgeführt werden kann. Bei Scheitern der Signaturprüfung kann beispielsweise die konkrete Ausführung der Nachladesoftware unterbunden werden; alternativ ist es jedoch auch möglich bereits das Laden der Nachladesoftware in das Steuergerät von einer erfolgreichen Signaturprüfung abhängig zu machen.
  • Vorzugsweise ist der zweite Signaturschlüssel in dem beschreibbaren Speicherbereich des Bootsektors abgelegt. Damit wird eine gesicherte und Steuergeräte-interne Prüfung ermöglicht. Nach erfolgreicher Signaturprüfung kann der Signaturschlüssel auch selbst Gegenstand der Aktualisierung des Bootbereichs sein.
  • Zur Signierung und Signaturprüfung kann ein asymmetrisches Signaturverfahren angewendet werden, wobei der erste und der zweite Signaturschlüssel ein komplementäres Schlüsselpaar bilden. Ein derartiges asymmetrisches Verfahren ist beispielsweise das sog. Public-Key-Verfahren. Bei einer alternativen Variante des erfindungsgemäßen Verfahrens wird ein symmetrisches Signaturverfahren angewendet, wobei der erste und der zweite Signaturschlüssel identisch sind.
  • Zusätzlich oder alternativ zu dem oben erläuterten Signaturverfahren kann bei einer besonders vorteilhaften Weiterbildung des erfindungsgemäßen Verfahrensvorgesehen sein, dass wenigstens ein Teil der Nachladesoftware und/oder der Updatesoftware vor der Übertragung in das Steuergerät mittels eines Verschlüsselungsschlüssels verschlüsselt und nach der Übertragung in das Steuergerät von einer Entschlüsselungssoftware mittels eines in dem Steuergerät abgelegten Entschlüsselungsschlüssels entschlüsselt wird. Dies ist insbesondere günstig, wenn die eigentlichen, im Bootbereich einzusetzenden Informationen, d.h. die Updatesoftware bzw. deren wesentliche Anteile zu dem verschlüsselten Softwareteil gehören. Dadurch kann nämlich sichergestellt werden, dass Unbefugte keine Kenntnis von den neuen Daten erhalten können, was insbesondere Wichtig ist, wenn beispielsweise ein im Bootbereich abgelegter Schlüssel ausgetauscht oder aktualisiert werden soll.
  • Vergleichbar dem oben erläuterten Signaturverfahren wird bevorzugt, dass der Entschlüsselungsschlüssel in dem beschreibbaren Speicherbereich des Bootsektors abgelegt ist. Damit wird eine gesicherte und Steuergeräte-interne Prüfung ermöglicht. Nach erfolgreicher Entschlüsselung kann der Entschlüsselungsschlüssel auch selbst Gegenstand der Aktualisierung des Bootbereichs sein.
  • Ebenfalls vergleichbar dem oben erläuterten Signaturverfahren kann ein asymmetrisches Verschlüsselungsverfahren angewendet werden, wobei der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel ein komplementäres Schlüsselpaar bilden. Alternativ kann auch vorgesehen sein, dass ein symmetrisches Verschlüsselungsverfahren angewendet wird, wobei der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel identisch sind.
  • Vorteilhafterweise ist die Entschlüsselungssoftware in der Nachladesoftware enthalten und wird gemeinsam mit dieser und ggf. der Updatesoftware in das Steuergerät geladen. Der Vorteil liegt in der Erhöhung des Komplexitätsgrades des Gesamtsystems und somit in der Steigerung der Sicherheit, ohne dass die Benutzerfreundlichkeit litte oder die Gerätekomplexität erhöht werden müsste.
  • Bei Systemen mit Signatur und Verschlüsselung wenigstens von Teilen der Nachlade- und/oder der Updatesoftware ist wird im einfachsten Fall für Signierung und Verschlüsselung bzw. für Signaturprüfung und Entschlüsselung derselbe Schlüssel verwendet, d.h. im symmetrischen Fall insgesamt nur ein Schlüssel und im asymmetrischen Fall nur ein komplementäres Schlüsselpaar. Alternativ kann jedoch auch vorgesehen sein, dass für das Signaturverfahren und für die Ver- und Entschlüsselung unterschiedliche Schlüsselpaare von identischen oder komplementären Schlüsseln verwendet werden.
  • Durch das erfindungsgemäße Verfahren wird es möglich, Daten im Bootbereich, die z.B. auch dort hinterlegte Schlüssel für spezielle Sicherheitsmechanismen umfassen können, auf gesicherte Weise zu aktualisieren. Auch durch „Bit-Kippen" im Bootsektor beeinträchtigte Steuergeräte können durch Nachladen verloren gegangener Speicherinhalte wieder aufgefrischt werden.
  • Weitere Vorteile der Erfindung ergeben sich aus der nachfolgenden, speziellen Beschreibung sowie den Zeichnungen. Es zeigen:
  • 1: eine schematische Darstellung eines programmierbares Steuergerät mit seinen Speicherbelegungen
    • a) vor Durchführung des erfindungsgemäßen Verfahrens,
    • b) nach Durchführung des erfindungsgemäßen Verfahrens,
  • 2: eine schematische Darstellung der Verfahrensschritte eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens,
  • 3: eine schematische Darstellung von sich an die Verfahrensschritte von 2 anschließenden Verfahrensschritten.
  • Beispielhaft wird nachstehend der Austausch eines im Bootsektor vorhandenen Kryptoschlüssels dargelegt. Die Bezeichnung Kryptoschlüssel bezieht sich hier sowohl auf zur Signierung/Signaturprüfung als auch zur Ver-/Entschlüsselung verwendete, digitale Schlüssel. In dem gewählten Ausführungsbeispiel soll der neue Schlüssel nicht im Klartext, sondern nur verschlüsselt in das Steuergerät übertragen und die Nachladesoftware außerdem mittels eines Signaturverfahrens gegen Verfälschungen geschützt werden. In beiden Fällen wird im gezeigten Ausführungsbeispiel ein symmetrisches Verfahren angewendet. Insbesondere wird in dem gezeigten Ausführungsbeispiel für die Signierung/Signaturprüfung und die Ver-/Entschlüsselung derselbe symmetrische Schlüssel verwendet.
  • 1 zeigt in einer Schemazeichnung ein programmierbares Steuergerät 1 mit Speicherbelegungen entsprechend dem Ausführungsbeispiel. 1a bezieht sich auf den Zustand vor Durchführung des erfindungsgemäßen Verfahrens: Das Steuergerät umfasst einen beschreibbaren Speicherbereich 10 und einen beschreibbaren Bootsektorbereich 20. Im Speicherbereich 10 ist ein Steuerprogramm 11 gespeichert, das die bei Betrieb des Fahrzeugs die originären Funktionen des Steuergerätes steuert. Im Bootsektorbereich 20 befindet sich ein Kryptoschlüssel 21. Dieser soll durch einen Kryptoschlüssels 22 ersetzt werden, wobei nach Abschluss des Verfahrens (1b) der Speicherbereich 10 wiederum das Steuerprogramm 11 enthalten soll.
  • 2 zeigt in einer Schemazeichnung Verfahrensschritte zum gesicherten Einbringen des neuen Kryptoschlüssels 22.
  • In einem ersten Hauptschritt 100 wird eine signierte Nachladesoftware 123 durch zusammenstellen der Komponenten und anschließendes Signieren erzeugt. Hierzu wird in einem ersten Teilschritt 110 der Kryptoschlüssel 22 (d.h. der wesentliche Teil der Updatesoftware) verschlüsselt. Der hierbei verwendete Schlüssel ist so zu wählen, dass ein zur Entschlüsselung geeigneter Schlüssel 21 in dem Steuergerät 1 vorhanden ist. Im gezeigten Beispiel wird hierzu ebenfalls der Kryptoschlüssel 21 verwendet und damit die verschlüsselte Updatesoftware 111 erzeugt. Alternativ könnte zur asymmetrischen Verschlüsselung anstelle des Schlüssels 21 auch ein anderer Schlüssel verwendet werden, zu dem im Steuergerät ein geeigneter Komplementärschlüssel vorhanden ist. Die Verschlüsselung der Updatesoftware dient dazu, den Nachladevorgang gegen unbefugte lesende Zugriffe abzusichern und insoweit auch künftige unbefugte schreibende Eingriffe abzuwehren. Sie ist jedoch kein zwingendes Merkmal der vorliegenden Erfindung.
  • Im anschließenden Teilschritt 120 wird die verschlüsselte Updatesoftware 111 zur Absicherung gegen Verfälschung signiert. Dies geschieht im gezeigten Ausführungsbeispiel zusammen mit einer Applikation 121. Die Applikation 121 enthält eine zur Entschlüsselung der Updatesoftware 111 geeignete Entschlüsselungssoftware 122, um eine Entschlüsselung im Steuergerät zu ermöglichen. Liegt im Steuergerät bereits eine Entschlüsselungssoftware vor, so kann diese verwendet und auf das Nachladen einer Entschlüsselungssoftware verzichtet werden.
  • Der zur Signaturberechnung verwendete Schlüssel ist wiederum so gewählt, dass ein zur Signaturprüfung geeigneter Schlüssel im Steuergerät vorhanden ist. Im gezeigten Ausführungsbeispiel, in dem ein symmetrisches Verfahren gewählt ist, werden Signaturberechnung und Signaturprüfung werden mit dem gleichen Schlüssel 21 durchgeführt. Der Sicherheitsschutz eines symmetrischen Verfahrens ist nur wirksam, wenn es gelingt, den dafür verwendeten Schlüssel geheimzuhalten. Anstelle eines symmetrischen Verfahrens kann auch ein asymmetrisches Verfahren, z.B. ein Public-Key-Verfahren, verwendet werden. Auch in einem asymmetrischen Verfahren ist der zur Signaturberechnung verwendete Schlüssel so zu wählen, dass ein zur Signaturprüfung geeigneter Schlüssel im Steuergerät vorhanden ist. Sollte beispielsweise Schlüssel 21 zur Signaturprüfung eines asymmetrischen Verfahrens verwendet werden, so wäre die Signaturberechnung in Verfahrensschritt 120 mit einem zu Schlüssel 21 komplementären Schlüssel durchzuführen.
  • In einem zweiten Hauptschritt 200 wird das Steuergerät mit der Nachladesoftware 123 beladen. Hierzu wird sie zunächst im Speicherbereich 10 gespeichert, wobei sie im gezeigten Beispiel an die Stelle des Steuerprogramms 11 tritt. Das Überschreiben bereits zuvor vorhandener Daten ist zur Durchführung des erfindungsgemäßen Verfahrens nicht zwingend erforderlich, stellt in der Praxis jedoch eine häufig auftretende Notwendigkeit dar: Programmierbare Steuergeräte werden hinsichtlich der verfügbaren Speichergröße in der Regel aus Kostengründen auf die betriebsnotwendigen Applikationen ausgelegt, eine Speichervorhaltung für Nachladesoftware 123 erfolgt nicht. Um diese zur Durchführung des erfindungsgemäßen Verfahrens laden zu können, müssen daher in der Praxis aufgrund begrenzt verfügbaren Speicherplatzes meist bereits vorhandene Daten überschrieben werden.
  • Im Anschluss hieran erfolgt in Schritt 220 eine Signaturprüfung, im gezeigten Beispiel unter Verwendung des Schlüssels 21. Auf mögliche Alternativen wurde bereits in der Kommentierung zu Schritt 120 hingewiesen.
  • Wird bei der Signaturprüfung nicht der erforderliche Gutbefund erzielt, d.h. eine unerwünschte Datenveränderung festgestellt, so wird eine vorher einstellbare Folge ausgelöst. Beispielsweise weist das Steuergerät die nachgeladene Software zurück, so dass diese nicht im Steuergerät betrieben werden kann. Insbesondere wird dann auch keine Veränderung im Bootsektor vorgenommen, und insoweit ist das Steuergerät gegen unbefugte Eingriffe geschützt. Alternativ könnte auch nur eine Nutzerwarnung ausgelöst werden. Verläuft dagegen die Signaturprüfung positiv, so liegen im Speicherbereich 10 des Steuergeräts die verschlüsselte Updatesoftware 111 sowie die Nachladesoftware 121 ausführbar vor.
  • Zur Absicherung des zweiten Hauptschritt 200 kann auch ein anderer Sicherheitsmechanismus als eine Signaturprüfung verwendet werden, beispielsweise ein Zertifikat-basiertes Verfahren oder ein Verschlüsselungsverfahren. In einfachster Form kann auf eine Absicherung auch völlig verzichtet werden. In diesem Fall ist allerdings die nachzuladene Software nicht gegen unauthorisierte Eingriffe geschützt.
  • Auch können in einer anderen Ausführungsform die Übertragung von Nachladesoftware und Updatesoftware in das Steuergerät separate Schritte umfassen. Dies ist insbesondere dann sinnvoll, wenn in einem zunächst auszuführenden Installationsschritt ein Sicherheitsmechanismus in das Steuergerät eingebracht und aktiviert wird, der der Absicherung eines später auszuführenden Schrittes dient.
  • In einem weiteren Hauptschritt 300 wird durch Ausführen der Nachladesoftware 121, 122 der neue Schlüssel 22 an die Stelle des alten Schlüssels 21 abgelegt.
  • Hierzu wird zunächst in einem Teilschritt 310 durch Ausführen der in der Nachladesoftware 121 enthaltenen Entschlüsselungssoftware 122 der bisher nur in verschlüsselter Form 111 übertragene neue Schlüssel in Klartextform 22 wiederhergestellt und im anschließenden Teilschritt 320 im Bootsektor 20 an die Stelle des vorherigen Schlüssels 21 abgelegt.
  • Hiermit ist das hauptsächliche Ziel des gezeigten Beispiels, nämlich der Austausch der Schlüssel im Bootsektor bereits erreicht. Die anschließenden Verfahrensschritte betreffen die Wiederherstellung des Steuerprogramms 11 im Speicher 10 des Steuergeräts.
  • Im Hauptschritt 400 wird hierzu die nachzuladende Software einschließlich des Steuerprogramms 11 vorbereitet. Im vorliegenden Beispiel besteht Schritt 400 im wesentlichen in der Signierung des Steuerprogramms 11. Hierbei sind in den bisherigen Verfahrensschritten vorgenommene Veränderungen der Sicherheitsmechanismen im Bootsektor zu berücksichtigen. Erfolgte etwa zusätzlich oder anstelle des Tauschs der Schlüssel 21, 22 eine Veränderung des Sicherheitsmechanismus, beispielsweise Veränderungen der Schlüssellänge oder der Ersatz eines symmetrischen Signaturverfahrens durch ein asymmetrisches Signaturverfahren oder ein Zertifikat-basiertes Verfahren, so wäre die nachzuladende Software auf diesen neuen Sicherheitsmechanismus auszurichten.
  • Im gezeigten Beispiel wird ein symmetrisches Verfahren beibehalten und zur Signaturberechnung in Schritt 400 Schlüssel 22 verwendet. Alternativ kann wie bereits zuvor auch ein weiterer im Steuergerät vorhandener Schlüssel verwendet werden.
  • In einem weiteren Hauptschritt 500 wird das Steuergerät mit der Steuersoftware 11 beladen, und zwar unter Berücksichtung der vorgenommenen Aktualisierung der Sicherheitsmechanismen im Bootsektor des Steuergeräts. Im vorliegenden Beispiel wird sie signiert übertragen und in Schritt 510 in Speicherbereich 10 gespeichert, und zwar an die Stelle der Nachladesoftware 121. In einem späteren Schritt 520 erfolgt eine Verifikation der eingespielten Software, im gezeigten Beispiel eine Signaturprüfung, nun unter Verwendung des Schlüssels 22. Auf mögliche Alternativen wurde bereits in der Kommentierung zu Schritt 400 hingewiesen.
  • Verläuft die Signaturprüfung positiv, so liegt im Speicherbereich 10 des Steuergeräts nun die Steuersoftware 11 ausführbar vor, Insgesamt ist der in 1b dargestellte Zielzustand erreicht. Würde bei der Signaturprüfung der erforderliche Gutbefund nicht erzielt, so wäre dieses ein Hinweis darauf, dass der in 1b dargestellte Zielzustand verfehlt wurde, d.h. entweder die Aktualisierung des Bootsektors nicht gelungen ist oder bei der Wiedereinbringung der Steuersoftware 11 eine unerwünschte Datenveränderung erfolgte.

Claims (15)

  1. Verfahren zum Nachladen einer Updatesoftware (22) in einen beschreibbaren Speicherbereich (20) eines Bootsektor eines programmierbaren Steuergerätes (1) eines Fahrzeugs, umfassend die folgenden Schritte: • Bereitstellen einer in einen außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich (10) des programmierbaren Steuergerätes (1) ladbaren Nachladesoftware (121, 122, 123), die in der Lage ist, im Steuergerät (1) die Installation der Updatesoftware (22) in den beschreibbaren Speicherbereich (20) des Bootsektor zu steuern, • Laden der Nachladesoftware (121, 122, 123) und der Updatesoftware (22) in den außerhalb des Bootsektors gelegenen, beschreibbaren Speicherbereich (10), • Ausführen der Nachladesoftware (121, 122, 123) im Steuergerät zur Installation der Update-Software (22) in den beschreibbaren Speicherbereich (20) des Bootsektors.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Updatesoftware (22) in der Nachladesoftware (123) enthalten ist.
  3. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens auf einen Teil der Nachladesoftware (121, 122, 123) und/oder der Updatesoftware (22) ein Signaturverfahren angewendet wird, wobei die Software (121, 122, 123; 22) vor ihrer Übertragung in das Steuergerät (1) mittels eines ersten Signaturschlüssels (21) signiert und nach ihrer Übertragung in das Steuergerät (1) mittels eines zweiten, im Steuergerät (1) abgelegten Signaturschlüssels (21), auf ihre Unverfälschtheit hin überprüft wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der zweite Signaturschlüssel (21) in dem beschreibbaren Speicherbereich des Bootsektors abgelegt ist.
  5. Verfahren nach einem der Ansprüche 3 oder 4, dadurch gekennzeichnet, dass ein asymmetrisches Signaturverfahren angewendet wird, wobei der erste und der zweite Signaturschlüssel ein komplementäres Schlüsselpaar bilden.
  6. Verfahren nach einem der Ansprüche 3 oder 4, dadurch gekennzeichnet, dass ein symmetrisches Signaturverfahren angewendet wird, wobei der erste und der zweite Signaturschlüssel (21) identisch sind.
  7. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens ein Teil der Nachladesoftware (121, 122, 123) und/oder der Updatesoftware (22) vor der Übertragung in das Steuergerät mittels eines Verschlüsselungsschlüssels verschlüsselt und nach der Übertragung in das Steuergerät von einer Entschlüsselungssoftware (122) mittels eines in dem Steuergerät abgelegten Entschlüsselungsschlüssels entschlüsselt wird.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Entschlüsselungsschlüssel (21) in dem beschreibbaren Speicherbereich (20) des Bootsektors abgelegt ist.
  9. Verfahren nach einem der Ansprüche 7 oder 8, dadurch gekennzeichnet, dass ein asymmetrisches Verschlüsselungsverfahren angewendet wird, wobei der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel ein komplementäres Schlüsselpaar bilden.
  10. Verfahren nach einem der Ansprüche 7 oder 8, dadurch gekennzeichnet, dass ein symmetrisches Verschlüsselungsverfahren angewendet wird, wobei der Verschlüsselungsschlüssel (21) und der Entschlüsselungsschlüssel (21) identisch sind.
  11. Verfahren nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass die Entschlüsselungssoftware (122) in der Nachladesoftware (123) enthalten ist.
  12. Verfahren nach einem der Ansprüche 7 bis 11, soweit rückbezogen auf einen der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass der erste Signaturschlüssel und der Verschlüsselungsschlüssel identisch sind und dass der zweite Signaturschlüssel und der Entschlüsselungsschlüssel identisch sind.
  13. Verfahren nach einem der Ansprüche 7 bis 11, soweit rückbezogen auf einen der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass für das Signaturverfahren und für die Ver- und Entschlüsselung unterschiedliche Schlüsselpaare von identischen oder komplementären Schlüsseln verwendet werden.
  14. Verwendung des Verfahrens nach einem der vorangehenden Ansprüche zum Austausch eines im Bootsektor (20) des Steuergerätes (1) abgelegten Schlüssels (21) durch einen neuen Schlüssel (22).
  15. Verwendung des Verfahrens nach einem der vorangehenden Ansprüche zum Wiederherstellen von Speicherinhalten des Bootsektors (20) des Steuergerätes nach unkontrollierter physikalischer Veränderung („Bit-Kippen") oder zur nachträglichen Einführung, Erweiterung oder Aktualisieren von Software-basierten Sicherheitsmechanismen
DE10357032A 2003-06-24 2003-12-03 Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher Ceased DE10357032A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE10357032A DE10357032A1 (de) 2003-06-24 2003-12-03 Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher
JP2006515763A JP2007507020A (ja) 2003-06-24 2004-04-29 プログラミング可能な読出し専用メモリのブートセクタ内にソフトウェアをリロードするための方法
EP04730255A EP1636700A1 (de) 2003-06-24 2004-04-29 Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
KR1020057023774A KR20060008338A (ko) 2003-06-24 2004-04-29 프로그래밍 가능한 읽기 전용 메모리의 부트 섹터에소프트웨어를 부팅 업 하는 방법
PCT/EP2004/004664 WO2004114131A1 (de) 2003-06-24 2004-04-29 Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
US11/315,186 US7584350B2 (en) 2003-06-24 2005-12-23 Method for booting up software in the boot sector of a programmable read-only memory

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10328529 2003-06-24
DE10328529.6 2003-06-24
DE10357032A DE10357032A1 (de) 2003-06-24 2003-12-03 Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher

Publications (1)

Publication Number Publication Date
DE10357032A1 true DE10357032A1 (de) 2005-01-13

Family

ID=33520947

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10357032A Ceased DE10357032A1 (de) 2003-06-24 2003-12-03 Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher

Country Status (2)

Country Link
CN (1) CN100422930C (de)
DE (1) DE10357032A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016206977A1 (de) * 2015-06-23 2016-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren, server, firewall, steuergerät, und system zur programmierung eines steuergeräts eines fahrzeugs

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE540371T1 (de) * 2008-06-23 2012-01-15 St Ericsson Sa Elektronische vorrichtung und verfahren zur software- oder firmwareaktualisierung einer elektronischen vorrichtung
DE102010040115A1 (de) * 2010-09-01 2012-03-01 Robert Bosch Gmbh Verfahren zum Bereitstellen von Informationen für ein Steuergerät
EP3683784A1 (de) * 2019-01-21 2020-07-22 Ngrave bvba Langfristige offline-verwaltung von kryptographischen parametern
CN114442958B (zh) * 2022-01-28 2023-08-11 苏州浪潮智能科技有限公司 一种分布式存储系统的存储优化方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0816970A2 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Authentifizierung von Firmwaren
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
US6266809B1 (en) * 1997-08-15 2001-07-24 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US20020073316A1 (en) * 1998-02-03 2002-06-13 Thomas Collins Cryptographic system enabling ownership of a secure process
DE10141737C1 (de) * 2001-08-25 2003-04-03 Daimler Chrysler Ag Verfahren zur sicheren Datenübertragung innerhalb eines Verkehrsmittels
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1083589C (zh) * 1996-05-24 2002-04-24 明碁电脑股份有限公司 将软件程序载入电可擦可编程只读存储器的方法
DE10008974B4 (de) * 2000-02-25 2005-12-29 Bayerische Motoren Werke Ag Signaturverfahren
DE10112056A1 (de) * 2001-03-14 2002-09-26 Jungheinrich Ag Verfahren zur Änderung von Daten in einem nicht flüchtigen, elektrisch löschbaren Speicher

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0816970A2 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Authentifizierung von Firmwaren
US6266809B1 (en) * 1997-08-15 2001-07-24 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
US20020073316A1 (en) * 1998-02-03 2002-06-13 Thomas Collins Cryptographic system enabling ownership of a secure process
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code
DE10141737C1 (de) * 2001-08-25 2003-04-03 Daimler Chrysler Ag Verfahren zur sicheren Datenübertragung innerhalb eines Verkehrsmittels

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016206977A1 (de) * 2015-06-23 2016-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren, server, firewall, steuergerät, und system zur programmierung eines steuergeräts eines fahrzeugs
US10650137B2 (en) 2015-06-23 2020-05-12 Bayerische Motoren Werke Aktiengesellschaft Method, server, firewall, control device, and system for programming a control device of a vehicle

Also Published As

Publication number Publication date
CN100422930C (zh) 2008-10-01
CN1809814A (zh) 2006-07-26

Similar Documents

Publication Publication Date Title
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE10126451A1 (de) Verfahren zum Aktivieren oder Deaktivieren von in einer Speicheranordnung eines Mikrorechner-Systems abgelegten Daten
DE10318031A1 (de) Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
WO1998016883A1 (de) Elektronische datenverarbeitungsschaltung
DE102009041176A1 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
EP1636700A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
DE10131575A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP3418933A1 (de) Edge-gerät und verfahren zum betrieb eines edge-geräts
DE10357032A1 (de) Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher
EP2394232B1 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP4141722A1 (de) Sicheres betreiben einer industriellen steuerungsvorrichtung zusammen mit einem ai-modul
EP2524333B1 (de) Verfahren zum bereitstellen eines sicheren zählers auf einem endgerät
DE19716015A1 (de) Einbringen von Information auf einer Chipkarte
DE102014213454A1 (de) Verfahren und System zur Erkennung einer Manipulation von Datensätzen
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP1318451B1 (de) Verfahren zum Ausführen eines Programms auf einem Computer
DE102004008180A1 (de) Verfahren zum sicheren Betrieb eines tragbaren Datenträgers
DE102004047191A1 (de) Manipulationsgeschütztes Mikroprozessorsystem und Betriebsverfahren dafür
DE102014113441A1 (de) Schutz vor Software-Komponenten mittels Verschlüsselung
DE10131579A1 (de) Verfahren zum Programmieren einer Speicheranordnung eines Mikrorechner-Systems mit Daten
DE10215626B4 (de) Verfahren zur Änderung von Verschlüsselungsalgorithmen bei geschützter Software oder geschützten Daten
DE4423565C1 (de) Krypto-Schaltkreis

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8110 Request for examination paragraph 44
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20140318