DE102017218872A1 - Method and device for updating software of a motor vehicle control unit - Google Patents

Method and device for updating software of a motor vehicle control unit Download PDF

Info

Publication number
DE102017218872A1
DE102017218872A1 DE102017218872.3A DE102017218872A DE102017218872A1 DE 102017218872 A1 DE102017218872 A1 DE 102017218872A1 DE 102017218872 A DE102017218872 A DE 102017218872A DE 102017218872 A1 DE102017218872 A1 DE 102017218872A1
Authority
DE
Germany
Prior art keywords
control unit
vehicle control
motor vehicle
code
updating device
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.)
Pending
Application number
DE102017218872.3A
Other languages
German (de)
Inventor
Andreas Heyl
Daniel Krippner
Manfred Spraul
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017218872.3A priority Critical patent/DE102017218872A1/en
Priority to CN201880082909.2A priority patent/CN111480141A/en
Priority to PCT/EP2018/078830 priority patent/WO2019081395A1/en
Publication of DE102017218872A1 publication Critical patent/DE102017218872A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Ein Verfahren zur Aktualisierung der Software wenigstens eines in einem Kraftfahrzeug (2) verbauten Kfz-Steuergerätes (4, 6, 8) umfasst die Schritte: (A) Übertragen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), von einer Aktualisierungsvorrichtung (12a, 12b) an das Kfz-Steuergerät (4, 6, 8); (B) Übertragen einer Bestätigungsnachricht durch das Kfz-Steuergerät (4, 6, 8); (C) Übertragen neuer Software von der Aktualisierungsvorrichtung (12a, 12b) an das Kfz-Steuergerät (4, 6, 8); (D) Abfragen eines Kennwertes eines oder mehrerer Kfz-Steuergeräte (4, 6, 8), die im Kraftfahrzeug (2) verbaut sind; (E) Berechnen eines Aktivierungscodes aus den abgefragten Kennwerten; (F) Verwendung des berechneten Aktivierungscodes für die nachfolgende Kommunikation mit dem Kfz-Steuergerät (4, 6, 8), dass die Fahrzeugfunktion blockiert hat; und (G) Ausführen eines Befehls zum Wiederherstellen der Fahrbereitschaft des Kraftfahrzeugs (2) durch das Kfz-Steuergerät (4, 6, 8) nur nachdem das Kfz-Steuergerät (4, 6, 8) direkt oder indirekt geprüft hat, dass der richtige Aktivierungscode vorliegt.

Figure DE102017218872A1_0000
A method for updating the software of at least one vehicle control unit (4, 6, 8) installed in a motor vehicle (2) comprises the steps of: (A) transmitting a preparatory command, in particular a command to block the motor vehicle (2), from one Updating device (12a, 12b) to the vehicle control unit (4, 6, 8); (B) transmitting an acknowledgment message by the vehicle control unit (4, 6, 8); (C) transmitting new software from the updating device (12a, 12b) to the vehicle control unit (4, 6, 8); (D) querying a characteristic value of one or more vehicle control units (4, 6, 8) which are installed in the motor vehicle (2); (E) calculating an activation code from the requested characteristic values; (F) using the calculated activation code for subsequent communication with the vehicle control unit (4, 6, 8) that has disabled the vehicle function; and (G) executing a command for restoring the travel readiness of the motor vehicle (2) by the vehicle control unit (4, 6, 8) only after the vehicle control unit (4, 6, 8) has directly or indirectly checked that the correct one Activation code is present.
Figure DE102017218872A1_0000

Description

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Aktualisieren der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergerätes.The invention relates to a method and a device for updating the software of at least one motor vehicle control unit installed in a motor vehicle.

Stand der TechnikState of the art

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.The updating of software of vehicle control units is in a field of tension, since the motor vehicle control units on the one hand have to implement safety requirements ("Safety Goals") up to ASIL-D (ISO 26262), on the other hand for updating the software of the vehicle ECUs or other external devices that contain complex programs and much existing software and therefore can not easily meet the requirements that are imposed when ASIL security objectives are affected.

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.Since a faulty update of the software of the vehicle control units can lead to a breach of safety goals up to ASIL D, the use of such components is not readily permitted. However, the use of such components is permitted if the absence of feedback has been demonstrated within the meaning of ISO 26262-1: 2011, §1.49.

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 a simple case, end-to-end protection is used: the ASIL-compliant target ECU checks itself after an update and only releases when it finds that the software update was done without error. Consequently, there is no feedback for the updating device.

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. In a modern motor vehicle, several vehicle control units usually interact closely: an engine control unit may e.g. have the function to limit the maximum speed. For this purpose, the engine control unit receives information about the vehicle speed from an ESP control unit.

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.In addition, the currently engaged gear is interrogated by a transmission control unit, so that the engine control unit can perform a plausibility check of the vehicle speed on the basis of the engaged gear and the engine speed.

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.However, the above-described "simple" self-plausibility of an updated automotive control unit can not reliably detect an incompatible configuration of the entire system created by the update.

Offenbarung der Erfindung:Disclosure of the invention:

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.It is therefore an object of the invention to provide a method and a device for safely updating the software of at least one motor vehicle control unit installed in a motor vehicle. In particular, it is an object to ensure that the overall system configuration of all vehicle control units installed in the motor vehicle is in a mutually compatible and reliable state after updating the software.

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:

  1. (A) Übertragen eines Befehls, insbesondere eines Befehls zum Blockieren wenigstens einer Funktion des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung an das wenigstens eine Kfz-Steuergerät;
  2. (B) Übertragen einer Bestätigungsnachricht, welche die Ausführung des vorbereitenden Befehls bestätigt, von dem Kfz-Steuergerät an die Aktualisierungsvorrichtung;
  3. (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;
  4. (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;
  5. (E) Berechnen eines Aktivierungscodes aus den abgefragten Kennwerten;
  6. (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;
  7. (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.
According to one exemplary embodiment of the invention, a method of updating the software of at least one motor vehicle control device installed in a motor vehicle comprises at least the following steps:
  1. (A) transmitting an instruction, in particular a command for blocking at least one function of the motor vehicle, from an updating device to the at least one motor vehicle control unit;
  2. (B) transmitting an acknowledgment message confirming the execution of the preparatory command from the vehicle control unit to the updating device;
  3. (C) transferring new software from the updating device to the at least vehicle controller and installing the new software on the at least one vehicle controller;
  4. (D) querying a software dependent characteristic value, in particular the software version number of one or more vehicle control units, which are installed in the motor vehicle;
  5. (E) calculating an activation code from the requested characteristic values;
  6. (F) communicating the update device with at least the vehicle control unit that has blocked at least one function of the motor vehicle using this activation code, wherein the communication is configured such that the vehicle control unit securely detects if the updating device does not have the correct activation code features;
  7. (G) executing a command to reactivate the at least one blocked function of the motor vehicle by the vehicle control unit only after the vehicle control unit has directly or indirectly checked and confirmed that the correct activation code is present.

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 Empfangsvorrichtung, die zum Empfangen einer Bestätigungsnachricht, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät bestätigt, ausgebildet ist.An updating device for updating the software of a motor vehicle control unit installed in a motor vehicle, according to an embodiment of the invention, has a storage device which is used to store the vehicle to be updated Software is formed, a transmitting device, which is adapted to transmit a preparatory command, in particular a command to block the motor vehicle, to the vehicle control unit; and a receiving device configured to receive an acknowledgment message confirming the execution of a received preparatory command by the vehicle control unit.

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.The transmitting device is designed to transmit the software to be updated to the vehicle control unit. The receiving device is designed to receive a parameter dependent on the software, in particular a current software version number, of one or more motor vehicle control units. The updating device has a calculating device which is designed to calculate an activation code from the received characteristic values; and the transmitting device is configured to communicate with at least one other vehicle control unit using this activation code.

Ein Kfz-Steuergerät, gemäß einem Ausführungsbeispiel der Erfindung ist ausgebildet, 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.A vehicle control unit according to an embodiment of the invention is configured to cooperate with an updating device to carry out a method according to an embodiment of the invention. In particular, the vehicle control unit comprises a receiving device, which is designed to receive a preparatory command, in particular a command to block the motor vehicle, by an updating device, and a transmitting device, which is designed to transmit an acknowledgment message indicating the execution of a received preparatory command confirmed by the vehicle control unit. The transmitting device is designed to transmit a parameter dependent on the software, in particular a current software version number, to the updating device. The receiving device is configured to communicate with the updating device. The vehicle control unit further comprises a comparison and release device, which is designed to validate the received messages and to restore the driving readiness of the motor vehicle only if this validation has been completed successfully.

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.Not all functions have to be present in all vehicle control units. In particular, the transmitting device of the vehicle control unit that processes the command for blocking need not necessarily be configured to transmit a software-dependent characteristic value, in particular a current software version number, to the updating device. This feature only needs to be present in the car control unit to be updated.

Die Funktion, zum Blockieren des Kraftfahrzeugs, sowie die Vergleichs- und Freigabevorrichtung muss nur in einem Kfz-Steuergerät im Fahrzeug ausgebildet sein.The function for blocking the motor vehicle, as well as the comparison and release device must be formed only in a vehicle control unit in the vehicle.

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.The activation code is not kept on the update device, but it is calculated from the feedback from the environment (other car control devices, backend, driver interaction, support hotline, etc.).

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 Fehl-)Entscheidungen, die in der Aktualisierungsvorrichtung getroffen werden können.The decision to reactivate the vehicle function is transferred from the update device to another vehicle control unit. The update device calculates the activation code from the feedback of the other vehicle control units and uses the code, in particular for reactivating the vehicle function. The code is not known to the updater, so there are no (potential miss) decisions that can be made in the updater.

Der Aktivierungscode wird von der Aktualisierungsvorrichtung insbesondere aus Daten berechnet, die von den aktualisierten (umprogrammierten) Kfz-Steuergeräten abgefragt werden.The activation code is in particular calculated by the updating device from data queried by the updated (reprogrammed) vehicle control units.

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 abweichenden Aktivierungscode berechnet, der anschließend beim Versuch der Reaktivierung der Fahrzeugfunktion zu einer Ablehnung führt.If at least one of the vehicle controllers has not been successfully updated and / or is not in the expected state, it provides different data from which the updater calculates a different activation code, which subsequently results in a refusal when attempting to reactivate the vehicle function.

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.It is a basic idea of the invention that the activation code is not compared by the updating device with a reference value. In such an approach, the comparison could be skipped by an error or the result of the comparison misinterpreted. Consequently, there is a feedback from the updating device on vehicle functions.

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.The updating device may maintain the result of a one-way function of the activation code and pre-check before step (F) and (G) whether the restoration of the blocked vehicle function will be successful. In particular, hash functions such as MD4, MD5, SHA1 or SHA256 could be used for this purpose.

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 UDS 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.The activation code can be sent in step (F), in particular directly as a value to the device that has blocked the vehicle function. The value can, in particular, represent a service ID ("SID") or be used as a parameter in the context of a UDS communication (ISO 14229: 2013). On this device, the activation code must then be validated, for example by comparison with a reference code, or by checking whether the result of a one-way function corresponds to a reference value.

Als Einwegfunktionen könnte insbesondere MD4, MD5, SHA1 oder die Multiplikation zweier (Prim-) Zahlen verwendet werden.In particular, MD4, MD5, SHA1 or the multiplication of two (prime) numbers could be used as one-way functions.

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.Alternatively, the activation code in step (F) may enter the algorithm for authentication of the updating device with respect to the at least one vehicle control unit. This authentication could be done in particular according to UDS security access (see ISO 14229-1: 2013, §9.4 - service 0x27) or according to ASAM XCP MCD-1 "UNLOCK".

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 kryptographische 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 kryptographische Sicherheit benötigen i.d.R. weniger Rechenzeit, je nach Anwendungsfall kann dies notwendig sein.Alternatively, the activation code in step (F) may be used to decrypt a program containing the algorithms and instructions required for communication. The encryption does not have to provide any cryptographic security, it is sufficient if it is impossible for the updating device to get to the unencrypted program without knowledge of the activation code. AES256 is an example of a cryptographically secure encryption algorithm, DES or RC4 are examples of algorithms that do not provide cryptographic security. Algorithms without cryptographic security require i.d.R. less computing time, depending on the application, this may be necessary.

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.In particular, encryption has the advantage that an arbitrarily complex algorithm for reactivating the vehicle function can be used without changes, and nevertheless it is ensured by the encryption that no part of this algorithm can be triggered without the presence of the activation code. In particular, this can be communicated with each vehicle control unit.

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.The test carried out in step (G) may be implemented as a simple comparison with a reference code: the updating device sends the calculated activation code to the vehicle control unit, which compares the activation code with a reference code.

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.However, one-way functions can also be used. If a one-way function is used, also the comparison device only the result of the function is known: The car control unit calculates the result of the one-way function with the activation code as input (s). If the result matches the reference value, the activation code is correct.

Die beiden beschriebenen Verfahren sind direkte Prüfungen: Der Aktivierungscode wird zum Kfz-Steuergerät gesendet und vom Kfz-Steuergerät geprüft.The two methods described are direct tests: The activation code is sent to the vehicle control unit and checked by the vehicle control unit.

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.The recognition can also take place in the context of existing authentications, in particular UDS Security Access or XCP UNLOCK: In the vehicle control unit an authentication according to the prior art is implemented, but in the updating device - in contrast to the prior art - the necessary algorithms stored so that they are usable only when the correct activation code is present. This variant has the advantage that no change to the vehicle control unit is required. This is an example of an indirect check: The activation code is not sent, but without the value the authentication would fail.

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 another approach to indirect testing, the program (instructions, algorithms) executed by the updating device for communication with the vehicle controller is stored in encrypted form. The activation code is used as the password for the decryption, only through the decryption the update device has access to the required commands. When the vehicle controller receives the correct commands, or commands with the correct parameters, from the updater, it is indirectly demonstrated that the updater has the correct activation code.

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.In one embodiment, a key (hereinafter "key B") is sent by the vehicle control unit upon successful blocking of the vehicle function.

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).A key B is required if, in addition to preventing a false reactivation of the vehicle function, it must also be proved that no erroneous start of the reprogramming is possible (item (C) in the disclosure of the invention).

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.In one embodiment, the key B is calculated from a key A, which has been previously transferred from the updating device to the vehicle control unit.

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.The use of a key A, which has been previously transmitted from the updating device to the vehicle control unit, has the advantage that the key B is no longer constant. Consequently, an erroneously stored old acknowledgment message can not lead to an inadmissible start of the reprogramming.

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. In addition, the addressed in step (A) at least one vehicle control unit to store the key A long term and thus recognize and reject old keys safely. The keys may also be digitally signed so that the update device can not falsely block the vehicle function.

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.It is also possible that the key A is sent either before or after the command to block the at least one vehicle function. Key B can also be sent after the successful blocking message.

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.It is also possible that the car control unit always calculates keys B from keys A - and that this calculation is received when a vehicle function is blocked. This has the advantage that both states are safe, e.g. into the activation code. "Safe" in this context means that faults in the updater always result in a different code (Activation Code, Activation Code, Start Code, "Code n"), and these faults can then be noticed by the vehicle controllers.

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.It is only necessary here that the blocking status is received in some form in the key B. In particular, the vehicle control unit in the normal state can respond to requests for a key B with an error message and answer these requests only if at least one vehicle function is blocked. Alternatively, the algorithm for calculating key B may be constructed such that the blocked vehicle function enters the key B as a parameter.

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.In order to avoid an erroneous start of the programming, a start code can be calculated by the updating device from data (characteristic values) which are requested by the motor vehicle control units, in particular from the key B. This start code can then be used in step C. This has the advantage that the SW update process can not be started without a previous blocking of the vehicle function.

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.The start code is used in the same way as the activation code: In particular, it can be used to decrypt commands for the execution of the software update; the start code can be used to decrypt the new software to be installed. The start code can be used as a parameter or command to a vehicle manufacturer. Control unit are shipped, and / or it can be used for authentication.

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+1-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+1sten Kfz-Steuergeräts verwendet wird, ist sichergestellt, dass die Kfz-Steuergeräte nur in der vorgegebenen Reihenfolge aktualisiert werden können.In another embodiment, the method includes updating the software of multiple vehicle controllers. In this case, a code ("code n"), which was calculated in particular from feedback of an nth vehicle control unit whose software has been updated, used to perform the SW update for an n + 1-th car control unit , Since the code that contains data of the nth car controller is present only when this car control unit has been successfully updated and this code is used for the update of the n + 1sten car control unit, it is ensured that the vehicle control units can only be updated in the given order.

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.After updating the software of all vehicle ECUs to be updated, once again the characteristics and / or memory contents of all updated vehicle ECUs can be checked to verify the final configuration. This step is formally not necessary because the update of the last vehicle control unit only takes place if all vehicle control units have been previously successfully updated. However, it may be advantageous to still re-address all car control units, for example to always be able to use the same software module for this step. In particular, vehicle control unit can be addressed, which have not been updated.

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 Authentisierung verwendet werden.The same approaches as for the start code and the activation code can be used for the use of these codes: In particular, commands can be decrypted with them, they can be sent as parameters or commands to a vehicle control unit, and / or they can be used for authentication ,

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.The transmission between the updating device and at least one vehicle control unit can also take place via an intermediary gateway. On the one hand, this gateway can be designed to filter impermissible messages, on the other hand, the gateway can connect a wireless interface to a wired interface.

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.Illegal messages could be, for example, messages that contain speed information from the engine or a driving speed: This information may only be sent by the responsible vehicle control units. The gateway can thus prevent the update device from disturbing vehicle functions. For the decision as to whether a message is admissible, the gateway may in particular have a CAN message identifier, a source or a destination IP address (eg according to IPV6, RFC2460), and / or a source or a destination port (eg after TCP, RFC793), and / or evaluate the direction from which the gateway received the message. It may also be inadmissible if too many messages are sent by the updating device, as the result following bus load could lead to a malfunction of vehicle functions.

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 one embodiment, the gateway must be enabled by the updating device before transferring data between the updating device and at least one vehicle control unit. In particular, the gateway may be designed so that it does not forward messages that are required for reprogramming during normal operation, such as, for example, the UDS programming session (ISO 14229-1: 2013, §9.2.2.2). For the activation of a code ("Gatway unlock code") can be used, which is initially not present on the diagnostic tester, but is calculated in particular from the communication with at least one vehicle control unit. In particular, the aforementioned key B may enter the gateway unlock code. The Gatwway unlock code can be the same as the startup code. But it is also possible that both codes are different. In particular, the start code can also receive feedback from the gateway.

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 one embodiment, the step of transmitting the calculated activation code to the vehicle control unit also includes transmitting the keys A and / or B, and the step of validating comprises evaluating all values (activation code, and / or key A, and / or Key B). Mixed forms are also possible: for example, the activation code could be used for decryption and the key A is transmitted. The transmission of key A and / or B could be advantageous if these keys on the vehicle control unit that has blocked at least one vehicle function, can not be stored / should.

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 one embodiment, blocking the motor vehicle includes activating an immobilizer and / or blocking a starter and / or a fuel pump. In this way, the motor vehicle can be reliably blocked.

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 werden, da Fehler, die zu abweichenden Speicherinhalten führen, zuverlässig erkannt werden können.In one embodiment, the method additionally comprises calculating the codes (activation code, activation code, start code, "code n") from the content of at least partial areas of a memory of a motor vehicle control unit. In this way, the success of the software update can be checked even better, since errors that lead to different memory contents, can be reliably detected.

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 „ReadDataByIdentifier“ 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.
Additional validations may be used to confirm a successful upgrade; these may include, for example:
  • - write the data forward and read it backwards;
  • - read the data both through "ReadMemoryByAddress" and via "ReadDataByIdentifier" (ISO 14229: 2013);
  • - Not only read the (flash) memory of each vehicle control unit, but also also query results of the respective car control unit.

Ebenso ist es möglich die gleichen Daten mehrfach abzufragen, um so einen Schutz gegen gestörte Bus-Nachrichten zu erreichen.It is also possible to query the same data multiple times, so as to achieve protection against disturbed bus messages.

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 miteinander zusammenwirken, mit kompatiblen Software-Versionen ausgestattet sind, so dass sie problemlos kooperieren können.In one embodiment, the interrogation of the characteristic value comprises interrogating the characteristic values of one or more motor vehicle control units which, during operation, interact with the vehicle control unit whose software has been updated. This ensures that all car control units that interact with each other in operation are equipped with compatible software versions so that they can cooperate easily.

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 one embodiment, the communication between the updating device and the vehicle control unit is encrypted. As a result, unauthorized changes to the vehicle control units is prevented or at least considerably more difficult.

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 one embodiment, polling characteristics comprises polling data in at least one external back-end system, e.g. a server of the manufacturer of the vehicle or the vehicle control unit. This makes it easier to exclude unauthorized manipulations and allows a complete documentation of the changes made, in particular the final or target state of the vehicle control units.

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. In a further embodiment, two processes for restoring the driving readiness of the motor vehicle by the vehicle control unit are provided on the updating device: a first sequence which requires an activation code which can be calculated in the event of a successful update.

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 addition, a second sequence is provided, for which an activation code is required, which is calculated from the backend and / or hotline feedback, which then activates an emergency operation of the vehicle. This has the advantage that on the one hand accidental activation of the emergency operation is impossible, and on the other hand, it is avoided that the vehicle is no longer usable if the update has failed.

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 one embodiment, the method further includes user input (driver interaction), a chassis number, and / or a vehicle identification number in the calculation of the activation code. In this way it can be ensured that the motor vehicle is only reactivated when the user has confirmed the update of the software and / or the newly installed software with the respective motor vehicle (type) is compatible.

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 one embodiment, the interface for transmitting the data between the updating device and the vehicle control unit is designed as a wired interface. A wired interface enables reliable data transmission and is inexpensive to implement. The wired interface can be designed as a standardized interface, in particular as an OBD / OBD2 interface.

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.In one embodiment, the interface for transmitting the data between the updating device and the vehicle control unit is designed as a wireless interface. A wireless interface allows a particularly convenient data transmission, since no cables need to be laid and connected. The wireless interface can in particular be produced as a WLAN or Bluetooth® connection.

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.Optionally, known communication concepts with watchdog devices may be used for communication between the updating device and the vehicle controllers. For example, the car control units can observe minimum and maximum allowable times and reject messages arriving outside these times. The updating device can also selectively use incorrect codes and then incorporate the negative response code of the respective vehicle control unit in another code.

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.The update device may be a separate vehicle control unit, but it may also be a software module in a vehicle control unit. For example, it could also be designed as a virtual machine on an existing vehicle control unit. The advantage of a virtual machine is that a small, ISO 26262 compliant hypervisor can enforce boundary conditions. For example, the virtual machine might not contain writeable non-volatile memory, and the hypervisor clears the volatile memory at the end or at the abort of the update. This prevents old acknowledgment messages or old key-values or activation codes from leading to invalid retries.

Die Erfindung beruht auf der Erkenntnis, dass das Aktualisieren der Software („Um□ashen“ 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.
The invention is based on the recognition that the updating of the software ("in order") of a motor vehicle control unit or of a vehicle control unit network is a variant of a "mobile agent" / "hostile host" configuration:
  • - The "Mobile Agent" are the programs for updating the software
  • - The "hostile host" is the updating device on which the programs for updating the software run.

Die Aktualisierungsvorrichtung kann ein echter „hostile hosts“ sein, z. B. wenn ein Smartphone, Tablet-PC oder Laptop eines Endkunden als Aktualisierungsvorrichtung verwendet wird.The updating device may be a true "hostile hosts", e.g. B. when a smartphone, tablet PC or laptop of an end user is used as an updating device.

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“.For the implementation can therefore be used on the known from the literature algorithms of the so-called. "Mobile Cryptography" to achieve a proven freedom from retroactivity. This includes in particular the "Environmental Key Generation", as well as the use of "Homomorphic Encryption".

Ein Ausführungsbeispiel der Erfindung wird im Folgenden unter Bezugnahme auf die beigefügten Figuren beschrieben.An embodiment of the invention will be described below with reference to the accompanying drawings.

Figurenlistelist of figures

  • 1a zeigt ein Kraftfahrzeug mit mehreren Kfz-Steuergeräten und einer externen Aktualisierungsvorrichtung. 1a shows a motor vehicle with several vehicle control units and an external updating device.
  • 1b zeigt ein Kraftfahrzeug mit mehreren Kfz-Steuergeräten und einer internen Aktualisierungsvorrichtung. 1b shows a motor vehicle with several vehicle control units and an internal updating device.
  • 2 zeigt eine vergrößerte schematische Ansicht einer externen Aktualisierungsvorrichtung. 2 shows an enlarged schematic view of an external updating device.
  • 3 zeigt eine vergrößerte schematische Ansicht einer internen Aktualisierungsvorrichtung. 3 shows an enlarged schematic view of an internal updating device.
  • 4 zeigt eine vergrößerte schematische Ansicht eines Kfz-Steuergerätes. 4 shows an enlarged schematic view of a vehicle control unit.
  • 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. 5 shows a schematic diagram of the flow of a method for updating the software at least one installed in a motor vehicle vehicle control unit according to an embodiment of the invention.

Figurenbeschreibungfigure description

1a 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. 1a shows a motor vehicle 2 with several car control units 4 . 6 . 8th of which at least one using an external updating device 12a supplied with new software ("updated").

1b 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. 1b shows a motor vehicle 2 with several car control units 4 . 6 . 8th of which at least one using an internal updating device 12b supplied with new software ("updated").

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. 2 shows an enlarged schematic view of an external updating device 12a , The external updating device 12a can z. B. a suitably equipped car diagnostic tester or a smartphone / tablet PC / laptop of a user, on which a suitable software ("App") is installed.

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. 3 shows an enlarged schematic view of an internal updating device 12b , The internal updating device 12b can a for this in the vehicle 2 built-in vehicle control unit 4 . 6 . 8th be, or a module in an existing car control unit 4 . 6 . 8th , The internal updating device 12b can also be a software module in a car control unit 4 . 6 . 8th his. In particular, it can be used as a virtual machine on an existing car control unit 4 . 6 . 8th be educated. The advantage of a virtual machine is that it has a small, ISO 26262 compliant hypervisor 38 Can force boundary conditions.

4 zeigt eine vergrößerte schematische Ansicht eines Kfz-Steuergerätes 4. 4 shows an enlarged schematic view of a vehicle control unit 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.The updating device 12a . 12b each has a transmitting device 17 and a receiving device 19 on, over a wireless or wired data connection 10 with a transmitting device 30 and a receiving device 28 at least one of the vehicle control units 4 . 6 . 8th are connected.

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 Bluetooth®-Verbindung hergestellt werden.A wired data connection 10 can for example via a motor vehicle 2 existing standardized interface 16 , in particular an OBD / OBD2 interface 16 getting produced. A wireless data connection 10 can be made for example by a Wi-Fi or Bluetooth® connection.

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.The transmission between the updating device 12a . 12b and at least one vehicle control unit 4 . 6 . 8th can also have an intermediary gateway 34 respectively. This gateway 34 On the one hand, it can be configured to filter invalid messages, on the other hand, the gateway can 34 connect a wireless interface to a wired interface.

Die Kfz-Steuergeräte 4, 6, 8 können untereinander über Datenleitungen 18, insbesondere einen Datenbus 18, oder drahtlos Daten austauschen.The car control units 4 . 6 . 8th can communicate with each other via data lines 18 , in particular a data bus 18 , or wirelessly exchange data.

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 5 gezeigt.The sequence of a method for updating the software of at least one of the motor vehicle 2 installed vehicle control units 4 . 6 . 8th according to an embodiment of the invention is shown schematically in the 5 shown.

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.In a first step 110 gets the update device 12a . 12b about one at the update device 12a . 12b trained input device 14 or an interface 15 , in particular a mobile radio, WLAN, Bluetooth® or USB interface 15 , an order to update the software of at least one of the vehicle control units 4 . 6 . 8th ,

Die neue Software, die an das wenigstens eine Kfz-Steuergerät 4, 6, 8 zu übertragen ist, ist entweder in einer Speichervorrichtung 13 der Aktualisierungsvorrichtung 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.The new software attached to the at least one car control unit 4 . 6 . 8th is to be transferred is either in a storage device 13 the updating device 12a . 12b stored or is over the interface 15 , z. From a USB storage device ("USB stick", "flash drive") to the updater 12a . 12b transmitted and possibly (temporarily) in the storage device 13 saved.

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.The software may optionally be in encrypted form, so it must first be decrypted before it can be used. In particular, in this case, the updating device 12a . 12b the key required to decrypt the software is not (yet) known.

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.The updating device 12a . 12b then send (in step 120 ) command to at least one of the vehicle control units 4 . 6 . 8th to the motor vehicle 2 shut down or block for the duration of the software update. The command may include, for example, an immobilizer 20 of the motor vehicle 2 to activate and / or a starter 22 or a fuel pump 24 of the motor vehicle 2 to block.

„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."Blocking" the motor vehicle 2 may in this context also mean the motor vehicle 2 in an "emergency mode" in which, for example, only a limited engine power is available, and / or to activate a warning light that indicates that some functions of the motor vehicle 2 , such as As ABS or ESP, are not available.

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.There is also the possibility that the operation of the motor vehicle 2 is initially completely blocked, and the motor vehicle 2 is set after the lapse of a predetermined period of time in an emergency operating state, which makes it possible, for example, the motor vehicle 2 to drive to a (other) workshop, eg. For example, if the software update failed to complete successfully.

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. The activation of the "emergency mode" may include a user input by which the user confirms that he is aware that the motor vehicle 2 is in a restricted emergency mode in which not all functions are available. The car 2 is activated only in emergency mode after the user has confirmed to have taken note of this.

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.Together with the command to block the motor vehicle 2 Optionally, a key ("key A") to the relevant car control unit 4 . 6 . 8th be transmitted.

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.Once the car control unit 4 . 6 . 8th the command to block the motor vehicle 2 has executed, send it in step 130 an acknowledgment message confirming that the command has been executed, to the updating device 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.The car control unit 4 . 6 . 8th can also have a key B to the updating device 12a . 12b ship in the car control unit 4 . 6 . 8th was calculated. Was previously (in step 120 ) a key A to the vehicle control unit 4 . 6 . 8th can transfer, the key B in particular be calculated from this key A.

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.The algorithm for calculating the key B , or at least parameters that are included in the calculation, is the vehicle control unit 4 . 6 . 8th but not the updater 12a . 12b known.

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.The car control unit 4 . 6 . 8th can be designed so that key B is sent only if the at least one vehicle function has been blocked. If the function is not blocked, an error message will be sent. Alternatively, the provision of a key B is an always active function, and "Is the vehicle blocked?" is a parameter that enters into the calculation of the key.

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.A calculation device 26 that in the updating device 12a . 12b is present, calculated from data (characteristics) provided by the vehicle control units 4 . 6 . 8th be queried, a code (step 130 ). The calculation device 26 can be realized in hardware or software. In particular, the key B can also be included in this calculation.

Das Abfragen der Daten (Kennwerte) kann auch die Abfrage von Daten bei wenigstens einem externen Backend-System 40, z.B. einen Server des Herstellers 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.Querying the data (characteristic values) can also query the data in at least one external backend system 40 , eg a server of the manufacturer of the motor vehicle 2 or the car control units 4 . 6 . 8th include to exclude unauthorized manipulation and a complete documentation of the changes made, in particular the final or target state of the vehicle control units 4 . 6 . 8th to enable.

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.If the new software on the updater 12a . 12b stored in encrypted form, this code can be used in particular to decrypt the software (step 140 ) be used. The encryption of the software does not have to provide cryptographic security.

Alternativ ist ebenso möglich, dass dieser Code in den Algorithmus für den UDS-Secure-Access (ISO 14229:2013, §9.4 - Dienst 0x27) oder für ASAM XCP MCD-1 „UNLOCK“ eingeht.Alternatively, it is also possible that this code is included in the algorithm for UDS Secure Access (ISO 14229: 2013, §9.4 - service 0x27) or for ASAM XCP MCD-1 "UNLOCK".

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.After the possibly encrypted stored software has been decrypted, the software in step 150 over the data connection 10 on at least one of the vehicle control units 4 . 6 . 8th transmitted and on the at least one vehicle control unit 4 . 6 . 8th Installed.

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.The software may also include several software packages, in particular each software package for updating each one of the vehicle control units 4 . 6 . 8th is provided. In particular, an order can be specified in which the software packages to the various vehicle control units 4 . 6 . 8th are aufzuspielen.

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.In this case, a car control unit 4 . 6 . 8th whose software has been successfully installed, provide a key value. This key value is in turn from the calculation device 26 used to calculate a new code. This new code is then used in particular for decrypting and updating the next software package.

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.Because the new code is only present if the previous software package succeeds on its car control unit 4 . 6 . 8th has been installed, this way ensures that the software of the car control units 4 . 6 . 8th can only be updated in the given order.

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.It is also possible that an nth software package certain functions of the motor vehicle 2 , such as B. the injection system deactivated to the motor vehicle 2 and a subsequent m-th software package (m> n), which is later decrypted and installed, re-enables the disabled function after the software update has been successfully completed.

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.After the software update has been completed, ie after all software packages successfully on the associated car control units 4 . 6 . 8th can be played, the calculation device 26 be reused to get out of data (characteristics) provided by the car control units 4 . 6 . 8th request an activation code (step 160 ) to calculate.

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.In this case, depending on the application data all vehicle control units 4 . 6 . 8th or only data of those vehicle control units 4 . 6 . 8th be queried whose software has been updated. To ensure proper interaction of all car control units 4 . 6 . 8th in the motor vehicle 2 In particular, data of those car control devices can ensure 4 . 6 . 8th be queried with the updated car control units 4 . 6 . 8th interact.

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.The queried data can, for example, version numbers of the current on the respective car control unit 4 . 6 . 8th installed software and / or the content of at least one defined subarea or an entire memory 7 of the respective vehicle control unit 4 . 6 . 8th include.

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.In addition, the queried data can also be input to a user via an on / in the motor vehicle 2 provided input device 5 is input. This makes it possible to ensure that the motor vehicle 2 is activated only after the software update by a user input on the motor vehicle 2 itself has been confirmed. The user input can be a simple Yes / No as well as the copying of a release code ("Captcha"). This has the advantage that this code can enter into the calculation of the activation code and thus can not be skipped.

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.In particular, it may be provided that an "emergency operation" of the motor vehicle 2 in which not all functions of the motor vehicle 2 is activated only after the user has confirmed that he has noted the existence of an emergency operation and the associated restrictions.

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.Additionally or alternatively, the queried data may also include a vehicle identification number and / or a vehicle identification number or a different size that the motor vehicle 2 or the vehicle type of the motor vehicle 2 clearly identified. Also features of the vehicle configuration, such as engine size, number of driven axles and other features, may be included in the calculation of the activation code.

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.Because the data of an inappropriate motor vehicle 2 can not lead to the calculation of the correct activation code, can be ensured in this way that the motor vehicle 2 is only activated again when only software has been installed, which is for the respective motor vehicle 2 suitable is.

Der auf diese Weise berechnete Aktivierungscode wird von der Aktualisierungsvorrichtung 10 für die Kommunikation mit dem wenigstens einen der Kfz-Steuergeräte 4, 6, 8 verwendet (Schritt 170), optional kann dabei zusätzlich der zuvor berechnete Schlüssel A oder B übertragen werden.The activation code calculated in this way is provided by the updating device 10 for communication with the at least one of the vehicle control units 4 . 6 . 8th used (step 170 ), optionally additionally the previously calculated key A or B can be transmitted.

Eine Vergleichs- und Freigabevorrichtung 32 des wenigstens einen Kfz-Steuergerä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.A comparison and release device 32 the at least one vehicle control unit 4 . 6 . 8th that has received the activation code, validated in step 180 the received messages, with a in the respective car control unit 4 . 6 . 8th stored predetermined reference algorithm and reactivated the motor vehicle 2 (Step 200 ), eg by unlocking the immobilizer 20 and / or activating the starter 22 or the fuel pump 24 , (only) in the case of a positive validation of the received activation code.

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).Will the activation code with the in the respective car control unit 4 . 6 . 8th stored algorithm is not positively validated, the motor vehicle 2 not reactivated. Instead, an error message is issued (step 210 ).

Die Vergleichs- und Freigabevorrichtung 32 kann in Hardware oder Software realisiert sein.The comparison and release device 32 can be realized in hardware or software.

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.In order to prevent or at least complicate unauthorized manipulations, communication between the updating device 10 and the car control units 4 . 6 . 8th be cryptographically secured, that is encrypted and / or signed done.

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.Optionally, for communication between the updating device 12a . 12b and the car control units 4 . 6 . 8th Known concepts of communication with "watchdog" blocks are used. The car control units 4 . 6 . 8th For example, you can keep track of minimum and maximum allowable times and reject activation codes that arrive outside of these times. The updating device 12a . 12b can also selectively send wrong activation codes and then the negative response code of the respective vehicle control unit 4 . 6 . 8th to flow into the wide process.

Claims (15)

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.A method of updating software of at least one vehicle control unit (4, 6, 8) installed in a motor vehicle (2), the method comprising: (A) transmitting a preparatory command, in particular a command to block the Motor vehicle (2), of an updating device (12a, 12b) to at least one vehicle control unit (4, 6, 8); (B) transmitting to the updating device (12a, 12b) an acknowledgment message confirming the execution of the preparatory command from the at least one vehicle control unit (4, 6, 8); (C) transferring new software from the updating device (12a, 12b) to the at least one vehicle control unit (4, 6, 8) and installing the new software on the at least one vehicle control unit (4, 6, 8); (D) querying a parameter dependent on the software, in particular the software version number, of at least one motor vehicle control unit (4, 6, 8); (E) calculating an activation code from the at least one requested characteristic value; (F) using this activation code in the subsequent communication with at least one vehicle control unit (4, 6, 8); (G) executing a command, in particular a command for restoring the driving readiness of the motor vehicle (2), by the at least one motor vehicle control unit (4, 6, 8), only if the motor vehicle control unit (4, 6, 8) checked the activation code directly or indirectly and determined that there was a valid activation code. 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.Method according to Claim 1 wherein in step (F) the activation code is transmitted from the updating device (12a, 12b) to the at least one vehicle control unit (4, 6, 8) and validated by this vehicle control unit according to a predefined algorithm; and / or wherein in step (F) the activation code is used to decrypt at least one command or algorithm used for communication with the at least one vehicle control unit (4, 6, 8) with this activation code; and / or wherein in step (F) the activation code is used for authentication of the updating device (12a, 12b) to the at least one motor vehicle control unit (4, 6, 8). 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.Method according to one of the preceding claims, wherein the method comprises, prior to step (C) to transmit a key from the at least one vehicle control unit (4, 6, 8) to the updating device (12a, 12b) and in step (C) Use start code calculated from at least this key. 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.Method according to Claim 1 or 2 wherein the method comprises, prior to step (C), sending a key from the updating device (12a, 12b) to the at least one motor vehicle control unit (4, 6, 8), and wherein the addressed motor vehicle control unit is dependent in particular on this key Message to the updating device (12a, 12b) and wherein the updating device (12a, 12b) uses in step (C) a start code calculated from at least this message. 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.Method according to Claim 3 or 4 in step (C), wherein the start code is transmitted from the updating device (12a, 12b) to the at least one vehicle control unit (4, 6, 8) and is validated by this vehicle control unit according to a predefined algorithm; and / or wherein in step (C) the start code is used to decrypt at least one command or algorithm used for communication with the at least one vehicle controller (4, 6, 8) with that start code; and / or wherein in step (C) the start code is used for authentication of the updating device (12a, 12b) to the at least one motor vehicle control unit (4, 6, 8). 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.Method according to one of Claims 1 to 5 wherein the method comprises, in step (C), transferring the data via a gateway (34) from the updating device (12a, 12b) to the motor vehicle control unit (4, 6, 8), the gateway (34) in particular Checks the messages and forwards only allowed messages. 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.Method according to Claim 6 in that the updating device (12a, 12b) must enable the gateway (34) for at least one message, and for this purpose a gateway code is used which calculates at least one message sent by a motor vehicle control unit (4, 6, 8) has been. 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 Authentisierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem Gateway (34) verwendet wird.Method according to Claim 7 wherein the gateway unlock code is transmitted from the updating device (12a, 12b) to the gateway (34) and validated by that gateway (34) according to a predefined algorithm; and / or wherein the gateway unlock code is used to decrypt at least one command or algorithm used to enable the gateway (34) with that gateway unlock code; and / or wherein the gateway unlock code is used to authenticate the updating device (12a, 12b) to the gateway (34). 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-Steuergerätes (4, 6, 8), dessen Software aktualisiert worden ist, berechnet worden ist, für die Kommunikation mit dem ein n+1-tes Kfz-Steuergerät (4, 6, 8) verwendet wird.Method according to one of the preceding claims, wherein the method comprises updating the software of a plurality of motor vehicle control units (4, 6, 8), wherein a code consisting of characteristic values of at least the nth vehicle control unit (4, 6, 8), whose software has been updated, is used for communication with the n + 1-th car control unit (4, 6, 8). 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.Method according to one of the preceding claims, wherein the interrogation of the characteristic value of one or more motor vehicle control units (4, 6, 8) comprises the / the characteristic value (s) of one or more vehicle Control units (4, 6, 8) query, which cooperate with the at least one vehicle control unit (4, 6, 8) whose software has been updated. 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.Method according to one of the preceding claims, wherein the method comprises calculating one of the codes from the content of at least a portion of a memory (7) of the motor vehicle control unit (4, 6, 8); and / or wherein the method comprises calculating one of the codes from a user input, a chassis number, and / or a vehicle identification number; and / or wherein the method comprises sending data about the software update to an external backend and using the feedback from the backend to calculate a code. 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.Method according to one of the preceding claims, wherein the test takes place in which the vehicle control unit (4, 6, 8), in particular the vehicle control unit (4, 6, 8) that has blocked at least one driving function and / or Vehicle control unit (4, 6, 8) that is to be reprogrammed and / or the vehicle control unit (4, 6, 8) that acts as a gateway (34), received messages that contain particular commands and / or parameters, compares with stored reference values; and / or wherein the check is made in which the vehicle control unit (4, 6, 8) uses the received messages as parameters for at least one one-way function and compares the results with stored reference values, and / or wherein the check is successful Authentication takes place. 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 vorbereitenden 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.Updating device (12a, 12b) for updating the software of at least one motor vehicle control unit (4, 6, 8) installed in a motor vehicle (2), the updating device (12a, 12b) comprising: a storage device (13) adapted to store the software to be updated; a transmitting device (17) adapted to transmit a preparatory command, in particular a command to block the motor vehicle (2), to the motor vehicle control unit (4, 6, 8); a receiving device (19) adapted to receive an acknowledgment message confirming the execution of the received preparatory command by the vehicle control unit (4, 6, 8); wherein the transmitting device (17) is adapted to transmit the software to be updated to the vehicle control unit (4, 6, 8); wherein the receiving device (19) is adapted to receive at least one characteristic value, in particular the software version number, of one or more motor vehicle control units (4, 6, 8); wherein the updating device (12a, 12b) has a calculation device (26) which is designed to calculate a code, in particular an activation code and / or a code for starting the programming and / or a code for activating a gateway, from the received characteristic values ; and wherein the transmission device (17) is designed such that this code is required for communication with the vehicle control unit (4, 6, 8). 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.A motor vehicle control unit (2) comprising at least one hypervisor (38) and an updating device (12b) Claim 13 wherein the hypervisor (38) after a successful or unsuccessful update, in particular the storage device (13) and / or the receiving device (19) and / or the transmitting device (17) and / or the calculation device (26) of the updating device (12b) at least partially clears and / or resets. 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.Vehicle control unit (4, 6, 8) for a motor vehicle (2), which is designed to interact with an updating device (12a, 12b) and other motor vehicle control units (4, 6, 8), wherein the motor vehicle control unit (4 , 6, 8) comprises: a receiving device (28) adapted to receive a preparatory command, in particular a command to block the motor vehicle (2), from an updating device (12a, 12b); a transmitting device (30) adapted to transmit an acknowledgment message confirming the execution of a received preparatory command by the vehicle control unit (4, 6, 8); wherein the sending device (30) is adapted to transmit a conclusion, in particular a key dependent on the previous communication between the updating device (12a, 12b), to the updating device (12a, 12b), the key in particular depending on whether the vehicle function was blocked; wherein the receiving device (28) is adapted to forward messages received by the updating device (12a, 12b) to a comparison and release device (32), which is designed to validate the messages according to a predetermined algorithm and to control the driving readiness of the motor vehicle (2). restore only on positive validation.
DE102017218872.3A 2017-10-23 2017-10-23 Method and device for updating software of a motor vehicle control unit Pending DE102017218872A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102017218872.3A DE102017218872A1 (en) 2017-10-23 2017-10-23 Method and device for updating software of a motor vehicle control unit
CN201880082909.2A CN111480141A (en) 2017-10-23 2018-10-22 Method and device for updating software of a motor vehicle control device
PCT/EP2018/078830 WO2019081395A1 (en) 2017-10-23 2018-10-22 Method and device for updating software of a motor vehicle control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017218872.3A DE102017218872A1 (en) 2017-10-23 2017-10-23 Method and device for updating software of a motor vehicle control unit

Publications (1)

Publication Number Publication Date
DE102017218872A1 true DE102017218872A1 (en) 2019-04-25

Family

ID=64049104

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017218872.3A Pending DE102017218872A1 (en) 2017-10-23 2017-10-23 Method and device for updating software of a motor vehicle control unit

Country Status (3)

Country Link
CN (1) CN111480141A (en)
DE (1) DE102017218872A1 (en)
WO (1) WO2019081395A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506536A (en) * 2020-11-12 2021-03-16 东风汽车集团有限公司 Vehicle-mounted controller software updating method, device, equipment and medium
DE102019131087A1 (en) * 2019-11-18 2021-05-20 Audi Ag Software installation in vehicle control units
WO2021259530A1 (en) * 2020-06-25 2021-12-30 Bayerische Motoren Werke Aktiengesellschaft Method for ascertaining a drive clearance after a software update for a number of controllers of a vehicle, computer readable medium, system, and vehicle
WO2023057126A1 (en) * 2021-10-04 2023-04-13 Bayerische Motoren Werke Aktiengesellschaft Processor system for a vehicle, and method for monitoring a process state after a remote software update
EP4084436A4 (en) * 2020-01-23 2023-05-24 Huawei Technologies Co., Ltd. Method and apparatus for upgrading vehicle-mounted device
US11764997B2 (en) 2018-11-01 2023-09-19 Continental Automotive Gmbh Apparatus for configuring and validating an intervention in a real-time ethernet data network
JP7452452B2 (en) 2021-02-02 2024-03-19 トヨタ自動車株式会社 OTA master, software update control method and update control program, vehicle equipped with OTA master
DE102022213790A1 (en) 2022-12-16 2024-06-27 Zf Friedrichshafen Ag Indirect over-the-air update

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244828B (en) * 2021-11-30 2023-02-24 三一汽车起重机械有限公司 Data transmission method and vehicle-mounted dynamic data management system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008056745A1 (en) * 2008-11-11 2010-05-12 Continental Automotive Gmbh Device for controlling a vehicle function and method for updating a control device
CN101930629A (en) * 2010-06-09 2010-12-29 金龙联合汽车工业(苏州)有限公司 Remote updating system and method of vehicle information collecting device
US9858064B2 (en) * 2012-08-16 2018-01-02 Ford Global Technologies, Llc Methods and apparatus for vehicle computing system software updates
WO2016075865A1 (en) * 2014-11-12 2016-05-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Update management method, update management device, and control program
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
CN106533655B (en) * 2016-10-27 2020-07-31 江苏大学 Method for safe communication of ECU (electronic control Unit) in vehicle interior network

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11764997B2 (en) 2018-11-01 2023-09-19 Continental Automotive Gmbh Apparatus for configuring and validating an intervention in a real-time ethernet data network
DE102019131087A1 (en) * 2019-11-18 2021-05-20 Audi Ag Software installation in vehicle control units
EP4084436A4 (en) * 2020-01-23 2023-05-24 Huawei Technologies Co., Ltd. Method and apparatus for upgrading vehicle-mounted device
WO2021259530A1 (en) * 2020-06-25 2021-12-30 Bayerische Motoren Werke Aktiengesellschaft Method for ascertaining a drive clearance after a software update for a number of controllers of a vehicle, computer readable medium, system, and vehicle
CN112506536A (en) * 2020-11-12 2021-03-16 东风汽车集团有限公司 Vehicle-mounted controller software updating method, device, equipment and medium
CN112506536B (en) * 2020-11-12 2023-05-30 东风汽车集团有限公司 Method, device, equipment and medium for updating vehicle-mounted controller software
JP7452452B2 (en) 2021-02-02 2024-03-19 トヨタ自動車株式会社 OTA master, software update control method and update control program, vehicle equipped with OTA master
WO2023057126A1 (en) * 2021-10-04 2023-04-13 Bayerische Motoren Werke Aktiengesellschaft Processor system for a vehicle, and method for monitoring a process state after a remote software update
DE102022213790A1 (en) 2022-12-16 2024-06-27 Zf Friedrichshafen Ag Indirect over-the-air update

Also Published As

Publication number Publication date
CN111480141A (en) 2020-07-31
WO2019081395A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
DE102017218872A1 (en) Method and device for updating software of a motor vehicle control unit
DE112014005412B4 (en) Program update system and program update method
DE102017125826A1 (en) MESSAGE AUTHENTICATION ABOUT CONTROLLER AREA NETWORK
WO2017013134A1 (en) Method and system for firmware-updating a control device for process control
DE102018104079A1 (en) SECURE END TO END VEHICLE ECU RELEASE IN A HALF OFFLINE ENVIRONMENT
DE102014114607A1 (en) Programming vehicle modules with remote devices and related methods and systems
DE112019005701T5 (en) SAFE BOAT SUPPORT FOR DEVICES AND RELATED SYSTEMS, PROCEDURES AND DEVICES
DE112012003795T5 (en) Vehicle network system and vehicle information processing method
DE102015203776A1 (en) Method for programming a control device of a motor vehicle
DE102008056745A1 (en) Device for controlling a vehicle function and method for updating a control device
WO2017020999A1 (en) Method for operating a motor vehicle, and system for operating a motor vehicle
WO2019072840A1 (en) Apparatus for protecting diagnosis commands to a controller, and corresponding motor vehicle
DE112020001126T5 (en) VEHICLE CONTROL UNIT
EP3369027A1 (en) Method and security module for providing a security function for a device
EP3314339B1 (en) Method, server, firewall, control device, and system for programming a control device of a vehicle
EP3741094B1 (en) Control system for a motor vehicle, method for operating the control system and motor vehicle with such a control system
DE112015004886T5 (en) communication device
DE102012023648B4 (en) Method and system for updating a control unit of a motor vehicle
WO2018007049A1 (en) Method for the secure authentication of control devices in a motor vehicle
EP3811261A1 (en) Cryptography module and method for operating same
DE102023110645A1 (en) Safety procedures and safety device
DE102019131087A1 (en) Software installation in vehicle control units
EP3752911A1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
EP3384411B1 (en) Method for transmitting a function command between a motor vehicle and a device outside the vehicle, and interface apparatus and system
WO2018145798A1 (en) Network system and method for checking the functional capability of a cloud-based control function