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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring 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
Das Steuergerät
Der Host
Das HSM
Der Vollständigkeit halber ist noch eine Kommunikationsschnittstelle
Mehrere oder auch alle der einzelnen Teile (Host
In
Zunächst werden mit Starten bzw. Einschalten des Steuergeräts in Schritt
Von der Firmware des Hosts wird dann ein Ladeprogramm
Das Ladeprogramm des Hosts veranlasst insbesondere, dass das HSM in Schritt
Das Ladeprogramm lädt weiterhin mindestens ein Anwendungsprogramm
Anschließend wird das Ladeprogramm aufgerufen und in Schritt
Wenn die Authentizität des wenigstens einen Anwendungsprogramms bestätigt wird, Pfeil
Wenn andererseits die Authentizität des wenigstens einen Anwendungsprogramms nicht bestätigt wird, Pfeil
Optional, z.B. wenn das Aktualisierungsprogramm keinen Zugriff auf eine abgesicherte Version des wenigstens einen Anwendungsprogramms und entsprechende Aktualisierungsdaten hat, können in Schritt
Ebenso kann in Schritt
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)
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)
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)
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 |
-
2020
- 2020-06-25 DE DE102020207866.1A patent/DE102020207866A1/en active Pending
-
2021
- 2021-06-24 CN CN202110703444.1A patent/CN113935011A/en active Pending
Patent Citations (2)
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)
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)
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 |