DE102020207866A1 - Method for performing a secure start sequence of a control unit - Google Patents

Method for performing a secure start sequence of a control unit Download PDF

Info

Publication number
DE102020207866A1
DE102020207866A1 DE102020207866.1A DE102020207866A DE102020207866A1 DE 102020207866 A1 DE102020207866 A1 DE 102020207866A1 DE 102020207866 A DE102020207866 A DE 102020207866A DE 102020207866 A1 DE102020207866 A1 DE 102020207866A1
Authority
DE
Germany
Prior art keywords
memory
program
host
hsm
application 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
DE102020207866.1A
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 DE102020207866.1A priority Critical patent/DE102020207866A1/en
Priority to CN202110703444.1A priority patent/CN113935011A/en
Publication of DE102020207866A1 publication Critical patent/DE102020207866A1/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/575Secure boot
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/4401Bootstrapping
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Durchführung einer abgesicherten Startsequenz eines Steuergeräts, das einen Host, der dazu eingerichtet ist, Programme auszuführen, und ein Hardware-Sicherheits-Modul, HSM, umfasst, das dazu eingerichtet ist, Anwendungsprogramme zu authentifizieren. Das Verfahren umfasst ein Starten des Hosts und des HSM; ein Ausführen eines Ladeprogramms durch den Host, wobei das Ladeprogramm in einem nicht wiederbeschreibbaren ersten Speicher des Hosts gespeichert ist; ein Prüfen der Authentizität wenigstens eines Anwendungsprogramms durch das HSM, wobei das Anwendungsprogramm in einem wiederbeschreibbaren zweiten Speicher des Hosts gespeichert ist; und, wenn die Authentizität des wenigstens einen Anwendungsprogramms bestätigt wird, ein Ausführen des wenigstens einen Anwendungsprogramms durch den Host.The invention relates to a method for carrying out a secure start sequence of a control device that includes a host that is set up to run programs and a hardware security module, HSM, that is set up to authenticate application programs. The method includes starting the host and the HSM; the host executing a loader, the loader being stored in a non-rewritable first memory of the host; the HSM verifying the authenticity of at least one application program, the application program being stored in a rewritable second memory of the host; and if the authenticity of the at least one application program is verified, the host executing the at least one application program.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Durchführen einer abgesicherten Startsequenz für ein Steuergerät sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for carrying out a secured start sequence for a control device as well as a computing unit and a computer program for carrying it out.

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 zur 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), der in einem Speicher gespeicherte Programme ausführt, um die Funktionen des Steuergeräts zu erzielen.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 units comprise a processor with one or, typically, with several processor cores (also referred to in simplified form as a host or host system), which executes programs stored in a memory in order to achieve the functions of the control unit.

Aus Sicherheitsgründen kann vorgesehen sein, dass vor dem Ausführen eines Programms durch das Steuergerät die Authentizität des Programms geprüft wird, um zu verhindern, dass ein manipuliertes Programm ausgeführt wird. Die Prüfung kann von einem sogenannten Hardware-Sicherheits-Modul, HSM, durchgeführt werden, das Funktionalitäten bereitstellt, um vom Steuergerät ausgeführte Programme und Kommunikation vor Manipulation abzusichern. Das HSM verwendet dazu Signaturen, die mittels kryptologischer Funktionen und (geheimer) Schlüssel berechnet werden. Nach Einschalten des Steuergeräts muss zunächst das Ladeprogramm des Hosts, das insbesondere mindestens ein Anwendungsprogramm lädt, auf seine Authentizität überprüft werden. Diese Prüfung der Authentizität des Ladeprogramms durch das HSM verlängert die Startphase des Steuergeräts. Die Verlängerung der Startphase kann zusätzlich dadurch negativ beeinflusst werden, dass das HSM zunächst selbst initialisiert werden muss und während eines anfänglichen Zeitraums, in dem die Authentizität-Prüfung des Ladeprogramms stattfindet, mit einer verminderten Taktfrequenz läuft.For security reasons, it can be provided that the authenticity of the program is checked before a program is executed by the control device in order to prevent a manipulated program from being executed. The test can be carried out by what is known as a hardware security module, HSM, which provides functionalities to protect programs and communication executed by the control unit from manipulation. The HSM uses signatures that are calculated using cryptological functions and (secret) keys. After switching on the control device, the host's loading program, which in particular loads at least one application program, must first be checked for authenticity. This check of the authenticity of the charging program by the HSM extends the start phase of the control unit. The extension of the start phase can also be negatively influenced by the fact that the HSM itself must first be initialized and runs at a reduced clock frequency during an initial period in which the authenticity check of the loading program takes place.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zur Durchführung einer abgesicherten Startsequenz 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 carrying out a secured start sequence of a control device as well as a computing unit and a computer program for carrying it out are proposed with the features of the independent claims. Advantageous refinements are the subject matter of the subclaims and the description below.

Durch das erfindungsgemäße Verfahren wird eine Verzögerung der Startsequenz bei zeitkritischen Steuergeräten (z.B. Motorsteuergeräten) vermieden. Das wird dadurch erreicht, dass die zentrale Ladesoftware bzw. Boot-Software per Hardwareschutz geschützt ist, da der erste Speicher, der das Ladeprogramm enthält nicht wiederbeschreibbar, und daher nicht veränderbar, ist. Dadurch ist die Integrität und Authentizität des Ladeprogramms sichergestellt. Das Ladeprogramm kann sofort, ohne Überprüfung durch das HSM, ausgeführt werden, so dass eine abgesicherte Startsequenz ohne Zeitverzögerungen ermöglicht wird. Das Verfahren zur Durchführung einer abgesicherten Startsequenz eines Steuergerätes ist, anders ausgedrückt, eine abgesicherte Steuergeräte-Startsequenz.The method according to the invention avoids a delay in the start sequence in the case of time-critical control devices (e.g. engine control devices). This is achieved in that the central loading software or boot software is protected by hardware protection, since the first memory that contains the loading program cannot be rewritten and therefore cannot be changed. This ensures the integrity and authenticity of the loading program. The loading program can be executed immediately, without being checked by the HSM, so that a reliable start sequence is possible without any time delays. In other words, the method for carrying out a secured start sequence of a control device is a secured control device start sequence.

Der Begriff ‚Startsequenz‘ bzw. Hochlauf bezeichnet hierbei vom Steuergerät anfänglich nach dem Start durch geführte Schritte, bis Anwendungsprogramme, die die eigentliche Steuerungs-Funktionalität des Steuergeräts implementieren, laufen. ‚Abgesichert‘ soll heißen, dass es nicht möglich ist, die Startsequenz so zu manipulieren, dass Programme ausgeführt werden, die die Funktionalität des Steuergeräts unerlaubterweise ändern, d.h. in vom Hersteller und/oder Benutzer der Vorrichtung (z.B. Maschine oder Fahrzeug), in der das Steuergerät verwendet wird, nicht erlaubter Weise ändern oder die es einem Angreifer ermöglichen, die Kontrolle über das Steuergerät und damit zumindest teilweise die von diesem gesteuerte Vorrichtung zu erlangen.The term “start sequence” or run-up refers to the control unit initially following the start-up through steps until application programs that implement the actual control functionality of the control unit are running. 'Secured' means that it is not possible to manipulate the start sequence in such a way that programs are executed that change the functionality of the control unit without permission, i.e. in the form of the manufacturer and / or user of the device (e.g. machine or vehicle) in which the control device is used, change in an illegal manner or which allow an attacker to gain control of the control device and thus at least partially the device controlled by it.

Ein weiterer Vorteil der Erfindung liegt darin, dass zwar das Ladeprogramm im ersten, nicht wiederbeschreibbaren Speicher gespeichert ist, die Anwendungsprogramme, die die eigentliche Funktionalität des Steuergeräts bereitstellen, allerdings im zweiten, wiederbeschreibbaren Speicher gespeichert sind, so dass deren Aktualisierung bzw. Neuprogrammierung möglich ist.Another advantage of the invention is that although the loading program is stored in the first, non-rewritable memory, the application programs that provide the actual functionality of the control device are, however, stored in the second, rewritable memory so that they can be updated or reprogrammed .

Der Host bzw. das Hostsystem umfasst einen Prozessor, der dazu eingerichtet ist, Software bzw. Computerprogramme (vereinfacht als Programme bezeichnet) auszuführen, um Funktionen des Steuergeräts zu verwirklichen. Der Host kann weitere Elemente, wie etwa einen flüchtigen Arbeitsspeicher (z.B. einen Direktzugriffsspeicher, random access memory, RAM), einen nichtflüchtigen Speicher (hier erster und zweiter Speicher), Kommunikationsschnittstellen, insbesondere zur Kommunikation mit dem Speicher, dem HSM und externen Geräten, und/oder ähnliches umfassen. Die Software ist in dem nichtflüchtigen Speicher des Steuergeräts enthalten bzw. gespeichert. Der Host umfasst einen nicht wiederbeschreibbaren ersten Speicher, z.B. einen nur einmalig beschreibbaren Speicher (OTP, One Time Programmable), und einen wiederbeschreibbaren zweiten Speicher, z.B. ein Flash-Speicher, eine Festplatte, oder eine SSD (solid state disk). Ein OTP-Speicher kann als Fuse-Technologie oder Anti-Fuse-Technologie realisiert werden, wobei bei der Programmierung relevante Verbindungsstellen einer elektronischen Schaltung entweder getrennt (Fuse-Technologie) oder verbunden (Anti-Fuse-Technologie) werden; der Programmcode eines so programmierten Programms ist dann durch strukturelle Hardware-Merkmale des Speichers gegeben. Auch kann ein Flash-Speicher mit einem Hardware-Schutz verwendet werden, der ein erneutes Beschreiben nach der ursprünglichen einmaligen Programmierung unterbindet.The host or the host system comprises a processor which is set up to execute software or computer programs (referred to simply as programs) in order to implement functions of the control device. The host can have further elements, such as a volatile main memory (e.g. a random access memory, RAM), a non-volatile memory (here first and second memory), 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. The host comprises a non-rewritable first memory, for example a one-time writable memory (OTP, One Time Programmable), and a rewritable second memory, for example a flash memory, a hard disk, or an SSD (solid state disk). An OTP memory can be used as fuse technology or Anti-fuse technology can be implemented, whereby relevant connection points of an electronic circuit are either separated (fuse technology) or connected (anti-fuse technology) during programming; the program code of a program programmed in this way is then given by structural hardware features of the memory. A flash memory with hardware protection can also be used, which prevents rewriting after the original one-time programming.

Unter den Begriffen ‚erster Speicher‘ und ‚zweiter Speicher‘ sind Speicher des Hosts zu verstehen; ein Speicher des HSM wird als ‚HSM-Speicher‘ bezeichnet. The terms “first memory” and “second memory” are to be understood as meaning memory of the host; a memory of the HSM is referred to as "HSM memory".

Die Programme können ein oder mehrere Anwendungsprogramme, die dazu eingerichtet sind, Steuerfunktionen des Steuergeräts zu implementieren, wenn sie von dem Host ausgeführt werden, ein Ladeprogramm, das dazu eingerichtet ist, Initialisierungen durchzuführen und wenigstens eines der Anwendungsprogramme aufzurufen, wenn es von dem Host ausgeführt wird, und ein oder mehrere Aktualisierungsprogramme (Programmiersoftware), die u.a. dazu eingerichtet sind, den zweiten Speicher oder Teile davon mit Software (Programmdaten) oder Daten neu zu beschreiben, wenn sie von dem Host ausgeführt werden, umfassen. Anwendungsprogramme sind vorzugsweise im zweiten Speicher gespeichert. Das Ladeprogramm und vorzugsweise auch die Aktualisierungsprogramme sind im ersten Speicher gespeichert.The programs can be one or more application programs that are set up to implement control functions of the control unit when they are executed by the host, a loading program that is set up to carry out initializations and call at least one of the application programs when it is executed by the host and one or more update programs (programming software) which are set up, inter alia, to rewrite the second memory or parts thereof with software (program data) or data when they are executed by the host. Application programs are preferably stored in the second memory. The loading program and preferably also the update programs are stored in the first memory.

Aktualisierungsprogramme stellen sozusagen eine Programmiersoftware zur Neuprogrammierung des Steuergeräts dar, so 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 zweite Speicher bzw. Bereiche davon 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.Update programs represent, so to speak, programming software for reprogramming the control device, so the control device can be updated or reprogrammed. 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 second memory or areas thereof are completely or partially rewritten with update data (new programs, i.e. software, and / or other new data). If necessary, the update program can carry out further actions, e.g. determine which programs / data need to be updated, or initiate a restart of the control unit 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), Signaturen und/oder kryptographische Schlüssel und implementiert kryptographische Verfahren bevorzugt in Hardware. Diese Schlüssel werden vom HSM in einem dafür vorgesehenen Bereich eines Speichers des HSM (HSM-Speicher) gespeichert. 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 in einem Chip integriert sein (HSM und Host sind dann beispielsweise durch verschiedene Prozessor-Kerne auf dem Chip gebildet). Auch ist es möglich, dass die verschiedenen Speicher zumindest teilweise miteinander integriert sind (insbesondere der zweite Speicher mit dem HSM-Speicher) und auf einem Chip mit dem Host-Prozessor und/oder dem HSM-Prozessor ausgebildet sind. Das HSM ist insbesondere dazu eingerichtet, die Integrität von Speicherbereichen des zweiten Speichers 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, signatures and / or cryptographic keys and implements cryptographic methods preferably in hardware. These keys are stored by the HSM in a designated area of a memory of the HSM (HSM 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 in a chip (HSM and host are then, for example, on the chip through different processor cores educated). It is also possible that the various memories are at least partially integrated with one another (in particular the second memory with the HSM memory) and are formed on a chip with the host processor and / or the HSM processor. The HSM is set up in particular to check the integrity of memory areas of the second memory 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 zu prüfenden Speicherbereichs unverändert gegenüber einem bekanntermaßen korrekten Inhalt ist. Dies erfolgt vorzugsweise durch einen Vergleich von Signaturen, wobei eine vom HSM verwaltete und im HSM-Speicher gespeicherte Signatur (d.h. eine Referenz-Signatur), die einem (früheren) Zustand des Speicherbereichs entspricht, von dem bekannt ist, dass dieser korrekt (nicht manipuliert) ist, mit einem neu berechneten Wert der Signatur verglichen wird, der basierend auf dem aktuellen Inhalt des Speicherbereichs berechnet wird. Wenn der neu berechnete Signatur-Wert gleich der gespeicherten Signatur (Referenz-Signatur) ist, so ist der Inhalt des Speicherbereichs (im Sinne des Signaturvergleichs) unverändert, die Authentizität des Programms wird dann bestätigt. Wenn andererseits der neu berechnete Signatur-Wert nicht gleich der gespeicherten Signatur (Referenz-Signatur) ist, so ist der Inhalt des Speicherbereichs (im Sinne des Signaturvergleichs) verändert, die Authentizität des Programms wird dann nicht bestätigt.During the integrity check, it is determined whether the content of the memory area to be checked is unchanged compared to a known correct content. This is preferably done by comparing signatures, with a signature managed by the HSM and stored in the HSM memory (ie a reference signature) which corresponds to an (earlier) state of the memory area that is known to be correct (not manipulated) ) is compared with a newly calculated value of the signature, which is calculated based on the current content of the memory area. If the newly calculated signature value is the same as the stored signature (reference signature), the content of the memory area (in the sense of signature comparison) is unchanged, and the authenticity of the program is then confirmed. If, on the other hand, the newly calculated signature value is not the same as the stored signature (reference signature), the content of the memory area (in the sense of signature comparison) is changed and the authenticity of the program is not confirmed.

Beispielsweise kann 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. Diese genannten Verfahren (Prüfwert, Hashwert, MAC, CMAC) stellen bevorzugte Beispiele für mögliche Signatur-Verfahren dar, es kann jedoch auch ein anderes dem Fachmann bekanntes Verfahren verwendet werden, z.B. bekannte digitale Signaturen.For example, 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, ie 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 allows so-called collision attacks (or here pre-image attacks) can be prevented. A so-called CMAC (Cipher-based Message Authentication Code) is preferably used. These methods mentioned (check value, hash value, MAC, CMAC) represent preferred examples of possible signature methods, but another method known to the person skilled in the art can also be used, for example known digital signatures.

Das Verfahren kann weiterhin, wenn die Authentizität des wenigstens einen Anwendungsprogramms nicht bestätigt wird, ein Ausführen eines im ersten Speicher gespeicherten Aktualisierungsprogramms; und ein Neubeschreiben, durch das Aktualisierungsprogramm, eines Bereichs des zweiten Speichers, in dem das wenigstens eine Anwendungsprogramm gespeichert ist, mit Aktualisierungsdaten, umfassen. Bevorzugt umfasst diese Ausführung weiterhin ein Senden und/oder ein Ausgeben einer Aufforderung, die Aktualisierungsdaten bereitzustellen; und ein Empfangen der Aktualisierungsdaten.The method can furthermore, if the authenticity of the at least one application program is not confirmed, executing an update program stored in the first memory; and rewriting, by the update program, an area of the second memory in which the at least one application program is stored with update data. This embodiment preferably further comprises sending and / or outputting a request to provide the update data; and receiving the update data.

Sollte die Authentifizierung eines Anwendungsprogramms nicht erfolgreich sein, etwa weil dieses manipuliert wurde, kann gemäß dieser Ausführung eine abgesicherte Aktualisierung durchgeführt werden, da das Aktualisierungsprogram im nicht wiederbeschreibbaren ersten Speicher gespeichert ist und somit vor unerlaubten Änderungen sicher ist. Die notwendigen Aktualisierungsdaten können angefordert werden und von außerhalb des Steuergeräts erhalten werden. Dies wird vorteilhaft durch das HSM mittels entsprechender Schlüssel abgesichert.If the authentication of an application program is unsuccessful, for example because it has been manipulated, a secured update can be carried out according to this embodiment, since the update program is stored in the non-rewritable first memory and is therefore safe from unauthorized changes. The necessary update data can be requested and obtained from outside the control unit. This is advantageously secured by the HSM using a corresponding key.

Diese Ausgestaltung kann weiterhin ein Aktualisieren einer für das Prüfen der Authentizität des wenigstens einen Anwendungsprogramms verwendeten Signatur durch das HSM basierend auf dem neubeschriebenen Bereich des zweiten Speichers bzw. den Aktualisierungsdaten umfassen. So wird sichergestellt, dass die vom HSM verwaltete Referenz-Signatur dem neugeschriebenen Anwendungsprogramm entspricht, dies ist z.B. bei einer neuen Version des Anwendungsprogramms notwendig.This refinement can furthermore include updating a signature used for checking the authenticity of the at least one application program by the HSM based on the newly written area of the second memory or the update data. This ensures that the reference signature managed by the HSM corresponds to the newly written application program; this is necessary, for example, with a new version of the application program.

Bevorzugt umfasst das Verfahren ein einmaliges Beschreiben des ersten Speichers mit dem Ladeprogramm und/oder des Aktualisierungsprogramms. Dies findet zweckmäßigerweise vor oder bei Einbau des Steuergeräts in die Vorrichtung (z.B. Maschine oder Kraftfahrzeug), in der das Steuergerät verwendet wird, statt. D.h. es findet in einer sicheren Umgebung (z.B. beim Hersteller des Steuergeräts oder beim Hersteller der Vorrichtung, in der es verwendet wird) statt, so dass sichergestellt werden kann, dass das Ladeprogramm bzw. Aktualisierungsprogramm nicht manipuliert ist.The method preferably comprises a one-time writing of the first memory with the loading program and / or the update program. This is best done before or when the control unit is installed in the device (e.g. machine or motor vehicle) in which the control unit is used. This means that it takes place in a safe environment (e.g. at the manufacturer of the control unit or at the manufacturer of the device in which it is used) so that it can be ensured that the loading program or update program has not been manipulated.

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 abgesicherten Durchführung einer Startsequenz eines Steuergeräts. 2 shows an overview of the basic structure of a preferred embodiment of the method for the secure implementation of a start sequence 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 1 umfasst einen Host 2 und ein Hardware-Sicherheits-Modul (HSM) 4. Diese sind miteinander mittels einer oder mehreren Verbindungen bzw. Leitungen 3 zum Datenaustausch verbunden. Es kann sich um eine serielle oder parallele Verbindung handeln. Die Verbindung kann eine Punkt-zu-Punkt-Verbindung sein oder auch über einen Bus realisiert sein.The control unit 1 includes a host 2 and a hardware security module (HSM) 4th . These are connected to one another by means of one or more connections or lines 3 connected for data exchange. It can be a serial or parallel connection. The connection can be a point-to-point connection or it can be implemented via a bus.

Der Host 2 weist einen Hostkern 6, d.h. einen Prozessor, einen ersten Speicher 8 und einen zweiten Speicher 10 auf. Der erste Speicher 8 ist nicht wiederbeschreibbar, d.h. sein Inhalt kann nach einem einmaligen Beschreiben nicht mehr geändert werden. Es kann sich hier um einen sogenannten One-Time-Programmable-Speicher (OTP-Speicher) handeln. Der zweite Speicher 10 ist wiederbeschreibbar. Beide Speicher sind nichtflüchtige Speicher, in denen Programme, insbesondere ein Ladeprogramm, Aktualisierungsprogramme und Anwendungsprogramme, und Daten gespeichert werden. Das Ladeprogramm ist im ersten Speicher 8 gespeichert. Im zweiten Speicher 10 sind ein oder mehrere Anwendungsprogramme gespeichert. Der Hostkern 2 ist dazu eingerichtet, im ersten Speicher 8 und im zweiten Speicher 10 gespeicherte Programme auszuführen.The host 2 has a host core 6th , ie a processor, a first memory 8th and a second memory 10 on. The first store 8th cannot be rewritten, ie its content cannot be changed after it has been written to once. This can be a so-called one-time programmable memory (OTP memory). The second store 10 is rewritable. Both memories are non-volatile memories in which programs, in particular a loading program, update programs and application programs, and data are stored. The loading program is in the first memory 8th saved. In the second store 10 one or more application programs are stored. The host core 2 is set up in the first memory 8th and in the second memory 10 run saved programs.

Das HSM 4 weist einen HSM-Kern 12, d.h. einen Prozessor, und einen HSM-Speicher 14, für vom HSM-Kern auszuführende Programme und für Daten, insbesondere für Signaturen (bzw. Referenz-Signaturen) und Schlüssel, auf.The HSM 4th has an HSM core 12th , ie a processor, and an HSM memory 14th , for programs to be executed by the HSM core and for data, in particular for signatures (or reference signatures) and keys.

Der Vollständigkeit halber ist noch eine Kommunikationsschnittstelle 16 dargestellt, die dazu dient, das Steuergerät 1 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 16 mit dem Steuergerät kommunizieren. Die Kommunikationsschnittstelle 16 kann neben anderen Schnittstellen z.B. eine CAN-Bus-Schnittstelle umfassen. Die Kommunikationsschnittstelle 16 ist hier direkt mit dem Host 2 verbunden, kann aber auch über einen Bus angebunden sein.For the sake of completeness there is also a communication interface 16 shown, which serves to control the control unit 1 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 16 communicate with the control unit. The communication interface 16 can include, for example, a CAN bus interface in addition to other interfaces. The communication interface 16 is right here with the host 2 connected, but can also be connected via a bus.

Mehrere oder auch alle der einzelnen Teile (Host 2, HSM 4, Speicher 8, 10, 14, Kommunikationsschnittstelle 16) können in einem Chip integriert sein. Anders als dargestellt, können die Speicher 8, 10, 14 auch vom jeweiligen Kern getrennt (gesonderter Chip) implementiert sein. Auch können die drei Speicher (erster Speicher 8, zweiter Speicher 10 und HSM-Speicher 14) zum Teil miteinander integriert sein. Das Steuergerät kann weitere, nicht dargestellte Bestandteile umfassen.Several or all of the individual parts (host 2 , HSM 4th , Storage 8th , 10 , 14th , Communication interface 16 ) can be integrated in a chip. Other than shown, the memory can 8th , 10 , 14th can also be implemented separately from the respective core (separate chip). The three memories (first memory 8th , second memory 10 and HSM storage 14th ) to be partially integrated with each other. The control device can comprise further components, not shown.

In 2 ist eine Übersicht über die prinzipielle Struktur einer bevorzugten Ausführung des Verfahrens zur Durchführung einer abgesicherten Startsequenz eines Steuergeräts dargestellt. Dabei sind links in der Figur Vorgänge dargestellt, die hostseitig 22 ablaufen, und rechts in der Figur Vorgänge dargestellt, die HSM-seitig 24 ablaufen. Pfeile stellen Beziehungen bzw. Interaktionen zwischen einzelnen Elementen dar, d.h. im Allgemeinen nicht den zeitlichen Ablauf aufeinanderfolgender Schritte im Sinne eines Ablaufdiagramms. Die Anordnung der gezeichneten Elemente in vertikaler Richtung der Figur entspricht grob dem zeitlichen Ablauf, allerdings entspricht diese Anordnung nicht zwangsläufig exakt dem tatsächlichen zeitlichen Ablauf, 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.In 2 an overview of the basic structure of a preferred embodiment of the method for carrying out a secured start sequence of a control device is shown. Processes that run on the host side 22 are shown on the left in the figure, and processes that run on the HSM side 24 are shown on the right in the figure. Arrows represent relationships or interactions between individual elements, ie generally not the chronological sequence of successive steps in the sense of a flow chart. The arrangement of the drawn elements in the vertical direction of the figure roughly corresponds to the time sequence, but this arrangement does not necessarily correspond exactly to the actual time sequence, ie it is possible that processes arranged at the same vertical height take place at different times or at different heights Operations run simultaneously or in reverse order, as long as this is consistent with the logic of the process.

Zunächst werden mit Starten bzw. Einschalten des Steuergeräts in Schritt 26 der Host gestartet und in Schritt 28 das HSM gestartet. Vom Host bzw. vom Hostkern und ebenso vom HSM bzw. HSM-Kern wird dabei typischerweise jeweils eine Firmware ausgeführt, die grundlegende Initialisierungen und Funktionen durchführt bzw. bereitstellt.First of all, starting or switching on the control unit in step 26th the host started and in step 28 the HSM started. The host or the host core and also the HSM or HSM core typically each run a firmware that carries out or provides basic initializations and functions.

Von der Firmware des Hosts wird dann ein Ladeprogramm 30 des Hosts aufgerufen, das weitere Initialisierungen (z.B. solche, die sich auf einen spezifischen Einsatz des Steuergeräts beziehen) durchführen kann und ein (oder mehrere) Anwendungsprogramm lädt, d.h. eine Software, die die eigentliche Steuerfunktion des Steuergeräts implementiert. Erfindungsgemäß ist das Ladeprogramm 30 im ersten Speicher gespeichert, der nicht wiederbeschreibbar ist, d.h. das Ladeprogramm kann nicht geändert werden. Das Ladeprogramm wird entsprechend in einem nicht dargestellten Schritt aus dem ersten Speicher ausgelesen. Da der erste Speicher nicht wiederbeschreibbar ist, ist eine Manipulation des Ladeprogramms nicht möglich, so dass sich ein Authentifizieren des Ladeprogramms durch das HSM, das zu einer Zeitverzögerung beim Start führen würde, erübrigt.A loader is then created by the host's firmware 30th of the host, which can carry out further initializations (e.g. those that relate to a specific use of the control unit) and loads one (or more) application program, ie software that implements the actual control function of the control unit. The loading program is according to the invention 30th stored in the first memory which is not rewritable, ie the loading program cannot be changed. The loading program is correspondingly read out from the first memory in a step not shown. Since the first memory cannot be rewritten, the loading program cannot be manipulated, so that the HSM does not need to authenticate the loading program, which would lead to a time delay when starting.

Das Ladeprogramm des Hosts veranlasst insbesondere, dass das HSM in Schritt 32 weitere Initialsierungen des HSM durchführt und dass eine Hauptanwendung des HSM gestartet wird, die Funktionen bereitstellt, insbesondere kryptographische Funktionen, die vom Host aufgerufen werden können, um die Sicherheit des Steuergeräts vor Manipulationen zu gewährleisten. Im Besonderen soll eine Änderung bzw. Manipulation der vom Host ausgeführten Programme verhindert werden. Weiter kann damit der Datenaustausch, z.B. mit anderen Steuergräten in einem Kraftfahrzeug, abgesichert werden. Kryptographische Funktionen können zumindest zum Teil als Hardware implementiert sein, um eine hohe Geschwindigkeit zu gewährleisten.In particular, the host's loader causes the HSM to run in step 32 carries out further initializations of the HSM and that a main application of the HSM is started, which provides functions, in particular cryptographic functions that can be called by the host in order to ensure the security of the control device against manipulation. In particular, a change or manipulation of the programs executed by the host should be prevented. It can also be used to secure the exchange of data, for example with other control units in a motor vehicle. Cryptographic functions can at least partially be implemented as hardware in order to ensure high speed.

Das Ladeprogramm lädt weiterhin mindestens ein Anwendungsprogramm 34, das allerdings nicht sofort vom Host ausgeführt wird, sondern erst nach erfolgreicher Authentizitätsprüfung durch das HSM. Dabei wird zunächst in Schritt 36 basierend auf dem Inhalt (d.h. den Programmdaten) eines Speicherbereichs, in dem das Anwendungsprogramm gespeichert ist, ein zugehöriger Signatur-Wert (z.B. eine digitale Signatur oder ein Nachrichtenauthentifizierungscode) berechnet und dieser Signatur-Wert dann in Schritt 38 mit einer früher berechneten Signatur des Anwendungsprogramms, der einem früheren bekanntermaßen korrekten Zustand des Inhalts des Speicherbereichs zugehörig ist, verglichen. Die früher berechnete Signatur stellt sozusagen eine Referenz-Signatur des Anwendungsprogramms dar. Wenn der aktuell berechnete Signatur-Wert gleich der früher berechneten Signatur des Anwendungsprogramms ist, wird die Ausführung des Anwendungsprogramms freigegeben und dieses wird in Schritt 40 ausgeführt. Die Signaturen der Anwendungsprogramme - im Allgemeinen sind mehrere Anwendungsprogramme vorhanden, die entweder während der Steuergeräte-Startsequenz vom Ladeprogramm geladen werden oder später von anderen Anwendungsprogrammen aufgerufen werden - sind im HSM-Speicher, gespeichert.The loader continues to load at least one application program 34 , which is not executed immediately by the host, but only after a successful authenticity check by the HSM. First in step 36 based an associated signature value (eg a digital signature or a message authentication code) is calculated on the content (ie the program data) of a memory area in which the application program is stored, and this signature value is then calculated in step 38 with a previously calculated signature of the application program, which is associated with an earlier, known correct state of the content of the memory area. The previously calculated signature represents, so to speak, a reference signature of the application program. If the currently calculated signature value is the same as the previously calculated signature of the application program, the execution of the application program is released and this is activated in step 40 executed. The signatures of the application programs - there are generally several application programs that are either loaded by the loading program during the control unit start sequence or are called later by other application programs - are stored in the HSM memory.

3 stellt ein Ablaufdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens dar. Die abgesicherte Steuergeräte-Startsequenz beginnt im Prinzip mit Schritt 52, dem Starten des Hosts und des HSM, wobei insbesondere der Hostkern und der HSM-Kern gestartet werden. Weiterhin dargestellt ist ein vorheriger Schritt 50, in dem der nicht wiederbeschreibbare erste Speicher einmalig beschrieben wird, wobei insbesondere das Ladeprogramm und optional wenigstens ein Aktualisierungsprogramm in den ersten Speicher geschrieben werden. Dieser Schritt 50 wird nur einmalig, z.B. bei der Herstellung des Steuergeräts oder der erstmaligen Programmierung des Steuergeräts, durchgeführt. 3 represents a flowchart of a preferred embodiment of the method according to the invention. The secured control unit start sequence begins in principle with step 52 , starting the host and the HSM, with the host core and the HSM core being started in particular. Also shown is a previous step 50 , in which the non-rewritable first memory is written to once, in particular the loading program and optionally at least one update program being written into the first memory. This step 50 is only carried out once, e.g. when the control unit is manufactured or when the control unit is programmed for the first time.

Anschließend wird das Ladeprogramm aufgerufen und in Schritt 54 ausgeführt, wobei das Ladeprogramm in einem nicht weiter dargestellten Schritt aus dem ersten Speicher ausgelesen wird. Wie bereits erläutert, führt das Ladeprogramm z.B. weitere Initialisierungen durch und veranlasst HSM in seine Hauptanwendung zu wechseln. Abschließend ruft das Ladeprogramm wenigstens ein Anwendungsprogramm auf, das im wiederbeschreibbaren zweiten Speicher gespeichert ist. Das Anwendungsprogramm wird allerdings nicht unmittelbar ausgeführt, sondern es wird in Schritt 56 zunächst die Authentizität des wenigstens einen Anwendungsprogramms durch das HSM geprüft und das Anwendungsprogramm nur ausgeführt, wenn die Authentifizierung erfolgreich ist. So kann sichergestellt werden, dass nur nicht manipulierte Programme vom Host ausgeführt werden. Bei der Authentizitätsprüfung wird die Integrität des Speicherbereichs geprüft, d.h. geprüft, ob der Speicherbereich unverändert ist. Dies erfolgt durch Berechnen des Werts einer kryptographischen Signatur, z.B. einer digitalen Signatur oder eines Nachrichtenauthentifizierungscodes, basierend auf dem Speicherbereich, in dem das wenigstens eine Anwendungsprogramm enthalten ist. Der berechnete Signatur-Wert wird mit einer früher berechneten Referenz-Signatur für das wenigsten eine Anwendungsprogramm verglichen. Diese Berechnung und der anschließende Vergleich werden vom HSM durchgeführt, das auch Referenz-Signaturen und bei deren Berechnung gegebenenfalls eingehende geheime Schlüssel im HSM-Speicher speichert und verwaltet.The loading program is then called and in step 54 executed, wherein the loading program is read from the first memory in a step not shown. As already explained, the loading program carries out further initializations, for example, and prompts HSM to switch to its main application. Finally, the loading program calls at least one application program that is stored in the rewritable second memory. However, the application program is not executed immediately, but in step 56 first the authenticity of the at least one application program is checked by the HSM and the application program is only executed if the authentication is successful. This ensures that only programs that have not been manipulated are executed by the host. During the authenticity check, the integrity of the memory area is checked, ie it is checked whether the memory area has not changed. This is done by calculating the value of a cryptographic signature, for example a digital signature or a message authentication code, based on the memory area in which the at least one application program is contained. The calculated signature value is compared with a previously calculated reference signature for at least one application program. This calculation and the subsequent comparison are carried out by the HSM, which also stores and manages reference signatures and any secret keys that may be included during their calculation in the HSM memory.

Wenn die Authentizität des wenigstens einen Anwendungsprogramms bestätigt wird, Pfeil 58, d.h. wenn der berechnete Signatur-Wert gleich der Referenz-Signatur ist, wird in Schritt 60 das wenigstens eine Anwendungsprogramm ausgeführt. Diese kann gegebenenfalls ein weiteres Anwendungsprogramm aufrufen, welches vor Ausführung ebenfalls einer Authentizitätsprüfung unterzogen werden muss. Es wird also, Pfeil 62, erneut mit Schritt 56, d.h. der Authentizitätsprüfung, fortgefahren, wobei diese diesmal auf das weitere Anwendungsprogramm angewendet wird.If the authenticity of the at least one application program is confirmed, arrow 58 , ie if the calculated signature value is equal to the reference signature, in step 60 executed the at least one application program. If necessary, this can call up a further application program, which must also be subjected to an authenticity check before it is executed. So it will, arrow 62 , again with step 56 , ie the authenticity check, this time being applied to the further application program.

Wenn andererseits die Authentizität des wenigstens einen Anwendungsprogramms nicht bestätigt wird, Pfeil 64, d.h. wenn der berechnete Signatur-Wert nicht gleich der Referenz-Signatur ist, das wenigstens eine Anwendungsprogramm also möglicherweise manipuliert wurde, wird in Schritt 66 das Aktualisierungsprogramm, das im nicht wiederbeschreibbaren ersten Speicher gespeichert ist, aufgerufen und ausgeführt. Das Aktualisierungsprogramm führt in Schritt 72 ein zumindest teilweises Neubeschreiben des Speicherbereichs, in dem das wenigstens eine Anwendungsprogramm enthalten ist, mit Aktualisierungsdaten durch. Die Aktualisierungsdaten enthalten eine Version des wenigstens einen Anwendungsprogramms, die bekanntermaßen nicht manipuliert ist. Wenn das Aktualisierungsprogramm Zugriff auf eine abgesicherte, nicht manipulierte Version des wenigstens einen Anwendungsprogramms und entsprechende Aktualisierungsdaten hat, kann der Schritt 72 des Neubeschreibens unmittelbar durchgeführt werden.On the other hand, if the authenticity of the at least one application program is not confirmed, arrow 64 , ie if the calculated signature value is not the same as the reference signature, ie if the at least one application program has possibly been manipulated, step 66 the update program, which is stored in the non-rewritable first memory, is called and executed. The updater leads in step 72 an at least partial rewriting of the memory area in which the at least one application program is contained with update data. The update data contain a version of the at least one application program that is known not to have been manipulated. If the update program has access to a secure, non-manipulated version of the at least one application program and corresponding update data, step 72 of rewriting can be carried out immediately.

Optional, z.B. wenn das Aktualisierungsprogramm keinen Zugriff auf eine abgesicherte Version des wenigstens einen Anwendungsprogramms und entsprechende Aktualisierungsdaten hat, können in Schritt 68 Aktualisierungsdaten, die eine nicht manipulierte Version des wenigstens einen Anwendungsprogramms enthalten, angefordert werden und in Schritt 70 empfangen werden. Das Anfordern und Empfangen der Aktualisierungsdaten kann über die Kommunikationsschnittstelle des Steuergeräts erfolgen.Optionally, for example if the update program does not have access to a secured version of the at least one application program and corresponding update data, in step 68 Update data that contain a non-manipulated version of the at least one application program are requested and in step 70 be received. The update data can be requested and received via the communication interface of the control unit.

Ebenso kann in Schritt 74 noch die vom HSM verwaltete Signatur (Referenz-Signatur) des wenigstens einen Anwendungsprogramms aktualisiert werden, so dass diese der neugeschriebenen Version des wenigstens einen Anwendungsprogramms entspricht. Bei dieser Aktualisierung wird die aktualisierte Signatur durch das HSM in den HSM-Speicher geschrieben. Die aktualisierte Signatur kann z.B. in den Aktualisierungsdaten enthalten sein oder vom HSM neu berechnet werden.Likewise, in step 74 nor the signature managed by the HSM (reference signature) of the at least one application program are updated so that it corresponds to the newly written version of the at least one application program. During this update, the updated signature is written to the HSM memory by the HSM. The updated signature can, for example, be contained in the update data or be recalculated by the HSM.

Insgesamt wird so erreicht, dass selbst wenn ein möglicherweise manipuliertes Anwendungsprogramm im zweiten Speicher enthalten sein sollte, dieses nicht ausgeführt wird und stattdessen eine abgesicherte Aktualisierung durch ein Aktualisierungsprogramm durchgeführt wird, das gegen Manipulation abgesichert ist, da es im nicht wiederbeschreibbaren ersten Speicher enthalten ist.Overall, the result is that even if a possibly manipulated application program should be contained in the second memory, this is not executed and instead a secured update is carried out by an update program that is protected against manipulation since it is contained in the non-rewritable first memory.

Claims (8)

Verfahren zur Durchführung einer abgesicherten Startsequenz eines Steuergeräts (1), das einen Host (2), der dazu eingerichtet ist, Programme auszuführen, und ein Hardware-Sicherheits-Modul, HSM, (4) umfasst, das dazu eingerichtet ist, Anwendungsprogramme zu authentifizieren, umfassend Starten (26, 28; 52) des Hosts und des HSM; Ausführen (30; 54) eines Ladeprogramms durch den Host, wobei das Ladeprogramm in einem nicht wiederbeschreibbaren ersten Speicher (8) des Hosts gespeichert ist; Prüfen (36, 38; 56) der Authentizität wenigstens eines Anwendungsprogramms durch das HSM, wobei das Anwendungsprogramm in einem wiederbeschreibbaren zweiten Speicher (10) des Hosts gespeichert ist; und, wenn die Authentizität des wenigstens einen Anwendungsprogramms bestätigt wird, Ausführen (40; 60) des wenigstens einen Anwendungsprogramms durch den Host.Method for carrying out a secure start sequence of a control device (1), which comprises a host (2), which is set up to execute programs, and a hardware security module, HSM, (4), which is set up to authenticate application programs , full Starting (26, 28; 52) the host and the HSM; Executing (30; 54) a loading program by the host, the loading program being stored in a non-rewritable first memory (8) of the host; Checking (36, 38; 56) the authenticity of at least one application program by the HSM, the application program being stored in a rewritable second memory (10) of the host; and, if the authenticity of the at least one application program is confirmed, the host executes (40; 60) the at least one application program. Verfahren nach Anspruch 1, umfassend, wenn die Authentizität des wenigstens einen Anwendungsprogramms nicht bestätigt wird: Ausführen (66) eines im ersten Speicher gespeicherten Aktualisierungsprogramms; und Neubeschreiben (72), durch das Aktualisierungsprogramm, eines Bereichs des zweiten Speichers, in dem das wenigstens eine Anwendungsprogramm gespeichert ist, mit Aktualisierungsdaten.Procedure according to Claim 1 comprising, if the authenticity of the at least one application program is not confirmed: executing (66) an update program stored in the first memory; and rewriting (72), by the update program, an area of the second memory in which the at least one application program is stored with update data. Verfahren nach Anspruch 2, umfassend Senden und/oder Ausgeben (68) einer Aufforderung, die Aktualisierungsdaten bereitzustellen; und Empfangen (70) der Aktualisierungsdaten.Procedure according to Claim 2 comprising sending and / or issuing (68) a request to provide the update data; and receiving (70) the update data. Verfahren nach Anspruch 2 oder 3, umfassend Aktualisieren (74) einer für das Prüfen der Authentizität des wenigstens einen Anwendungsprogramms verwendeten Signatur durch das HSM basierend auf dem neubeschriebenen Bereich des zweiten Speichers.Procedure according to Claim 2 or 3 comprising updating (74) a signature used for checking the authenticity of the at least one application program by the HSM based on the rewritten area of the second memory. Verfahren nach einem der vorstehenden Ansprüche, umfassend Einmaliges Beschreiben (50) des ersten Speichers mit dem Ladeprogramm.Method according to one of the preceding claims, comprising writing (50) the first memory once with the loading program. Recheneinheit (1), umfassend einen Host (2), der dazu eingerichtet ist, Programme auszuführen, und der einen nicht wiederbeschreibbaren ersten Speicher (8) und einen wiederbeschreibbaren zweiten Speicher (10) aufweist, wobei ein Ladeprogramm in dem ersten Speicher gespeichert ist und wenigstens ein Anwendungsprogramm in dem zweiten Speicher gespeichert ist; und ein Hardware-Sicherheits-Modul, HSM, (4) das dazu eingerichtet ist, die Authentizität des wenigstens einen Anwendungsprogramms zu prüfen; wobei die Recheneinheit dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Computing unit (1), comprising a host (2) which is set up to execute programs and which has a non-rewritable first memory (8) and a rewritable second memory (10), a loading program being stored in the first memory and at least one application program being stored in the second Memory is stored; and a hardware security module, HSM, (4) which is set up to check the authenticity of the at least one application program; wherein the processing unit 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 5 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 5 to be carried out when it is executed on the processing unit. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 7.Machine-readable storage medium with a computer program stored thereon Claim 7 .
DE102020207866.1A 2020-06-25 2020-06-25 Method for performing a secure start sequence of a control unit Pending DE102020207866A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020207866.1A DE102020207866A1 (en) 2020-06-25 2020-06-25 Method for performing a secure start sequence of a control unit
CN202110703444.1A CN113935011A (en) 2020-06-25 2021-06-24 Method for executing a secure boot sequence of a control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020207866.1A DE102020207866A1 (en) 2020-06-25 2020-06-25 Method for performing a secure start sequence of a control unit

Publications (1)

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

Family

ID=78826814

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020207866.1A Pending DE102020207866A1 (en) 2020-06-25 2020-06-25 Method for performing a secure start sequence of a control unit

Country Status (2)

Country Link
CN (1) CN113935011A (en)
DE (1) DE102020207866A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022116869A1 (en) 2022-07-06 2024-01-11 Infineon Technologies Ag METHOD FOR EXECUTING A PROGRAM ON A DATA PROCESSING DEVICE

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436455B2 (en) 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
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
US9436455B2 (en) 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
DE102015209116A1 (en) 2015-05-19 2016-11-24 Robert Bosch Gmbh Method and update gateway for updating an embedded controller

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PETRI, Richard [et al.]: Evaluation of lightweight TPMs for automotive software updates over the air. 4th escar USA, 2016. URL: ftp://www.pwg.org/pub/pwg/liaison/escar/tpm_paper_2016_0513_final.pdf [abgerufen am 14. August 2020]

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022116869A1 (en) 2022-07-06 2024-01-11 Infineon Technologies Ag METHOD FOR EXECUTING A PROGRAM ON A DATA PROCESSING DEVICE

Also Published As

Publication number Publication date
CN113935011A (en) 2022-01-14

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
DE102015216082A1 (en) Method and memory module for secure writes and / or reads on the memory module
DE102017106042A1 (en) A method for safely booting up a computer system, and an assembly comprising a computer system and an external storage medium connected to the computer system
EP3811261B1 (en) Cryptography module and method for operating same
DE102010002472A1 (en) Method for verifying a memory block of a non-volatile memory
DE102010038179B4 (en) Individual updating of computer programs
DE102020207866A1 (en) Method for performing a secure start sequence of a control unit
EP3937039A1 (en) Method for the extended validation of a container image
DE102020207861A1 (en) Method for carrying out a secured start sequence of a control unit
DE102020207862A1 (en) Procedure for the secure update of control units
DE102018211139A1 (en) Control device and method for its operation
DE102020207863A1 (en) Process for the secure update of control units
DE102014222181A1 (en) Method for operating a control device
DE102018217969A1 (en) Computing device and operating method therefor
DE102021212994B3 (en) Method for detecting anomalies indicating tampering during a secure boot process of a software-controlled device
EP3072080B1 (en) Method and device for protecting a computing apparatus against manipulation
EP3876123B1 (en) Arrangement and operating method for a secure start-up of an electronic device
WO2017089101A1 (en) Method for operating a microcontroller
DE102020211346A1 (en) Method for booting an electronic device
DE102022200544A1 (en) Method for the secure provision of a computer program to be protected in a computing unit
DE102020207614A1 (en) Computing facility and operating procedures therefor
DE102020212988A1 (en) Safe booting of a computer system
DE102019220450A1 (en) Device with an interface and method for operating a device with an interface
EP4322036A1 (en) Method for booting an electronic control unit

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed