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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File 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.
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.
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:
- (A) Übertragen eines Befehls, insbesondere eines Befehls zum Blockieren wenigstens einer Funktion des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung an das wenigstens eine Kfz-Steuergerät;
- (B) Übertragen einer Bestätigungsnachricht, welche die Ausführung des vorbereitenden Befehls bestätigt, von dem Kfz-Steuergerät an die Aktualisierungsvorrichtung;
- (C) Übertragen neuer Software von der Aktualisierungsvorrichtung an das wenigstens Kfz-Steuergerät und Installierten der neuen Software auf dem wenigstens einen Kfz-Steuergerät;
- (D) Abfragen eines von der Software abhängigen Kennwertes, insbesondere der Software-Versionsnummer, eines oder mehrerer Kfz-Steuergeräte, die in dem Kraftfahrzeug verbaut sind;
- (E) Berechnen eines Aktivierungscodes aus den abgefragten Kennwerten;
- (F) Kommunizieren der Aktualisierungsvorrichtung mit wenigstens dem Kfz-Steuergerät, das wenigstens eine Funktion des Kraftfahrzeugs blockiert hat, unter Verwendung dieses Aktivierungscodes, wobei die Kommunikation so aufgebaut ist, dass das Kfz-Steuergerät sicher erkennt, wenn die Aktualisierungsvorrichtung nicht über den richtigen Aktivierungscode verfügt;
- (G) Ausführen eines Befehls zum Reaktivieren der wenigstens einen blockierten Funktion des Kraftfahrzeugs durch das Kfz-Steuergerät nur, nachdem das Kfz-Steuergerät direkt oder indirekt geprüft und bestätigt hat, dass der richtige Aktivierungscode vorliegt.
- (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;
- (B) transmitting an acknowledgment message confirming the execution of the preparatory command from the vehicle control unit to the updating device;
- (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;
- (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;
- (E) calculating an activation code from the requested characteristic values;
- (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;
- (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.
- - 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 "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
Die Aktualisierungsvorrichtung
Eine drahtgebundene Datenverbindung
Die Übertragung zwischen der Aktualisierungsvorrichtung
Die Kfz-Steuergeräte
Der Ablauf eines Verfahrens zum Aktualisieren der Software wenigstens eines der im Kraftfahrzeug
In einem ersten Schritt
Die neue Software, die an das wenigstens eine Kfz-Steuergerät
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
Die Aktualisierungsvorrichtung
„Blockieren“ des Kraftfahrzeugs
Es besteht auch die Möglichkeit, dass der Betrieb des Kraftfahrzeugs
Das Aktivieren des „Notbetriebszustands“ kann eine Benutzereingabe umfassen, durch welche der Benutzer bestätigt, dass ihm bekannt ist, dass sich das Kraftfahrzeug
Zusammen mit dem Befehl zum Blockieren des Kraftfahrzeugs
Sobald das Kfz-Steuergerät
Das Kfz-Steuergerät
Der Algorithmus zum Berechnen des Schlüssels
Das Kfz-Steuergerät
Eine Berechnungsvorrichtung
Das Abfragen der Daten (Kennwerte) kann auch die Abfrage von Daten bei wenigstens einem externen Backend-System
Wenn die neue Software auf der Aktualisierungsvorrichtung
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
Die Software kann auch mehrere Softwarepakte umfassen, wobei insbesondere jedes Softwarepaket zur Aktualisierung jeweils eines der Kfz-Steuergeräte
In diesem Fall kann ein Kfz-Steuergerät
Da der neue Code nur vorliegt, wenn das vorangehende Softwarepaket erfolgreich auf seinem Kfz-Steuergerät
Es ist auch möglich, dass ein n-tes Softwarepaket gewisse Funktionen des Kraftfahrzeugs
Nachdem die Softwareaktualisierung abgeschlossen worden ist, d.h. nachdem alle Softwarepakete erfolgreich auf die zugehörigen Kfz-Steuergeräte
Dabei können je nach Anwendungsfall Daten allen Kfz-Steuergeräten
Die abgefragten Daten können beispielsweise Versionsnummern der aktuell auf den jeweiligen Kfz-Steuergerät
Die abgefragten Daten können zusätzlich auch einer Benutzereingabe, die über eine am/im Kraftfahrzeug
Insbesondere kann vorgesehen sein, dass ein „Notbetrieb“ des Kraftfahrzeugs
Zusätzlich oder alternativ können die abgefragten Daten auch eine Fahrgestellnummer und/oder eine Fahrzeugidentifikationsnummer oder eine anderen Größe, die das Kraftfahrzeug
Da die Daten eines unpassenden Kraftfahrzeugs
Der auf diese Weise berechnete Aktivierungscode wird von der Aktualisierungsvorrichtung
Eine Vergleichs- und Freigabevorrichtung
Wird der Aktivierungscode mit dem im jeweiligen Kfz-Steuergerät
Die Vergleichs- und Freigabevorrichtung
Um unautorisierte Manipulationen zu verhindern oder zumindest zu erschweren, kann die Kommunikation zwischen der Aktualisierungsvorrichtung
Optional können für die Kommunikation zwischen der Aktualisierungsvorrichtung
Claims (15)
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)
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)
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)
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 |
-
2017
- 2017-10-23 DE DE102017218872.3A patent/DE102017218872A1/en active Pending
-
2018
- 2018-10-22 WO PCT/EP2018/078830 patent/WO2019081395A1/en active Application Filing
- 2018-10-22 CN CN201880082909.2A patent/CN111480141A/en active Pending
Cited By (9)
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 |