WO2019081395A1 - 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

Info

Publication number
WO2019081395A1
WO2019081395A1 PCT/EP2018/078830 EP2018078830W WO2019081395A1 WO 2019081395 A1 WO2019081395 A1 WO 2019081395A1 EP 2018078830 W EP2018078830 W EP 2018078830W WO 2019081395 A1 WO2019081395 A1 WO 2019081395A1
Authority
WO
WIPO (PCT)
Prior art keywords
vehicle control
control unit
motor vehicle
code
updating
Prior art date
Application number
PCT/EP2018/078830
Other languages
German (de)
French (fr)
Inventor
Daniel Krippner
Andreas Heyl
Manfred Spraul
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 CN201880082909.2A priority Critical patent/CN111480141A/en
Publication of WO2019081395A1 publication Critical patent/WO2019081395A1/en

Links

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

Definitions

  • 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.
  • end-to-end protection is used: the ASIL-compliant target controller 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.
  • An engine control unit may, for example, have the function of limiting the maximum speed.
  • the engine control unit receives information about the vehicle speed from an ESP control unit.
  • 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.
  • 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:
  • An updating device for updating the software of a motor vehicle control device mounted in a motor vehicle a storage device, which is adapted to store the software to be updated, a transmitting device, which is used to transmit a preparatory command, in particular a command to block the Motor vehicle, is formed on the vehicle control unit; and a receiving device configured to receive a confirmation message confirming execution of a received preparatory command by the vehicle controller.
  • 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 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 formed using this
  • a vehicle control unit is designed to cooperate with an updating device to carry out a method according to an embodiment of the invention.
  • the vehicle control unit comprises a receiving device, which is used for receiving a preparatory command, in particular a command for blocking of the motor vehicle, is formed by an updating device, and a transmitting device, which is adapted to transmit an acknowledgment message, which confirms the execution of a received preparatory command 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.
  • 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.
  • 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.
  • 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.
  • the activation code is not kept on the update device, but it is calculated from the feedback from the environment (other vehicle control units, backend, driver interaction, support hotline, etc.).
  • the decision to reactivate the vehicle function is transferred from the update device to another vehicle control unit:
  • Updater calculates the activation code from the
  • the code is not known to the updater, so there are no (potential misdepects that can be made in the updater.
  • the activation code is in particular calculated by the updating device from data queried by the updated (reprogrammed) vehicle control units. If at least one of the vehicle control devices has not been successfully updated and / or is not in the expected state, it provides different data from which the updating device calculates a different activation code, which is subsequently used in the attempt of
  • 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 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.
  • hash functions such as MD4, MD5, SHA1 or SHA256 could be used for this purpose.
  • 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 may represent a Service ID ("SID") or be used as a parameter in a U DS communication (ISO 14229: 2013), on which device the activation code must 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.
  • SID Service ID
  • ISO 14229 U DS communication
  • one-way functions could be MD4, MD5, SHA1 or the
  • the activation code in step (F) may be included in the algorithm for authenticating the updating device to the at least one vehicle controller. 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".
  • the activation code in step (F) may be used to decrypt a program that requires the communication required Contains algorithms and commands.
  • the encryption does not have to offer any cryptographic security, it is sufficient if it is impossible for the updating device to reach the unencrypted program without knowing 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 usually require less computation time, depending on
  • 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.
  • 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.
  • 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.
  • Activation code is sent to the car control unit and checked by the vehicle control unit.
  • 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.
  • the program (instructions, algorithms) executed by the updating device for communication with the vehicle controller is stored in encrypted form.
  • a password for the decryption is the activation code, only by the
  • the update device has access to the required commands.
  • 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.
  • a key (hereinafter “key B") is sent by the vehicle control unit upon successful blocking of the vehicle function.
  • a key B is required if, in addition to preventing a false reactivation of the vehicle function, it must also be demonstrated that no erroneous start of the reprogramming is possible (point (C) in the
  • the key B is calculated from a key A, which has been previously transferred from the updating device to the vehicle control unit.
  • 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 updater does not function as the vehicle
  • key A can block incorrectly. 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.
  • the car control unit always calculates keys A from key A - and that enters into this calculation when a vehicle function is blocked.
  • This has the advantage that both states are safe, e.g. "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 errors may then be noticed by the vehicle controllers become.
  • 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.
  • the algorithm for calculating key B may be constructed such that the blocked vehicle function enters the key B as a parameter.
  • 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 without a previous blocking of the vehicle function, the SW update process can not be started.
  • 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.
  • the method includes updating the software of multiple vehicle control devices.
  • This is a code (“code n"), in particular from feedback of an nth vehicle control unit, its software has been updated, used to perform the SW update for a n + l-tes car control unit. Since the code that contains data of the nth vehicle control unit exists only when this vehicle control unit has been successfully updated and this code is used for the update of the n + lst car control unit, it is ensured that the car Control units can only be updated in the given order.
  • commands can be decrypted with them, they can be sent as parameters or commands to a motor vehicle control unit, and / or they can be used for authentication be used.
  • the transmission between the updating device and at least one vehicle control unit can also take place via an intermediary gateway.
  • this gateway can be designed to filter impermissible messages, on the other hand, the gateway can connect a wireless interface to a wired interface.
  • 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.
  • 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 be too many messages are sent by the updating device, since the consequent bus load could lead to a malfunction of vehicle functions.
  • the gateway must be enabled by the updating device before transferring data between the updating device and at least one vehicle control unit.
  • 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).
  • a code (“gateway activation code") can be used, which is initially not available on the diagnostic tester, but is calculated in particular from the communication with at least one vehicle control unit.
  • the Gatwway unlock code may be the same as the start code, but it is also possible that both codes are different, in particular the gateway may receive feedback from the gateway.
  • 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).
  • the step of validating comprises evaluating all values (activation code, and / or key A, and / or Key B).
  • 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.
  • 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.
  • the method further includes computing the codes (activation code, enablement code, start code, "code n") from the content of at least portions of a memory of a vehicle controller, thereby further verifying the success of the software update who- because errors that result in different memory contents can be reliably detected.
  • Hedges are used; these may include, for example:
  • interrogating the characteristic value comprises interrogating the characteristic values of one or more 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 work together in operation are equipped with compatible software versions so that they can cooperate easily.
  • the communication between the updating device and the vehicle control device is encrypted. As a result, unauthorized changes to the vehicle control devices is prevented or at least considerably more difficult.
  • the interrogation of characteristic values comprises the query of data in at least one external backend system, for example a server of the manufacturer of the vehicle or the vehicle control unit.
  • a server of the manufacturer of the vehicle or the vehicle control unit This makes it easier to exclude unauthorized manipulations and allows complete documentation of the changes made, in particular the final or target state of the vehicle control devices.
  • two processes for restoring the driving readiness of the motor vehicle by the vehicle control device are provided on the updating device: A first process which requires an activation code which can be calculated in the event of a successful update.
  • 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.
  • 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.
  • the interface for transmitting the data between the updating device and the vehicle control device is configured 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.
  • the interface for transferring the data between the updating device and the vehicle control device is configured 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 be made in particular as a WLAN or Bluetooth® connection.
  • communications between the updating device and the vehicle controllers may be known for communication purposes
  • the vehicle control units can, for example, observe minimum and maximum permissible times and
  • 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.
  • 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 writable 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.
  • the invention is based on the recognition that the updating of the software ("re-breathing") of a 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.
  • the updating device may be a true "hostile hosts", for example when an end user's smartphone, tablet or laptop is used as an updating device.
  • FIG. 1 a shows a motor vehicle with a plurality of vehicle control devices and an external updating device.
  • Figure lb shows a motor vehicle with several vehicle control devices and an internal updating device.
  • Figure 2 shows an enlarged schematic view of an external updating device.
  • Figure 3 shows an enlarged schematic view of an internal updating device.
  • FIG. 4 shows an enlarged schematic view of a vehicle control device.
  • FIG. 5 shows a schematic diagram of the sequence of a method for updating the software of at least one motor vehicle control device installed in a motor vehicle according to an exemplary embodiment of the invention.
  • FIG. 1 a shows a motor vehicle 2 with a plurality of vehicle control devices 4, 6, 8, of which at least one is supplied (“updated") with new software by means of an external updating device 12 a.
  • FIG. 1b shows a motor vehicle 2 with a plurality of motor vehicle control devices 4, 6, 8, of which at least one is supplied (“updated”) with new software by means of an internal updating device 12b.
  • FIG 2 shows an enlarged schematic view of an external updating device 12a.
  • the external updating device 12a may e.g. B. a suitably equipped automotive diagnostic tester or a smartphone / tablet PC / laptop to be a user on which a suitable software (“App”) is installed.
  • App a suitable software
  • FIG. 3 shows an enlarged schematic view of an internal updating device 12b.
  • the internal updating device 12b may be a vehicle control device 4, 6, 8 built into the motor vehicle 2 for this purpose, or a module in an existing vehicle control device 4, 6, 8.
  • the internal updating device 12b may also be a software module in a motor vehicle Control 4, 6, 8 be. In particular, it can be designed as a virtual machine on an existing vehicle control unit 4, 6, 8.
  • the advantage of a virtual machine is that here a small, to ISO 26262 compliant hypervisor 38 conditions can force.
  • FIG. 4 shows an enlarged schematic view of a vehicle control device 4.
  • the updating device 12a, 12b in each case has a transmitting device 17 and a receiving device 19, which are connected via a wireless or wired data connection 10 to a transmitting device 30 and a receiving device 28 of at least one of the vehicle control devices 4, 6, 8.
  • a wired data connection 10 can be produced, for example, via a standard interface 16 present in the motor vehicle 2, in particular an OBD / OBD2 interface 16.
  • a wireless data connection 10 may be made, for example, by a WLAN or Bluetooth connection.
  • the transmission between the updating device 12a, 12b and at least one vehicle control device 4, 6, 8 can also take place via an intermediary gateway 34.
  • this gateway 34 can be designed to filter impermissible messages, on the other hand, the gateway 34 can connect a wireless interface to a wired interface.
  • the vehicle control units 4, 6, 8 can communicate with one another via data lines 18, in particular a data bus 18, or wirelessly.
  • FIG. 1 The sequence of a method for updating the software of at least one of the motor vehicle control units 4, 6, 8 installed in the motor vehicle 2 according to an exemplary embodiment of the invention is shown schematically in FIG.
  • the updating device 12a, 12b receives an order for updating the software via an input device 14 formed on the updating device 12a, 12b or an interface 15, in particular a mobile radio, WLAN, Bluetooth® or USB interface 15 at least one of the vehicle control units 4, 6, 8.
  • the new software which is to be transmitted to the at least one vehicle control device 4, 6, 8, is stored either in a storage device 13 of the updating device.
  • direction 12a, 12b is stored or via the interface 15, z. B. from a USB storage device ("USB stick", “Flash Drive”), transferred to the updating device 12 a, 12 b and possibly stored (temporarily) in the storage device 13.
  • USB stick USB stick
  • Flash Drive USB storage device
  • the software may optionally be in encrypted form, so it must first be decrypted before it can be used.
  • the updating device 12a, 12b of the key necessary for decrypting the software may not be (yet) known.
  • the updating device 12a, 12b then sends (at step 120) a command to at least one of the vehicle controllers 4, 6, 8 to shut down the motor vehicle 2 for the duration of the software update.
  • the command may include, for example, to activate an immobilizer 20 of the motor vehicle 2 and / or to block a starter 22 or a fuel pump 24 of the motor vehicle 2.
  • Blocking the motor vehicle 2 in this context may also mean placing the motor vehicle 2 in an "emergency operating state" in which, for example, only limited engine power is available, and / or activating a warning light which indicates that some functions of the motor vehicle 2, such as. As ABS or ESP, are not available.
  • the activation of the "emergency mode" may include 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 motor vehicle 2 is activated only in the emergency mode after the user has confirmed to have taken note of this.
  • a key to the relevant vehicle control unit 4, 6, 8 are transmitted.
  • the car control unit 4, 6, 8 has executed the command to block the motor vehicle 2, it sends in step 130 a confirmation message confirming that the command has been executed to the updating device 12a, 12b.
  • the vehicle control unit 4, 6, 8 can also send a key B to the updating device 12a, 12b, which has been calculated in the vehicle control unit 4, 6, 8. If a key A was previously transmitted (in step 120) to the motor vehicle control unit 4, 6, 8, the key B can be calculated in particular from this key A.
  • the algorithm for calculating the key B, or at least parameters which are included in the calculation, is known to the motor vehicle control unit 4, 6, 8 but not to the updating device 12a, 12b.
  • the vehicle control unit 4, 6, 8 may be designed so that key B is only shipped when the at least one vehicle function has been blocked. If the function is not blocked, an error message will be sent. Alternatively, providing a key B may be an always active function, and "Is the vehicle blocked?" Is a parameter that enters the calculation of the key.
  • a calculation device 26 provided in the updating device 12a, 12b calculates a code from data (characteristics) retrieved from the vehicle control devices 4, 6, 8 (step 130).
  • Computation device 26 may be implemented in hardware or software.
  • the key B can also be included in this calculation.
  • the interrogation of the data can also include the interrogation of data in at least one external back-end system 40, eg a server of the manufacturer of the motor vehicle 2 or the vehicle control units 4, 6, 8, to exclude unauthorized manipulations and a Complete documentation of the changes made, in particular the final or target state of the vehicle control units 4, 6, 8, to allow. If the new software is stored on the updating device 12a, 12b in encrypted form, this code can be used in particular for
  • Decrypt the software (step 140).
  • the encryption of the software does not have to provide cryptographic security.
  • this code is included in the algorithm for the U DS Secure Access (ISO 14229: 2013, ⁇ 9.4 - service 0x27) or for ASAM XCP MCD-1 "UNLOCK".
  • the software is transmitted in step 150 via the data link 10 on at least one of the vehicle control units 4, 6, 8 and installed on the at least one vehicle control unit 4, 6, 8.
  • the software may also comprise a plurality of software packages, wherein in particular each software package for updating each one of the vehicle control units 4, 6, 8 is provided. In particular, an order may be predetermined in which the software packages are to be recorded on the various vehicle control devices 4, 6, 8.
  • a vehicle controller 4, 6, 8 whose software has been successfully installed can provide a key value.
  • This key value is in turn used by the calculation device 26 to calculate a new code.
  • This new code is then used in particular for decrypting and updating the next software package.
  • an nth software package certain functions of the motor vehicle 2, such. B. the injection system is deactivated to bring the motor vehicle 2 in a safe state, and a subsequent m-th software package (m> n), which is later decrypted and installed, the deactivated function reactivated after the software update has been successfully performed is.
  • the calculation device 26 can be used again to generate data (characteristic values) generated by the motor vehicle control units 4, 6, 8 to calculate an activation code (step 160).
  • all vehicle control units 4, 6, 8 or only data of those vehicle control units 4, 6, 8 are queried whose software has been updated.
  • data of those vehicle control units 4, 6, 8 can be queried, which interact with the updated vehicle control units 4, 6, 8.
  • the queried data may include, for example, version numbers of the software currently installed on the respective vehicle control device 4, 6, 8 and / or the content of at least one defined subarea or an entire memory 7 of the respective vehicle control unit 4, 6, 8.
  • the queried data can additionally also comprise a user input, which is entered via an input device 5 provided on / in the motor vehicle 2. This makes it possible to ensure that the motor vehicle 2 is activated only after the software update has been confirmed by a user input on the motor vehicle 2 itself.
  • the user input can also be the copying of a release code ("captcha”), which has the advantage that this code can enter into the calculation of the activation code and thus can not be skipped.
  • an "emergency operation" of the motor vehicle 2 in which not all functions of the motor vehicle 2 are available, is activated only after the user has confirmed that he has taken note of the existence of an emergency operation and the associated restrictions Has.
  • the queried data may also include a vehicle identification number and / or a vehicle identification number or another variable that uniquely identifies the motor vehicle 2 or the vehicle type of the motor vehicle 2. Also features of the vehicle configuration, such as the Motorization, the number of driven axles and other equipment features can be included in the calculation of the activation code.
  • the activation code calculated in this way is used by the updating device 10 for communication with the at least one of the vehicle control units 4, 6, 8 (step 170), optionally additionally the previously calculated key A or B can be transmitted.
  • step 210 If the activation code with the algorithm stored in the respective vehicle control device 4, 6, 8 is not positively validated, the motor vehicle 2 is not reactivated. Instead, an error message is issued (step 210).
  • the comparison and release device 32 may be implemented in hardware or software.
  • the communication between the updater 10 and the car controllers 4, 6, 8 may be cryptographically secured, i. encrypted and / or signed done.
  • the vehicle control units 4, 6, 8 may consider minimum and maximum allowable times and activation codes that arrive outside these times, reject.
  • the updating device 12a, 12b can also send targeted false activation codes and then incorporate the negative response code of the respective vehicle control unit 4, 6, 8 in the broad process.

Abstract

The invention relates to a method for updating the software of at least one motor vehicle control unit (4, 6, 8) built into a motor vehicle (2), said method comprising the following steps: (A) transmitting a preliminary command, particularly a command for blocking the motor vehicle (2), from an updating device (12a, 12b) to the motor vehicle control unit (4, 6, 8); (B) transmitting a confirmation message from the motor vehicle control unit (4, 6, 8); (C) transmitting new software from the updating device (12a, 12b) to the motor vehicle control unit (4, 6, 8); (D) soliciting a characteristic value from at least one motor vehicle control unit (4, 6, 8) built into the motor vehicle (2); (E) calculating an activation code on the basis of the solicited characteristic values; (F) using the calculated activation code for the subsequent communication with the motor vehicle control unit (4, 6, 8) that has blocked the vehicle function; and (G) implementing a command for reinstating the drivability of the motor vehicle (2) by the motor vehicle control unit (4, 6, 8) only once the motor vehicle control unit (4, 6, 8) has directly or indirectly checked whether the activation code is correct.

Description

Beschreibung Titel  Description title
Verfahren und Vorrichtung zum Aktualisieren von Software eines Kfz-Steuergerätes  Method and device for updating software of a motor vehicle control unit
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 Technik State 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 vehicle control units have to implement on the one hand 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 controller 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. 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 a modern motor vehicle, several vehicle control units generally interact closely: An engine control unit may, for example, have the function of limiting the maximum speed. For this purpose, the engine control unit receives information about the vehicle speed from an ESP control unit. 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 previously described "simple" self-plausibility update of an updated automotive control device 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 the vehicle control devices installed in the motor vehicle is in a mutually compatible and reliable state after the software has been updated.
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: 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:
(A) Übertragen eines Befehls, insbesondere eines Befehls zum Blockieren wenigstens einer Funktion des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung an das wenigstens eine Kfz-Steuergerät; (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) Übertragen einer Bestätigungsnachricht, welche die Ausführung des vorbereitenden Befehls bestätigt, von dem Kfz-Steuergerät an die Aktualisierungsvorrichtung; (B) transmitting an acknowledgment message confirming the execution of the preparatory command from the vehicle control unit to the updating device;
(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; (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) 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; (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) 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; (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 device securely detects if the updating device does not have the correct activation code features;
(G) Ausführen eines Befehls zum Reaktivieren der wenigstens einen blockierten Funktion des Kraftfahrzeugs durch das Kfz-Steuergerät nur, nachdem das Kfz-(G) executing an instruction to reactivate the at least one stalled function of the motor vehicle by the vehicle control unit only after the motor vehicle
Steuergerät direkt oder indirekt geprüft und bestätigt hat, dass der richtige Aktivierungscode vorliegt. Control unit directly or indirectly tested 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 Empfangsvor- richtung, die zum Empfangen einer Bestätigungsnachricht, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät bestätigt, ausgebildet ist. An updating device for updating the software of a motor vehicle control device mounted in a motor vehicle, according to an embodiment of the invention, a storage device, which is adapted to store the software to be updated, a transmitting device, which is used to transmit a preparatory command, in particular a command to block the Motor vehicle, is formed on the vehicle control unit; and a receiving device configured to receive a confirmation message confirming execution of a received preparatory command by the vehicle controller.
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 diesesThe 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 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 formed using this
Aktivierungscodes mit mindestens einem anderen Kfz-Steuergerät zu Activation codes with at least one other car control unit too
kommunizieren. communicate.
Ein Kfz-Steuergerät, gemäß einem Ausführungsbeispiel der Erfindung ist ausge- bildet, mit einer Aktualisierungsvorrichtung zusammenzuwirken, um ein Verfahren gemäß einen Ausführungsbeispiel der Erfindung auszuführen. Das Kfz-Steuergerät umfasst dazu insbesondere eine Empfangsvorrichtung, die zum Empfangen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs, von einer Aktualisierungsvorrichtung ausgebildet ist, und eine Sendevorrichtung, die zum Übertragen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät bestätigt. Die Sendevorrichtung ist ausgebildet, einen von der Software abhängigen Kennwert, insbesondere eine aktuelle Software- Versionsnummer, an die Aktualisierungsvorrichtung zu übertragen. Die A vehicle control unit according to an embodiment of the invention is designed 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 used for receiving a preparatory command, in particular a command for blocking of the motor vehicle, is formed by an updating device, and a transmitting device, which is adapted to transmit an acknowledgment message, which confirms the execution of a received preparatory command 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
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. 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 vehicle control units, 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 The decision to reactivate the vehicle function is transferred from the update device to another vehicle control unit: The
Aktualisierungsvorrichtung berechnet den Aktivierungscode aus den Updater calculates the activation code from the
Rückmeldungen der anderen Kfz-Steuergeräte und verwendet den Code insbesondere für die Reaktivierung der Fahrzeugfunktion. Der Code ist der Aktualisierungsvorrichtung nicht bekannt, folglich gibt es keine (potentiellen Fehlentscheidungen, die in der Aktualisierungsvorrichtung getroffen werden können. Feedback from the other vehicle control units and uses the code especially for the reactivation of the vehicle function. The code is not known to the updater, so there are no (potential misdepects 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. Wenn wenigstens eines der Kfz -Steuergeräte nicht erfolgreich aktualisiert worden ist und/oder sich nicht in dem erwarteten Zustand befindet, liefert es abweichende Daten aus denen die Aktualisierungsvorrichtung einen ab- weichenden Aktivierungscode berechnet, der anschließend beim Versuch derThe activation code is in particular calculated by the updating device from data queried by the updated (reprogrammed) vehicle control units. If at least one of the vehicle control devices has not been successfully updated and / or is not in the expected state, it provides different data from which the updating device calculates a different activation code, which is subsequently used in the attempt of
Reaktivierung der Fahrzeugfunktion zu einer Ablehnung führt. Reactivation of the vehicle function leads to a rejection.
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 dasIt 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
Ergebnis des Vergleichs falsch interpretiert werden. Folglich gibt es eine Rückwirkung von der Aktualisierungsvorrichtung auf Fahrzeugfunktionen. Result of the comparison will be 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 U DS Kommunikation verwendet werden (ISO 14229:2013). Auf diesem Gerät muss der Aktivierungscode dann validiert werden, beispielsweise durch einen Vergleich mit einem Referenzcode, oder indem geprüft wird, ob das Ergebnis einer Einwegfunktion einem Referenzwert entspricht. The activation code can be sent in step (F), in particular directly as a value to the device that has blocked the vehicle function. In particular, the value may represent a Service ID ("SID") or be used as a parameter in a U DS communication (ISO 14229: 2013), on which device the activation code must 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 As one-way functions could be MD4, MD5, SHA1 or the
Multiplikation zweier (Prim-) Zahlen verwendet werden. Multiplication of two (prime) numbers are used.
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 be included in the algorithm for authenticating the updating device to the at least one vehicle controller. 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 krypto- graphische Sicherheit bieten, es genügt, wenn es für die Aktualisierungsvorrichtung unmöglich ist, ohne Kenntnis des Aktivierungscodes an das unverschlüsselte Programm zu gelangen. AES256 ist ein Beispiel für einen kryptographisch sicheren Verschlüsselungsalgorithmus, DES oder RC4 sind Beispiele für Algorithmen, die keine kryptographische Sicherheit bieten. Algorithmen ohne krypto- graphische Sicherheit benötigen i.d.R. weniger Rechenzeit, je nach Alternatively, the activation code in step (F) may be used to decrypt a program that requires the communication required Contains algorithms and commands. The encryption does not have to offer any cryptographic security, it is sufficient if it is impossible for the updating device to reach the unencrypted program without knowing 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 usually require less computation time, depending on
Anwendungsfall kann dies notwendig sein. In case of need 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 The two methods described are direct tests: the
Aktivierungscode wird zum Kfz-Steuergerät gesendet und vom Kfz-Steuergerät geprüft. Activation code is sent to the car 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 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. As a password for the decryption is the activation code, only by the
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. 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 A key B is required if, in addition to preventing a false reactivation of the vehicle function, it must also be demonstrated that no erroneous start of the reprogramming is possible (point (C) in the
Offenbarung der Erfindung). 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 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 updater does not function as the vehicle
fälschlicherweise blockieren kann. Es ist ebenfalls möglich, dass der Schlüssel A entweder vor oder nach dem Befehl zum Blockieren der wenigstens einen Fahrzeugfunktion verschickt wird. Schlüssel B kann auch nach der Nachricht über das erfolgreiche Blockieren versendet werden. can block incorrectly. 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 A from key A - and that enters into this calculation when a vehicle function is blocked. This has the advantage that both states are safe, e.g. "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 errors may then be noticed by the vehicle controllers become.
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 without a previous blocking of the vehicle function, the SW update process can not be started.
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+l-tes Kfz-Steuergerät durchzuführen. Da der Code, der Daten des n-ten Kfz- Steuergeräts enthält, nur vorliegt wenn dieses Kfz-Steuergerät erfolgreich aktualisiert wurde und wenn dieser Code für das Update des n+lsten Kfz-Steuer- geräts verwendet wird, ist sichergestellt, dass die Kfz -Steuergeräte nur in der vorgegebenen Reihenfolge aktualisiert werden können. In another embodiment, the method includes updating the software of multiple vehicle control devices. This is a code ("code n"), in particular from feedback of an nth vehicle control unit, its software has been updated, used to perform the SW update for a n + l-tes car control unit. Since the code that contains data of the nth vehicle control unit exists only when this vehicle control unit has been successfully updated and this code is used for the update of the n + lst car control unit, it is ensured that the car 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 were 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 Authenti- sierung 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 motor vehicle control unit, and / or they can be used for authentication be used.
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 be too many messages are sent by the updating device, since the consequent 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, a code ("gateway activation code") can be used, which is initially not available on the diagnostic tester, but is calculated in particular from the communication with at least one vehicle control unit. The Gatwway unlock code may be the same as the start code, but it is also possible that both codes are different, in particular the gateway may 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 wer- den, da Fehler, die zu abweichenden Speicherinhalten führen, zuverlässig erkannt werden können. In one embodiment, the method further includes computing the codes (activation code, enablement code, start code, "code n") from the content of at least portions of a memory of a vehicle controller, thereby further verifying the success of the software update who- because errors that result in different memory contents can be reliably detected.
Zur Bestätigung einer erfolgreichen Aktualisierung können zusätzliche To confirm a successful update, additional
Absicherungen zum Einsatz kommen; diese können beispielsweise umfassen:Hedges are used; these may include, for example:
- die Daten vorwärts zu schreiben und rückwärts zurückzulesen; - write the data forward and read it backwards;
- die Daten sowohl über„ReadMemoryByAddress" als auch über  - the data both via "ReadMemoryByAddress" and above
„ReadDataByldentifier" zu lesen (ISO 14229:2013); Read "ReadDataByldentifier" (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.  - 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 mit- einander zusammenwirken, mit kompatiblen Software-Versionen ausgestattet sind, so dass sie problemlos kooperieren können. In one embodiment, interrogating the characteristic value comprises interrogating the characteristic values of one or more 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 work together 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 device is encrypted. As a result, unauthorized changes to the vehicle control devices 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 einer weiteren Ausführungsform werden auf der Aktualisierungsvorrichtung zwei Abläufe zur Wiederherstellen der Fahrbereitschaft des Kraftfahrzeugs durch das Kfz -Steuergerät vorgehalten: Ein erster Ablauf, der einen Aktivierungscode benötigt, der sich im Falle einer erfolgreichen Aktualisierung berechnen lässt. Zusätzlich wird ein zweiter Ablauf vorgehalten, für den ein Aktivierungscode benötigt wird, der aus Backend und/oder Hotline Rückmeldung berechnet wird, der dann einen Notbetrieb des Fahrzeugs aktiviert. Dies hat den Vorteil, dass einerseits eine versehentliche Aktivierung des Notbetriebs unmöglich ist, und dass andererseits vermieden wird, dass das Fahrzeug überhaupt nicht mehr nutzbar ist, wenn die Aktualisierung fehlgeschlagen ist. In one embodiment, the interrogation of characteristic values comprises the query of data in at least one external backend system, for example a server of the manufacturer of the vehicle or the vehicle control unit. This makes it easier to exclude unauthorized manipulations and allows complete documentation of the changes made, in particular the final or target state of the vehicle control devices. In a further embodiment, two processes for restoring the driving readiness of the motor vehicle by the vehicle control device are provided on the updating device: A first process which requires an activation code which can be calculated in the event of a successful update. 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 device is configured 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 transferring the data between the updating device and the vehicle control device is configured 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 be made in particular 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 Optionally, communications between the updating device and the vehicle controllers may be known for communication purposes
Watchdog- Bausteinen verwendet werden. Die Kfz -Steuergeräte können beispielsweise minimale und maximal zulässige Zeiten beachten und Watchdog blocks are used. The vehicle control units can, for example, observe minimum and maximum permissible times and
Nachrichten, die außerhalb dieser Zeiten eintreffen, ablehnen. Die Aktualisierungsvorrichtung kann auch gezielt falsche Codes verwenden und dann den negativen Antwortcode des jeweiligen Kfz-Steuergerätes in einen weiteren Code einfließen lassen. Die Aktualisierungsvorrichtung kann ein eigenes Kfz-Steuergerät sein, sie kann aber auch ein Software- Modul in einem Kfz-Steuergerät sein. Sie könnte beispielsweise auch als virtuelle Maschine auf einem vorhandenen Kfz- Steuergerät ausgebildet sein. Der Vorteil einer virtuellen Maschine ist, dass hier ein kleiner, zur ISO-26262 konformer Hypervisor Randbedingungen erzwingen kann. Z. B. könnte die virtuelle Maschine keinen schreibbaren nichtflüchtigen Speicher enthalten, und der Hypervisor löscht den flüchtigen Speicher beim Ende oder beim Abbruch der Aktualisierung. Dies verhindert, dass alte Bestätigungsnachrichten oder alte Schlüsselwerte oder Aktivierungscodes zu unzulässigen Wiederholungen führen können. Reject messages that arrive 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. 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 writable 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 („UmDashen") eines Kfz -Steuergerätes oder eines Kfz-Steuergeräteverbundes eine Variante einer„Mobile Agent" /„Hostile Host" Konfiguration ist: The invention is based on the recognition that the updating of the software ("re-breathing") of a vehicle control unit or of a vehicle control unit network is a variant of a "mobile agent" / "hostile host" configuration:
- Der„Mobile Agent" sind die Programme zur Aktualisierung der Software- The "Mobile Agent" are the programs for updating the software
- Der„Hostile Host" ist die Aktualisierungsvorrichtung, auf der die Programme zur Aktualisierung der Software ablaufen. - 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", for example when an end user's smartphone, tablet or laptop 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 Consequently, it is possible to resort to algorithms known from the literature for the so-called "Mobile Cryptography" in order to achieve proven freedom from feedback
„Environmental Key Generation", ebenso die Verwendung von "Homomorphic Encryption". "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.
Kurze Beschreibung der Figuren Brief description of the figures
Figur la zeigt ein Kraftfahrzeug mit mehreren Kfz -Steuergeräten und einer externen Aktualisierungsvorrichtung. Figur lb zeigt ein Kraftfahrzeug mit mehreren Kfz -Steuergeräten und einer internen Aktualisierungsvorrichtung. FIG. 1 a shows a motor vehicle with a plurality of vehicle control devices and an external updating device. Figure lb shows a motor vehicle with several vehicle control devices and an internal updating device.
Figur 2 zeigt eine vergrößerte schematische Ansicht einer externen Aktualisierungsvorrichtung. Figure 2 shows an enlarged schematic view of an external updating device.
Figur 3 zeigt eine vergrößerte schematische Ansicht einer internen Aktualisierungsvorrichtung. Figure 3 shows an enlarged schematic view of an internal updating device.
Figur 4 zeigt eine vergrößerte schematische Ansicht eines Kfz -Steuergerätes. FIG. 4 shows an enlarged schematic view of a vehicle control device.
Figur 5 zeigt in einem schematischen Diagramm den Ablauf eines Verfahrens zum Aktualisieren der Software wenigstens eines in einem Kraftfahrzeug verbauten Kfz-Steuergeräts gemäß einem Ausführungsbeispiel der Erfindung. FIG. 5 shows a schematic diagram of the sequence of a method for updating the software of at least one motor vehicle control device installed in a motor vehicle according to an exemplary embodiment of the invention.
Figurenbeschreibung figure description
Figur la zeigt ein Kraftfahrzeug 2 mit mehreren Kfz -Steuergeräten 4, 6, 8, von denen wenigstens eines mit Hilfe einer externen Aktualisierungsvorrichtung 12a mit neuer Software versorgt ("aktualisiert") wird. FIG. 1 a shows a motor vehicle 2 with a plurality of vehicle control devices 4, 6, 8, of which at least one is supplied ("updated") with new software by means of an external updating device 12 a.
Figur lb zeigt ein Kraftfahrzeug 2 mit mehreren Kfz -Steuergeräten 4, 6, 8, von denen wenigstens eines mit Hilfe einer internen Aktualisierungsvorrichtung 12b mit neuer Software versorgt ("aktualisiert") wird. FIG. 1b shows a motor vehicle 2 with a plurality of motor vehicle control devices 4, 6, 8, of which at least one is supplied ("updated") with new software by means of an internal updating device 12b.
Figur 2 zeigt eine vergrößerte schematische Ansicht einer externen Aktualisierungsvorrichtung 12a. Die externe Aktualisierungsvorrichtung 12a kann z. B. ein entsprechend ausgestatteter Kfz- Diagnosetester oder ein Smartphone/Tablet- PC/Laptop eines Benutzers sein, auf dem eine geeignete Software („App") installiert ist. Figure 2 shows an enlarged schematic view of an external updating device 12a. The external updating device 12a may e.g. B. a suitably equipped automotive diagnostic tester or a smartphone / tablet PC / laptop to be a user on which a suitable software ("App") is installed.
Figur 3 zeigt eine vergrößerte schematische Ansicht einer internen Aktualisierungsvorrichtung 12b. Die interne Aktualisierungsvorrichtung 12b kann ein hierfür in das Kraftfahrzeug 2 eingebautes Kfz -Steuergerät 4, 6, 8 sein, oder ein Modul in einem vorhandenen Kfz -Steuergerät 4, 6, 8. Die interne Aktualisierungsvorrichtung 12b kann auch ein Software- Modul in einem Kfz-Steuergerät 4, 6, 8 sein. Sie kann insbesondere als virtuelle Maschine auf einem vorhandenen Kfz- Steuergerät 4, 6, 8 ausgebildet sein. Der Vorteil einer virtuellen Maschine ist, dass hier ein kleiner, zur ISO-26262 konformer Hypervisor 38 Randbedingungen erzwingen kann. FIG. 3 shows an enlarged schematic view of an internal updating device 12b. The internal updating device 12b may be a vehicle control device 4, 6, 8 built into the motor vehicle 2 for this purpose, or a module in an existing vehicle control device 4, 6, 8. The internal updating device 12b may also be a software module in a motor vehicle Control 4, 6, 8 be. In particular, it can be designed as a virtual machine on an existing vehicle control unit 4, 6, 8. The advantage of a virtual machine is that here a small, to ISO 26262 compliant hypervisor 38 conditions can force.
Figur 4 zeigt eine vergrößerte schematische Ansicht eines Kfz -Steuergerätes 4. FIG. 4 shows an enlarged schematic view of a vehicle control device 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 in each case has a transmitting device 17 and a receiving device 19, which are connected via a wireless or wired data connection 10 to a transmitting device 30 and a receiving device 28 of at least one of the vehicle control devices 4, 6, 8.
Eine drahtgebundene Datenverbindung 10 kann beispielsweise über eine im Kraftfahrzeug 2 vorhandene genormte Schnittstelle 16, insbesondere eine OBD/OBD2-Schnittstelle 16 hergestellt werden. Eine drahtlose Datenverbindung 10 kann beispielsweise durch eine WLAN- oder BluetoothO-Verbindung hergestellt werden. A wired data connection 10 can be produced, for example, via a standard interface 16 present in the motor vehicle 2, in particular an OBD / OBD2 interface 16. A wireless data connection 10 may be made, for example, by a WLAN 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 device 4, 6, 8 can also take place via an intermediary gateway 34. On the one hand, this gateway 34 can be designed to filter impermissible messages, on the other hand, the gateway 34 can 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 vehicle control units 4, 6, 8 can communicate with one another via data lines 18, in particular a data bus 18, or wirelessly.
Der Ablauf eines Verfahrens zum Aktualisieren der Software wenigstens eines der im Kraftfahrzeug 2 verbauten Kfz-Steuergeräte 4, 6, 8 gemäß einem Ausführungsbeispiel der Erfindung ist schematisch in der Figur 5 gezeigt. The sequence of a method for updating the software of at least one of the motor vehicle control units 4, 6, 8 installed in the motor vehicle 2 according to an exemplary embodiment of the invention is shown schematically in FIG.
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, the updating device 12a, 12b receives an order for updating the software via an input device 14 formed on the updating device 12a, 12b or an interface 15, in particular a mobile radio, WLAN, Bluetooth® or USB interface 15 at least one of the vehicle control units 4, 6, 8.
Die neue Software, die an das wenigstens eine Kfz -Steuergerät 4, 6, 8 zu übertragen ist, ist entweder in einer Speichervorrichtung 13 der Aktualisierungsvor- richtung 12a, 12b gespeichert oder wird über die Schnittstelle 15, z. B. von einer USB-Speichervorrichtung ("USB-Stick", "Flash-Drive"), an die Aktualisierungsvorrichtung 12a, 12b übertragen und ggf. (vorübergehend) in der Speichervorrichtung 13 gespeichert. The new software, which is to be transmitted to the at least one vehicle control device 4, 6, 8, is stored either in a storage device 13 of the updating device. direction 12a, 12b is stored or via the interface 15, z. B. from a USB storage device ("USB stick", "Flash Drive"), transferred to the updating device 12 a, 12 b and possibly stored (temporarily) in the storage device 13.
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 of the key necessary for decrypting the software may not be (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 sends (at step 120) a command to at least one of the vehicle controllers 4, 6, 8 to shut down the motor vehicle 2 for the duration of the software update. The command may include, for example, to activate an immobilizer 20 of the motor vehicle 2 and / or to block a starter 22 or a fuel pump 24 of the motor vehicle 2.
"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 in this context may also mean placing the motor vehicle 2 in an "emergency operating state" in which, for example, only limited engine power is available, and / or activating a warning light which 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 placed in an emergency operating state after the expiry of a predetermined period of time, which makes it possible, for example, to drive the motor vehicle 2 into a (different) workshop. z. 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. Zusammen mit dem Befehl zum Blockieren des Kraftfahrzeugs 2 kann optional ein Schlüssel ("Schlüssel A") an das betreffende Kfz -Steuergerät 4, 6, 8 übertragen werden. Sobald das Kfz -Steuergerät 4, 6, 8 den Befehl zum Blockieren des Kraftfahrzeugs 2 ausgeführt hat, schickt es im Schritt 130 eine Bestätigungsnachricht, die bestätigt, dass der Befehl ausgeführt worden ist, an die Aktualisierungsvorrichtung 12a, 12b. Das Kfz-Steuergerät 4, 6, 8 kann ebenfalls einen Schlüssel B an die Aktualisierungsvorrichtung 12a, 12b versenden, der in dem Kfz-Steuergerät 4, 6, 8 berechnet worden wurde. Wurde zuvor (im Schritt 120) ein Schlüssel A an das Kfz-Steuergerät 4, 6, 8 übertragen, kann der Schlüssel B insbesondere aus diesem Schlüssel A berechnet werden. The activation of the "emergency mode" may include 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 motor vehicle 2 is activated only in the emergency mode after the user has confirmed to have taken note of this. Together with the command to block the motor vehicle 2 may optionally a key ("key A") to the relevant vehicle control unit 4, 6, 8 are transmitted. Once the car control unit 4, 6, 8 has executed the command to block the motor vehicle 2, it sends in step 130 a confirmation message confirming that the command has been executed to the updating device 12a, 12b. The vehicle control unit 4, 6, 8 can also send a key B to the updating device 12a, 12b, which has been calculated in the vehicle control unit 4, 6, 8. If a key A was previously transmitted (in step 120) to the motor vehicle control unit 4, 6, 8, the key B can be calculated in particular 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. 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 algorithm for calculating the key B, or at least parameters which are included in the calculation, is known to the motor vehicle control unit 4, 6, 8 but not to the updating device 12a, 12b. The vehicle control unit 4, 6, 8 may be designed so that key B is only shipped when the at least one vehicle function has been blocked. If the function is not blocked, an error message will be sent. Alternatively, providing a key B may be an always active function, and "Is the vehicle blocked?" Is a parameter that enters 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 A calculation device 26 provided in the updating device 12a, 12b calculates a code from data (characteristics) retrieved from the vehicle control devices 4, 6, 8 (step 130). The
Berechnungsvorrichtung 26 kann in Hardware oder Software realisiert sein.Computation device 26 may be implemented in hardware or software.
Insbesondere kann in diese Berechnung auch der Schlüssel B eingehen. 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 Her- stellers des Kraftfahrzeugs 2 oder der Kfz-Steuergeräte 4, 6, 8 umfassen, um unautorisierte Manipulationen auszuschließen und eine lückenlose Dokumentation der vorgenommenen Änderungen, insbesondere des End- bzw. Zielzustandes der Kfz-Steuergeräte 4, 6, 8, zu ermöglichen. Wenn die neue Software auf der Aktualisierungsvorrichtung 12a, 12b in verschlüsselter Form gespeichert ist, kann dieser Code insbesondere zum The interrogation of the data (characteristic values) can also include the interrogation of data in at least one external back-end system 40, eg a server of the manufacturer of the motor vehicle 2 or the vehicle control units 4, 6, 8, to exclude unauthorized manipulations and a Complete documentation of the changes made, in particular the final or target state of the vehicle control units 4, 6, 8, to allow. If the new software is stored on the updating device 12a, 12b in encrypted form, this code can be used in particular for
Entschlüsseln der Software (Schritt 140) verwendet werden. Die Verschlüsselung der Software muss keine kryptographische Sicherheit bieten. Decrypt the software (step 140). 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 U DS- Secure-Access (ISO 14229:2013, §9.4 - Dienst 0x27) oder für ASAM XCP MCD- l„UNLOCK" eingeht. Alternatively, it is also possible that this code is included in the algorithm for the U DS 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 is transmitted in step 150 via the data link 10 on at least one of the vehicle control units 4, 6, 8 and installed on the at least one vehicle control unit 4, 6, 8.
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 comprise a plurality of software packages, wherein in particular each software package for updating each one of the vehicle control units 4, 6, 8 is provided. In particular, an order may be predetermined in which the software packages are to be recorded on the various vehicle control devices 4, 6, 8.
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 vehicle controller 4, 6, 8 whose software has been successfully installed can provide a key value. This key value is in turn used by the calculation device 26 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. In this way, since the new code is present only when the preceding software package has been successfully installed on its vehicle controller 4, 6, 8, it is ensured that the software of the vehicle controllers 4, 6, 8 is updated only in the predetermined order can be.
Es ist auch möglich, dass ein n-tes Softwarepaket gewisse Funktionen des Kraftfahrzeugs 2, wie z. B. die Einspritzanlage deaktiviert, um das Kraftfahrzeug 2 in einen sicheren Zustand zu bringen, und ein darauf folgendes m-tes Softwarepaket (m>n), das später entschlüsselt und installiert wird, die deaktivierte Funktion wieder aktiviert, nachdem die Softwareaktualisierung erfolgreich durchgeführt worden ist. Nachdem die Softwareaktualisierung abgeschlossen worden ist, d.h. nachdem alle Softwarepakete erfolgreich auf die zugehörigen Kfz-Steuergeräte 4, 6, 8 aufgespielt worden sind, kann die Berechnungsvorrichtung 26 erneut genutzt werden, um aus Daten (Kennwerten), die von den Kfz-Steuergeräten 4, 6, 8 abgefragt werden, einen Aktivierungscode (Schritt 160) zu berechnen. It is also possible that an nth software package certain functions of the motor vehicle 2, such. B. the injection system is deactivated to bring the motor vehicle 2 in a safe state, and a subsequent m-th software package (m> n), which is later decrypted and installed, the deactivated function reactivated after the software update has been successfully performed is. After the software update has been completed, ie after all software packages have been successfully loaded onto the associated vehicle control units 4, 6, 8, the calculation device 26 can be used again to generate data (characteristic values) generated by the motor vehicle control units 4, 6, 8 to calculate an activation code (step 160).
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, 8 or only data of those vehicle control units 4, 6, 8 are queried whose software has been updated. In order to ensure correct interaction of all vehicle control units 4, 6, 8 in the motor vehicle 2, in particular data of those vehicle control units 4, 6, 8 can be queried, which interact with the updated vehicle control units 4, 6, 8.
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 may include, for example, version numbers of the software currently installed on the respective vehicle control device 4, 6, 8 and / or the content of at least one defined subarea or an entire memory 7 of the respective vehicle control unit 4, 6, 8.
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. The queried data can additionally also comprise a user input, which is entered via an input device 5 provided on / in the motor vehicle 2. This makes it possible to ensure that the motor vehicle 2 is activated only after the software update has been confirmed by a user input on the motor vehicle 2 itself. In addition to a simple yes / no, the user input can also be the copying of a release code ("captcha"), which 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 can be provided that an "emergency operation" of the motor vehicle 2, in which not all functions of the motor vehicle 2 are available, is activated only after the user has confirmed that he has taken note of the existence of an emergency operation and the associated restrictions Has.
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 another variable that uniquely identifies the motor vehicle 2 or the vehicle type of the motor vehicle 2. Also features of the vehicle configuration, such as the Motorization, the number of driven axles and other equipment features can 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. Since the data of an unsuitable motor vehicle 2 does not lead to the calculation of the correct activation code, it can be ensured in this way that the motor vehicle 2 is reactivated only when only software suitable for the respective motor vehicle 2 has been installed.
Der auf diese Weise berechnete Aktivierungscode wird von der Aktualisierungsvorrichtung 10 für die Kommunikation mit dem wenigstens einen der Kfz-Steuer- geräte 4, 6, 8 verwendet (Schritt 170), optional kann dabei zusätzlich der zuvor berechnete Schlüssel A oder B übertragen werden. The activation code calculated in this way is used by the updating device 10 for communication with the at least one of the vehicle control units 4, 6, 8 (step 170), optionally additionally the previously calculated key A or B can be transmitted.
Eine Vergleichs- und Freigabevorrichtung 32 des wenigstens einen Kfz-Steuer- gerätes 4, 6, 8, das den Aktivierungscode empfangen hat, validiert im Schritt 180 die empfangenen Nachrichten, mit einem im jeweiligen Kfz -Steuergerät 4, 6, 8 gespeicherten vorgegebenen Referenzalgorithmus und reaktiviert das Kraftfahrzeug 2 (Schritt 200), z.B. durch Entriegeln der Wegfahrsperre 20 und/oder Aktivieren des Anlassers 22 bzw. der Kraftstoffpumpe 24, (nur) im Falle einer positiven Validierung des empfangene Aktivierungscode. A comparison and release device 32 of the at least one vehicle control unit 4, 6, 8, which has received the activation code, validates the received messages in step 180 with a predetermined reference algorithm stored in the respective motor vehicle control unit 4, 6, 8 reactivates 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). If the activation code with the algorithm stored in the respective vehicle control device 4, 6, 8 is not positively validated, the motor vehicle 2 is 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 may be implemented 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. To prevent or at least aggravate unauthorized manipulations, the communication between the updater 10 and the car controllers 4, 6, 8 may be cryptographically secured, i. 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 Optionally, for the communication between the updating device 12a, 12b and the vehicle control units 4, 6, 8 known concepts of
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. Communication with "watchdog" blocks are used. For example, the vehicle control units 4, 6, 8 may consider minimum and maximum allowable times and activation codes that arrive outside these times, reject. The updating device 12a, 12b can also send targeted false activation codes and then incorporate the negative response code of the respective vehicle control unit 4, 6, 8 in the broad process.

Claims

Patentansprüche claims
1. Verfahren des Aktualisierens einer Software wenigstens eines in einem A method of updating a software of at least one in one
Kraftfahrzeug (2) verbauten Kfz -Steuergerätes (4, 6, 8), wobei das Verfahren umfasst:  Motor vehicle (2) built vehicle control unit (4, 6, 8), the method comprising:
(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); (A) transmitting a preparatory command, in particular a command for blocking the motor vehicle (2), from an updating device (12a, 12b) to at least one motor vehicle control unit (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); (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) Ü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); (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) Abfragen eines von der Software abhängigen Kennwertes, insbesondere der Software-Versionsnummer, wenigstens eines Kfz -Steuergerätes (4, 6, 8); (D) querying a software-dependent characteristic value, in particular the software version number, of at least one vehicle control unit (4, 6, 8);
(E) Berechnen eines Aktivierungscodes aus dem wenigstens einen abgefragten Kennwert; (E) calculating an activation code from the at least one requested characteristic value;
(F) Verwendung dieses Aktivierungscodes in der nachfolgenden Kommunikation mit wenigstens einem Kfz-Steuergerät (4, 6, 8); (F) using this activation code in the subsequent communication with at least one vehicle control unit (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. (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.
2. Verfahren nach Anspruch 1, wobei in Schritt (F) der Aktivierungscode von der Aktualisierungsvorrichtung (12a, 12b) an das wenigstens eine Kfz- Steuergerät (4, 6, 8) übertragen wird und von diesem Kfz-Steuergerät nach einem vordefinierten Algorithmus validiert wird; und/oder wobei in Schritt (F) der Aktivierungscode verwendet wird, um mindestens einen Befehl oder einen Algorithmus, der für die Kommunikation mit dem wenigsten einen Kfz- Steuergerät (4, 6, 8) verwendet wird, mit diesem Aktivierungscode zu entschlüsseln; und/oder wobei in Schritt (F) der Aktivierungscode zu einer Authentisierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem wenigsten einen Kfz -Steuergerät (4, 6, 8) verwendet wird. 2. The method of claim 1, wherein in step (F) of the activation code from the updating device (12a, 12b) to the at least one vehicle control unit (4, 6, 8) is transmitted and validated by this vehicle control unit according to a predefined algorithm becomes; and / or wherein in step (F) the activation code is used to generate at least one command or to decrypt an algorithm used for communication with the least one car 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 vehicle control device (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. The method of claim 1 or 2, wherein the method comprises prior to step (C) to send a key from the updating device (12a, 12b) to the at least one vehicle control device (4, 6, 8) and wherein the addressed vehicle control device a message, in particular dependent on this key, 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; The method of claim 3 or 4, wherein in step (C) the start code from the updating device (12a, 12b) to the at least one vehicle control unit (4, 6, 8) is transmitted and validated by this vehicle control unit according to a predefined algorithm becomes; 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;
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. and / or wherein in step (C) the start code is used to authenticate the updating device (12a, 12b) with respect 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) the data via a gateway (34) from the updating device (12a, 12b) to the vehicle control unit (4, 6, 8) to transmit wherein the gateway (34) in particular performs a check of the messages and forwards only allowed messages.
7. Verfahren nach Anspruch 6, wobei die Aktualisierungsvorrichtung (12a, 12b) das Gateway (34) für mindestens eine Nachricht freischalten muss, und wobei hierfür ein Gateway-Code verwendet wird, der wenigstens aus einer von einem Kfz -Steuergerät (4, 6, 8) gesendeten Nachricht berechnet worden ist. The method of claim 6, wherein the updating device (12a, 12b) must enable the gateway (34) for at least one message using a gateway code comprising at least one of a vehicle control unit (4, 6) , 8) has been calculated.
8. Verfahren nach Anspruch 7, wobei der Gateway- Freischaltcode von der Aktualisierungsvorrichtung (12a, 12b) an das Gateway (34) übertragen wird und von diesem Gateway (34) nach einem vordefinierten Algorithmus validiert wird; und/oder wobei der Gateway- Freischaltcode verwendet wird, um mindestens einen Befehl oder einen Algorithmus, der für die Freischaltung des Gateways (34) verwendet wird, mit diesem Gateway- Freischaltcode zu entschlüsseln; und/oder wobei der Gateway- Freischaltcode zur Authenti- sierung der Aktualisierungsvorrichtung (12a, 12b) gegenüber dem Gateway (34) verwendet wird. The method of 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 enabling code is used to authenticate the updating device (12a, 12b) to the gateway (34).
9. Verfahren nach einem der vorangehenden Ansprüche, wobei das Verfahren das Aktualisieren der Software mehrerer Kfz -Steuergeräte (4, 6, 8) umfasst, wobei ein Code, der aus Kennwerten wenigstens des n-ten Kfz-Steuerge- rätes (4, 6, 8), dessen Software aktualisiert worden ist, berechnet worden ist, für die Kommunikation mit dem ein n+l-tes Kfz-Steuergerät (4, 6, 8) verwendet wird. 9. Method according to one of the preceding claims, wherein the method comprises updating the software of a plurality of vehicle control devices (4, 6, 8), wherein a code consisting of characteristic values of at least the nth vehicle control unit (4, 6 8, the software of which has been updated, is used for the communication with the n + 1-th vehicle control unit (4, 6, 8).
10. Verfahren nach einem der vorangehenden Ansprüche, wobei das Abfragen des Kennwertes eines oder mehrerer Kfz-Steuergeräte (4, 6, 8) umfasst, den/die Kennwert(e) eines oder mehrerer Kfz-Steuergeräte (4, 6, 8) abzufragen, die mit dem wenigstens einen Kfz-Steuergerät (4, 6, 8), dessen Software aktualisiert worden ist, zusammenwirken. 10. The method according to any one of the preceding claims, wherein the interrogation of the characteristic value of one or more motor vehicle control units (4, 6, 8), the / the characteristic value (s) of one or more vehicle control units (4, 6, 8) query that cooperate with the at least one vehicle control unit (4, 6, 8) whose software has been updated.
11. Verfahren nach einem der vorangehenden Ansprüche, wobei das Verfahren umfasst, einen der Codes aus dem Inhalt wenigstens eines Teilbereiches eines Speichers (7) des Kfz -Steuergerätes (4, 6, 8) zu berechnen; und/oder wobei das Verfahren umfasst, einen der Codes aus einer Benutzereingabe, einer Fahrgestellnummer und/oder einer Fahrzeugidentifikationsnummer zu berechnen; und/oder wobei das Verfahren umfasst, Daten über die Software- Aktualisierung an ein externes Backend zu versenden und die Rückmeldung des Backend für die Berechnung eines Codes zu verwenden. 11. The method of claim 1, wherein the method comprises calculating one of the codes from the content of at least one subarea of a memory of the vehicle control device; 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 includes sending data about the software update to an external backend and using the feedback from the backend to calculate a code.
12. Verfahren nach einem der vorangehenden Ansprüche, wobei die Prüfung erfolgt, in dem das Kfz -Steuergerät (4, 6, 8), insbesondere das Kfz- Steuergerät (4, 6, 8), dass die wenigstens eine Fahrfunktion blockiert hat und/oder das Kfz-Steuergerät (4, 6, 8), dass umprogrammiert werden soll und/oder das Kfz-Steuergerät (4, 6, 8), dass als Gateway (34) fungiert, empfangene Nachrichten, die insbesondere Befehle und/oder Parameter enthalten, mit gespeicherten Referenzwerten vergleicht; und/oder wobei die Prüfung erfolgt, in dem das Kfz-Steuergerät (4, 6, 8) die empfangenen Nachrichten als Parameter für wenigstens eine Einwegfunktion verwendet und die Ergebnisse mit gespeicherten Referenzwerten vergleicht, und/oder wobei die Prüfung durch den erfolgreichen Abschluss einer Authentisierung erfolgt. 12. The method according to any one of the preceding claims, wherein the test takes place in which the vehicle control device (4, 6, 8), in particular the vehicle control unit (4, 6, 8) that has blocked at least one driving function and / or the 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, in particular commands and / or parameters compare 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.
13. Aktualisierungsvorrichtung (12a, 12b) zum Aktualisieren der Software 13. Updating device (12a, 12b) for updating the software
wenigstens eines in einem Kraftfahrzeug (2) verbauten Kfz -Steuergerätes (4, at least one vehicle control device (4, 4) installed in a motor vehicle (2)
6, 8), wobei die Aktualisierungsvorrichtung (12a, 12b) aufweist: eine Speichervorrichtung (13), die zur Speicherung der zu aktualisierenden Software ausgebildet ist; eine Sendevorrichtung (17), die zum Übertragen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), an das Kfz-Steuergerät (4, 6, 8) ausgebildet ist; eine Empfangsvorrichtung (19), die zum Empfangen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung des empfangenen vorberei tenden Befehls durch das Kfz-Steuergerät (4, 6, 8) bestätigt; wobei die Sendevorrichtung (17) ausgebildet ist, die zu aktualisierende Software an das Kfz-Steuergerät (4, 6, 8) zu übertragen; wobei die Empfangsvorrichtung (19) ausgebildet ist, wenigstens einen Kennwert, insbesondere die Software-Versionsnummer, eines oder mehrerer Kfz- Steuergeräte (4, 6, 8) zu empfangen; wobei die Aktualisierungsvorrichtung (12a, 12b) eine Berechnungsvorrichtung (26) aufweist, die ausgebildet ist, aus den empfangenen Kennwerten einen Code, insbesondere einen Aktivierungscode und/oder einen Code zum Start der Programmierung und/oder einen Code zum Freischalten eines Gateways, zu berechnen; und wobei die Sendevorrichtung (17) so ausgebildet ist, dass dieser Code für die Kommunikation mit dem Kfz-Steuergerät (4, 6, 8) benötigt wird. 6, 8), 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 generate a code, in particular an activation code and / or a code from the received characteristic values Start programming and / or code to enable a gateway; and wherein the transmission device (17) is designed such that this code is required for communication with the vehicle control unit (4, 6, 8).
14. Ein Kfz-Steuergerät für ein Kraftfahrzeug (2), das mindestens einen 14. A motor vehicle control unit for a motor vehicle (2), the at least one
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.  Hypervisor (38) and an updating device (12b) according to claim 13, wherein the hypervisor (38) after a successful or unsuccessful update, in particular the memory device (13) and / or the receiving device (19) and / or the transmitting device (17) and or at least partially deletes and / or resets the calculating device (26) of the updating device (12b).
15. Kfz-Steuergerät (4, 6, 8) für ein Kraftfahrzeug (2), das ausgebildet ist, mit einer Aktualisierungsvorrichtung (12a, 12b) und anderen Kfz-Steuergeräten (4, 6, 8) zusammenzuwirken, wobei das Kfz-Steuergerät (4, 6, 8) umfasst: eine Empfangsvorrichtung (28), die zum Empfangen eines vorbereitenden Befehls, insbesondere eines Befehls zum Blockieren des Kraftfahrzeugs (2), von einer Aktualisierungsvorrichtung (12a, 12b) ausgebildet ist; eine Sendevorrichtung (30), die zum Übertragen einer Bestätigungsnachricht ausgebildet ist, welche die Ausführung eines empfangenen vorbereitenden Befehls durch das Kfz-Steuergerät (4, 6, 8) bestätigt; wobei die Sendevorrichtung (30) ausgebildet ist, einen Schlüsse, insbesondere einen von der vorherigen Kommunikation zwischen der Aktualisierungsvorrichtung (12a, 12b) abhängigen Schlüssel, an die Aktualisierungsvorrichtung (12a, 12b) zu übertragen, wobei der Schlüssel insbesondere davon abhängt, ob die Fahrzeugfunktion blockiert wurde; wobei die Empfangsvorrichtung (28) ausgebildet ist, von der Aktualisierungsvorrichtung (12a, 12b) empfangenen Nachrichten an eine Vergleichs- und Freigabevorrichtung (32) weiterzuleiten, die ausgebildet ist, die Nachrichten nach einem vorgegebenen Algorithmus zu validieren und die Fahrbereitschaft des Kraftfahrzeugs (2) nur bei einer positiven Validierung wiederherzustellen. 15. A vehicle control unit (4, 6, 8) for a motor vehicle (2), which is designed to cooperate with an updating device (12a, 12b) and other vehicle control units (4, 6, 8), wherein the 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.
PCT/EP2018/078830 2017-10-23 2018-10-22 Method and device for updating software of a motor vehicle control unit WO2019081395A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201880082909.2A CN111480141A (en) 2017-10-23 2018-10-22 Method and device for updating software of a motor vehicle control device

Applications Claiming Priority (2)

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
DE102017218872.3 2017-10-23

Publications (1)

Publication Number Publication Date
WO2019081395A1 true WO2019081395A1 (en) 2019-05-02

Family

ID=64049104

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/078830 WO2019081395A1 (en) 2017-10-23 2018-10-22 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162959A (en) * 2020-01-23 2021-07-23 华为技术有限公司 Upgrading method and device for vehicle-mounted equipment
CN114244828A (en) * 2021-11-30 2022-03-25 三一汽车起重机械有限公司 Data transmission method and vehicle-mounted dynamic data management system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018218736A1 (en) 2018-11-01 2020-05-07 Continental Automotive Gmbh Device 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
DE102020116715A1 (en) * 2020-06-25 2021-12-30 Bayerische Motoren Werke Aktiengesellschaft Method for determining a driving clearance after a software update of a set of control units of a vehicle, computer-readable medium, system and vehicle
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
DE102021125672A1 (en) * 2021-10-04 2023-04-06 Bayerische Motoren Werke Aktiengesellschaft Processor system for a vehicle and method for monitoring a process state after a remote software update

Citations (3)

* 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
US20170060559A1 (en) * 2015-08-25 2017-03-02 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US20170134164A1 (en) * 2014-11-12 2017-05-11 Panasonic Intellectual Property Corporation Of America Update management method, update management system, and non-transitory recording medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN106533655B (en) * 2016-10-27 2020-07-31 江苏大学 Method for safe communication of ECU (electronic control Unit) in vehicle interior network

Patent Citations (3)

* 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
US20170134164A1 (en) * 2014-11-12 2017-05-11 Panasonic Intellectual Property Corporation Of America Update management method, update management system, and non-transitory recording medium
US20170060559A1 (en) * 2015-08-25 2017-03-02 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162959A (en) * 2020-01-23 2021-07-23 华为技术有限公司 Upgrading method and device for vehicle-mounted equipment
WO2021148028A1 (en) * 2020-01-23 2021-07-29 华为技术有限公司 Method and apparatus for upgrading vehicle-mounted device
JP2023511209A (en) * 2020-01-23 2023-03-16 華為技術有限公司 In-vehicle device upgrade method and apparatus
CN113162959B (en) * 2020-01-23 2023-06-30 华为技术有限公司 Upgrading method and device of vehicle-mounted equipment
JP7418592B2 (en) 2020-01-23 2024-01-19 華為技術有限公司 In-vehicle device upgrade method and apparatus
CN114244828A (en) * 2021-11-30 2022-03-25 三一汽车起重机械有限公司 Data transmission method and vehicle-mounted dynamic data management system
CN114244828B (en) * 2021-11-30 2023-02-24 三一汽车起重机械有限公司 Data transmission method and vehicle-mounted dynamic data management system

Also Published As

Publication number Publication date
CN111480141A (en) 2020-07-31
DE102017218872A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
WO2019081395A1 (en) Method and device for updating software of a motor vehicle control unit
EP3326101B1 (en) Method and system for firmware-updating a control device for process control
DE102012110499B9 (en) Safety access procedure for electronic automotive control units
DE102017125826A1 (en) MESSAGE AUTHENTICATION ABOUT CONTROLLER AREA NETWORK
DE102014114607A1 (en) Programming vehicle modules with remote devices and related methods and systems
DE102007022100B4 (en) Motor vehicle control unit data transmission system and method
DE112019005701T5 (en) SAFE BOAT SUPPORT FOR DEVICES AND RELATED SYSTEMS, PROCEDURES AND DEVICES
DE102008056745A1 (en) Device for controlling a vehicle function and method for updating a control device
WO2019072840A1 (en) Apparatus for protecting diagnosis commands to a controller, and corresponding motor vehicle
DE112016002785T5 (en) Electronic control units for vehicles
WO2015197278A1 (en) Method for operating a charging station
WO2017102295A1 (en) Method and security module for providing a security function for a device
EP3811261A1 (en) Cryptography module and method for operating same
EP3314339B1 (en) Method, server, firewall, control device, and system for programming a control device of a vehicle
DE112020001126T5 (en) VEHICLE CONTROL UNIT
DE102020117552A1 (en) SAFE HYBRID BOAT SYSTEMS AND SAFE BOAT PROCEDURES FOR HYBRID SYSTEMS
DE102023110645A1 (en) Safety procedures and safety device
DE102015015627B3 (en) Method for transmitting a function command between a motor vehicle and an off-vehicle device and interface device and system
WO2018145798A1 (en) Network system and method for checking the functional capability of a cloud-based control function
DE102019125393A1 (en) Devices, methods and computer programs for a server, an administration system and a vehicle
EP4140115A1 (en) Copy protection method and copy-protected electronic system
EP4078314A1 (en) Apparatus having an interface, and method for operating an apparatus having an interface
DE102020216071A1 (en) Method for operating a device, a control unit of a motor vehicle, and device
DE102022123225A1 (en) VERIFICATION OF A COMPUTING DEVICE
DE102020207863A1 (en) Process for the secure update of control units

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18795359

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18795359

Country of ref document: EP

Kind code of ref document: A1