Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR UPDATING SOFTWARE OF A MOTOR VEHICLE CONTROL UNIT
Document Type and Number:
WIPO Patent Application WO/2019/081395
Kind Code:
A1
Abstract:
The invention relates to a method for updating the software of at least one motor vehicle control unit (4, 6, 8) built into a motor vehicle (2), said method comprising the following steps: (A) transmitting a preliminary command, particularly a command for blocking the motor vehicle (2), from an updating device (12a, 12b) to the motor vehicle control unit (4, 6, 8); (B) transmitting a confirmation message from the motor vehicle control unit (4, 6, 8); (C) transmitting new software from the updating device (12a, 12b) to the motor vehicle control unit (4, 6, 8); (D) soliciting a characteristic value from at least one motor vehicle control unit (4, 6, 8) built into the motor vehicle (2); (E) calculating an activation code on the basis of the solicited characteristic values; (F) using the calculated activation code for the subsequent communication with the motor vehicle control unit (4, 6, 8) that has blocked the vehicle function; and (G) implementing a command for reinstating the drivability of the motor vehicle (2) by the motor vehicle control unit (4, 6, 8) only once the motor vehicle control unit (4, 6, 8) has directly or indirectly checked whether the activation code is correct.

Inventors:
KRIPPNER DANIEL (DE)
HEYL ANDREAS (US)
SPRAUL MANFRED (DE)
Application Number:
PCT/EP2018/078830
Publication Date:
May 02, 2019
Filing Date:
October 22, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F8/65; G06F21/57
Foreign References:
DE102008056745A12010-05-12
US20170060559A12017-03-02
US20170134164A12017-05-11
Other References:
None
Download PDF:
Claims:
Patentansprüche

1. Verfahren des Aktualisierens einer Software wenigstens eines in einem

Kraftfahrzeug (2) verbauten Kfz -Steuergerätes (4, 6, 8), wobei das Verfahren umfasst:

(A) Übertragen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), von einer Aktualisierungsvorrichtung (12a, 12b) an wenigstens ein Kfz-Steuergerät (4, 6, 8);

(B) Übertragen einer Bestätigungsnachricht, welche die Ausführung des vorbereitenden Befehls bestätigt, von dem wenigstens eine Kfz-Steuergerät (4, 6, 8) an die Aktualisierungsvorrichtung (12a, 12b);

(C) Übertragen neuer Software von der Aktualisierungsvorrichtung (12a, 12b) an das wenigstens eine Kfz-Steuergerät (4, 6, 8) und Installieren der neuen Software auf dem wenigstens einen Kfz-Steuergerät (4, 6, 8);

(D) Abfragen eines von der Software abhängigen Kennwertes, insbesondere der Software-Versionsnummer, wenigstens eines Kfz -Steuergerätes (4, 6, 8);

(E) Berechnen eines Aktivierungscodes aus dem wenigstens einen abgefragten Kennwert;

(F) Verwendung dieses Aktivierungscodes in der nachfolgenden Kommunikation mit wenigstens einem Kfz-Steuergerät (4, 6, 8);

(G) Ausführen eines Befehls, insbesondere eines Befehls zum Wiederherstellen der Fahrbereitschaft des Kraftfahrzeugs (2), durch das wenigstens eine Kfz-Steuergerät (4, 6, 8), nur dann, wenn das Kfz-Steuergerät (4, 6, 8) den Aktivierungscode direkt oder indirekt geprüft und festgestellt hat, dass ein gültiger Aktivierungscode vorliegt.

2. Verfahren nach Anspruch 1, wobei in Schritt (F) der Aktivierungscode von der Aktualisierungsvorrichtung (12a, 12b) an das wenigstens eine Kfz- Steuergerät (4, 6, 8) übertragen wird und von diesem Kfz-Steuergerät nach einem vordefinierten Algorithmus validiert wird; und/oder wobei in Schritt (F) der Aktivierungscode verwendet wird, um mindestens einen Befehl oder einen Algorithmus, der für die Kommunikation mit dem wenigsten einen Kfz- Steuergerät (4, 6, 8) verwendet wird, mit diesem Aktivierungscode zu entschlüsseln; und/oder wobei in Schritt (F) der Aktivierungscode zu einer Authentisierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem wenigsten einen Kfz -Steuergerät (4, 6, 8) verwendet wird.

Verfahren nach einem der vorangehenden Ansprüche, wobei das Verfahren umfasst, vor Schritt (C) einen Schlüssel von dem wenigstens einen Kfz- Steuergerät (4, 6, 8) an die Aktualisierungsvorrichtung (12a, 12b) zu übertragen und in Schritt (C) einen Startcode zu verwenden, der aus wenigstens diesem Schlüssel berechnet worden ist.

Verfahren nach Anspruch 1 oder 2, wobei das Verfahren umfasst, vor Schritt (C) einen Schlüssel von der Aktualisierungsvorrichtung (12a, 12b) an das wenigstens eine Kfz -Steuergerät (4, 6, 8) zu senden und wobei das angesprochene Kfz -Steuergerät eine insbesondere von diesem Schlüssel abhängige Nachricht an die an die Aktualisierungsvorrichtung (12a, 12b) zurücksendet und wobei die Aktualisierungsvorrichtung (12a, 12b) in Schritt (C) einen Startcode verwendet, der aus wenigstens dieser Nachricht berechnet worden ist.

Verfahren nach Anspruch 3 oder 4, wobei in Schritt (C) der Startcode von der Aktualisierungsvorrichtung (12a, 12b) an das wenigstens eine Kfz- Steuergerät (4, 6, 8) übertragen wird und von diesem Kfz-Steuergerät nach einem vordefinierten Algorithmus validiert wird; und/oder wobei in Schritt (C) der Startcode verwendet wird, um mindestens einen Befehl oder einen Algorithmus, der für die Kommunikation mit dem wenigsten einen Kfz-Steuergerät (4, 6, 8) verwendet wird, mit diesem Startcode zu entschlüsseln;

und/oder wobei in Schritt (C) der Startcode zu einer Authentisierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem wenigsten einen Kfz- Steuergerät (4, 6, 8) verwendet wird.

Verfahren nach einem der Ansprüchen 1 bis 5, wobei das Verfahren umfasst, in Schritt (C) die Daten über ein Gateway (34) von der Aktualisierungsvorrichtung (12a, 12b) an das Kfz-Steuergerät (4, 6, 8) zu übertragen, wobei das Gateway (34) insbesondere eine Prüfung der Nachrichten durchführt und nur zulässige Nachrichten weiterleitet.

7. Verfahren nach Anspruch 6, wobei die Aktualisierungsvorrichtung (12a, 12b) das Gateway (34) für mindestens eine Nachricht freischalten muss, und wobei hierfür ein Gateway-Code verwendet wird, der wenigstens aus einer von einem Kfz -Steuergerät (4, 6, 8) gesendeten Nachricht berechnet worden ist.

8. Verfahren nach Anspruch 7, wobei der Gateway- Freischaltcode von der Aktualisierungsvorrichtung (12a, 12b) an das Gateway (34) übertragen wird und von diesem Gateway (34) nach einem vordefinierten Algorithmus validiert wird; und/oder wobei der Gateway- Freischaltcode verwendet wird, um mindestens einen Befehl oder einen Algorithmus, der für die Freischaltung des Gateways (34) verwendet wird, mit diesem Gateway- Freischaltcode zu entschlüsseln; und/oder wobei der Gateway- Freischaltcode zur Authenti- sierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem Gateway (34) verwendet wird.

9. Verfahren nach einem der vorangehenden Ansprüche, wobei das Verfahren das Aktualisieren der Software mehrerer Kfz -Steuergeräte (4, 6, 8) umfasst, wobei ein Code, der aus Kennwerten wenigstens des n-ten Kfz-Steuerge- rätes (4, 6, 8), dessen Software aktualisiert worden ist, berechnet worden ist, für die Kommunikation mit dem ein n+l-tes Kfz-Steuergerät (4, 6, 8) verwendet wird.

10. Verfahren nach einem der vorangehenden Ansprüche, wobei das Abfragen des Kennwertes eines oder mehrerer Kfz-Steuergeräte (4, 6, 8) umfasst, den/die Kennwert(e) eines oder mehrerer Kfz-Steuergeräte (4, 6, 8) abzufragen, die mit dem wenigstens einen Kfz-Steuergerät (4, 6, 8), dessen Software aktualisiert worden ist, zusammenwirken.

11. Verfahren nach einem der vorangehenden Ansprüche, wobei das Verfahren umfasst, einen der Codes aus dem Inhalt wenigstens eines Teilbereiches eines Speichers (7) des Kfz -Steuergerätes (4, 6, 8) zu berechnen; und/oder wobei das Verfahren umfasst, einen der Codes aus einer Benutzereingabe, einer Fahrgestellnummer und/oder einer Fahrzeugidentifikationsnummer zu berechnen; und/oder wobei das Verfahren umfasst, Daten über die Software- Aktualisierung an ein externes Backend zu versenden und die Rückmeldung des Backend für die Berechnung eines Codes zu verwenden.

12. Verfahren nach einem der vorangehenden Ansprüche, wobei die Prüfung erfolgt, in dem das Kfz -Steuergerät (4, 6, 8), insbesondere das Kfz- Steuergerät (4, 6, 8), dass die wenigstens eine Fahrfunktion blockiert hat und/oder das Kfz-Steuergerät (4, 6, 8), dass umprogrammiert werden soll und/oder das Kfz-Steuergerät (4, 6, 8), dass als Gateway (34) fungiert, empfangene Nachrichten, die insbesondere Befehle und/oder Parameter enthalten, mit gespeicherten Referenzwerten vergleicht; und/oder wobei die Prüfung erfolgt, in dem das Kfz-Steuergerät (4, 6, 8) die empfangenen Nachrichten als Parameter für wenigstens eine Einwegfunktion verwendet und die Ergebnisse mit gespeicherten Referenzwerten vergleicht, und/oder wobei die Prüfung durch den erfolgreichen Abschluss einer Authentisierung erfolgt.

13. Aktualisierungsvorrichtung (12a, 12b) zum Aktualisieren der Software

wenigstens eines in einem Kraftfahrzeug (2) verbauten Kfz -Steuergerätes (4,

6, 8), wobei die Aktualisierungsvorrichtung (12a, 12b) aufweist: eine Speichervorrichtung (13), die zur Speicherung der zu aktualisierenden Software ausgebildet ist; eine Sendevorrichtung (17), die zum Übertragen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), an das Kfz-Steuergerät (4, 6, 8) ausgebildet ist; eine Empfangsvorrichtung (19), die zum Empfangen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung des empfangenen vorberei tenden Befehls durch das Kfz-Steuergerät (4, 6, 8) bestätigt; wobei die Sendevorrichtung (17) ausgebildet ist, die zu aktualisierende Software an das Kfz-Steuergerät (4, 6, 8) zu übertragen; wobei die Empfangsvorrichtung (19) ausgebildet ist, wenigstens einen Kennwert, insbesondere die Software-Versionsnummer, eines oder mehrerer Kfz- Steuergeräte (4, 6, 8) zu empfangen; wobei die Aktualisierungsvorrichtung (12a, 12b) eine Berechnungsvorrichtung (26) aufweist, die ausgebildet ist, aus den empfangenen Kennwerten einen Code, insbesondere einen Aktivierungscode und/oder einen Code zum Start der Programmierung und/oder einen Code zum Freischalten eines Gateways, zu berechnen; und wobei die Sendevorrichtung (17) so ausgebildet ist, dass dieser Code für die Kommunikation mit dem Kfz-Steuergerät (4, 6, 8) benötigt wird.

14. Ein Kfz-Steuergerät für ein Kraftfahrzeug (2), das mindestens einen

Hypervisor (38) und eine Aktualisierungsvorrichtung (12b) nach Anspruch 13 enthält, wobei der Hypervisor (38) nach einer erfolgreichen oder erfolglosen Aktualisierung insbesondere die Speichervorrichtung (13) und/oder die Empfangsvorrichtung (19) und/oder die Sendevorrichtung (17) und/oder die Berechnungsvorrichtung (26) der Aktualisierungsvorrichtung (12b) zumindest teilweise löscht und/oder zurücksetzt.

15. Kfz-Steuergerät (4, 6, 8) für ein Kraftfahrzeug (2), das ausgebildet ist, mit einer Aktualisierungsvorrichtung (12a, 12b) und anderen Kfz-Steuergeräten (4, 6, 8) zusammenzuwirken, wobei das Kfz-Steuergerät (4, 6, 8) umfasst: eine Empfangsvorrichtung (28), die zum Empfangen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), von einer Aktualisierungsvorrichtung (12a, 12b) ausgebildet ist; eine Sendevorrichtung (30), die zum Übertragen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät (4, 6, 8) bestätigt; wobei die Sendevorrichtung (30) ausgebildet ist, einen Schlüsse, insbesondere einen von der vorherigen Kommunikation zwischen der Aktualisierungsvorrichtung (12a, 12b) abhängigen Schlüssel, an die Aktualisierungsvorrichtung (12a, 12b) zu übertragen, wobei der Schlüssel insbesondere davon abhängt, ob die Fahrzeugfunktion blockiert wurde; wobei die Empfangsvorrichtung (28) ausgebildet ist, von der Aktualisierungsvorrichtung (12a, 12b) empfangenen Nachrichten an eine Vergleichs- und Freigabevorrichtung (32) weiterzuleiten, die ausgebildet ist, die Nachrichten nach einem vorgegebenen Algorithmus zu validieren und die Fahrbereitschaft des Kraftfahrzeugs (2) nur bei einer positiven Validierung wiederherzustellen.

Description:
Beschreibung Titel

Verfahren und Vorrichtung zum Aktualisieren von Software eines Kfz-Steuergerätes

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Aktualisieren der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergerätes.

Stand der Technik

Die Aktualisierung von Software von Kfz -Steuergeräten befindet sich in einem Spannungsfeld, da die Kfz-Steuergeräte einerseits Sicherheitsanforderungen („Safety-Goals") bis hin zu ASIL-D (ISO 26262) umsetzen müssen, andererseits für die Aktualisierung der Software der Kfz-Steuergeräte Diagnosetester oder andere externe Geräte verwendet werden, die komplexe Programme und viel bereits existierende Software enthalten und die daher nicht ohne weiteres die Anforderungen einhalten können, die gestellt werden, wenn ASIL Sicherheitsziele tangiert werden.

Da ein fehlerhaftes Aktualisieren der Software der Kfz-Steuergeräte zu einer Verletzung von Safety-Goals bis zu ASIL D führen kann, ist die Verwendung derartiger Komponenten nicht ohne weiteres zulässig. Die Verwendung von derartigen Komponenten ist jedoch zulässig, wenn die Rückwirkungsfreiheit im Sinne der ISO 26262-1:2011, §1.49 nachgewiesen ist.

In einem einfachen Fall wird daher eine Ende-zu-Ende Absicherung verwendet: Das ASIL-konforme Zielsteuergerät prüft sich nach einer Aktualisierung selbst und schaltet sich nur frei, wenn es zu dem Ergebnis kommt, dass die Software- Aktualisierung fehlerfrei erfolgt ist. Folglich ist eine Rückwirkungsfreiheit für die Aktualisierungsvorrichtung gegeben.

In einem modernen Kraftfahrzeug wirken in der Regel mehrere Kfz-Steuergeräte eng zusammen: Ein Motorsteuergerät kann z.B. die Funktion aufweisen, die Maximalgeschwindigkeit zu begrenzen. Hierfür erhält das Motorsteuergerät von einem ESP-Steuergerät Informationen über die Fahrzeuggeschwindigkeit. Zusätzlich wird von einem Getriebesteuergerät der aktuell eingelegte Gang abgefragt, damit das Motorsteuergerät auf Grundlage des eingelegten Ganges und der Motordrehzahl eine Plausibilisierung der Fahrzeuggeschwindigkeit durchführen kann.

Durch die zuvor beschriebene "einfache" Selbstplausibilisierung eines aktualisierten Kfz -Steuergerätes kann jedoch eine durch die Aktualisierung erzeugte inkompatible Konfiguration des Gesamtsystems nicht zuverlässig erkannt werden.

Offenbarung der Erfindung:

Es ist daher eine Aufgabe der Erfindung, ein Verfahren und eine Vorrichtung zum sicheren Aktualisieren der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergerätes bereitzustellen. Es ist insbesondere eine Aufgabe, sicherzustellen, dass sich die Gesamtsystemkonfiguration aller in dem Kraftfahrzeug verbauten Kfz -Steuergeräte nach dem Aktualisieren der Software in einem zueinander kompatiblen und betriebssicheren Zustand befindet.

Gemäß einem Ausführungsbeispiel der Erfindung umfasst ein Verfahren des Aktualisierens der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergerätes wenigstens die folgenden Schritte:

(A) Übertragen eines Befehls, insbesondere eines Befehls zum Blockieren wenigstens einer Funktion des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung an das wenigstens eine Kfz-Steuergerät;

(B) Übertragen einer Bestätigungsnachricht, welche die Ausführung des vorbereitenden Befehls bestätigt, von dem Kfz-Steuergerät an die Aktualisierungsvorrichtung;

(C) Übertragen neuer Software von der Aktualisierungsvorrichtung an das wenigstens Kfz-Steuergerät und Installierten der neuen Software auf dem wenigstens einen Kfz-Steuergerät;

(D) Abfragen eines von der Software abhängigen Kennwertes, insbesondere der Software-Versionsnummer, eines oder mehrerer Kfz-Steuergeräte, die in dem Kraftfahrzeug verbaut sind; (E) Berechnen eines Aktivierungscodes aus den abgefragten Kennwerten;

(F) Kommunizieren der Aktualisierungsvorrichtung mit wenigstens dem Kfz- Steuergerät, das wenigstens eine Funktion des Kraftfahrzeugs blockiert hat, unter Verwendung dieses Aktivierungscodes, wobei die Kommunikation so aufgebaut ist, dass das Kfz -Steuergerät sicher erkennt, wenn die Aktualisierungsvorrichtung nicht über den richtigen Aktivierungscode verfügt;

(G) Ausführen eines Befehls zum Reaktivieren der wenigstens einen blockierten Funktion des Kraftfahrzeugs durch das Kfz-Steuergerät nur, nachdem das Kfz-

Steuergerät direkt oder indirekt geprüft und bestätigt hat, dass der richtige Aktivierungscode vorliegt.

Eine Aktualisierungsvorrichtung zum Aktualisieren der Software eines in einem Kraftfahrzeug verbauten Kfz -Steuergerätes, hat gemäß einen Ausführungsbeispiel der Erfindung eine Speichervorrichtung, die zur Speicherung der zu aktualisierenden Software ausgebildet ist, eine Sendevorrichtung, die zum Übertragen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs, an das Kfz-Steuergerät ausgebildet ist; und eine Empfangsvor- richtung, die zum Empfangen einer Bestätigungsnachricht, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät bestätigt, ausgebildet ist.

Die Sendevorrichtung ist ausgebildet, die zu aktualisierenden Software an das Kfz-Steuergerät zu übertragen. Die Empfangsvorrichtung ist ausgebildet, einen von der Software abhängigen Kennwert, insbesondere eine aktuelle Software- Versionsnummer, eines oder mehrerer Kfz -Steuergeräte zu empfangen. Die Aktualisierungsvorrichtung weist eine Berechnungsvorrichtung auf, die ausgebildet ist, aus den empfangenen Kennwerten einen Aktivierungscode zu berechnen; und die Sendevorrichtung ist ausgebildet, unter Nutzung dieses

Aktivierungscodes mit mindestens einem anderen Kfz-Steuergerät zu

kommunizieren.

Ein Kfz-Steuergerät, gemäß einem Ausführungsbeispiel der Erfindung ist ausge- bildet, mit einer Aktualisierungsvorrichtung zusammenzuwirken, um ein Verfahren gemäß einen Ausführungsbeispiel der Erfindung auszuführen. Das Kfz-Steuergerät umfasst dazu insbesondere eine Empfangsvorrichtung, die zum Empfangen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung ausgebildet ist, und eine Sendevorrichtung, die zum Übertragen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät bestätigt. Die Sendevorrichtung ist ausgebildet, einen von der Software abhängigen Kennwert, insbesondere eine aktuelle Software- Versionsnummer, an die Aktualisierungsvorrichtung zu übertragen. Die

Empfangsvorrichtung ist ausgebildet, mit der Aktualisierungsvorrichtung zu kommunizieren. Das Kfz-Steuergerät weist darüber hinaus eine Vergleichs- und Freigabevorrichtung auf, die ausgebildet ist, die empfangenen Nachrichten zu validieren und die Fahrbereitschaft des Kraftfahrzeugs nur dann wiederherzustellen, wenn diese Validierung erfolgreich abgeschlossen wurde.

Es müssen hierbei nicht alle Funktionen in allen Kfz-Steuergeräten vorhanden sein. Insbesondere muss die Sendevorrichtung des Kfz-Steuergeräts, dass den Befehl zum Blockieren verarbeitet, nicht zwingend ausgebildet, einen von der Software abhängigen Kennwert, insbesondere eine aktuelle Software-Versionsnummer, an die Aktualisierungsvorrichtung zu übertragen. Diese Funktion muss nur in dem zu aktualisierenden Kfz-Steuergerät vorhanden sein.

Die Funktion, zum Blockieren des Kraftfahrzeugs, sowie die Vergleichs- und Freigabevorrichtung muss nur in einem Kfz-Steuergerät im Fahrzeug ausgebildet sein.

Der Aktivierungscode ist auf der Aktualisierungsvorrichtung nicht vorgehalten, sondern er wird aus den Rückmeldungen aus der Umgebung (andere Kfz- Steuergeräte, Backend, Fahrerinterkation, Support Hotline, etc.) berechnet.

Die Entscheidung über die Reaktivierung der Fahrzeugfunktion wird aus der Aktualisierungsvorrichtung in ein anderes Kfz-Steuergerät verlagert: Die

Aktualisierungsvorrichtung berechnet den Aktivierungscode aus den

Rückmeldungen der anderen Kfz-Steuergeräte und verwendet den Code insbesondere für die Reaktivierung der Fahrzeugfunktion. Der Code ist der Aktualisierungsvorrichtung nicht bekannt, folglich gibt es keine (potentiellen Fehlentscheidungen, die in der Aktualisierungsvorrichtung getroffen werden können.

Der Aktivierungscode wird von der Aktualisierungsvorrichtung insbesondere aus Daten berechnet, die von den aktualisierten (umprogrammierten) Kfz- Steuergeräten abgefragt werden. Wenn wenigstens eines der Kfz -Steuergeräte nicht erfolgreich aktualisiert worden ist und/oder sich nicht in dem erwarteten Zustand befindet, liefert es abweichende Daten aus denen die Aktualisierungsvorrichtung einen ab- weichenden Aktivierungscode berechnet, der anschließend beim Versuch der

Reaktivierung der Fahrzeugfunktion zu einer Ablehnung führt.

Es ist ein Grundgedanke der Erfindung.dass der Aktivierungscode nicht von der Aktualisierungsvorrichtung mit einem Referenzwert verglichen wird. Bei einem solchen Ansatz könnte der Vergleich durch einen Fehler übersprungen oder das

Ergebnis des Vergleichs falsch interpretiert werden. Folglich gibt es eine Rückwirkung von der Aktualisierungsvorrichtung auf Fahrzeugfunktionen.

Die Aktualisierungsvorrichtung kann das Ergebnis einer Einwegfunktion des Aktivierungscodes vorhalten und vor Schritt (F) und (G) vorab kontrollieren, ob das Wiederherstellen der blockierten Fahrzeugfunktion erfolgreich sein wird. Insbesondere könnten hierfür Hash-Funktionen wie MD4, MD5, SHA1 oder SHA256 verwendet werden.

Der Aktivierungscode kann in Schritt (F) insbesondere direkt als Wert an das Gerät geschickt werden, dass die Fahrzeugfunktion blockiert hat. Der Wert kann insbesondere eine Service ID („SID") darstellen oder als Parameter im Rahmen einer U DS Kommunikation verwendet werden (ISO 14229:2013). Auf diesem Gerät muss der Aktivierungscode dann validiert werden, beispielsweise durch einen Vergleich mit einem Referenzcode, oder indem geprüft wird, ob das Ergebnis einer Einwegfunktion einem Referenzwert entspricht.

Als Einwegfunktionen könnte insbesondere MD4, MD5, SHA1 oder die

Multiplikation zweier (Prim-) Zahlen verwendet werden.

Alternativ kann der Aktivierungscode in Schritt (F) in den Algorithmus für eine Authentisierung der Aktualisierungsvorrichtung gegenüber dem wenigstens einen Kfz -Steuergerät eingehen. Diese Authentisierung könnte insbesondere entsprechend UDS-Security- Access (siehe ISO 14229-1:2013, §9.4 - Dienst 0x27) oder entsprechend ASAM XCP MCD-1„UNLOCK" erfolgen.

Alternativ kann der Aktivierungscode in Schritt (F) verwendet werden, um ein Programm zu entschlüsseln, das die für die Kommunikation erforderlichen Algorithmen und Befehle enthält. Die Verschlüsselung muss dabei keine krypto- graphische Sicherheit bieten, es genügt, wenn es für die Aktualisierungsvorrichtung unmöglich ist, ohne Kenntnis des Aktivierungscodes an das unverschlüsselte Programm zu gelangen. AES256 ist ein Beispiel für einen kryptographisch sicheren Verschlüsselungsalgorithmus, DES oder RC4 sind Beispiele für Algorithmen, die keine kryptographische Sicherheit bieten. Algorithmen ohne krypto- graphische Sicherheit benötigen i.d.R. weniger Rechenzeit, je nach

Anwendungsfall kann dies notwendig sein.

Eine Verschlüsselung hat insbesondere den Vorteil, dass ein beliebig komplexer Algorithmus zur Reaktivierung der Fahrzeugfunktion ohne Veränderungen verwendet werden kann, und trotzdem durch die Verschlüsselung sichergestellt ist, dass kein Teil dieses Algorithmus ohne das Vorliegen des Aktivierungscodes ausgelöst werden kann. Insbesondere kann so mit jedem Kfz-Steuergerät kommuniziert werden.

Die Prüfung, die im Schritt (G) durchgeführt wird, kann als einfacher Vergleich mit einem Referenzcode ausgeführt sein: Die Aktualisierungsvorrichtung sendet den berechneten Aktivierungscode an das Kfz-Steuergerät, dieses vergleicht den Aktivierungscode mit einem Referenzcode.

Es können aber auch Einwegfunktionen genutzt werden. Falls eine Einwegfunktion genutzt wird, ist auch der Vergleichsvorrichtung nur das Ergebnis der Funktion bekannt: Das Kfz-Steuergerät berechnet das Ergebnis der Einwegfunktion mit dem Aktivierungscode als Eingangsgröße(n). Stimmt das Ergebnis mit dem Referenzwert überein, ist der Aktivierungscode korrekt.

Die beiden beschriebenen Verfahren sind direkte Prüfungen: Der

Aktivierungscode wird zum Kfz-Steuergerät gesendet und vom Kfz-Steuergerät geprüft.

Die Erkennung kann auch im Rahmen von existierende Authentisierungen, insbesondere UDS Security Access oder XCP UNLOCK, erfolgen: Im Kfz- Steuergerät wird eine Authentisierung entsprechend dem Stand der Technik implementiert, aber in der Aktualisierungsvorrichtung werden - im Gegensatz zum Stand der Technik - die erforderlichen Algorithmen so gespeichert, dass sie erst nutzbar sind, wenn der richtige Aktivierungscode vorliegt. Diese Variante hat den Vorteil, dass keine Änderung an dem Kfz-Steuergerät erforderlich ist. Dies ist ein Beispiel für eine indirekte Prüfung: Der Aktivierungscode wird nicht versendet, ohne den Wert würde die Authentisierung aber fehlschlagen.

In einem anderen Ansatz für eine indirekte Prüfung ist das Programm (Befehle, Algorithmen), welches von der Aktualisierungsvorrichtung für die Kommunikation mit dem Kfz -Steuergerät ausgeführt wird, verschlüsselt gespeichert. Als Passwort für die Entschlüsselung dient der Aktivierungscode, nur durch die

Entschlüsselung hat die Aktualisierungsvorrichtung Zugriff auf die benötigten Befehle. Wenn das Kfz-Steuergerät die richtigen Befehle, bzw. die Befehle mit den richtigen Parametern, von der Aktualisierungsvorrichtung erhält, so ist indirekt nachgewiesen, dass die Aktualisierungsvorrichtungen den richtige Aktivierungscode vorliegen hat.

In einer Ausführungsform wird von dem Kfz-Steuergerät bei einem erfolgreichen Blockieren der Fahrzeugfunktion ein Schlüssel (im Folgenden: "Schlüssel B") versendet.

Ein Schlüssel B ist erforderlich, wenn neben der Verhinderung einer fälschlichen Reaktivierung der Fahrzeugfunktion auch nachgewiesen werden muss, dass kein fälschlicher Start der Umprogrammierung möglich ist (Punkt (C) in der

Offenbarung der Erfindung).

In einer Ausführungsform wird der Schlüssel B aus einem Schlüssel A berechnet, der zuvor von der Aktualisierungsvorrichtung an das Kfz-Steuergerät übertragen worden ist.

Die Verwendung eines Schlüssels A, der zuvor von der Aktualisierungsvorrichtung an das Kfz-Steuergerät übertragen worden ist, hat den Vorteil, dass der Schlüssel B nicht mehr konstant ist. Folglich kann eine irrtümlich gespeicherte alte Bestätigungsnachricht nicht zu einem unzulässigen Start der Umprogrammierung führen.

Zusätzlich kann das im Schritt (A) angesprochene wenigstens eine Kfz- Steuergerät den Schlüssel A langfristig speichern und so alte Schlüssel sicher erkennen und ablehnen. Die Schlüssel können auch digital unterschrieben sein, so dass die Aktualisierungsvorrichtung die Fahrzeugfunktion nicht

fälschlicherweise blockieren kann. Es ist ebenfalls möglich, dass der Schlüssel A entweder vor oder nach dem Befehl zum Blockieren der wenigstens einen Fahrzeugfunktion verschickt wird. Schlüssel B kann auch nach der Nachricht über das erfolgreiche Blockieren versendet werden.

Es ebenfalls möglich, dass das Kfz -Steuergerät stets aus Schlüsseln A Schlüssel B berechnet - und dass in diese Berechnung eingeht, wenn eine Fahrzeugfunktion blockiert ist. Dies hat den Vorteil, dass beide Zustände sicher, z.B. in den Aktivierungscode, eingehen können.„Sicher" bedeutet in diesem Zusammenhang, dass Fehler in der Aktualisierungsvorrichtung stets zu einem anderen Code (Aktivierungscode, Freischaltcode, Startcode,„Code n") führen, und diese Fehler können dann von den Kfz-Steuergeräten bemerkt werden.

Notwendig ist hierbei nur, dass der Blockier- Status in irgendeiner Form in den Schlüssel B eingeht. Insbesondere kann das Kfz-Steuergerät im Normalzustand auf Anfragen nach einem Schlüssel B mit einer Fehlermeldung reagieren und diese Anfragen nur beantworten, wenn mindestens eine Fahrzeugfunktion blockiert ist. Alternativ kann der Algorithmus zur Berechnung von Schlüssel B so aufgebaut sein, dass die blockierte Fahrzeugfunktion als ein Parameter in den Schlüssel B eingeht.

Um einen fälschlichen Start der Programmierung zu vermeiden, kann von der Aktualisierungsvorrichtung aus Daten (Kennwerten), die von den Kfz-Steuergeräten abgefragt werden, insbesondere aus dem Schlüssel B, ein Startcode berechnet. Dieser Startcode kann dann in Schritt C verwendet werden. Dies hat den Vorteil, dass ohne ein vorheriges Blockieren der Fahrzeugfunktion der SW- Updatevorgang nicht gestartet werden kann.

Der Startcode wird analog zum Aktivierungscode verwendet: Insbesondere können mit ihm Befehle für die Durchführung des SW-Updates entschlüsselt werden, mit dem Startcode kann die neue SW, die installiert werden soll, entschlüsselt werden, der Startcode kann als Parameter oder Befehl an ein Kfz- Steuergerät versendet werden, und/oder er kann für eine Authentisierung verwendet werden.

In weiteren einer Ausführungsform umfasst das Verfahren, das Aktualisieren der Software mehrerer Kfz -Steuergeräte. Dabei wird ein Code („Code n"), der insbesondere aus Rückmeldungen eines n-ten Kfz-Steuergerätes, dessen Software aktualisiert worden ist, berechnet wurde, verwendet, um das SW-Update für ein n+l-tes Kfz-Steuergerät durchzuführen. Da der Code, der Daten des n-ten Kfz- Steuergeräts enthält, nur vorliegt wenn dieses Kfz-Steuergerät erfolgreich aktualisiert wurde und wenn dieser Code für das Update des n+lsten Kfz-Steuer- geräts verwendet wird, ist sichergestellt, dass die Kfz -Steuergeräte nur in der vorgegebenen Reihenfolge aktualisiert werden können.

Nach der Aktualisierung der Software aller zu aktualisierenden Kfz-Steuergeräte können noch einmal die Kennwerte und/oder Speicherinhalte aller aktualisierten Kfz-Steuergeräte überprüft werden, um die Endkonfiguration zu überprüfen. Dieser Schritt ist formal nicht notwendig, da die Aktualisierung des letzten Kfz- Steuergeräts nur erfolgt, wenn alle Kfz-Steuergeräte vorher erfolgreich aktualisiert wurde. Es kann jedoch von Vorteil sein, dennoch alle Kfz-Steuergeräte erneut anzusprechen, beispielsweise um immer das gleiche Softwaremodul für diesen Schritt verwenden zu können. Insbesondere können auch Kfz-Steuergerät angesprochen werden, die nicht aktualisiert wurden.

Für die Verwendung dieser Codes können die gleichen Ansätze wie beim Startcode und beim Aktivierungscode verwendet werden: Insbesondere können mit ihnen Befehle entschlüsselt werden, sie können als Parameter oder Befehle an ein Kfz-Steuergerät versendet werden, und/oder sie können für eine Authenti- sierung verwendet werden.

Die Übertragung zwischen der Aktualisierungsvorrichtung und mindestens einem Kfz-Steuergerät kann auch über ein zwischengeschaltetes Gateway erfolgen. Dieses Gateway kann einerseits ausgebildet sein, unzulässige Nachrichten zu filtern, andererseits kann das Gateway eine drahtlose Schnittstelle mit einer drahtgebundenen Schnittstelle verbinden.

Unzulässige Nachrichten könnten beispielsweise Botschaften sein, die eine Drehzahlinformation vom Motor oder eine Fahrgeschwindigkeit enthalten: Diese Informationen dürfen nur von den zuständigen Kfz-Steuergeräten versendet werden. Das Gateway kann somit verhindern, dass die Aktualisierungsvorrichtung Fahrzeugfunktionen stört. Für die Entscheidung, ob eine Botschaft zulässig ist, kann das Gateway insbesondere einen CAN-Message Identifier, eine Source- oder eine Ziel-IP Adresse (z.B. nach IPV6, RFC2460), und/oder einen Source- oder einen Ziel-Port (z.B. nach TCP, RFC793) , und/oder die Richtung, aus der das Gateway die Nachricht empfangen hat, auswerten. Unzulässig kann es auch sein, wenn von der Aktualisierungsvorrichtung zu viele Nachrichten geschickt werden, da die daraus folgende Bus-Belastung zu einer Störung von Fahrzeugfunktionen führen könnte.

In einer Ausführungsform muss das Gateway von der Aktualisierungsvorrichtung freigeschaltet werden, bevor es Daten zwischen der Aktualisierungsvorrichtung und mindestens einem Kfz-Steuergerät überträgt. Insbesondere kann das Gateway so ausgebildet sein, dass es im Normalbetrieb Nachrichten, die für eine Umprogrammierung erforderlich sind, wie zum Beispiel UDS Programming Session (ISO 14229-1:2013, §9.2.2.2), nicht weiterleitet. Für die Freischaltung kann ein Code („Gatway- Freischaltcode") verwendet werden, der zunächst nicht auf dem Diagnosetester vorliegt, sondern der insbesondere aus der Kommunikation mit wenigstens einem Kfz-Steuergerät berechnet wird. Insbesondere kann der zuvor erwähnte Schlüssel B in den Gatway- Freischaltcode eingehen. Der Gatwway- Freischaltcode kann identisch mit dem Startcode sein. Es ist aber auch möglich, dass beide Codes unterschiedlich sind. Insbesondere können in den Startcode auch Rückmeldungen vom Gateway eingehen.

In einer Ausführungsform umfasst der Schritt des Übertragens des berechneten Aktivierungscodes an das Kfz-Steuergerät, auch die Schlüssel A und/oder B zu übertragen, und der Schritt des Validieren umfasst eine Bewertung aller Werte (Aktivierungscode, und/oder Schlüssel A, und/oder Schlüssel B). Mischformen sind ebenfalls möglich: So könnte der Aktivierungscode für eine Entschlüsselung verwendet werden, und der Schlüssel A wird übertragen. Die Übertragung von Schlüssel A und/oder B könnte von Vorteil sein, wenn diese Schlüssel auf dem Kfz-Steuergerät, dass die wenigstens eine Fahrzeugfunktion blockiert hat, nicht gespeichert werden können/sollen.

In einer Ausführungsform umfasst das Blockieren des Kraftfahrzeugs, eine Wegfahrsperre zu aktivieren und/oder einen Anlasser und/oder eine Kraftstoffpumpe zu blockieren. Auf diese Weise kann das Kraftfahrzeug zuverlässig blockiert werden.

In einer Ausführungsform umfasst das Verfahren, die Codes (Aktivierungscode, Freischaltcode, Startcode,„Code n") zusätzlich aus dem Inhalt von wenigstens Teilbereichen eines Speichers eines Kfz -Steuergerätes zu berechnen. Auf diese Weise kann der Erfolg der Software-Aktualisierung noch besser überprüft wer- den, da Fehler, die zu abweichenden Speicherinhalten führen, zuverlässig erkannt werden können.

Zur Bestätigung einer erfolgreichen Aktualisierung können zusätzliche

Absicherungen zum Einsatz kommen; diese können beispielsweise umfassen:

- die Daten vorwärts zu schreiben und rückwärts zurückzulesen;

- die Daten sowohl über„ReadMemoryByAddress" als auch über

„ReadDataByldentifier" zu lesen (ISO 14229:2013);

- nicht nur den (Flash-)Speicher des jeweiligen Kfz-Steuergerätes auszulesen, sondern zusätzlich auch Rechenergebnisse des jeweiligen Kfz-Steuergerätes abzufragen.

Ebenso ist es möglich die gleichen Daten mehrfach abzufragen, um so einen Schutz gegen gestörte Bus-Nachrichten zu erreichen.

In einer Ausführungsform umfasst das Abfragen des Kennwertes, die Kennwerte eines oder mehrerer Kfz -Steuergeräte abzufragen, die im Betrieb mit dem Kfz- Steuergerät, dessen Software aktualisiert worden ist, zusammenwirken. Auf diese Weise wird sichergestellt, dass alle Kfz -Steuergeräte, die im Betrieb mit- einander zusammenwirken, mit kompatiblen Software-Versionen ausgestattet sind, so dass sie problemlos kooperieren können.

In einer Ausführungsform erfolgt die Kommunikation zwischen der Aktualisierungsvorrichtung und dem Kfz -Steuergerät verschlüsselt. Dadurch wird eine unautorisierte Veränderungen an den Kfz -Steuergeräten verhindert oder zumindest erheblich erschwert.

In einer Ausführungsform umfasst das Abfragen von Kennwerten die Abfrage von Daten bei wenigstens einem externen Backend -System, z.B. einen Server des Herstellers des Fahrzeugs oder des Kfz-Steuergerätes. Dies vereinfacht es, unautorisierte Manipulationen auszuschließen und ermöglicht eine lückenlose Dokumentation der vorgenommenen Änderungen, insbesondere des End- bzw. Zielzustandes der Kfz -Steuergeräte. In einer weiteren Ausführungsform werden auf der Aktualisierungsvorrichtung zwei Abläufe zur Wiederherstellen der Fahrbereitschaft des Kraftfahrzeugs durch das Kfz -Steuergerät vorgehalten: Ein erster Ablauf, der einen Aktivierungscode benötigt, der sich im Falle einer erfolgreichen Aktualisierung berechnen lässt. Zusätzlich wird ein zweiter Ablauf vorgehalten, für den ein Aktivierungscode benötigt wird, der aus Backend und/oder Hotline Rückmeldung berechnet wird, der dann einen Notbetrieb des Fahrzeugs aktiviert. Dies hat den Vorteil, dass einerseits eine versehentliche Aktivierung des Notbetriebs unmöglich ist, und dass andererseits vermieden wird, dass das Fahrzeug überhaupt nicht mehr nutzbar ist, wenn die Aktualisierung fehlgeschlagen ist.

In einer Ausführungsform umfasst das Verfahren, zusätzlich ein Benutzereingabe (Fahrerinteraktion), eine Fahrgestellnummer und/oder eine Fahrzeugidentifikationsnummer in die Berechnung des Aktivierungscodes miteinzubeziehen. Auf diese Weise kann sichergestellt werden, dass das Kraftfahrzeug nur dann reaktiviert wird, wenn der Benutzer die Aktualisierung der Software bestätigt hat und/oder die neu eingespielte Software mit dem jeweiligen Kraftfahrzeug (typ) kompatibel ist.

In einer Ausführungsform ist die Schnittstelle zum Übertragen der Daten zwischen der Aktualisierungsvorrichtung und dem Kfz -Steuergerät als drahtgebundene Schnittstelle ausgebildet. Eine drahtgebundene Schnittstelle ermöglicht eine zuverlässige Datenübertragung und ist kostengünstig zu realisieren. Die drahtgebundene Schnittstelle kann als genormte Schnittstelle, insbesondere als OBD/OBD2-Schnittstelle ausgebildet sein.

In einer Ausführungsform ist die Schnittstelle zum Übertragen der Daten zwischen der Aktualisierungsvorrichtung und dem Kfz -Steuergerät als drahtlose Schnittstelle ausgebildet. Eine drahtlose Schnittstelle ermöglicht eine besonders bequeme Datenübertragung, da keine Kabel verlegt und verbunden werden müssen. Die drahtlose Schnittstelle kann insbesondere als WLAN- oder Bluetooth®- Verbindung hergestellt werden.

Optional können für die Kommunikation zwischen der Aktualisierungsvorrichtung und den Kfz-Steuergeräten bekannte Konzepte der Kommunikation mit

Watchdog- Bausteinen verwendet werden. Die Kfz -Steuergeräte können beispielsweise minimale und maximal zulässige Zeiten beachten und

Nachrichten, die außerhalb dieser Zeiten eintreffen, ablehnen. Die Aktualisierungsvorrichtung kann auch gezielt falsche Codes verwenden und dann den negativen Antwortcode des jeweiligen Kfz-Steuergerätes in einen weiteren Code einfließen lassen. Die Aktualisierungsvorrichtung kann ein eigenes Kfz-Steuergerät sein, sie kann aber auch ein Software- Modul in einem Kfz-Steuergerät sein. Sie könnte beispielsweise auch als virtuelle Maschine auf einem vorhandenen Kfz- Steuergerät ausgebildet sein. Der Vorteil einer virtuellen Maschine ist, dass hier ein kleiner, zur ISO-26262 konformer Hypervisor Randbedingungen erzwingen kann. Z. B. könnte die virtuelle Maschine keinen schreibbaren nichtflüchtigen Speicher enthalten, und der Hypervisor löscht den flüchtigen Speicher beim Ende oder beim Abbruch der Aktualisierung. Dies verhindert, dass alte Bestätigungsnachrichten oder alte Schlüsselwerte oder Aktivierungscodes zu unzulässigen Wiederholungen führen können.

Die Erfindung beruht auf der Erkenntnis, dass das Aktualisieren der Software („UmDashen") eines Kfz -Steuergerätes oder eines Kfz-Steuergeräteverbundes eine Variante einer„Mobile Agent" /„Hostile Host" Konfiguration ist:

- Der„Mobile Agent" sind die Programme zur Aktualisierung der Software

- Der„Hostile Host" ist die Aktualisierungsvorrichtung, auf der die Programme zur Aktualisierung der Software ablaufen.

Die Aktualisierungsvorrichtung kann ein echter„hostile hosts" sein, z. B. wenn ein Smartphone, Tablet-PC oder Laptop eines Endkunden als Aktualisierungsvorrichtung verwendet wird.

Für die Umsetzung kann folglich auf die aus der Literatur bekannten Algorithmen der sog.„Mobile Cryptography" zurückgegriffen werden, um eine nachgewiesene Rückwirkungsfreiheit zu erreichen. Hierzu gehört insbesondere die

„Environmental Key Generation", ebenso die Verwendung von "Homomorphic Encryption".

Ein Ausführungsbeispiel der Erfindung wird im Folgenden unter Bezugnahme auf die beigefügten Figuren beschrieben.

Kurze Beschreibung der Figuren

Figur la zeigt ein Kraftfahrzeug mit mehreren Kfz -Steuergeräten und einer externen Aktualisierungsvorrichtung. Figur lb zeigt ein Kraftfahrzeug mit mehreren Kfz -Steuergeräten und einer internen Aktualisierungsvorrichtung.

Figur 2 zeigt eine vergrößerte schematische Ansicht einer externen Aktualisierungsvorrichtung.

Figur 3 zeigt eine vergrößerte schematische Ansicht einer internen Aktualisierungsvorrichtung.

Figur 4 zeigt eine vergrößerte schematische Ansicht eines Kfz -Steuergerätes.

Figur 5 zeigt in einem schematischen Diagramm den Ablauf eines Verfahrens zum Aktualisieren der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergeräts gemäß einem Ausführungsbeispiel der Erfindung.

Figurenbeschreibung

Figur la zeigt ein Kraftfahrzeug 2 mit mehreren Kfz -Steuergeräten 4, 6, 8, von denen wenigstens eines mit Hilfe einer externen Aktualisierungsvorrichtung 12a mit neuer Software versorgt ("aktualisiert") wird.

Figur lb zeigt ein Kraftfahrzeug 2 mit mehreren Kfz -Steuergeräten 4, 6, 8, von denen wenigstens eines mit Hilfe einer internen Aktualisierungsvorrichtung 12b mit neuer Software versorgt ("aktualisiert") wird.

Figur 2 zeigt eine vergrößerte schematische Ansicht einer externen Aktualisierungsvorrichtung 12a. Die externe Aktualisierungsvorrichtung 12a kann z. B. ein entsprechend ausgestatteter Kfz- Diagnosetester oder ein Smartphone/Tablet- PC/Laptop eines Benutzers sein, auf dem eine geeignete Software („App") installiert ist.

Figur 3 zeigt eine vergrößerte schematische Ansicht einer internen Aktualisierungsvorrichtung 12b. Die interne Aktualisierungsvorrichtung 12b kann ein hierfür in das Kraftfahrzeug 2 eingebautes Kfz -Steuergerät 4, 6, 8 sein, oder ein Modul in einem vorhandenen Kfz -Steuergerät 4, 6, 8. Die interne Aktualisierungsvorrichtung 12b kann auch ein Software- Modul in einem Kfz-Steuergerät 4, 6, 8 sein. Sie kann insbesondere als virtuelle Maschine auf einem vorhandenen Kfz- Steuergerät 4, 6, 8 ausgebildet sein. Der Vorteil einer virtuellen Maschine ist, dass hier ein kleiner, zur ISO-26262 konformer Hypervisor 38 Randbedingungen erzwingen kann.

Figur 4 zeigt eine vergrößerte schematische Ansicht eines Kfz -Steuergerätes 4.

Die Aktualisierungsvorrichtung 12a, 12b weist jeweils eine Sendevorrichtung 17 und eine Empfangsvorrichtung 19 auf, die über eine drahtlose oder drahtgebundene Datenverbindung 10 mit einer Sendevorrichtung 30 und einer Empfangsvorrichtung 28 wenigstens eines der Kfz -Steuergeräte 4, 6, 8 verbunden sind.

Eine drahtgebundene Datenverbindung 10 kann beispielsweise über eine im Kraftfahrzeug 2 vorhandene genormte Schnittstelle 16, insbesondere eine OBD/OBD2-Schnittstelle 16 hergestellt werden. Eine drahtlose Datenverbindung 10 kann beispielsweise durch eine WLAN- oder BluetoothO-Verbindung hergestellt werden.

Die Übertragung zwischen der Aktualisierungsvorrichtung 12a, 12b und mindestens einem Kfz -Steuergerät 4, 6, 8 kann auch über ein zwischengeschaltetes Gateway 34 erfolgen. Dieses Gateway 34 kann einerseits ausgebildet sein, unzulässige Nachrichten zu filtern, andererseits kann das Gateway 34 eine drahtlose Schnittstelle mit einer drahtgebundenen Schnittstelle verbinden.

Die Kfz-Steuergeräte 4, 6, 8 können untereinander über Datenleitungen 18, insbesondere einen Datenbus 18, oder drahtlos Daten austauschen.

Der Ablauf eines Verfahrens zum Aktualisieren der Software wenigstens eines der im Kraftfahrzeug 2 verbauten Kfz-Steuergeräte 4, 6, 8 gemäß einem Ausführungsbeispiel der Erfindung ist schematisch in der Figur 5 gezeigt.

In einem ersten Schritt 110 erhält die Aktualisierungsvorrichtung 12a, 12b über eine an der Aktualisierungsvorrichtung 12a, 12b ausgebildete Eingabevorrichtung 14 oder eine Schnittstelle 15, insbesondere eine Mobilfunk-, WLAN-, Bluetooth®- oder USB-Schnittstelle 15, eine Auftrag zur Aktualisierung der Software wenigstens eines der Kfz-Steuergeräte 4, 6, 8.

Die neue Software, die an das wenigstens eine Kfz -Steuergerät 4, 6, 8 zu übertragen ist, ist entweder in einer Speichervorrichtung 13 der Aktualisierungsvor- richtung 12a, 12b gespeichert oder wird über die Schnittstelle 15, z. B. von einer USB-Speichervorrichtung ("USB-Stick", "Flash-Drive"), an die Aktualisierungsvorrichtung 12a, 12b übertragen und ggf. (vorübergehend) in der Speichervorrichtung 13 gespeichert.

Die Software kann optional in verschlüsselter Form vorliegen, so dass sie erst entschlüsselt werden muss, bevor sie zum Einsatz kommen kann. Insbesondere kann in diesem Fall der Aktualisierungsvorrichtung 12a, 12b der zum Entschlüsseln der Software notwendige Schlüssel (noch) nicht bekannt sein.

Die Aktualisierungsvorrichtung 12a, 12b schickt dann (im Schritt 120) einen Befehl an wenigstens eines der Kfz -Steuergeräte 4, 6, 8, um das Kraftfahrzeug 2 für die Dauer der Softwareaktualisierung stillzulegen bzw. zu blockieren. Der Befehl kann beispielsweise umfassen, eine Wegfahrsperre 20 des Kraftfahrzeugs 2 zu aktivieren und/oder einen Anlasser 22 oder eine Kraftstoffpumpe 24 des Kraftfahrzeugs 2 zu blockieren.

"Blockieren" des Kraftfahrzeugs 2 kann in diesem Zusammenhang auch bedeuten, das Kraftfahrzeug 2 in einen "Notbetriebszustand" zu versetzen, in dem zum Beispiel nur eine beschränkte Motorleistung zur Verfügung steht, und/oder eine Warnleuchte zu aktivieren, die anzeigt, dass manche Funktionen des Kraftfahrzeugs 2, wie z. B. ABS oder ESP, nicht zur Verfügung stehen.

Es besteht auch die Möglichkeit, dass der Betrieb des Kraftfahrzeugs 2 zunächst vollständig blockiert wird, und das Kraftfahrzeug 2 nach dem Ablauf einer vorgegebenen Zeitspanne in einen Notbetriebszustand versetzt wird, der es beispielsweise ermöglicht, das Kraftfahrzeug 2 in eine (andere) Werkstatt zu fahren, z. B. wenn die Softwareaktualisierung nicht erfolgreich abgeschlossen werden konnte.

Das Aktivieren des "Notbetriebszustands" kann eine Benutzereingabe umfassen, durch welche der Benutzer bestätigt, dass ihm bekannt ist, dass sich das Kraftfahrzeug 2 in einem eingeschränkten Notbetriebszustand befindet, in dem nicht alle Funktionen zur Verfügung stehen. Das Kraftfahrzeug 2 wird erst im Notbetriebszustand aktiviert, nachdem der Benutzer bestätigt hat, hiervon Kenntnis genommen zu haben. Zusammen mit dem Befehl zum Blockieren des Kraftfahrzeugs 2 kann optional ein Schlüssel ("Schlüssel A") an das betreffende Kfz -Steuergerät 4, 6, 8 übertragen werden. Sobald das Kfz -Steuergerät 4, 6, 8 den Befehl zum Blockieren des Kraftfahrzeugs 2 ausgeführt hat, schickt es im Schritt 130 eine Bestätigungsnachricht, die bestätigt, dass der Befehl ausgeführt worden ist, an die Aktualisierungsvorrichtung 12a, 12b. Das Kfz-Steuergerät 4, 6, 8 kann ebenfalls einen Schlüssel B an die Aktualisierungsvorrichtung 12a, 12b versenden, der in dem Kfz-Steuergerät 4, 6, 8 berechnet worden wurde. Wurde zuvor (im Schritt 120) ein Schlüssel A an das Kfz-Steuergerät 4, 6, 8 übertragen, kann der Schlüssel B insbesondere aus diesem Schlüssel A berechnet werden.

Der Algorithmus zum Berechnen des Schlüssels B, oder zumindest Parameter, die in die Berechnung eingehen, ist dem Kfz-Steuergerät 4, 6, 8 nicht aber der Aktualisierungsvorrichtung 12a, 12b bekannt. Das Kfz-Steuergerät 4, 6, 8 kann so ausgebildet sein, dass Schlüssel B nur versendet wird, wenn die wenigstens eine Fahrzeugfunktion blockiert wurde. Ist die Funktion nicht blockiert, wird eine Fehlermeldung gesendet. Alternativ kann das Bereitstellen eines Schlüssels B eine stets aktive Funktion sein, und„Ist das Fahrzeug blockiert?" ist ein Parameter, der in die Berechnung des Schlüssels eingeht.

Eine Berechnungsvorrichtung 26, die in der Aktualisierungsvorrichtung 12a, 12b vorhanden ist, aus berechnet aus Daten (Kennwerten), die von den Kfz- Steuergeräten 4, 6, 8 abgefragt werden, einen Code (Schritt 130). Die

Berechnungsvorrichtung 26 kann in Hardware oder Software realisiert sein.

Insbesondere kann in diese Berechnung auch der Schlüssel B eingehen.

Das Abfragen der Daten (Kennwerte) kann auch die Abfrage von Daten bei wenigstens einem externen Backend-System 40, z.B. einen Server des Her- stellers des Kraftfahrzeugs 2 oder der Kfz-Steuergeräte 4, 6, 8 umfassen, um unautorisierte Manipulationen auszuschließen und eine lückenlose Dokumentation der vorgenommenen Änderungen, insbesondere des End- bzw. Zielzustandes der Kfz-Steuergeräte 4, 6, 8, zu ermöglichen. Wenn die neue Software auf der Aktualisierungsvorrichtung 12a, 12b in verschlüsselter Form gespeichert ist, kann dieser Code insbesondere zum

Entschlüsseln der Software (Schritt 140) verwendet werden. Die Verschlüsselung der Software muss keine kryptographische Sicherheit bieten.

Alternativ ist ebenso möglich, dass dieser Code in den Algorithmus für den U DS- Secure-Access (ISO 14229:2013, §9.4 - Dienst 0x27) oder für ASAM XCP MCD- l„UNLOCK" eingeht.

Nachdem die ggf. verschlüsselt gespeicherte Software entschlüsselt worden ist, wird die Software im Schritt 150 über die Datenverbindung 10 auf wenigstens eines der Kfz -Steuergeräte 4, 6, 8 übertragen und auf dem wenigstens einen Kfz- Steuergerät 4, 6, 8 installiert.

Die Software kann auch mehrere Softwarepakte umfassen, wobei insbesondere jedes Softwarepaket zur Aktualisierung jeweils eines der Kfz -Steuergeräte 4, 6, 8 vorgesehen ist. Dabei kann insbesondere eine Reihenfolge vorgegeben sein, in der die Softwarepakete auf die verschiedenen Kfz -Steuergeräte 4, 6, 8 aufzuspielen sind.

In diesem Fall kann ein Kfz -Steuergerät 4, 6, 8, dessen Software erfolgreich installiert worden ist, einen Schlüsselwert liefern. Dieser Schlüsselwert wird wiederum von der Berechnungsvorrichtung 26 zur Berechnung eines neuen Codes verwendet. Dieser neue Code wird dann insbesondere zur Entschlüsselung und Aktualisierung des nächstfolgenden Softwarepaktes verwendet.

Da der neue Code nur vorliegt, wenn das vorangehende Softwarepaket erfolgreich auf seinem Kfz -Steuergerät 4, 6, 8 installiert worden ist, wird auf diese Weise sichergestellt, dass die Software der Kfz -Steuergeräte 4, 6, 8 nur in der vorgegebenen Reihenfolge aktualisiert werden kann.

Es ist auch möglich, dass ein n-tes Softwarepaket gewisse Funktionen des Kraftfahrzeugs 2, wie z. B. die Einspritzanlage deaktiviert, um das Kraftfahrzeug 2 in einen sicheren Zustand zu bringen, und ein darauf folgendes m-tes Softwarepaket (m>n), das später entschlüsselt und installiert wird, die deaktivierte Funktion wieder aktiviert, nachdem die Softwareaktualisierung erfolgreich durchgeführt worden ist. Nachdem die Softwareaktualisierung abgeschlossen worden ist, d.h. nachdem alle Softwarepakete erfolgreich auf die zugehörigen Kfz-Steuergeräte 4, 6, 8 aufgespielt worden sind, kann die Berechnungsvorrichtung 26 erneut genutzt werden, um aus Daten (Kennwerten), die von den Kfz-Steuergeräten 4, 6, 8 abgefragt werden, einen Aktivierungscode (Schritt 160) zu berechnen.

Dabei können je nach Anwendungsfall Daten allen Kfz-Steuergeräten 4, 6, 8 oder nur Daten derjenigen Kfz-Steuergeräte 4, 6, 8 abgefragt werden, deren Software aktualisiert worden ist. Um ein korrektes Zusammenwirken aller Kfz-Steuergeräte 4, 6, 8 im Kraftfahrzeug 2 sicherzustellen, können insbesondere Daten derjenigen Kfz-Steuergeräte 4, 6, 8 abgefragt werden, die mit den aktualisierten Kfz- Steuergeräten 4, 6, 8 zusammenwirken.

Die abgefragten Daten können beispielsweise Versionsnummern der aktuell auf den jeweiligen Kfz -Steuergerät 4, 6, 8 installierten Software und/oder den Inhalt wenigstens eines definierten Teilbereichs oder eines gesamten Speichers 7 des jeweiligen Kfz-Steuergerätes 4, 6, 8 umfassen.

Die abgefragten Daten können zusätzlich auch einer Benutzereingabe, die über eine am/im Kraftfahrzeug 2 vorgesehen Eingabevorrichtung 5 eingegeben wird, umfassen. Dies ermöglicht es, sicherzustellen, dass das Kraftfahrzeug 2 erst aktiviert wird, nachdem die Softwareaktualisierung durch eine Benutzereingabe am Kraftfahrzeug 2 selbst bestätigt worden ist. Die Benutzereingabe kann neben einem einfachen Ja/Nein auch das Abschreiben eines Freigabecodes („Captcha") sein. Dies hat den Vorteil, dass dieser Code in die Berechnung des Aktivierungscodes eingehen kann und somit nicht übersprungen werden kann.

Insbesondere kann vorgesehen sein, dass ein„Notbetrieb" des Kraftfahrzeugs 2, in dem nicht alle Funktionen des Kraftfahrzeugs 2 zur Verfügung stehen, erst aktiviert wird, nachdem der Benutzer bestätigt hat, dass er das Vorliegen eines Notbetriebs und die damit verbundenen Einschränkungen zur Kenntnis genommen hat.

Zusätzlich oder alternativ können die abgefragten Daten auch eine Fahrgestellnummer und/oder eine Fahrzeugidentifikationsnummer oder eine anderen Größe, die das Kraftfahrzeug 2 bzw. den Fahrzeugtyp des Kraftfahrzeugs 2 eindeutig identifiziert, beinhalten. Auch Merkmale der Fahrzeugkonfiguration, wie z.B. die Motorisierung, die Anzahl der angetriebenen Achsen und sonstige Ausstattungsmerkmale, können in die Berechnung des Aktivierungscodes eingehen.

Da die Daten eines unpassenden Kraftfahrzeugs 2 nicht zur Berechnung des richtigen Aktivierungscode führen, kann auf diese Weise sichergestellt werden, dass das Kraftfahrzeug 2 nur dann wieder aktiviert wird, wenn ausschließlich Software installiert worden ist, die für das jeweilige Kraftfahrzeug 2 geeignet ist.

Der auf diese Weise berechnete Aktivierungscode wird von der Aktualisierungsvorrichtung 10 für die Kommunikation mit dem wenigstens einen der Kfz-Steuer- geräte 4, 6, 8 verwendet (Schritt 170), optional kann dabei zusätzlich der zuvor berechnete Schlüssel A oder B übertragen werden.

Eine Vergleichs- und Freigabevorrichtung 32 des wenigstens einen Kfz-Steuer- gerätes 4, 6, 8, das den Aktivierungscode empfangen hat, validiert im Schritt 180 die empfangenen Nachrichten, mit einem im jeweiligen Kfz -Steuergerät 4, 6, 8 gespeicherten vorgegebenen Referenzalgorithmus und reaktiviert das Kraftfahrzeug 2 (Schritt 200), z.B. durch Entriegeln der Wegfahrsperre 20 und/oder Aktivieren des Anlassers 22 bzw. der Kraftstoffpumpe 24, (nur) im Falle einer positiven Validierung des empfangene Aktivierungscode.

Wird der Aktivierungscode mit dem im jeweiligen Kfz -Steuergerät 4, 6, 8 gespeicherten Algorithmus nicht positiv validiert, wird das Kraftfahrzeug 2 nicht reaktiviert. Stattdessen wird eine Fehlermeldung ausgegeben (Schritt 210).

Die Vergleichs- und Freigabevorrichtung 32 kann in Hardware oder Software realisiert sein.

Um unautorisierte Manipulationen zu verhindern oder zumindest zu erschweren, kann die Kommunikation zwischen der Aktualisierungsvorrichtung 10 und den Kfz -Steuergeräten 4, 6, 8 kryptografisch gesichert sein, d.h. verschlüsselt und/oder signiert erfolgen.

Optional können für die Kommunikation zwischen der Aktualisierungsvorrichtung 12a, 12b und den Kfz-Steuergeräten 4, 6, 8 bekannte Konzepte der

Kommunikation mit "Watchdog"- Bausteinen verwendet werden. Die Kfz- Steuergeräten 4, 6, 8 können beispielsweise minimale und maximal zulässige Zeiten beachten und Aktivierungscodes, die außerhalb dieser Zeiten eintreffen, ablehnen. Die Aktualisierungsvorrichtung 12a, 12b kann auch gezielt falsche Aktivierungscodes schicken und dann den negativen Antwortcode des jeweiligen Kfz-Steuergerätes 4, 6, 8 in den weiten Ablauf einfließen lassen.