DE102020207863A1 - Process for the secure update of control units - Google Patents

Process for the secure update of control units Download PDF

Info

Publication number
DE102020207863A1
DE102020207863A1 DE102020207863.7A DE102020207863A DE102020207863A1 DE 102020207863 A1 DE102020207863 A1 DE 102020207863A1 DE 102020207863 A DE102020207863 A DE 102020207863A DE 102020207863 A1 DE102020207863 A1 DE 102020207863A1
Authority
DE
Germany
Prior art keywords
memory
hsm
update
integrity
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020207863.7A
Other languages
German (de)
Inventor
Bjoern KASPER
Andreas SOENKENS
Thorsten SCHWEPP
Jens Schmuelling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102020207863.7A priority Critical patent/DE102020207863A1/en
Priority to CN202110703464.9A priority patent/CN114091008A/en
Publication of DE102020207863A1 publication Critical patent/DE102020207863A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zur sicheren Aktualisierung eines Steuergeräts, das einen Host, der dazu eingerichtet ist, ein Aktualisierungsprogramm und ein oder mehrere Anwendungsprogramme auszuführen, einen Speicher, der Programme und Daten enthält, und ein Hardware-Sicherheits-Modul (HSM) umfasst, das dazu eingerichtet ist, die Integrität von Speicherbereichen des Speichers zu prüfen und einen Schreibzugriff auf den Speicher zu sperren und freizugeben, umfassend ein Starten (6, 8) des Hosts und des HSM; ein Sperren (12) des Schreibzugriffs auf den Speicher durch das HSM; ein Prüfen (16) der Integrität eines das Aktualisierungsprogramm enthaltenden ersten Speicherbereichs des Speichers durch das HSM; und, wenn die Integrität des ersten Speicherbereichs beim Prüfen bestätigt wird, ein Freigeben (18) des Schreibzugriffs auf den Speicher durch das HSM und Starten des Aktualisierungsprogramms.

Figure DE102020207863A1_0000
The invention relates to a method for the secure update of a control device which comprises a host which is set up to execute an update program and one or more application programs, a memory which contains programs and data, and a hardware security module (HSM), which is set up to check the integrity of memory areas of the memory and to block and enable write access to the memory, comprising starting (6, 8) the host and the HSM; blocking (12) write access to the memory by the HSM; checking (16) the integrity of a first memory area of the memory containing the update program by the HSM; and, if the integrity of the first memory area is confirmed during the checking, enabling (18) the write access to the memory by the HSM and starting the update program.
Figure DE102020207863A1_0000

Description

Die vorliegende Erfindung betrifft ein Verfahren zur sicheren Aktualisierung eines Steuergeräts sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for secure updating of a control device as well as a computing unit and a computer program for its implementation.

Stand der TechnikState of the art

In Maschinen und Fahrzeugen werden programmierbare Steuergeräte eingesetzt, um diese oder auch Komponenten davon, zu steuern. Beispielsweise kann ein Kraftfahrzeug Steuergeräte für die Motorsteuerung, für das Bremssystem usw. enthalten. Die Steuergeräte umfassen einen Prozessor mit einem oder typischerweise mit mehreren Prozessor-Kernen (vereinfacht auch als Host bzw. Hostsystem bezeichnet), die in einem Speicher gespeicherte Anwendungsprogramme ausführen, um die Steuerungsfunktion des Steuergeräts zu erzielen. Hersteller von Maschinen oder Fahrzeugen programmieren bei der Produktion einer Maschine oder eines Fahrzeugs die dabei eingesetzten Steuergeräte normalerweise neu mit herstellerspezifischen Anwendungsprogrammen. Ebenso muss aufgrund der Langlebigkeit moderner Maschinen und Fahrzeuge die Steuerungsfunktion von Steuergeräten an sich ändernde Anforderungen anpassbar sein. Es muss also möglich sein, eine Aktualisierung bzw. Neuprogrammierung der Steuergeräte durchzuführen, d.h. die im Speicher gespeicherten Daten und Programme sollten verändert werden können.Programmable control devices are used in machines and vehicles to control them or their components. For example, a motor vehicle can contain control units for engine control, for the brake system, etc. The control devices comprise a processor with one or typically with a plurality of processor cores (also referred to in simplified terms as a host or host system) which execute application programs stored in a memory in order to achieve the control function of the control device. Manufacturers of machines or vehicles normally reprogram the control devices used during the production of a machine or vehicle with manufacturer-specific application programs. Likewise, due to the longevity of modern machines and vehicles, the control function of control units must be adaptable to changing requirements. It must therefore be possible to update or re-program the control units, i.e. it should be possible to change the data and programs stored in the memory.

Aus Sicherheitsgründen muss verhindert werden, dass Anwendungssoftware oder Daten, die im Speicher des Steuergeräts bzw. eines dortigen Mikroprozessors oder Mikrocontrollers gespeichert sind, unerlaubterweise verändert werden. For security reasons, it must be prevented that application software or data that are stored in the memory of the control device or a microprocessor or microcontroller there is changed without permission.

Dazu kann ein passwortbasierter Schreibschutz für den Speicher verwendet werden, der über Hardware aufgehoben und aktiviert werden kann. Erst wenn nach Eingabe des Passworts der Speicherschutz aufgehoben wurde, kann der Speicher des Steuergeräts geändert bzw. neu beschrieben werden, z.B. eine neue Software eingespielt werden oder andere Daten in den Speicher geschrieben werden. Das Passwort wird für jedes Steuergerät individuell generiert und von einem sogenannten Hardware-Sicherheits-Modul, HSM; das das Passwort in einem dafür vorgesehenen Speicherbereich speichert, verwaltet. Soll eine Aktualisierung durchgeführt werden, wird dass Passwort vom Hardware-Sicherheits-Modul von der Person bzw. der Anwendung, die eine Aktualisierung bzw. Änderung der gespeicherten Software oder Daten durchführen will, bzw. ein von der Person dazu verwendetes Programmiergerät, angefordert und überprüft. Eine weitere Absicherung des Aktualisierungs- bzw. Neuprogrammierungsvorgangs eines Steuergeräts ist üblicherweise nicht vorgesehen.For this purpose, a password-based write protection can be used for the memory, which can be deactivated and activated via hardware. Only when the memory protection has been removed after entering the password can the memory of the control unit be changed or rewritten, e.g. new software can be imported or other data can be written to the memory. The password is generated individually for each control device and is processed by a so-called hardware security module, HSM; that saves the password in a memory area provided for this purpose. If an update is to be carried out, the password from the hardware security module is requested and checked by the person or the application who wants to update or change the stored software or data, or a programming device used by the person . A further safeguarding of the update or reprogramming process of a control device is usually not provided.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zur sicheren Aktualisierung eines Steuergeräts sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for the secure updating of a control device as well as a computing unit and a computer program for its implementation with the features of the independent patent claims are proposed. Advantageous refinements are the subject matter of the subclaims and the description below.

Erfindungsgemäß wird das Aufheben des Schreibschutzes des Speichers solange durch das Hardware-Sicherheits-Modul blockiert, bis die Programmiersoftware, d.h. das Aktualisierungsprogramm, authentifiziert wurde, was durch eine Integritätsprüfung eines ersten Speicherbereichs, in dem das Aktualisierungsprogramm enthalten ist, erfolgt. Durch die Integritätsprüfung kann festgestellt werden, ob dieser Speicherbereich und damit das Aktualisierungsprogramm, unerlaubterweise verändert wurde. Nur wenn die Integrität des ersten Speicherbereichs beim Prüfen bestätigt wird, wird der Schreibzugriff durch das HSM freigegeben und das Aktualisierungsprogramm gestartet. Damit wird ein erhöhter Schutz der Anwendungssoftware des Steuergeräts vor Manipulationen erreicht. According to the invention, the removal of the write protection of the memory is blocked by the hardware security module until the programming software, i.e. the update program, has been authenticated, which is done by checking the integrity of a first memory area in which the update program is contained. The integrity check can be used to determine whether this memory area and thus the update program have been changed without permission. The HSM only enables write access and starts the update program if the integrity of the first memory area is confirmed during the check. This increases the protection of the control unit's application software against manipulation.

Der Host bzw. das Hostsystem umfasst einen Prozessor, der dazu eingerichtet ist, Software bzw. Computerprogramme (vereinfacht als Programme bezeichnet) auszuführen, um Funktionen des Steuersystems zu verwirklichen. Der Host kann weitere Elemente, wie etwa einen Arbeitsspeicher (z.B. einen Direktzugriffsspeicher, random access memory, RAM), Kommunikationsschnittstellen, insbesondere zur Kommunikation mit dem Speicher, dem HSM und externen Geräten, und/oder ähnliches umfassen. Die Software ist in dem Speicher des Steuergeräts, der nichtflüchtig ist, z.B. einem Flash-Speicher, einer Festplatte, oder einer SSD (solid state disk), enthalten bzw. gespeichert. Der Speicher des Steuergeräts ist wiederbeschreibbar. Unter dem Begriff ‚Speicher‘ ist der Speicher des Steuergeräts zu verstehen, soweit nichts anderes vermerkt ist. Die Software kann einerseits wenigstens ein Anwendungsprogramm, das dazu dient, Steuerfunktionen des Steuergeräts zu implementieren, wenn es von dem Host ausgeführt wird, und andererseits ein Aktualisierungsprogramm (Programmiersoftware), das u.a. dazu dient, den Speicher oder Teile davon mit Software (Programmdaten) oder Daten neu zu beschreiben, wenn es von dem Host ausgeführt wird, umfassen. D.h. mittels des Aktualisierungsprogramms, das sozusagen eine Programmiersoftware zur Neuprogrammierung des Steuergeräts darstellt, kann das Steuergerät aktualisiert bzw. neu programmiert werden. Die Aktualisierung kann Programme, deren Ablauf die Funktion des Steuergeräts bestimmt, und/oder Daten, die für die Funktion des Steuergeräts benötigt werden, etwa Initialisierungsparameter oder Programmparameter, betreffen. Bei der Aktualisierung bzw. dem Neuprogrammieren werden der Speicher bzw. Speicherbereiche ganz oder teilweise mit Aktualisierungsdaten (neuen Programmen, d.h. Software, und/oder anderweitigen neuen Daten) neu beschrieben. Das Aktualisierungsprogramm kann gegebenenfalls, wenn nötig, weitere Aktionen durchführen, z.B. Bestimmen, welche Programme/Daten aktualisiert werden müssen, oder einen Neustart des Steuergeräts nach der Aktualisierung veranlassen.The host or the host system comprises a processor which is set up to execute software or computer programs (simply referred to as programs) in order to implement functions of the control system. The host can comprise further elements, such as a main memory (for example a random access memory, RAM), communication interfaces, in particular for communication with the memory, the HSM and external devices, and / or the like. The software is contained or stored in the non-volatile memory of the control unit, e.g. a flash memory, a hard disk or an SSD (solid state disk). The memory of the control unit is rewritable. The term “memory” refers to the memory of the control unit, unless otherwise noted. The software can on the one hand at least one application program that is used to implement control functions of the control unit when it is executed by the host, and on the other hand an update program (programming software) that is used, among other things, to update the memory or parts of it with software (program data) or Include rewriting data when executed by the host. That is, by means of the update program, which, so to speak, represents programming software for reprogramming the control device, the control device can be updated or reprogrammed will. The update can relate to programs, the sequence of which determines the function of the control device, and / or data that are required for the function of the control device, such as initialization parameters or program parameters. During the update or reprogramming, the memory or memory areas are completely or partially rewritten with update data (new programs, ie software, and / or other new data). If necessary, the update program can carry out further actions, for example determining which programs / data have to be updated, or initiate a restart of the control device after the update.

Das Hardware-Sicherheits-Modul, kurz als HSM bezeichnet, stellt kryptographische Funktionen bereit, die von dem Host genutzt werden können, um sicherheitskritische Funktionen, etwa die Kommunikation mehrerer Steuergeräte untereinander, abzusichern. Dazu verwaltet das HSM insbesondere geheime Passwörter (Kennwörter) und/oder kryptographische Schlüssel und implementiert kryptographische Verfahren bevorzugt in Hardware. Diese Schlüssel werden vom HSM in einem dafür vorgesehenen Bereich des Speichers gespeichert und/oder in einem HSM-Speicher gespeichert, d.h. einem eigenen Speicher des HSM. Das HSM umfasst einen Prozessor (der vom Host-Prozessor verschieden ist) und kann vom Host gesondert ausgeführt sein oder mit dem Host bzw. Host-Prozessor und dem Speicher in einem Chip integriert sein (HSM und Host sind dann sozusagen durch verschiedene Prozessor-Kerne auf dem Chip gebildet bzw. abgebildet). Das HSM ist dazu eingerichtet, einen Schreibschutz für den Speicher bereitzustellen, d.h. einen Schreibzugriff auf den Speicher zu sperren oder freizugeben. Nur wenn der Schreibzugriff freigegeben ist, kann eine Aktualisierung, die ein Neubeschreiben des Speichers erfordert, durchgeführt werden. Das HSM ist weiter dazu eingerichtet, die Integrität von Speicherbereichen zu prüfen, um die Authentizität von im jeweiligen Speicherbereich enthaltenen Computerprogrammen bzw. Software und/oder enthaltenen Daten zu prüfen.The hardware security module, referred to as HSM for short, provides cryptographic functions that can be used by the host to secure security-critical functions, such as communication between several control units. For this purpose, the HSM manages in particular secret passwords and / or cryptographic keys and implements cryptographic methods preferably in hardware. These keys are stored by the HSM in a designated area of the memory and / or stored in an HSM memory, i.e. the HSM's own memory. The HSM comprises a processor (which is different from the host processor) and can be implemented separately from the host or integrated with the host or host processor and the memory in a chip (HSM and host are then, so to speak, through different processor cores formed or mapped on the chip). The HSM is set up to provide write protection for the memory, i.e. to block or enable write access to the memory. An update that requires rewriting of the memory can only be carried out if write access is enabled. The HSM is also set up to check the integrity of memory areas in order to check the authenticity of computer programs or software and / or data contained in the respective memory area.

Bei der Integritäts-Prüfung wird bestimmt, ob der Inhalt des entsprechenden Speicherbereichs unverändert gegenüber einem bekanntermaßen korrekten Inhalt ist. Dazu kann z.B. ein Prüfwert oder ein Hashwert der im Speicherbereich gespeicherten Daten berechnet werden und mit einem zu einem früheren Zeitpunkt, an dem bekannt war, dass der Speicherbereich korrekte, nicht manipulierte Software und/oder Daten enthielt, berechneten Wert verglichen werden. Bevorzugt erfolgt für die Integritäts-Prüfung ein Abgleich eines MAC, d.h. eines Nachrichtenauthentifizierungscodes (Message Authentication Code). Bei der Berechnung eines MAC geht zusätzlich zu der ursprünglichen Nachricht, hier den im Speicherbereich gespeicherten Daten, bzw. einem Hashwert davon, ein geheimer Schlüssel ein, den das HSM verwaltet. Dadurch können sogenannte Kollisions-Angriffe (bzw. hier Pre-Image-Angriffe) verhindert werden. Bevorzugt wird ein sogenannter CMAC (Cipher-based Message Authentication Code) verwendet.During the integrity check, it is determined whether the content of the corresponding memory area is unchanged compared to a known correct content. For this purpose, e.g. a check value or a hash value of the data stored in the memory area can be calculated and compared with a value calculated at an earlier point in time at which it was known that the memory area contained correct, non-manipulated software and / or data. A MAC, i.e. a message authentication code, is preferably compared for the integrity check. When calculating a MAC, in addition to the original message, here the data stored in the memory area or a hash value thereof, a secret key that the HSM manages. This way, so-called collision attacks (or here pre-image attacks) can be prevented. A so-called CMAC (Cipher-based Message Authentication Code) is preferably used.

Bevorzugt umfasst das Verfahren nach dem Starten des Aktualisierungsprogramms weiterhin ein Bestimmen, durch das Aktualisierungsprogramm, ob eine Aktualisierung stattfinden soll; ein Sperren des Schreibzugriffs durch das HSM, wenn bestimmt wird, dass keine Aktualisierung stattfinden soll; ein Aktualisieren des Steuergeräts, wenn bestimmt wird, dass eine Aktualisierung stattfinden soll, wobei das Aktualisieren Schreiben von Aktualisierungsdaten in den Speicher durch das Aktualisierungsprogramm und anschließendes Sperren des Schreibzugriffs durch das HSM und/oder Neustarten des Steuergeräts umfasst; und ein Ausführen wenigstens eines des einen oder der mehreren Anwendungsprogramme durch den Host. Vor dem Ausführen des wenigstens einen Anwendungsprogramms (des einen oder der mehreren Anwendungsprogramme) umfasst das Verfahren weiter bevorzugt ein Prüfen der Integrität eines zweiten Speicherbereichs, der das wenigstens eine Anwendungsprogramm enthält, durch das HSM, und, wenn die Integrität des zweiten Speicherbereichs beim Prüfen nicht bestätigt wird, ein Unterbinden der Ausführung des wenigstens einen Anwendungsprogramms.Preferably, after the update program has started, the method further comprises determining, by the update program, whether an update should take place; blocking write access by the HSM if it is determined that no update should take place; an updating of the control device if it is determined that an update should take place, wherein the updating comprises writing of update data into the memory by the update program and then blocking the write access by the HSM and / or restarting the control device; and the host executing at least one of the one or more application programs. Before executing the at least one application program (the one or more application programs), the method further preferably comprises checking the integrity of a second memory area containing the at least one application program by the HSM, and if the integrity of the second memory area is not checked during the check is confirmed, a prohibition of the execution of the at least one application program.

Diese Ausgestaltungen sind vorteilhaft, da die eigentliche Funktion des Startgeräts ohne Verzögerung gestartet wird, wenn keine Aktualisierung stattfinden soll, und auch die Authentizität des Anwendungsprogramms sichergestellt wird, dieses also nicht, während der Schreibzugriff freigegeben war, manipuliert wurde.These refinements are advantageous since the actual function of the starter device is started without delay if no update is to take place, and the authenticity of the application program is also ensured, that is to say it was not manipulated while the write access was enabled.

Das Verfahren kann ein Anfordern und Überprüfen eines Passworts vor dem Freigeben des Schreibzugriffs umfassen. Dies wird zweckmäßigerweise durchgeführt, um zu prüfen, ob eine Person und/oder ein Gerät bzw. eine Anwendung, die bzw. das die Aktualisierung durchführen und dazu den Speicher neu beschreiben will, dazu berechtigt ist.The method can include requesting and checking a password before enabling write access. This is expediently carried out in order to check whether a person and / or a device or an application that wants to carry out the update and to rewrite the memory for this purpose is authorized to do so.

Bevorzugt umfasst das Prüfen der Integrität des ersten Speicherbereichs und/oder des zweiten Speicherbereichs ein Abgleichen eines Nachrichtenauthentifizierungscodes (MAC, Message Authentication Code). Bei der Berechnung eines MAC wird ein geheimer Schlüssel, der vom HSM verwaltet wird, verwendet, der eine zusätzliche Sicherheit vor einer Manipulation der jeweiligen Speicherbereiche bietet.The checking of the integrity of the first memory area and / or the second memory area preferably includes a comparison of a message authentication code (MAC). When calculating a MAC, a secret key that is managed by the HSM is used, which offers additional security against manipulation of the respective memory areas.

Das Verfahren kann weiter, wenn die Integrität des ersten Speicherbereichs und/oder des zweiten Speicherbereichs beim Prüfen nicht bestätigt wird, ein Stoppen des Hosts und/oder ein Ausgeben einer Fehlermeldung umfassen. Damit kann verhindert werden, dass ein möglicherweise manipuliertes Steuergerät weiterläuft und sicherheitskritische Funktionen möglicherweise fehlerhaft ausführt. Die Fehlermeldung kann an einen Nutzer ausgegeben werden. Ebenso ist es möglich, die Fehlermeldung an ein oder mehrere andere Steuergeräte weiterzugeben. Beispielsweise weisen Kraftfahrzeuge eine Vielzahl von Steuergeräten auf. Stellt eines davon, etwa ein Steuergerät für das Bremssystem, mittels einer gescheiterten Integritäts-Prüfung einen möglichen Manipulationsversuch fest, kann dieses an andere Steuergeräte eine entsprechende Fehlermeldung ausgeben bzw. senden, so dass diese darauf reagieren, z.B. nicht starten oder anhalten, können. Etwa könnte ein Motorsteuergerät den Motor stoppen, wenn das Steuergerät des Bremssystems einen möglichen Manipulationsversuch meldet.The method can continue if the integrity of the first memory area and / or the second memory area is not confirmed during the check will include stopping the host and / or outputting an error message. This can prevent a possibly manipulated control unit from continuing to run and possibly incorrectly executing safety-critical functions. The error message can be output to a user. It is also possible to pass the error message on to one or more other control units. For example, motor vehicles have a large number of control units. If one of them, for example a control unit for the brake system, detects a possible manipulation attempt by means of a failed integrity check, it can output or send a corresponding error message to other control units so that they can react to it, e.g. not start or stop. For example, an engine control unit could stop the engine if the brake system control unit reports a possible manipulation attempt.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, for example a control unit of a motor vehicle, is set up, in particular in terms of programming, to carry out a method according to the invention.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for performing all method steps is advantageous, since this causes particularly low costs, especially if an executing control device is used for other tasks and is therefore available anyway. Suitable data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. A program can also be downloaded via computer networks (Internet, intranet, etc.).

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention emerge from the description and the accompanying drawing.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.

FigurenlisteFigure list

  • 1 zeigt den prinzipiellen Aufbau eines Steuergeräts, wie es der Erfindung zugrunde liegen kann. 1 shows the basic structure of a control device on which the invention can be based.
  • 2 zeigt eine Übersicht über die prinzipielle Struktur einer bevorzugten Ausführungsform des Verfahrens zur sicheren Aktualisierung eines Steuergeräts. 2 shows an overview of the basic structure of a preferred embodiment of the method for secure updating of a control device.
  • 3 zeigt ein Ablaufdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens. 3 shows a flow chart of a preferred embodiment of the method according to the invention.

Ausführungsformen der ErfindungEmbodiments of the invention

1 zeigt den prinzipiellen Aufbau eines Steuergeräts bzw. einer in einem Steuergerät enthaltenen Recheneinheit, wie es bzw. sie der Erfindung zugrunde liegen kann. Dabei sind im Wesentlichen nur diejenigen Bestandteile dargestellt, die für das Verständnis der vorliegenden Erfindung nötig sind. 1 shows the basic structure of a control device or a computing unit contained in a control device, as it or the invention can be based on. Essentially, only those components are shown that are necessary for an understanding of the present invention.

Das Steuergerät 80 umfasst einen Host 82, ein Hardware-Sicherheits-Modul (HSM) 84 und einen Speicher 86. Diese sind miteinander mittels einer oder mehreren Verbindungen bzw. Leitungen zum Datenaustausch verbunden. In der Figur geschieht dies beispielsweise über einen Bus 90.The control unit 80 includes a host 82 , a hardware security module (HSM) 84 and a memory 86 . These are connected to one another by means of one or more connections or lines for data exchange. In the figure, this is done, for example, via a bus 90 .

Der Vollständigkeit halber ist noch eine Kommunikationsschnittstelle 92 dargestellt, die dazu dient, das Steuergerät 80 mit anderen Vorrichtungen zu verbinden. Dies können insbesondere eine vom Steuergerät zu steuernde Vorrichtung und/oder andere Steuergeräte sein. Ebenso kann ein Programmiergerät, mit dem eine Aktualisierung des Steuergeräts vorgenommen werden soll, über die Kommunikationsschnittstelle 92 mit dem Steuergerät kommunizieren. Die Kommunikationsschnittstelle 92 kann z.B. eine CAN-Bus-Schnittstelle umfassen. Die Kommunikationsschnittstelle 92 ist hier direkt mit dem Host 82 verbunden, kann aber auch an den Bus 90 angebunden sein.For the sake of completeness, there is also a communication interface 92 shown, which serves to control the control unit 80 to connect with other devices. This can in particular be a device to be controlled by the control device and / or other control devices. A programming device that is to be used to update the control device can also be used via the communication interface 92 communicate with the control unit. The communication interface 92 can for example comprise a CAN bus interface. The communication interface 92 is right here with the host 82 connected, but can also be connected to the bus 90 be tied up.

Mehrere oder auch alle der einzelnen Teile (Host 82, HSM 84, Speicher 86, Kommunikationsschnittstelle 92) können in einem Chip integriert sein. Das Steuergerät kann weitere, nicht dargestellte Bestandteile umfassen.Several or all of the individual parts (host 82 , HSM 84 , Storage 86 , Communication interface 92 ) can be integrated in a chip. The control device can comprise further components, not shown.

In 2 ist eine Übersicht über die prinzipielle Struktur einer bevorzugten Ausführung des Aktualisierungsverfahrens dargestellt. Dabei sind links in der Figur Vorgänge dargestellt, die hostseitig 2 ablaufen, und rechts in der Figur Vorgänge dargestellt, die HSM-seitig 4 ablaufen. Die Anordnung der gezeichneten Elemente in vertikaler Richtung der Figur entspricht grob dem zeitlichen Ablauf, wobei kleinere Variationen zwischen hostseitigen Schritten einerseits und HSM-seitigen Schritten andererseits möglich sind. D.h. es ist möglich, dass auf gleicher vertikaler Höhe angeordnete Vorgänge zu unterschiedlichen Zeitpunkten stattfinden bzw. auf unterschiedlichen Höhen angeordnete Vorgänge gleichzeitig oder in umgekehrter Reihenfolge ablaufen, solange dies im Einklang mit dem logischen Ablauf des Verfahrens steht. Beispielsweise könnte Schritt 12 (Sperren des Schreibzugriffs, s.u.) vor Schritt 8 (Initialisierung des Hosts) ausgeführt werden, auch wenn diese beiden Schritte auf gleicher Höhe dargestellt sind; andererseits kann (im Einklang mit dem logischen Ablauf des Verfahrens) Schritt 22 (Ausführen des Aktualisierungsprogramms) immer erst nach Schritt 18 (Freigeben des Schreibzugriffs) ausgeführt werden, hier ist also keine Änderung der dargestellten Reihenfolge möglich. Die Abfolge der Schritte, die hostseitig ablaufen, bzw. die Abfolge der Schritte, die HSM-seitig ablaufen, ist jeweils wie dargestellt.In 2 an overview of the basic structure of a preferred embodiment of the update method is shown. Processes that run on the host side 2 are shown on the left in the figure, and processes that run on the HSM side 4 are shown on the right in the figure. The arrangement of the drawn elements in the vertical direction of the figure roughly corresponds to the time sequence, with smaller variations between host-side steps on the one hand and HSM-side steps on the other hand being possible. That is, it is possible that processes arranged at the same vertical height take place at different times or processes arranged at different heights run simultaneously or in the reverse order, as long as this is consistent with the logical sequence of the method. For example, step could be 12th (Lock write access, see below) before step 8th (Initialization of the host) are carried out even if these two steps are shown at the same level; on the other hand (in accordance with the logical flow of the procedure) step 22nd (Run the update program) only after step 18th (Enable write access), so the sequence shown cannot be changed here. The sequence of steps that run on the host side or the sequence of steps that run on the HSM side is as shown.

Mit Starten des Steuergeräts, z.B. mit dem Anschalten des Steuergeräts, startet der Host in Block bzw. Schritt 6. Dabei wird der Host insbesondere in Schritt 8 initialisiert und es wird beispielsweise ein Bootmanager ausgeführt. Ebenso startet in Schritt 10 das HSM, wobei das HSM den Schreibzugriff auf den Speicher in Schritt 12 sperrt. Dieses initiale Sperren 12 des Schreibzugriffs kann durch ein Programm, dass vom HSM ausgeführt wird, und/oder direkt durch die Hardware des HSM aufgerufen werden bzw. durchgeführt werden.When the control device is started, for example when the control device is switched on, the host starts in block or step 6th . In doing so, the host is particularly in step 8th initialized and a boot manager, for example, is executed. Also starts in step 10 the HSM, with the HSM providing write access to the memory in step 12th locks. This initial locking 12th the write access can be called or carried out by a program that is executed by the HSM and / or directly by the hardware of the HSM.

Nach Initialisierung des Hosts in Schritt 8 wird, bevor das Aktualisierungsprogramm bzw. die Programmiersoftware aufgerufen wird, zunächst über Verbindung 14 das HSM aufgerufen, welches den Speicherbereich, in dem das Aktualisierungsprogramm enthalten bzw. gespeichert ist, in Schritt 16 auf Integrität prüft, d.h. prüft, ob der Speicherbereich unerlaubterweise geändert wurde. Dazu kann etwa ein Nachrichtenauthentifizierungscode (MAC, Message Authentication Code) basierend auf den im Speicherbereich gespeicherten Daten (Programmdaten und andere Daten, etwa Initialisierungsparameter, o.ä.) und einem geheimen Schlüssel, den das HSM verwaltet und speichert, berechnet und mit einem bekannten, früher berechneten MAC des Speicherbereichs verglichen werden, d.h. es findet ein Abgleich des Nachrichtenauthentifizierungscodes statt. Durch dieses Vorgehen kann das Aktualisierungsprogramm authentifiziert werden.After initializing the host in step 8th is, before the update program or the programming software is called, first via connection 14th the HSM is called, which is the memory area in which the update program is contained or stored, in step 16 Checks for integrity, ie checks whether the memory area has been unauthorizedly changed. For this purpose, a message authentication code (MAC, Message Authentication Code) based on the data stored in the memory area (program data and other data, such as initialization parameters, etc.) and a secret key that the HSM manages and stores, calculated and with a known , MAC of the memory area calculated earlier are compared, ie the message authentication code is compared. This process allows the update program to be authenticated.

Wenn die Integrität des Speicherbereichs bestätigt wird, d.h. wenn das Aktualisierungsprogramm erfolgreich authentifiziert wird, wird der Schreibzugriff auf den Speicher in Schritt 18 freigegeben und ebenso wird über Verbindung 20 erlaubt, das Aktualisierungsprogramm in Schritt 22 auszuführen. Das Aktualisierungsprogramm erkennt bzw. bestimmt, ob eine Aktualisierung bzw. Neuprogrammierung durchgeführt werden soll. Wenn dies nicht der Fall ist, wird das HSM über Verbindung 24 veranlasst, den Schreibzugriff auf den Speicher in Schritt 26 wieder zu sperren, und ebenso wird über Verbindung 28 eine Anwendungssoftware aufgerufen und in Schritt 30 ausgeführt. Nach diesem Sperren des Schreibzugriffs in Schritt 26 kann der Schreibzugriff bevorzugt nicht erneut freigegeben werden, die Anwendungssoftware kann also keine Neuprogrammierung durchführen.If the integrity of the memory area is confirmed, ie if the update program is successfully authenticated, write access to the memory in step 18th released and also via connection 20th allowed the updater in step 22nd to execute. The update program recognizes or determines whether an update or reprogramming should be carried out. If this is not the case, the HSM will be over connection 24 causes write access to the memory in step 26th to lock again, and likewise will be about connection 28 an application software called and in step 30th executed. After this block write access in step 26th the write access can preferably not be re-enabled, i.e. the application software cannot carry out any reprogramming.

3 stellt ein Ablaufdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens dar. Zunächst werden in Schritt 40 der Host und das Hardware-Sicherheits-Modul (HSM) gestartet. Diese rufen während der Startphase üblicherweise ein jeweiliges Ladeprogramm (Boot-Manger bzw. Boot-Loader) auf und führen eine Initialisierung durch. Nach Initialisierung werden vom Ladeprogramm des Hosts im Speicher gespeicherte Programme bzw. Software aufgerufen. Nach Start bzw. während der Startphase wird in Schritt 42 der Schreibzugriff auf den Speicher durch das HSM gesperrt; durch ein vom HSM ausgeführtes Programm (Software) und/oder direkt durch eine als Hardware im HSM implementierte Funktion. Wenn der Schreibzugriff gesperrt ist, kann der Speicher weder mit Software noch mit Daten beschrieben werden, eine Neuprogrammierung bzw. Aktualisierung ist zu diesem Zeitpunkt nicht möglich. 3 represents a flowchart of a preferred embodiment of the method according to the invention. First, in step 40 the host and the hardware security module (HSM) started. During the start phase, these usually call up a respective loading program (boot manager or boot loader) and carry out an initialization. After initialization, programs or software stored in the memory are called up by the host's loader program. After the start or during the start phase, step 42 write access to the memory blocked by the HSM; by a program (software) executed by the HSM and / or directly by a function implemented as hardware in the HSM. If write access is blocked, neither software nor data can be written to the memory; reprogramming or updating is not possible at this point in time.

Nach der Initialisierung des Hosts wird das HSM aufgerufen, in Schritt 44 die Integrität eines ersten Speicherbereichs zu prüfen, der ein Aktualisierungsprogramm bzw. eine Programmiersoftware enthält bzw. speichert. Das Aktualisierungsprogramm ist ein Programm, das dazu eingerichtet ist (wenn durch den Host ausgeführt), zumindest Teile des Speichers oder von Speicherbereichen mit neuer Software (Computerprogramm) und/oder neuen Daten zu beschreiben, eine solche Software und/oder solche neuen Daten werden typischerweise über einen Kommunikationsanschluss (drahtgebunden oder drahtlos) an das Steuergerät und das Aktualisierungsprogramm übermittelt.After the host has been initialized, the HSM is called in step 44 to check the integrity of a first memory area which contains or stores an update program or programming software. The update program is a program that is set up (if executed by the host) to write at least parts of the memory or memory areas with new software (computer program) and / or new data; such software and / or such new data are typically transmitted to the control unit and the update program via a communication connection (wired or wireless).

Wenn beim Prüfen die Integrität des ersten Speicherbereichs nicht bestätigt wird, Pfeil 46, kann im bevorzugten optionalen Schritt 48 das Steuergerät angehalten werden, d.h. der Host und auch das HSM werden gestoppt. Ein solches Anhalten bzw. Stoppen kann vollständig sein, d.h. das Steuergerät wird in einen Aus- oder Ruhe-Zustand gebracht, oder auch nur ein Unterbinden der Ausführung weiterer Software sein, bis z.B. eine Nutzereingabe erfolgt. Zusätzlich oder alternativ kann eine Fehlermeldung ausgegeben werden. Dieser Schritt 48 ist zweckmäßig, da dadurch das sicherheitskritische Ausführen gegebenenfalls manipulierter Software, hier des Aktualisierungsprogramms, verhindert wird.If the check does not confirm the integrity of the first memory area, arrow 46 , can in the preferred optional step 48 the control unit are stopped, ie the host and also the HSM are stopped. Such a halting or stopping can be complete, that is to say the control device is put into an idle or idle state, or it can only be a prohibition of the execution of further software until, for example, a user input is made. Additionally or alternatively, an error message can be output. This step 48 is useful because this prevents the security-critical execution of possibly manipulated software, in this case the update program.

Wenn die Integrität des ersten Speicherbereichs beim Prüfen bestätigt wird, Pfeil 50, kann optional in Schritt 52 die Überprüfung eines Passworts erfolgen, das vom HSM gespeichert und verwaltet wird und das bevorzugt individuell für das Steuergerät erzeugt wurde. Mit der Passwortabfrage bzw. Passwortüberprüfung wird geprüft, ob die Person oder das Gerät, die bzw. das eine Aktualisierung des Steuergeräts durchführen will, dazu berechtigt ist. Wenn die Überprüfung des Passworts nicht erfolgreich ist, Pfeil 54, kann wieder mit Schritt 48, d.h. dem Anhalten bzw. der Fehlermeldung, fortgefahren werden. Wenn die Überprüfung des Passworts erfolgreich ist, Pfeil 56, oder wenn (in der Figur nicht gezeigt) keine Überprüfung des Passworts vorgesehen ist, wird mit Schritt 58 fortgefahren, in dem der Schreibzugriff auf den Speicher durch das HSM freigegeben wird. If the integrity of the first memory area is confirmed during testing, arrow 50 , can be optional in step 52 a password is checked that is saved and managed by the HSM and that was preferably generated individually for the control unit. The password query or password check is used to check whether the person or the device who wants to update the control device is authorized to do so. If the password verification is unsuccessful, arrow 54 , can step again 48 , ie stopping or the error message, can be continued. If the password verification is successful, arrow 56 , or if (not shown in the figure) no verification of the password is provided, step 58 continued by releasing write access to the memory through the HSM.

Nach Freigabe 58 des Schreibzugriffs wird in Schritt 60 das Aktualisierungsprogramm gestartet. Diese bestimmt in Schritt 62 ob eine Aktualisierung bzw. Neuprogrammierung stattfinden soll.After approval 58 write access is in step 60 the update program started. This determined in step 62 whether an update or reprogramming should take place.

Wenn festgestellt wird, dass eine Aktualisierung durchgeführt werden soll, Pfeil 64, wird die Aktualisierung in Schritt 66 von dem Aktualisierungsprogramm durchgeführt. Die Aktualisierung kann etwa das Schreiben neuer Programme, sowohl von Anwendungsprogrammen als auch von Aktualisierungsprogrammen, und/oder neuer Daten, etwa Parameter des Steuergeräts betreffend, in den Speicher (zumindest in Teile des Speichers) umfassen. Weiter kann die Aktualisierung ein Erzeugen (bevorzugt durch das HSM) neuer Schlüssel, mit denen sich die Integrität der neu geschriebenen Speicherbereiche zu einem späteren Zeitpunkt prüfen lässt, umfassen; diese neuen Schlüssel werden wieder vom HSM verwaltet. Eine Aktualisierung kann eventuell auch einen Neustart des Steuergerätes umfassen, etwa wenn Initialisierungsdaten geändert wurden. In Schritt 70 wird nach der Aktualisierung der Speicherzugriff durch das HSM bzw. das Aktualisierungsprogramm, das das HSM dazu veranlasst, wieder gesperrt (wenn ein Neustart durchgeführt wird kann hierauf verzichtet werden, da nach diesem der Speicherzugriff in jedem Fall gesperrt wird, vgl. Schritt 42).If it is determined that an update should be performed, arrow 64 , will update in step 66 performed by the update program. The update can include, for example, the writing of new programs, both application programs and update programs, and / or new data, for example relating to parameters of the control device, into the memory (at least in parts of the memory). The update can further include generating (preferably by the HSM) new keys with which the integrity of the newly written memory areas can be checked at a later point in time; these new keys are again managed by the HSM. An update can possibly also include a restart of the control unit, for example if initialization data have been changed. In step 70 the memory access is blocked again after the update by the HSM or the update program that prompts the HSM to do so (if a restart is carried out, this can be dispensed with, since the memory access is blocked in any case after this, see step 42 ).

Wenn (durch das Aktualisierungsprogramm) andererseits festgestellt wird, dass keine Neuprogrammierung durchgeführt werden soll, Pfeil 68, wird nach Schritt 62, in dem bestimmt wird, ob eine Aktualisierung durchgeführt werden soll, mit Schritt 70, in dem der Speicherzugriff wieder gesperrt wird, fortgefahren. Dies ist vorteilhaft, da dann der weitere Steuergerätestart bzw. die Ausführung eines Anwendungsprogramms nicht verzögert wird, d.h. die Zeit bis die eigentliche Funktion des Steuergeräts, die durch das Ausführen des Anwendungsprogramms erreicht wird, zur Verfügung steht, wird nicht verlängert.On the other hand, if it is determined (by the update program) that no reprogramming should be performed, arrow 68 , will after step 62 , in which it is determined whether an update should be carried out, with step 70 , in which the memory access is blocked again. This is advantageous because then the further start of the control device or the execution of an application program is not delayed, ie the time until the actual function of the control device, which is achieved by executing the application program, is available is not extended.

Nachdem der Speicherzugriff in Schritt 70 wieder gesperrt wurde, kann optional in Schritt 72 die Integrität eines zweiten Speicherbereichs geprüft werden, in dem ein Anwendungsprogramm enthalten bzw. gespeichert ist. Wenn in diesem Schritt die Integrität des zweiten Speicherbereichs nicht bestätigt wird, Pfeil 74, kann mit Schritt 48, d.h. dem Anhalten des Steuergeräts bzw. dem Stoppen des Hosts und/oder dem Ausgeben einer Fehlermeldung, fortgefahren werden. Wenn die Integrität des zweiten Speicherbereichs bestätigt wird, Pfeil 76, oder wenn (in der Figur nicht gezeigt) keine Prüfung der Integrität des zweiten Speicherbereichs vorgesehen ist, kann in Schritt 78 mit dem Ausführen des Anwendungsprogramms fortgefahren werden.After the memory access in step 70 has been blocked again, can optionally be done in step 72 the integrity of a second memory area can be checked in which an application program is contained or stored. If the integrity of the second memory area is not confirmed in this step, arrow 74 , can with step 48 , ie stopping the control unit or stopping the host and / or outputting an error message. If the integrity of the second storage area is confirmed, arrow 76 , or if (not shown in the figure) no check of the integrity of the second memory area is provided, in step 78 to continue executing the application program.

Claims (9)

Verfahren zur sicheren Aktualisierung eines Steuergeräts, das einen Host, der dazu eingerichtet ist, ein Aktualisierungsprogramm und ein oder mehrere Anwendungsprogramme auszuführen, einen Speicher, der Programme und Daten enthält, und ein Hardware-Sicherheits-Modul, HSM, umfasst, das dazu eingerichtet ist, die Integrität von Speicherbereichen des Speichers zu prüfen und einen Schreibzugriff auf den Speicher zu sperren und freizugeben, umfassend Starten (6, 8, 40) des Hosts und des HSM; Sperren (12, 42) des Schreibzugriffs auf den Speicher durch das HSM; Prüfen (16, 44) der Integrität eines das Aktualisierungsprogramm enthaltenden ersten Speicherbereichs des Speichers durch das HSM; wenn die Integrität des ersten Speicherbereichs beim Prüfen bestätigt wird, Freigeben (18, 58) des Schreibzugriffs auf den Speicher durch das HSM und Starten des Aktualisierungsprogramms.Method for the secure update of a control device, which comprises a host which is set up to execute an update program and one or more application programs, a memory which contains programs and data, and a hardware security module, HSM, which is set up to do so to check the integrity of memory areas of the memory and to block and release write access to the memory, comprising Starting (6, 8, 40) the host and the HSM; Blocking (12, 42) write access to the memory by the HSM; Checking (16, 44) the integrity of a first memory area of the memory containing the update program by the HSM; if the integrity of the first memory area is confirmed during the check, the HSM enables (18, 58) write access to the memory and starts the update program. Verfahren nach Anspruch 1, umfassend, nach dem Starten des Aktualisierungsprogramms, Bestimmen (62), durch das Aktualisierungsprogramm, ob eine Aktualisierung stattfinden soll; wenn bestimmt wird, dass keine Aktualisierung stattfinden soll, Sperren (26, 70) des Schreibzugriffs auf den Speicher durch das HSM; wenn bestimmt wird, dass eine Aktualisierung stattfinden soll, Aktualisieren (66) des Steuergeräts, wobei das Aktualisieren Schreiben von Aktualisierungsdaten in den Speicher durch das Aktualisierungsprogramm und anschließendes Sperren (70) des Schreibzugriffs durch das HSM und/oder Neustarten des Steuergeräts umfasst; Ausführen (30, 78) des wenigstens eines des einen oder der mehreren Anwendungsprogramme durch den Host.Procedure according to Claim 1 comprising, upon starting the update program, determining (62), by the update program, whether an update should occur; if it is determined that no update should occur, the HSM disables (26, 70) write access to the memory; if it is determined that an update should take place, updating (66) the controller, the updating comprising writing update data to the memory by the update program and then blocking (70) write access by the HSM and / or restarting the controller; The host executing (30, 78) the at least one of the one or more application programs. Verfahren nach Anspruch 2, umfassend, vor dem Ausführen (78) des wenigstens einen Anwendungsprogramms, Prüfen (72) der Integrität eines das wenigstens eine Anwendungsprogramm enthaltenden zweiten Speicherbereichs des Speichers durch das HSM und, wenn die Integrität des zweiten Speicherbereichs beim Prüfen nicht bestätigt wird, Unterbinden der Ausführung des wenigstens einen Anwendungsprogramms.Procedure according to Claim 2 , comprising, before the execution (78) of the at least one application program, checking (72) the integrity of a second memory area of the memory containing the at least one application program by the HSM and, if the integrity of the second memory area is not confirmed during the checking, disabling the Execution of the at least one application program. Verfahren nach einem der vorstehenden Ansprüche, weiter umfassend: Anfordern und Überprüfen (58) eines Passworts vor dem Freigeben des Schreibzugriffs auf den Speicher.A method according to any one of the preceding claims, further comprising: Requiring and verifying (58) a password prior to authorizing write access to the memory. Verfahren nach einem der vorstehenden Ansprüche, wobei das Prüfen der Integrität des ersten Speicherbereichs und/oder, wenn abhängig von Anspruch 3 oder 4, des zweiten Speicherbereichs ein Abgleichen eines Nachrichtenauthentifizierungscodes umfasst.The method according to any one of the preceding claims, wherein the checking of the integrity of the first memory area and / or, if dependent on Claim 3 or 4th , the second storage area comprises matching a message authentication code. Verfahren nach einem der vorstehenden Ansprüche, umfassend, wenn die Integrität des ersten Speicherbereichs und/oder, wenn abhängig von Anspruch 3 oder 4, des zweiten Speicherbereichs beim Prüfen nicht bestätigt wird, Stoppen (48) des Hosts und/oder Ausgeben einer Fehlermeldung.The method according to any one of the preceding claims, comprising if the integrity of the first memory area and / or if dependent on Claim 3 or 4th , the second memory area is not confirmed during the check, stopping (48) the host and / or outputting an error message. Recheneinheit, die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Computing unit which is set up to carry out all method steps of a method according to one of the preceding claims. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 6 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.Computer program that causes a processing unit to carry out all process steps of a process according to one of the Claims 1 until 6th to be carried out when it is executed on the processing unit. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 8.Machine-readable storage medium with a computer program stored thereon Claim 8 .
DE102020207863.7A 2020-06-25 2020-06-25 Process for the secure update of control units Pending DE102020207863A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020207863.7A DE102020207863A1 (en) 2020-06-25 2020-06-25 Process for the secure update of control units
CN202110703464.9A CN114091008A (en) 2020-06-25 2021-06-24 Method for securely updating a control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020207863.7A DE102020207863A1 (en) 2020-06-25 2020-06-25 Process for the secure update of control units

Publications (1)

Publication Number Publication Date
DE102020207863A1 true DE102020207863A1 (en) 2021-12-30

Family

ID=78826900

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020207863.7A Pending DE102020207863A1 (en) 2020-06-25 2020-06-25 Process for the secure update of control units

Country Status (2)

Country Link
CN (1) CN114091008A (en)
DE (1) DE102020207863A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213314A1 (en) 2013-07-08 2015-01-08 Siemens Aktiengesellschaft Deposit at least one computable integrity measure in a memory area of a memory
DE102015209116A1 (en) 2015-05-19 2016-11-24 Robert Bosch Gmbh Method and update gateway for updating an embedded controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213314A1 (en) 2013-07-08 2015-01-08 Siemens Aktiengesellschaft Deposit at least one computable integrity measure in a memory area of a memory
DE102015209116A1 (en) 2015-05-19 2016-11-24 Robert Bosch Gmbh Method and update gateway for updating an embedded controller

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHERUVU, Sunil [et al.]: IoT Vertical Applications and Associated Security Requirements. In: Demystifying Internet of Things Security. Apress, Berkeley, CA (USA), 2020 (online veröffentlicht am 14. August 2019). S. 413–462. DOI: 10.1007/978-1-4842-2896-8_6
IDREES, Muhammad Sabir [et al.]: Secure automotive on-board protocols: a case of over-the-air firmware updates. In: International Workshop on Communication Technologies for Vehicles. Berlin, Heidelberg : Springer, 2011. S. 224–238. DOI: 10.1007/978-3-642-19786-4_20

Also Published As

Publication number Publication date
CN114091008A (en) 2022-02-25

Similar Documents

Publication Publication Date Title
DE102012109615B4 (en) Using a manifest to record the presence of valid software and calibration
DE102008021567A1 (en) Computer system with secure boot mechanism based on symmetric key encryption
DE102015209108A1 (en) Method and decision gateway for authorizing a function of an embedded controller
WO2019081395A1 (en) Method and device for updating software of a motor vehicle control unit
DE102014220616A1 (en) Method for loading executable program instructions into a chip card in active operation
EP3811261B1 (en) Cryptography module and method for operating same
DE102010002472A1 (en) Method for verifying a memory block of a non-volatile memory
DE102020207866A1 (en) Method for performing a secure start sequence of a control unit
DE102020207863A1 (en) Process for the secure update of control units
DE102020207862A1 (en) Procedure for the secure update of control units
DE102022119774A1 (en) Method and system for performing a secure boot procedure using multi-level security verification in a vehicle microcontroller
DE102020207861A1 (en) Method for carrying out a secured start sequence of a control unit
DE102020216030A1 (en) Procedure for the secure start of a computing unit
DE102018217969A1 (en) Computing device and operating method therefor
DE102021126509B4 (en) Portable chip device and method for performing a software module update in a portable chip device
WO2018153559A1 (en) Method and validation unit for controlling the loading of crypto keys, in particular "key blobs", usable in it systems, in particular embedded systems
DE102021212994B3 (en) Method for detecting anomalies indicating tampering during a secure boot process of a software-controlled device
DE102011111698A1 (en) Method for performing log-in at computer system, involves passing user-specific information and/or another user-specific information by authentication instance to another authentication instance in which former instance is arranged
DE102019220450A1 (en) Device with an interface and method for operating a device with an interface
DE102020212988A1 (en) Safe booting of a computer system
EP4078314A1 (en) Apparatus having an interface, and method for operating an apparatus having an interface
DE102021211591A1 (en) Method and device for processing data
WO2024056443A1 (en) Method for checking data in a computer unit
DE102020207614A1 (en) Computing facility and operating procedures therefor
DE102021214195A1 (en) Procedure for installing an update for a hardware security module

Legal Events

Date Code Title Description
R163 Identified publications notified