DE102021125750A1 - Computing unit for a vehicle and method and computer program for a computing unit for a vehicle - Google Patents

Computing unit for a vehicle and method and computer program for a computing unit for a vehicle Download PDF

Info

Publication number
DE102021125750A1
DE102021125750A1 DE102021125750.6A DE102021125750A DE102021125750A1 DE 102021125750 A1 DE102021125750 A1 DE 102021125750A1 DE 102021125750 A DE102021125750 A DE 102021125750A DE 102021125750 A1 DE102021125750 A1 DE 102021125750A1
Authority
DE
Germany
Prior art keywords
operating system
vehicle
function blocks
computing
computing unit
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
DE102021125750.6A
Other languages
German (de)
Inventor
Stephan Max
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.)
Volkswagen AG
Original Assignee
Volkswagen AG
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 Volkswagen AG filed Critical Volkswagen AG
Priority to DE102021125750.6A priority Critical patent/DE102021125750A1/en
Priority to PCT/EP2022/077688 priority patent/WO2023057506A1/en
Publication of DE102021125750A1 publication Critical patent/DE102021125750A1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Abstract

Die vorliegende Erfindung bezieht sich auf eine Recheneinheit für ein Fahrzeug, auf ein Verfahren und ein Computerprogramm für eine Recheneinheit für ein Fahrzeug, sowie auf ein Fahrzeug mit einer solchen Recheneinheit. Die Recheneinheit umfasst ein oder mehrere Speichergeräte, ausgebildet zum Speichern eines kryptographisch gesicherten Start-Basissystems der Recheneinheit, eines Betriebssystems der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs. Die Recheneinheit umfasst ferner ein oder mehrere Prozessoren, ausgebildet zum Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde.The present invention relates to a computing unit for a vehicle, to a method and a computer program for a computing unit for a vehicle, and to a vehicle with such a computing unit. The computing unit includes one or more storage devices configured to store a cryptographically secured starting base system of the computing unit, an operating system of the computing unit, and one or more computing function blocks of the vehicle. The arithmetic unit also includes one or more processors, designed to start the cryptographically secured starting base system of the arithmetic unit. The one or more processors are designed to check, using the cryptographically secured start base system, an integrity of the operating system of the processing unit based on a cryptographically generated signature of the operating system. The one or more processors are designed to start the operating system of the computing unit if the integrity of the operating system has been determined. The one or more processors are configured to check, by the cryptographically secured boot base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. The one or more processors are configured to start the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined.

Description

Die vorliegende Erfindung bezieht sich auf eine Recheneinheit für ein Fahrzeug, auf ein Verfahren und ein Computerprogramm für eine Recheneinheit für ein Fahrzeug, sowie auf ein Fahrzeug mit einer solchen Recheneinheit.The present invention relates to a computing unit for a vehicle, to a method and a computer program for a computing unit for a vehicle, and to a vehicle with such a computing unit.

In modernen Fahrzeugen wird eine immer größer werdende Anzahl von Funktionen durch Software bereitgestellt. Diese Funktionen werden meist durch Dienste implementiert (engl. „Services“), die auf Recheneinheiten des Fahrzeugs ausgeführt werden. Diese Funktionen können beispielsweise als Rechen-Funktionsblöcke (auch engl. „Container“) implementiert werden, die in Laufzeitumgebungen des Fahrzeugs ausgeführt werden.In modern vehicles, an ever-increasing number of functions are provided by software. These functions are usually implemented by services that are executed on the vehicle's computing units. These functions can be implemented, for example, as arithmetic function blocks (also known as “containers”) that are executed in the vehicle's runtime environment.

Aus diesem Grund wird in Fahrzeugen häufig zwischen zwei Softwarekomponenten unterschieden - der Systemsoftware, und den Rechen-Funktionsblöcken. Dabei stellt die Systemsoftware meist die Laufzeitumgebung für die Rechen-Funktionsblöcke bereit.For this reason, a distinction is often made in vehicles between two software components - the system software and the calculation function blocks. The system software usually provides the runtime environment for the arithmetic function blocks.

Dieses Konzept wird auch in der sogenannten „Automotive Edge“ (wörtlich „Automotiver Rand“) verwendet, welche die Rechen-Funktionsblöcke und die Systemsoftware umfassen kann. Ein Ziel der Automotive Edge kann es sein, zu jedem Zeitpunkt die Möglichkeit zu haben, neue Funktionscontainer zu aktualisieren oder zu installieren. Beispielsweise kann es wünschenswert sein, dass die Software-Elemente der Automotive Edge jederzeit aktualisiert werden können (etwa mit einem Aktualisierungszyklus von zumindest einer Woche), ohne Auswirkungen auf den Rest des Systems, wobei nur die jeweiligen Anwendungen (Rechen-Funktionsblöcke) innerhalb des Edge aktualisiert werden, um neue Funktionen zu installieren. Die Automotive Edge kann dabei als Basisplattform für alle Online-Dienste im Fahrzeug genutzt werden.This concept is also used in the so-called "automotive edge" (literally "automotive edge"), which can include the computational function blocks and the system software. A goal of the automotive edge can be to have the possibility to update or install new function containers at any time. For example, it may be desirable that the software elements of the automotive edge can be updated at any time (e.g. with an update cycle of at least one week) without affecting the rest of the system, with only the respective applications (computational function blocks) within the edge updated to install new features. The Automotive Edge can be used as a basic platform for all online services in the vehicle.

Die eigentliche Systemsoftware wird durch die Aktualisierung großer Bereiche der Hardware aktualisiert, wobei komplexe Freigabeprozesse verwendet werden. Der Aktualisierungszyklus der Systemsoftware beträgt häufig etwa sechs Monate.The actual system software is upgraded by upgrading large areas of hardware using complex release processes. The system software update cycle is often around six months.

Im vielen Automotive Edge-Systemen prüft ein sicherer Boot-Prozess (Start-Prozess) die Integrität der installierten Software. Wenn die installierte Software unverändert ist, startet der Boot-Prozess die Software. Ein solches „sicheres Starten“ kann dort im Allgemeinen nur für statische Rechen-Funktionsblöcke verwendet werden, die in den statisch sicheren Boot-Prozess eingebunden sind - dynamische Software-Updates sind unter Umständen nicht möglich. Alternativ kann für dynamische Rechen-Funktionsblöcke auf eine Absicherung des Starts verzichtet werden. In anderen Systemen wird der meist statische sichere Startvorgang daher für statische Software verwendet (wie oben beschrieben). Außerdem können die Datenbereiche (die keine ausführbare Software enthalten) ungesichert bleiben.In many automotive edge systems, a secure boot process (start-up process) checks the integrity of the installed software. If the installed software is unchanged, the boot process starts the software. Such a "secure boot" can generally only be used there for static calculation function blocks that are integrated into the statically safe boot process - dynamic software updates may not be possible. Alternatively, for dynamic arithmetic function blocks, there is no need to protect the start. In other systems, the mostly static secure boot process is therefore used for static software (as described above). Also, the data areas (which do not contain executable software) may remain unsecured.

Aus US 2020/0320201 A1 ist ein Konzept zum sicheren Booten von Fahrzeug-Prozessoren bekannt. Jedoch wird in diesem Konzept nicht zwischen Systemsoftware, die langen Veröffentlichungs-Zyklen unterliegt und Rechen-Funktionsblöcken unterschieden, die häufig aktualisiert werden sollen.Out of U.S. 2020/0320201 A1 a concept for safe booting of vehicle processors is known. However, this concept does not differentiate between system software that is subject to long release cycles and computing function blocks that are to be updated frequently.

Aus WO 2020/070061 A1 und US 2019/0391802 A1 sind weitere Konzepte zum Erhöhen der Sicherheit von Software in Fahrzeugen bekannt. Jedoch nutzen beide Konzepte keinen sicheren Boot-Vorgang (engl. Secure Boot).Out of WO 2020/070061 A1 and U.S. 2019/0391802 A1 other concepts for increasing the security of software in vehicles are known. However, both concepts do not use a secure boot process.

Es besteht der Bedarf, ein verbessertes Konzept zum sicheren Booten von Software-basierter Fahrzeugfunktionalität bereitzustellen.There is a need to provide an improved concept for securely booting software-based vehicle functionality.

Diesem Bedarf wird durch den Gegenstand der unabhängigen Ansprüche entsprochen.This need is met by the subject matter of the independent claims.

Die vorliegende Erfindung basiert auf der Erkenntnis, dass ein sicherer Boot-Vorgang von Software eines Fahrzeugs in drei Bestandteile unterteilt werden kann. So kann ein Start-Basissystem über das Secure-Boot-Konzept gestartet werden. Innerhalb des derart gesicherten Start-Basissystems kann nun Funktionalität und kryptographische Information umfasst sein, die genutzt werden können, um die Integrität eines Betriebssystems (also der Systemsoftware) anhand einer kryptographisch erzeugten Signatur des Betriebssystems zu überprüfen und, sofern das Betriebssystem integer ist, das Betriebssystem zu starten. Nun kann wiederum das Betriebssystem, oder alternativ das Start-Basissystem, genutzt werden, um die Integrität der Rechen-Funktionsblöcke mittels entsprechender kryptographisch erzeugter Signaturen der Rechen-Funktionsblöcke zu überprüfen und diese zu starten, sofern diese integer sind. So wird eine Vertrauenskette (engl. „chain of trust“) von dem über Secure Boot gesicherten Start-Basissystem zu dem Betriebssystem und den Rechen-Funktionsblöcken gebildet, so dass auch diese gesichert gestartet werden können. Dabei können die Rechen-Funktionsblöcke, zusammen mit den dazugehörigen kryptographisch erzeugten Signaturen, in einem kürzeren Zyklus als etwa das Betriebssystem, und insbesondere als das Start-Basissystem aktualisiert werden, wobei die Vertrauenskette intakt bleibt. Damit bezieht sich das vorgestellte Konzept auf ein sicheres Starten für dynamische Rechen-Funktionsblöcke (Container).The present invention is based on the recognition that a secure software boot process of a vehicle can be divided into three components. A start-up base system can be started using the Secure Boot concept. Functionality and cryptographic information that can be used to check the integrity of an operating system (i.e. the system software) using a cryptographically generated signature of the operating system and, if the operating system has integrity, the operating system can now be included within the starting base system secured in this way to start. Now in turn the operating system, or alternatively the start base system, can be used to check the integrity of the arithmetic function blocks by means of corresponding cryptographically generated signatures of the arithmetic function blocks and to start them if they are integer. In this way, a chain of trust is formed from the base system secured via Secure Boot to the operating system and the arithmetic function blocks, so that these can also be started securely. The computing function blocks, together with the associated cryptographically generated signatures, can be updated in a shorter cycle than the operating system, for example, and in particular than the starting base system, with the chain of trust remaining intact. The concept presented thus relates to safe starting for dynamic calculation function blocks (containers).

Ein Aspekt der vorliegenden Offenbarung bezieht sich auf eine Recheneinheit für ein Fahrzeug. Die Recheneinheit umfasst ein oder mehrere Speichergeräte, ausgebildet zum Speichern eines kryptographisch gesicherten Start-Basissystems der Recheneinheit, eines Betriebssystems der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs. Die Recheneinheit umfasst ferner ein oder mehrere Prozessoren, ausgebildet zum Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde. Dabei können die Rechen-Funktionsblöcke, zusammen mit den dazugehörigen kryptographisch erzeugten Signaturen, in einem kürzeren Zyklus als etwa das Betriebssystem, und insbesondere als das Start-Basissystem aktualisiert werden, wobei die Vertrauenskette intakt bleibt.One aspect of the present disclosure relates to a computing unit for a vehicle. The computing unit includes one or more storage devices configured to store a cryptographically secured starting base system of the computing unit, an operating system of the computing unit, and one or more computing function blocks of the vehicle. The arithmetic unit also includes one or more processors, designed to start the cryptographically secured starting base system of the arithmetic unit. The one or more processors are designed to check, using the cryptographically secured start base system, an integrity of the operating system of the processing unit based on a cryptographically generated signature of the operating system. The one or more processors are designed to start the operating system of the computing unit if the integrity of the operating system has been determined. The one or more processors are configured to check, by the cryptographically secured boot base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. The one or more processors are configured to start the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined. The computing function blocks, together with the associated cryptographically generated signatures, can be updated in a shorter cycle than the operating system, for example, and in particular than the starting base system, with the chain of trust remaining intact.

Durch die vorgeschlagene Recheneinheit wird eine Vertrauenskette (engl. „chain of trust“) von dem kryptographisch gesicherten Start-Basissystem zu dem Betriebssystem und den ein oder mehreren Rechen-Funktionsblöcken gebildet, so dass auch diese gesichert gestartet werden können. Folglich kann die Überprüfung der ein oder mehreren Rechen-Funktionsblöcke auf einer Vertrauenskette basieren, die auf das kryptographisch gesicherte Start-Basissystem zurückführt.The proposed arithmetic unit forms a chain of trust from the cryptographically secured start-up base system to the operating system and the one or more arithmetic function blocks, so that these can also be started securely. Consequently, the verification of the one or more computing function blocks can be based on a chain of trust that leads back to the cryptographically secured starting base system.

In manchen Beispielen erfolgt das Überprüfen der Integrität der ein oder mehreren Rechen-Funktionsblöcke durch das kryptographisch gesicherte Start-Basissystem der Recheneinheit. Dabei kann beispielsweise die Funktionalität, die für das Überprüfen des Betriebssystems verwendet wurde, wiederverwendet werden. Allerdings muss dies möglicherweise außerhalb des Betriebssystems geschehen.In some examples, the integrity of the one or more computing functional blocks is checked by the cryptographically secured starting base system of the computing unit. For example, the functionality that was used to check the operating system can be reused. However, this may need to be done outside of the operating system.

Alternativ kann das Überprüfen der Integrität der ein oder mehreren Rechen-Funktionsblöcke durch das Betriebssystem der Recheneinheit erfolgen. Hier kann die Überprüfung innerhalb des Betriebssystems erfolgen, so dass ein Wechsel in das Start-Basissystem nicht nötig ist.Alternatively, the integrity of the one or more computing function blocks can be checked by the operating system of the computing unit. Here the check can be carried out within the operating system, so that it is not necessary to switch to the start base system.

Das kryptographisch gesicherte Start-Basissystem und/oder das Betriebssystem kann beispielsweise in einem kryptographisch gesicherten Speicherbereich oder in einem Nur-Lese-Speicherbereich der ein oder mehreren Speichergeräte gespeichert sein. Dies kann Veränderungen des Start-Basissystems oder des Betriebssystems erschweren oder verhindern. Allerdings wird ein Aufwand für die Aktualisierung erhöht, da der Speicherbereich ersetzt werden muss oder eine kryptographische Absicherung implementiert werden muss.The cryptographically secured basic boot system and/or the operating system can be stored, for example, in a cryptographically secured memory area or in a read-only memory area of the one or more storage devices. This can make it difficult or impossible to change the boot base system or the operating system. However, an effort for the update is increased since the memory area has to be replaced or a cryptographic protection has to be implemented.

Demgegenüber können die ein oder mehreren Rechen-Funktionsblöcke in einem beschreibbaren Speicherbereich der ein oder mehreren Speichergeräte gespeichert sein. Dies vereinfacht die Aktualisierung der ein oder mehreren Rechen-Funktionsblöcke. Durch die Überprüfung der kryptographisch erzeugten Signatur der ein oder mehreren Rechen-Funktionsblöcke kann dabei die Sicherheit gewahrt werden.In contrast, the one or more arithmetic function blocks can be stored in a writable memory area of the one or more memory devices. This simplifies updating of the one or more arithmetic function blocks. Security can be maintained by checking the cryptographically generated signature of the one or more computing function blocks.

Beispielsweise können die ein oder mehreren Prozessoren ausgebildet sein, um, durch das Betriebssystem, eine Rechen-Funktionseinheit dadurch zu aktualisieren, dass die aktualisierte Rechen-Funktionseinheit zusammen mit einer entsprechenden kryptographisch erzeugten Signatur empfangen und in den beschreibbaren Speicherbereich gespeichert wird. Die Integrität der aktualisierten Rechen-Funktionseinheit kann dabei basierend auf der entsprechenden kryptographisch erzeugten Signatur überprüft werden.For example, the one or more processors can be designed to update an arithmetic function unit by the operating system in that the updated arithmetic function unit is received together with a corresponding cryptographically generated signature and stored in the writable memory area. The integrity of the updated arithmetic function unit can be checked based on the corresponding cryptographically generated signature.

Die ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke können beispielsweise fahrzeugspezifisch sein. Hierdurch können Szenarien vermieden werden, in denen die Sicherheit dadurch kompromittiert wird, dass ein Rechen-Funktionsblocks eines anderen Fahrzeugs oder Fahrzeugtyps, der basierend auf derselben Art von kryptographisch erzeugten Signaturen gesichert ist, auf einem nicht unterstützten Fahrzeug ausgeführt wird.The one or more cryptographically generated signatures of the one or more arithmetic function blocks can be vehicle-specific, for example. This can avoid scenarios where security is compromised by running a computational function block of another vehicle or vehicle type, secured based on the same type of cryptographically generated signatures, on an unsupported vehicle.

Die Überprüfung der fahrzeugspezifischen kryptographisch erzeugten Signaturen kann dabei an fahrzeugspezifische Gegenstände gekoppelt werden. So können die ein oder mehreren Prozessoren ausgebildet sein, um einen kryptographischen Schlüssel zur Überprüfung der ein oder mehreren Rechen-Funktionsblöcke von einem Fahrzeugschlüssel des Fahrzeugs abzurufen. In anderen Worten kann der Fahrzeugschlüssel des Fahrzeugs einen Speicher umfassen, der einen fahrzeugspezifischen kryptographischen Schlüssel zur Überprüfung der ein oder mehreren Rechen-Funktionsblöcke umfasst, etwa einen fahrzeugspezifischen öffentlichen Schlüssel eines Public-Key-Infrastruktur (PKI, Öffentlicher-Schlüssel-Infrastruktur).The verification of the vehicle-specific cryptographically generated signatures can be linked to vehicle-specific objects. The one or more processors can thus be designed to retrieve a cryptographic key for checking the one or more computing function blocks from a vehicle key of the vehicle. In other words, the vehicle key of the vehicle can include a memory that has a vehicle-specific schen cryptographic key to check the one or more computing function blocks includes, such as a vehicle-specific public key of a public key infrastructure (PKI, public key infrastructure).

Wie bereits zuvor erwähnt, können ein oder mehreren Rechen-Funktionsblöcke unabhängig von dem Betriebssystem aktualisierbar sein. Hierdurch kann ein deutlich kürzerer Aktualisierungszyklus für die ein oder mehreren Rechen-Funktionsblöcke als für das Betriebssystem erreicht werden.As previously mentioned, one or more computational function blocks may be updateable independently of the operating system. As a result, a significantly shorter update cycle can be achieved for the one or more arithmetic function blocks than for the operating system.

Das Starten der ein oder mehreren Rechen-Funktionsblöcke kann verweigert werden, falls die Überprüfung der ein oder mehreren kryptographisch erzeugten Signaturen fehlschlägt. Somit kann eine Ausführung möglicherweise unsicherer Rechen-Funktionsblöcke verhindert werden.The starting of the one or more computing function blocks can be denied if the verification of the one or more cryptographically generated signatures fails. Execution of potentially unsafe arithmetic function blocks can thus be prevented.

Beispielsweise können die ein oder mehreren Prozessoren ausgebildet sein, um ein Fehlschlagen der Prüfung der ein oder mehreren kryptographisch erzeugten Signaturen an eine entfernte Gegenstelle zu melden. Hierdurch können Fehler im Signierprozess nachvollzogen werden und fehlgeschlagene Angriffe auf die Sicherheit der Recheneinheit protokolliert werden.For example, the one or more processors can be designed to report a failure of the check of the one or more cryptographically generated signatures to a remote partner. As a result, errors in the signing process can be traced and failed attacks on the security of the processing unit can be logged.

Ein Aspekt der vorliegenden Offenbarung bezieht sich auf ein Fahrzeug, umfassend die zuvor vorgestellte Recheneinheit.One aspect of the present disclosure relates to a vehicle comprising the computing unit presented above.

Ein Aspekt der vorliegenden Offenbarung bezieht sich auf ein entsprechendes Verfahren für eine Recheneinheit für ein Fahrzeug. Das Verfahren umfasst ein Speichern eines kryptographisch gesicherten Start-Basissystems der Recheneinheit, eines Betriebssystems der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs. Das Verfahren umfasst ferner ein Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Das Verfahren umfasst ferner ein Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Das Verfahren umfasst ferner ein Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Das Verfahren umfasst ferner ein Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Das Verfahren umfasst ferner ein Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde.One aspect of the present disclosure relates to a corresponding method for a computing unit for a vehicle. The method includes storing a cryptographically secured starting base system of the computing unit, an operating system of the computing unit and one or more computing function blocks of the vehicle. The method also includes starting the cryptographically secured starting base system of the processing unit. The method also includes checking, by the cryptographically secured start base system, an integrity of the operating system of the computing unit based on a cryptographically generated signature of the operating system. The method also includes starting the operating system of the processing unit if the integrity of the operating system has been determined. The method further includes checking, by the cryptographically secured start-up base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. The method further includes starting the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined.

Ein Aspekt der vorliegenden Offenbarung bezieht sich auf ein entsprechendes Programm mit einem Programmcode zum Durchführen des zuvor vorgestellten Verfahrens, wenn der Programmcode auf einem Computer, einem Prozessor, einem Kontrollmodul oder einer programmierbaren Hardwarekomponente ausgeführt wird.One aspect of the present disclosure relates to a corresponding program with a program code for performing the method presented above when the program code is executed on a computer, a processor, a control module or a programmable hardware component.

Einige Beispiele von Vorrichtungen und/oder Verfahren werden nachfolgend bezugnehmend auf die beiliegenden Figuren lediglich beispielhaft näher erläutert. Es zeigen:

  • 1a zeigt ein Blockdiagramm eines Beispiels einer Recheneinheit für ein Fahrzeug;
  • 1b zeigt ein schematisches Diagramm eines Beispiels eines Fahrzeugs mit einer Recheneinheit für ein Fahrzeug;
  • 1c zeigt ein Flussdiagramm eines Beispiels eines Verfahrens für eine Recheneinheit für ein Fahrzeug; und
  • 2 zeigt ein schematisches Diagramm eines Beispiels eines Zusammenspiels verschiedener Komponenten in einer Recheneinheit für ein Fahrzeug.
Some examples of devices and/or methods are explained in more detail below with reference to the accompanying figures, merely by way of example. Show it:
  • 1a Fig. 12 shows a block diagram of an example of an arithmetic unit for a vehicle;
  • 1b Fig. 12 shows a schematic diagram of an example of a vehicle with a computing unit for a vehicle;
  • 1c shows a flow chart of an example of a method for a computing unit for a vehicle; and
  • 2 shows a schematic diagram of an example of an interaction of different components in a computing unit for a vehicle.

Einige Beispiele werden nun ausführlicher Bezug nehmend auf die beiliegenden Figuren beschrieben. Weitere mögliche Beispiele sind jedoch nicht auf die Merkmale dieser detailliert beschriebenen Ausführungsformen beschränkt. Diese können Modifikationen der Merkmale sowie Entsprechungen und Alternativen zu den Merkmalen aufweisen. Ferner soll die Terminologie, die hierin zum Beschreiben bestimmter Beispiele verwendet wird, nicht einschränkend für weitere mögliche Beispiele sein.Some examples will now be described in more detail with reference to the accompanying figures. However, other possible examples are not limited to the features of these detailed described embodiments. These may include modifications of the features, as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe particular examples is not intended to be limiting of other possible examples.

Gleiche oder ähnliche Bezugszeichen beziehen sich in der gesamten Beschreibung der Figuren auf gleiche oder ähnliche Elemente beziehungsweise Merkmale, die jeweils identisch oder auch in abgewandelter Form implementiert sein können, während sie die gleiche oder eine ähnliche Funktion bereitstellen. In den Figuren können ferner die Stärken von Linien, Schichten und/oder Bereichen zur Verdeutlichung übertrieben sein.Throughout the description of the figures, the same or similar reference symbols refer to the same or similar elements or features, which can each be implemented identically or in a modified form, while providing the same or a similar function. Also, in the figures, the thicknesses of lines, layers, and/or areas may be exaggerated for clarity.

Wenn zwei Elemente A und B unter Verwendung eines „oder“ kombiniert werden, ist dies so zu verstehen, dass alle möglichen Kombinationen offenbart sind, d. h. nur A, nur B sowie A und B, sofern nicht im Einzelfall ausdrücklich anders definiert. Als alternative Formulierung für die gleichen Kombinationen kann „zumindest eines von A und B“ oder „A und/oder B“ verwendet werden. Das gilt Äquivalent für Kombinationen von mehr als zwei Elementen.When two elements A and B are combined using an "or", it is to be understood that all possible combinations are disclosed, i. H. only A, only B and A and B, unless expressly defined otherwise in individual cases. "At least one of A and B" or "A and/or B" can be used as alternative wording for the same combinations. The equivalent applies to combinations of more than two elements.

Wenn eine Singularform, beispielsweise „ein, eine“ und „der, die, das“ verwendet wird und die Verwendung nur eines einzelnen Elements weder explizit noch implizit als verpflichtend definiert ist, können weitere Beispiele auch mehrere Elemente verwenden, um die gleiche Funktion zu implementieren. Wenn eine Funktion im Folgenden als unter Verwendung mehrerer Elemente implementiert beschrieben ist, können weitere Beispiele die gleiche Funktion unter Verwendung eines einzelnen Elements oder einer einzelnen Verarbeitungsentität implementieren. Es versteht sich weiterhin, dass die Begriffe „umfasst“, „umfassend“, „aufweist“ und/oder „aufweisend“ bei deren Gebrauch das Vorhandensein der angegebenen Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/oder einer Gruppe derselben beschreiben, dabei aber nicht das Vorhandensein oder das Hinzufügen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/einer Gruppe derselben ausschließen.Where a singular form, such as "a, an" and "the," is used and use of a single element is not explicitly or implicitly required, other examples may use multiple elements to implement the same function . Where a function is described below as being implemented using multiple elements, other examples may implement the same function using a single element or processing entity. It is further understood that the terms "comprises,""comprising,""comprises," and/or "having," when used, imply the presence of the specified feature, integer, step, operation, process, element, component, and/or group describe the same, but does not exclude the presence or addition of any other feature, integer, step, operation, process, element, component and/or group thereof.

1a zeigt ein Blockdiagramm eines Beispiels einer Recheneinheit 10 für ein Fahrzeug 100. Die Recheneinheit 10 umfasst ein oder mehrere Speichergeräte 16, ausgebildet zum Speichern eines kryptographisch gesicherten Start-Basissystems 18a der Recheneinheit, eines Betriebssystems 18b der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken 18d des Fahrzeugs. Die Recheneinheit 10 umfasst ferner ein oder mehrere Prozessoren 14, und optional ein oder mehrere Schnittstellen 12. Die ein oder mehreren Prozessoren 14 sind mit den eine oder mehreren Speichergeräten 16 sowie den ein oder mehreren, optionalen Schnittstelle 12 gekoppelt. Im Allgemeinen wird die Funktionalität der Recheneinheit 10 von den ein oder mehreren Prozessoren 14 bereitgestellt, mit Hilfe der ein oder mehreren Schnittstellen 12 (zum Austausch von Informationen, etwa zur Kommunikation mit einem Backend-Server, einem entfernten Server) und/oder mit Hilfe der ein oder mehreren Speichergeräte 16 (zum Speichern und Abrufen von Informationen). 1a 12 shows a block diagram of an example of a computing unit 10 for a vehicle 100. The computing unit 10 includes one or more storage devices 16 configured to store a cryptographically secured starting base system 18a of the computing unit, an operating system 18b of the computing unit, and one or more computing function blocks 18d of the vehicle. The computing unit 10 further includes one or more processors 14 and optionally one or more interfaces 12 . The one or more processors 14 are coupled to the one or more memory devices 16 and the one or more optional interfaces 12 . In general, the functionality of the processing unit 10 is provided by the one or more processors 14 using the one or more interfaces 12 (for exchanging information, for example for communicating with a backend server, a remote server) and/or using the one or more storage devices 16 (for storing and retrieving information).

Die ein oder mehreren Prozessoren sind ausgebildet zum Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde.The one or more processors are designed to start the cryptographically secured starting base system of the processing unit. The one or more processors are designed to check, using the cryptographically secured start base system, an integrity of the operating system of the processing unit based on a cryptographically generated signature of the operating system. The one or more processors are designed to start the operating system of the computing unit if the integrity of the operating system has been determined. The one or more processors are configured to check, by the cryptographically secured boot base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. The one or more processors are configured to start the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined.

1b zeigt ein schematisches Diagramm eines Beispiels eines Fahrzeugs 100 mit der Recheneinheit 10. Folglich kann die Recheneinheit 10 eine Recheneinheit des Fahrzeugs 100 sein, etwa eine Fahrzeug-Recheneinheit. Die Recheneinheit 10 kann ausgebildet sein zum Bereitstellen von Software-basierter Fahrzeug-Funktionalität. 1b 12 shows a schematic diagram of an example of a vehicle 100 having the computing unit 10. Accordingly, the computing unit 10 may be a computing unit of the vehicle 100, such as a vehicle computing unit. The computing unit 10 can be designed to provide software-based vehicle functionality.

1c zeigt ein Flussdiagramm eines Beispiels eines entsprechenden Verfahrens für die Recheneinheit für das Fahrzeug. Das Verfahren umfasst ein Speichern 110 eines kryptographisch gesicherten Start-Basissystems der Recheneinheit, eines Betriebssystems der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs. Das Verfahren umfasst ein Starten 120 des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Das Verfahren umfasst ein Überprüfen 130, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Das Verfahren umfasst ein Starten 140 des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Das Verfahren umfasst ein Überprüfen 150, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Das Verfahren umfasst ein Starten 160 der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde. Beispielsweise kann das Verfahren durch die Recheneinheit 10 durchgeführt werden, etwa durch die ein oder mehreren Prozessoren 14 der Recheneinheit oder durch die ein oder mehreren Speichergeräte 16 der Recheneinheit (zum Speichern des kryptographisch gesicherten Start-Basissystems der Recheneinheit, des Betriebssystems der Recheneinheit und von den ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs). 1c FIG. 12 shows a flowchart of an example of a corresponding method for the computing unit for the vehicle. The method includes storing 110 a cryptographically secured starting base system of the computing unit, an operating system of the computing unit and one or more computing function blocks of the vehicle. The method includes starting 120 the cryptographically secured starting base system of the processing unit. The method includes checking 130, by the cryptographically secured start base system, an integrity of the operating system of the processing unit based on a cryptographically generated signature of the operating system. The method includes starting 140 the operating system of the processing unit if the integrity of the operating system has been determined. The method includes checking 150, by the cryptographically secured starting base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. The method includes starting 160 the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined. For example, the method can be performed by the computing unit 10, for example by the one or more processors 14 of the computing unit or by the one or more storage devices 16 of the computing unit (for storing the cryptographically secured starting base system of the computing unit, the operating system of the computing unit and the one or more calculation function blocks of the vehicle).

Im Folgenden wird die Funktionalität der Recheneinheit in Bezug auf die Recheneinheit 10 der 1a und 1b eingeführt. Merkmale, die im Rahmen der Recheneinheit 10 der 1a und/oder 1b eingeführt werden, können ebenfalls in das entsprechende Verfahren von 1c übernommen werden.In the following, the functionality of the processing unit in relation to the processing unit 10 of the 1a and 1b introduced. Features that are part of the processing unit 10 of 1a and/or 1b can also be introduced into the corresponding procedures of 1c be taken over.

Die vorliegende Offenbarung befasst sich mit der Recheneinheit 10 für ein Fahrzeug. Diese Recheneinheit kann beispielsweise eine Recheneinheit einer Mehrzahl von Recheneinheiten eines Fahrzeugs sein. Beispielsweise kann die Recheneinheit, wie bereits angesprochen, eine Recheneinheit zum Bereitstellen von Software-basierte Fahrzeug-Funktionalität sein.The present disclosure deals with the computing unit 10 for a vehicle. This processing unit can be, for example, a processing unit of a plurality of processing units of a vehicle. For example, as already mentioned, the computing unit can be a computing unit for providing software-based vehicle functionality.

Diese Fahrzeug-Funktionalität wird im Wesentlichen von der Mehrzahl von Rechen-Funktionsblöcken bereitgestellt. Die Rechen-Funktionsblöcke sind logische Einheiten, die software-basierte Fahrzeugfunktionalitäten bereitstellen. Dabei kann eine Technik genutzt werden, in der Dienste, die Software-Funktionalitäten des Fahrzeugs bereitstellen, in die Rechen-Funktionsblöcke verpackt werden. Diese Rechen-Funktionsblöcke können wiederum durch sogenannte Software-Container implementiert werden oder diesen entsprechen. Ein oder mehrere Dienste können mit all ihren Abhängigkeiten in einem Software-Container gekapselt werden. Diese Container sind insbesondere zur Nutzung auf Servern und Entwicklergeräten bekannt. Beispielsweise können solche Container von verschiedenen Container-Engines (Docker, Podman, Crio, ...) bereitgestellt werden. Die vorliegende Offenbarung stellt eine Nutzung solcher Container in einem Fahrzeug bereit. Dabei kann die Recheneinheit 10 ausgebildet sein, um eine Laufzeitumgebung (18c in 1a) für die Rechen-Funktionsblöcke/Container bereitzustellen. Diese Laufzeitumgebung kann wiederum von dem Betriebssystem der Recheneinheit bereitgestellt werden.This vehicle functionality is essentially provided by the plurality of computing function blocks. The calculation function blocks are logical units that provide software-based vehicle functionalities. A technology can be used in which services that provide software functionalities of the vehicle are packaged in the computing function blocks. These arithmetic function blocks can in turn be implemented by so-called software containers or correspond to them. One or more services can be encapsulated with all their dependencies in a software container. These containers are known in particular for use on servers and developer devices. For example, such containers can be provided by different container engines (Docker, Podman, Crio, ...). The present disclosure provides for use of such containers in a vehicle. The computing unit 10 can be designed to run a runtime environment (18c in 1a) for the arithmetic function blocks/containers. This runtime environment can in turn be provided by the operating system of the processing unit.

Die ein oder mehreren Rechen-Funktionsblöcke sind somit an der Spitze eines Schichtenmodells - Die ein oder mehreren Rechenfunktionsblöcke 18d werden, wie in 1a gezeigt ist, in einer Laufzeitumgebung 18c ausgeführt, welche wiederum in dem Betriebssystem 18b ausgeführt oder von dem Betriebssystem 18b bereitgestellt wird. Dieses wiederum wird von dem Start-Basissystem 18a überprüft und gestartet. Dabei geht von dem Start-Basissystem eine Vertrauenskette aus, mit der die Ausführung des Betriebssystems, und entweder direkt oder transitiv über das Betriebssystem, die Ausführung der ein oder mehreren Rechen-Funktionsblöcke abgesichert wird.The one or more arithmetic function blocks are thus at the top of a layer model - the one or more arithmetic function blocks 18d are, as in 1a is shown executed in a runtime environment 18c, which in turn is executed in the operating system 18b or provided by the operating system 18b. This in turn is checked and started by the starting base system 18a. A chain of trust proceeds from the starting base system, with which the execution of the operating system, and either directly or transitively via the operating system, the execution of the one or more arithmetic function blocks is secured.

Ausgangspunkt der Vertrauenskette ist das Start-Basissystem, das, wie das Betriebssystem und die ein oder mehreren Rechen-Funktionsblöcke auch, in den ein oder mehreren Speichergeräten der Recheneinheit gespeichert sind. Dabei können das Start-Basissystem und das Betriebssystem auf der einen Seite, und die ein oder mehreren Rechen-Funktionseinheiten auf der anderen Seite, durchaus unterschiedlich behandelt werden und unterschiedlich gespeichert sein. So kann das Start-Basissystem beispielsweise in einem Nur-Lese-Speicher (Englisch „read only memory“) der Recheneinheit gespeichert sein. Beispiels kann da Start-Basissystem ein Teil einer sogenannten Firmware der Recheneinheit sein. Dieses Start-Basissystem kann beispielsweise nur durch sogenanntes „Flashen“ der Firmware verändert werden. Alternativ kann das Start-Basissystem zusammen mit dem Betriebssystem verändert werden, etwa durch „Flashen“ der Firmware, oder durch Speichern des Start-Basissystems und des Betriebssystems in einem zusätzlich abgesicherten Speicherbereich der ein oder mehreren Speichergeräte. Beispielsweise kann das kryptographisch gesicherte Start-Basissystem und das Betriebssystem in einem kryptographisch gesicherten Speicherbereich oder in einem Nur-Lese-Speicherbereich der ein oder mehreren Speichergeräte gespeichert sein. Dabei kann der Nur-Lese-Speicherbereich einen Hardware-Schutz gegen Veränderungen aufweisen, der etwa nur durch „Flashen“ der Firmware (oder durch eine Hardware-Überbrückung) überwunden werden kann. Der kryptographisch gesicherte Speicherbereich kann eine kryptographisch generierte Signatur aufweisen, wobei Anhand der kryptographisch generierten Signatur Änderungen des kryptographisch gesicherten Speicherbereichs erkannt werden können. Dabei kann die kryptographisch generierte Signatur auf einem Hash-Wert (Verwürflungswert) der in dem kryptographischen gesicherten Speicherbereich gespeicherten Daten basieren, wobei der Hash-Wert basierend auf einem privaten kryptographischen Schlüssel (etwa des Herstellers der Recheneinheit oder des Fahrzeugherstellers) verschlüsselt wurde, um die kryptographisch generierte Signatur zu erzeugen. Die Signatur, d.h. der kryptographisch verschlüsselte Hash-Wert kann mittels eines zu dem privaten Schlüssel passenden öffentlichen Schlüssels überprüft werden, um die Integrität des kryptographisch gesicherten Speicherberichts zu überprüfen.The starting point of the chain of trust is the starting base system, which, like the operating system and the one or more computing function blocks, is stored in the one or more memory devices of the computing unit. In this case, the starting base system and the operating system on the one hand, and the one or more functional computing units on the other hand, can definitely be treated differently and stored differently. For example, the starting base system can be stored in a read-only memory of the processing unit. For example, the starting base system can be part of a so-called firmware of the computing unit. This basic starting system can, for example, only be changed by so-called "flashing" of the firmware. Alternatively, the boot base system can be modified along with the operating system, such as by "flashing" the firmware, or by storing the boot base system and the operating system in an additional secured storage area of the one or more storage devices. For example, the cryptographically secured boot framework and the operating system may be stored in a cryptographically secured storage area or in a read-only storage area of the one or more storage devices. The read-only memory area can have hardware protection against changes that can only be overcome by "flashing" the firmware (or by hardware bridging). The cryptographically secured memory area can have a cryptographically generated signature, it being possible to identify changes in the cryptographically secured memory area based on the cryptographically generated signature. The cryptographically generated signature can be based on a hash value (scrambling value) of the data stored in the cryptographically secured memory area, with the hash value being encrypted based on a private cryptographic key (e.g. from the manufacturer of the computing unit or the vehicle manufacturer) in order to Generate cryptographically generated signature. The signature, i.e. the cryptographically encrypted hash value, can be verified using a public key matching the private key in order to verify the integrity of the cryptographically secured memory report.

Die vorliegende Offenbarung basiert auf kryptographisch erzeugten Signaturen sowie kryptographischen Schlüsseln. Wie die Nutzung der Terme „privater Schlüssel“ und „öffentlicher Schlüssel“ bereits andeutet wird im Folgenden von der Nutzung eines Public-Key-Verfahrens ausgegangen, das auf einem öffentlichen und einem dazugehörigen privaten Schlüssel basiert. The present disclosure is based on cryptographically generated signatures and cryptographic keys. As the use of the terms "private key" and "public key" already indicates, the use of a public key method based on a public key and an associated private key is assumed below.

Die ein oder mehreren Rechen-Funktionsblöcke können dagegen in einem beschreibbaren Speicherbereich der ein oder mehreren Speichergeräte gespeichert sein. Dies kann getan werden, um zu ermöglichen, dass die ein oder mehreren Rechen-Funktionsblöcke unabhängig von dem Start-Basissystem und unabhängig von dem Betriebssystem aktualisiert werden können. In anderen Worten können die ein oder mehreren Rechen-Funktionsblöcke unabhängig von dem Betriebssystem aktualisierbar sein. Die Aktualisierung eines Rechen-Funktionsblocks kann dabei durch das Betriebssystem durchgeführt werden, indem der aktualisierte Rechen-Funktionsblock empfangen wird, etwa von einem Backend-Server (etwa dem Backend-Server 200 von 2), und eine entsprechende kryptographisch erzeugte Signatur des aktualisierten Rechen-Funktionsblocks zusammen mit dem aktualisierten Rechen-Funktionsblock empfangen wird. Bei dem vorgeschlagenen Konzept kann der Rechen-Funktionsblock etwa von einem Backend-Server heruntergeladen und in einem (ungesicherten) Datenspeicher, wie etwa dem beschreibbaren Speicherbereich, abgelegt werden. Auf diesen (ungesicherten) Datenspeicher können Angreifer gegebenenfalls zugreifen und ihn verändern/überschreiben, was jedoch durch die Prüfung der Signatur erkannt werden kann. Beispielsweise können die ein oder mehreren Prozessoren ausgebildet sein, um, durch das Betriebssystem, eine Rechen-Funktionseinheit dadurch zu aktualisieren, dass die aktualisierte Rechen-Funktionseinheit zusammen mit einer entsprechenden kryptographisch erzeugten Signatur empfangen und in den beschreibbaren Speicherbereich gespeichert wird. Der Rechen-Funktionsblock ist jedoch durch eine auf dem Backend-Server laufende Operation verifiziert und erhält ein Zertifikat, Token usw. (die kryptographisch erzeugte Signatur), wenn die Backend-Prüfungen erfolgreich sind.In contrast, the one or more arithmetic function blocks can be stored in a writable memory area of the one or more memory devices. This can be done to allow the one or more computational functional blocks to be independent of the boot base system and independent of the operating system can be updated. In other words, the one or more computing function blocks can be updateable independently of the operating system. The updating of a computing function block can be performed by the operating system by receiving the updated computing function block, for example from a backend server (such as the backend server 200 of 2 ), and receiving a corresponding cryptographically generated signature of the updated computational function block along with the updated computational function block. In the proposed concept, the arithmetic function block can be downloaded from a backend server and stored in an (unsecured) data memory, such as the writable memory area. Attackers may be able to access this (unsecured) data store and modify/overwrite it, but this can be detected by checking the signature. For example, the one or more processors can be designed to update an arithmetic function unit by the operating system in that the updated arithmetic function unit is received together with a corresponding cryptographically generated signature and stored in the writable memory area. However, the computational functional block is verified by an operation running on the backend server and receives a certificate, token, etc. (the cryptographically generated signature) if the backend checks are successful.

Dem Backend-Server kann dabei die Rolle zukommen, die verwendeten kryptographisch erzeugten Signaturen (der ein oder mehreren Rechen-Funktionsblöcke, sowie optional des Betriebssystems und/oder des Start-Basissystems) zu erzeugen. In anderen Worten können die verwendeten kryptographisch erzeugten Signaturen von dem Backend-Server erzeugt sein. Ferner können die ein oder mehreren Rechen-Funktionsblöcke von dem Backend-Server zusammen mit den ein oder mehreren Signaturen für die Recheneinheit bereitgestellt, und daher auch aktualisiert werden. Wird ein Rechen-Funktionsblock aktualisiert, wird gleichzeitig auch die entsprechende Signatur aktualisiert und mit dem Rechen-Funktionsblock bereitgestellt.The backend server can be given the role of generating the cryptographically generated signatures used (of the one or more arithmetic function blocks and optionally of the operating system and/or the starting base system). In other words, the cryptographically generated signatures used can be generated by the backend server. Furthermore, the one or more arithmetic function blocks can be provided by the backend server together with the one or more signatures for the arithmetic unit and can therefore also be updated. If an arithmetic function block is updated, the corresponding signature is also updated at the same time and made available with the arithmetic function block.

In dem vorgeschlagenen Konzept wird eine zweistufige Sicherheitsstrategie verwendet. In diesem zweistufigen Konzept verwendet die Systemsoftware weiterhin die bestehende sichere Boot-Operation (engl. Secure Boot) - und wird daher als sicher angesehen. Folglich sind die ein oder mehreren Prozessoren ausgebildet zum Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit. Dabei wird die kryptographische Sicherung des Start-Basissystems genutzt, um die Secure Boot-Funktionalität oder eine Secure Boot-ähnliche Funktionalität bereitzustellen. Das Start-Basissystem kann wiederum durch eine kryptographisch erzeugte Signatur gesichert sein, die von der Recheneinheit, etwa von einem sogenannten UEFI (Unified Extensible Firmware Interface, Vereinheitliche, erweiterbare Firmware-Schnittstelle) geprüft wird und nach Prüfung gestartet wird. Dabei kann das Start-Basissystem etwa einen Boot-Lader bereitstellen, der wiederum genutzt werden kann, um das Betriebssystem zu prüfen und zu starten. Die Rechen-Funktionsblöcke verwenden im Gegensatz dazu nicht die bestehende Secure Boot-Operation.A two-tier security strategy is used in the proposed concept. In this two-tier concept, the system software continues to use the existing Secure Boot operation - and is therefore considered secure. Consequently, the one or more processors are designed to start the cryptographically secured starting basic system of the processing unit. It uses the cryptographic security of the boot base system to provide Secure Boot functionality or Secure Boot-like functionality. The starting base system can in turn be secured by a cryptographically generated signature, which is checked by the processing unit, for example by a so-called UEFI (Unified Extensible Firmware Interface, unified, extensible firmware interface) and is started after checking. The start base system can provide a boot loader, for example, which in turn can be used to check and start the operating system. The arithmetic function blocks, on the other hand, do not use the existing Secure Boot operation.

Ist der Start des Start-Basissystems erfolgreich, etwa weil die kryptographische Sicherung des Start-Basissystems intakt ist, kann nun das Betriebssystem überprüft und gestartet werden. Die ein oder mehreren Prozessoren sind ausgebildet, zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems. Ähnlich wie in Bezug auf den kryptographisch gesicherten Speicherbereich geschrieben, kann das Überprüfen darauf basieren, dass die kryptographisch erzeugte Signatur basierend auf einem Hash-Wert des (integren) Betriebssystem und basierend auf einem privaten Schlüssel (etwa des Herstellers der Recheneinheit, des Fahrzeugs oder des Betriebssystems) erzeugt ist, wobei die Signatur basierend auf einem dazugehörigen öffentlichen Schlüssel (etwa des Herstellers der Recheneinheit, des Fahrzeugs oder des Betriebssystems) und dem Hash-Wert des Betriebssystems überprüft werden kann. Der öffentliche Schlüssel kann beispielsweise in dem Start-Basissystem umfasst sein und daher über die Secure Boot-Funktionalität geschützt sein. Die ein oder mehreren Prozessoren sind ausgebildet zum Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde. Somit konnte zum Überprüfen und Starten des Betriebssystems die Vertrauenskette von dem Start-Basissystem auf das Betriebssystem ausgeweitet werden.If the start base system is successful, for example because the cryptographic security of the start base system is intact, the operating system can now be checked and started. The one or more processors are designed to check, using the cryptographically secured start base system, an integrity of the operating system of the processing unit based on a cryptographically generated signature of the operating system. Similar to what was written in relation to the cryptographically secured memory area, the verification can be based on the fact that the cryptographically generated signature is based on a hash value of the (integral) operating system and based on a private key (e.g. from the manufacturer of the computing unit, the vehicle or the Operating system) is generated, the signature based on an associated public key (such as the manufacturer of the computing unit, the vehicle or the operating system) and the hash value of the operating system can be checked. For example, the public key may be included in the boot base system and therefore protected via Secure Boot functionality. The one or more processors are designed to start the operating system of the computing unit if the integrity of the operating system has been determined. In this way, the chain of trust could be extended from the basic start system to the operating system for checking and starting the operating system.

Diese Vertrauenskette wird nun auf die Rechen-Funktionsblöcke ausgeweitet.This chain of trust is now extended to the arithmetic function blocks.

Während des Startvorgangs der Rechen-Funktionsblöcke im Fahrzeug kann nun die Systemsoftware, also das Betriebssystem oder das Start-Basissystem, das Zertifikat, das Token usw. (also die Signatur) sowie die Integrität des Funktionscontainers prüfen, beispielsweise durch eine Hash/Prüfsummenprüfung und/oder eine Zertifikatsprüfung. Die ein oder mehreren Prozessoren sind ausgebildet zum Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke. Ähnlich wie auch die Prüfung der Integrität des Betriebssystems kommen wieder kryptographisch erzeugte Signaturen zum Einsatz. Wiederum kann das Überprüfen eines Rechen-Funktionsblocks darauf basieren, dass die kryptographisch erzeugte Signatur basierend auf einem Hash-Wert des (integren) Rechen-Funktionsblocks und basierend auf einem privaten Schlüssel (etwa des Herstellers der Recheneinheit, des Fahrzeugs oder des Rechen-Funktionsblocks) erzeugt ist, wobei die Signatur basierend auf einem dazugehörigen öffentlichen Schlüssel (etwa des Herstellers der Recheneinheit, des Fahrzeugs oder des Rechen-Funktionsblocks) und dem Hash-Wert des Rechen-Funktionsblocks überprüft werden kann. Der öffentliche Schlüssel kann beispielsweise in dem Start-Basissystem umfasst sein und daher über die Secure Boot-Funktionalität geschützt sein, oder der öffentliche Schlüssel kann in dem Betriebssystem umfasst und daher transitiv über das Start-Basissystem geschützt sein. Daher kann die Überprüfung der ein oder mehreren Rechen-Funktionsblöcke auf einer Vertrauenskette basieren, die auf das kryptographisch gesicherte Start-Basissystem zurückführt, etwa direkt oder transitiv über das Start-Basissystem.During the starting process of the computing function blocks in the vehicle, the system software, i.e. the operating system or the starting basic system, the certificate, the token etc. (i.e. the signature) and the integrity of the function container can now check, for example by a hash/checksum check and/or or a certification exam. The one or more processors are configured to verify, by the cryptographically secured boot framework or by the operating system, an integrity of the one or more Computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks. Similar to checking the integrity of the operating system, cryptographically generated signatures are used again. Again, the verification of a computing function block can be based on the cryptographically generated signature based on a hash value of the (integral) computing function block and based on a private key (e.g. the manufacturer of the computing unit, the vehicle or the computing function block) is generated, whereby the signature can be verified based on an associated public key (e.g. from the manufacturer of the computing unit, the vehicle or the computing function block) and the hash value of the computing function block. For example, the public key may be included in the boot framework and therefore protected via the Secure Boot functionality, or the public key may be included in the operating system and therefore transitively protected via the boot framework. Therefore, the validation of the one or more computational functional blocks may be based on a chain of trust that traces back to the cryptographically-secured starting base system, such as directly or transitively through the starting base system.

Bisher wurde davon ausgegangen, dass die kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke mit einem nicht fahrzeug-spezifischen Schlüssel erzeugt wurden, etwa einem privaten Schlüssel des Herstellers der Recheneinheit, des Fahrzeugs oder des jeweiligen Rechen-Funktionsblocks. In manchen Fällen kann das Konzept jedoch dahingehend erweitert werden, dass hier ein kryptographischer Schlüssel zum Einsatz kommt, der fahrzeugspezifisch ist (d.h. für ein einziges Fahrzeug verwendet wird). Folglich können die ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke fahrzeugspezifisch sein. Dazu kann beispielsweise von einem (privaten) kryptographischen Schlüssel des Herstellers der Recheneinheit, des Fahrzeugs oder des Rechen-Funktionsblocks ein fahrzeug-spezifischer (privater) Schlüssel abgeleitet werden, der wiederum genutzt wird, um die kryptographisch erzeugte Signatur des Rechen-Funktionsblocks zu erzeugen. Die Signatur kann dann beispielsweise anhand eines entsprechenden fahrzeugspezifischen öffentlichen Schlüssels geprüft werden. Die Herkunft dieses fahrzeugspezifischen öffentlichen Schlüssels kann nun basierend auf dem öffentlichen Schlüssel des Herstellers der Recheneinheit, des Fahrzeugs oder des Rechen-Funktionsblocks überprüft werden. Der fahrzeugspezifische (öffentliche) Schlüssel kann nun in dem Start-Basissystem oder in dem Betriebssystem hinterlegt werden. Optional kann eine Synchronisierung über einen Autoschlüssel durchgeführt werden (beispielsweise kann die Backend-Verifizierung den Rechen-Funktionsblock mit einem privaten Schlüssel signieren, wobei dem Autoschlüssel ein entsprechender öffentlicher Schlüssel zugewiesen wird). Die ein oder mehreren Prozessoren können somit ausgebildet sein, um den (öffentlichen) kryptographischen Schlüssel zur Überprüfung der ein oder mehreren Rechen-Funktionsblöcke von einem (physikalischen) Fahrzeugschlüssel des Fahrzeugs abzurufen, etwa über die ein oder mehreren Schnittstellen 12.So far it has been assumed that the cryptographically generated signatures of the one or more arithmetic function blocks were generated with a non-vehicle-specific key, such as a private key of the manufacturer of the arithmetic unit, the vehicle or the respective arithmetic function block. In some cases, however, the concept can be extended to use a cryptographic key that is vehicle-specific (i.e. used for a single vehicle). Accordingly, the one or more cryptographically generated signatures of the one or more computational function blocks may be vehicle specific. For this purpose, for example, a vehicle-specific (private) key can be derived from a (private) cryptographic key of the manufacturer of the computing unit, the vehicle or the computing function block, which in turn is used to generate the cryptographically generated signature of the computing function block. The signature can then be checked, for example, using a corresponding vehicle-specific public key. The origin of this vehicle-specific public key can now be checked based on the public key of the manufacturer of the computing unit, the vehicle or the computing function block. The vehicle-specific (public) key can now be stored in the start-up base system or in the operating system. Optionally, synchronization can be performed via a car key (for example, the backend verification can sign the computational function block with a private key, with the car key being assigned a corresponding public key). The one or more processors can thus be designed to retrieve the (public) cryptographic key for checking the one or more computing function blocks from a (physical) vehicle key of the vehicle, for example via the one or more interfaces 12.

Sind diese Prüfungen erfolgreich, darf der Systemcontainer gestartet werden, da eine vertrauenswürdige Kette aus dem sicheren Boot-Prozess des Fahrzeugs, der Systemsoftware, den Backend-Prüfungen (zur Generierung der Signaturen) und dem Funktionscontainer aufgebaut ist. Die ein oder mehreren Prozessoren sind daher ausgebildet zum Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde. Sind diese Prüfungen nicht erfolgreich (weil beispielsweise die Funktionssoftware durch einen Angreifer verändert wurde), wird die Software nicht gestartet. Folglich wird das Starten der ein oder mehreren Rechen-Funktionsblöcke verweigert, falls die Überprüfung der ein oder mehreren kryptographisch erzeugten Signaturen fehlschlägt.If these checks are successful, the system container can be started, since a trustworthy chain is built up from the secure boot process of the vehicle, the system software, the backend checks (to generate the signatures) and the function container. The one or more processors are therefore configured to start the one or more computing function blocks if the integrity of the one or more computing function blocks has been determined. If these checks are unsuccessful (because, for example, the functional software has been modified by an attacker), the software will not start. Consequently, the starting of the one or more arithmetic function blocks is denied if the verification of the one or more cryptographically generated signatures fails.

Optional kann im Backend ein Alarm ausgelöst werden, wenn eine modifizierte Software erkannt wird, und es können zusätzliche Abschaltungen für andere Funktionen / Operationen durchgeführt werden. Folglich können die ein oder mehreren Prozessoren ausgebildet sein, um ein Fehlschlagen der Prüfung der ein oder mehreren kryptographisch erzeugten Signaturen an eine entfernte Gegenstelle zu melden. Auch können die ein oder mehreren Prozessoren ausgebildet sein, um eine Ausführung des Betriebssystems, der Laufzeitumgebung und/oder zumindest eines Rechen-Funktionsblocks einzuschränken, falls die Prüfung der ein oder mehreren kryptographisch erzeugten Signaturen fehlschlägt.Optionally, an alarm can be raised in the backend if modified software is detected, and additional shutdowns can be performed for other functions/operations. Consequently, the one or more processors can be designed to report a failure of the verification of the one or more cryptographically generated signatures to a remote peer. The one or more processors can also be designed to restrict execution of the operating system, the runtime environment and/or at least one computing function block if the check of the one or more cryptographically generated signatures fails.

Das vorgeschlagene Konzept schafft somit einen zweistufigen (oder dreistufigen) sicheren Boot-Prozess für Systemsoftware und Rechen-Funktionsblöcke. Sicheres Booten wird auf Systemebene ermöglicht, und eine Verifizierung der in die sichere Systemsoftware eingebauten Rechen-Funktionsblocks wird genutzt, um den sicheren Boot-Prozess auf die Rechen-Funktionsblocks auszuweiten. Dabei kann die Verifizierung durch das Backend durchgeführt werden, indem die Signaturen von dem Backend erzeugt werden. Somit wird eine Kombination aus Secure Boot für Systemsoftware und eine Backend-Prüfung der Rechen-Funktionsblöcke bereitgestellt. Eine Vertrauenskette wird ausgehend von der sicheren Systemsoftware über die Verifikationsfunktionalität in der Systemsoftware und die Verifikation durch das Backend aufgebaut.The proposed concept thus creates a two-stage (or three-stage) secure boot process for system software and computational function blocks. Secure boot is enabled at the system level and verification of the computational function blocks built into the secure system software is used to extend the secure boot process to the computational function blocks. In this case, the verification can be carried out by the backend in that the signatures are generated by the backend. Thus, a combination of Secure Boot for system software and a backend check of the computational functional blocks is provided. A chain of trust is going out from the secure system software to the verification functionality in the system software and verification by the backend.

Das gleiche Konzept kann beispielsweise für sicherheitsrelevante Rechen-Funktionsblocks-Aktualisierungen für industrielle Anwendungen genutzt werden.The same concept can be used, for example, for safety-related calculation function block updates for industrial applications.

Die ein oder mehreren Schnittstellen 12 können beispielsweise einem oder mehreren Eingängen und/oder einem oder mehreren Ausgängen zum Empfangen und/oder Übertragen von Informationen entsprechen, etwa in digitalen Bitwerten, basierend auf einem Code, innerhalb eines Moduls, zwischen Modulen, oder zwischen Modulen verschiedener Entitäten.The one or more interfaces 12 may correspond, for example, to one or more inputs and/or one or more outputs for receiving and/or transmitting information, such as in digital bit values, based on a code, within a module, between modules, or between modules of different ones entities.

Die ein oder mehreren Prozessoren 14 können einem beliebigen Controller oder Prozessor oder einer programmierbaren Hardwarekomponente entsprechen. Beispielsweise kann die Funktionalität der ein oder mehreren Prozessoren 14 auch als Software realisiert sein, die für eine entsprechende Hardwarekomponente programmiert ist. Insofern können die ein oder mehreren Prozessoren 14 als programmierbare Hardware mit entsprechend angepasster Software implementiert sein. Dabei können beliebige Prozessoren, wie Digitale Signalprozessoren (DSPs) zum Einsatz kommen. Ausführungsbeispiele sind dabei nicht auf einen bestimmten Typ von Prozessor eingeschränkt. Es sind beliebige Prozessoren oder auch mehrere Prozessoren zur Implementierung denkbar. Dabei können die ein oder mehreren Prozessoren, etwa im Zusammenspiel mit einer Firmware/UEFI, dazu ausgebildet sein, eine Secure Boot-Operation bereitzustellen (um das Start-Basissystem zu Überprüfen oder zu starten).The one or more processors 14 may correspond to any controller or processor or programmable hardware component. For example, the functionality of the one or more processors 14 can also be implemented as software that is programmed for a corresponding hardware component. In this respect, the one or more processors 14 can be implemented as programmable hardware with correspondingly adapted software. Any processors, such as digital signal processors (DSPs) can be used. Exemplary embodiments are not limited to a specific type of processor. Any processors or even multiple processors are conceivable for the implementation. In this case, the one or more processors, for example in interaction with a firmware/UEFI, can be designed to provide a secure boot operation (to check or start the basic boot system).

Die ein oder mehreren Speichergeräte 16 können beispielsweise zumindest ein Element der Gruppe von computerlesbares Speichermedium, magnetisches Speichermedium, optisches Speichermedium, Festplatte, Flash-Speicher, Diskette, Zufallszugriffsspeicher (auch engl. Random Access Memory), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM), und Netzwerkspeicher umfassen.The one or more storage devices 16 can be, for example, at least one element from the group of computer-readable storage medium, magnetic storage medium, optical storage medium, hard drive, flash memory, floppy disk, random access memory (also engl. Random Access Memory), programmable read only memory (PROM), erasable include programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), and network storage.

Mehr Details und Aspekte der Recheneinheit sowie des entsprechenden Verfahrens und Computerprogramms und des Fahrzeugs werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher oder nachher beschrieben werden (siehe 2). Die Recheneinheit, das entsprechende Verfahren und/oder Computerprogramm und das Fahrzeug können ein oder mehrere zusätzliche optionale Merkmale umfassen, die ein oder mehreren Aspekten des vorgeschlagenen Konzepts oder der beschriebenen Beispiele entsprechen, wie sie vorher oder nachher beschrieben wurden.More details and aspects of the computing unit as well as the corresponding method and computer program and the vehicle are mentioned in connection with the concept or examples described before or after (see 2 ). The computing unit, the corresponding method and/or computer program and the vehicle may comprise one or more additional optional features corresponding to one or more aspects of the proposed concept or the described examples as described before or after.

2 zeigt ein schematisches Diagramm eines Beispiels eines Zusammenspiels verschiedener Komponenten in einer Recheneinheit 10 für ein Fahrzeug. Dabei kann die Recheneinheit 10 der Recheneinheit 10 der 1a und/oder 1b entsprechen. Die Recheneinheit 10, die in einem Fahrzeug angeordnet ist, umfasst einen Secure Boot-Block 18a, der das Start-Basissystem umfasst und als erstes gestartet wird (gezeigt durch die Zahl 1 im Kreis). Basierend auf dem Secure Boot-Block 18a wird das Betriebssystem 18b sowie ein Rechen-Funktionsblock (RFB)-Boot-System 18e gestartet (gezeigt durch die Zahl 2 im Kreis). Dabei kann das RFB-Boot-System 18e Teil des Betriebssystems sein. Das RFB-Boot-System 18e kann dazu ausgebildet sein, die Integrität der Rechen-Funktionsblöcke RFB1-RFB4 18d durchzuführen. Das Betriebssystem 18b, das RFB-Boot-System 18e und die Rechen-Funktionsblöcke RFB1-FRB4 18d sind durch kryptographisch erzeugte Signaturen geschützt (dargestellt durch die Zahl 2 im eckigen Kasten), die von dem Backend-Server 200 erzeugt sind. Das RFB-Boot-System 18e kann einen fahrzeugspezifischen öffentlichen Schlüssel von dem Fahrzeugschlüssel 105 empfangen. 2 shows a schematic diagram of an example of an interaction of different components in a computing unit 10 for a vehicle. In this case, the processing unit 10 of the processing unit 10 of 1a and/or correspond to 1b. The computing unit 10, which is arranged in a vehicle, comprises a secure boot block 18a, which comprises the starting basic system and is started first (indicated by the number 1 in a circle). Based on the secure boot block 18a, the operating system 18b is started as well as a computational function block (RFB) boot system 18e (indicated by the number 2 in a circle). In this case, the RFB boot system 18e can be part of the operating system. The RFB boot system 18e may be configured to perform the integrity of the computational function blocks RFB1-RFB4 18d. The operating system 18b, the RFB boot system 18e and the arithmetic function blocks RFB1-FRB4 18d are protected by cryptographically generated signatures (represented by the number 2 in the square box) generated by the backend server 200. The RFB boot system 18e can receive a vehicle specific public key from the vehicle key 105 .

Mehr Details und Aspekte der Recheneinheit werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher oder nachher beschrieben werden (siehe 1a bis 1c). Die Recheneinheit kann ein oder mehrere zusätzliche optionale Merkmale umfassen, die ein oder mehreren Aspekten des vorgeschlagenen Konzepts oder der beschriebenen Beispiele entsprechen, wie sie vorher oder nachher beschrieben wurden.More details and aspects of the computational unit are mentioned in connection with the concept or examples described before or after (see 1a until 1c ). The computing unit may comprise one or more additional optional features corresponding to one or more aspects of the proposed concept or the described examples as described before or after.

Die Aspekte und Merkmale, die im Zusammenhang mit einem bestimmten der vorherigen Beispiele beschrieben sind, können auch mit einem oder mehreren der weiteren Beispiele kombiniert werden, um ein identisches oder ähnliches Merkmal dieses weiteren Beispiels zu ersetzen oder um das Merkmal in das weitere Beispiel zusätzlich einzuführen.The aspects and features described in connection with a certain of the previous examples can also be combined with one or more of the further examples in order to replace an identical or similar feature of this further example or to additionally introduce the feature into the further example .

Beispiele können weiterhin ein (Computer-)Programm mit einem Programmcode zum Ausführen eines oder mehrerer der obigen Verfahren sein oder sich darauf beziehen, wenn das Programm auf einem Computer, einem Prozessor oder einer sonstigen programmierbaren Hardwarekomponente ausgeführt wird. Schritte, Operationen oder Prozesse von verschiedenen der oben beschriebenen Verfahren können also auch durch programmierte Computer, Prozessoren oder sonstige programmierbare Hardwarekomponenten ausgeführt werden. Beispiele können auch Programmspeichervorrichtungen, beispielsweise Digitaldatenspeichermedien, abdecken, die maschinen-, prozessor- oder computerlesbar sind und maschinenausführbare, prozessorausführbare oder computerausführbare Programme und Anweisungen codieren beziehungsweise enthalten. Die Programmspeichervorrichtungen können beispielsweise Digitalspeicher, magnetische Speichermedien wie beispielsweise Magnetplatten und Magnetbänder, Festplattenlaufwerke oder optisch lesbare Digitaldatenspeichermedien umfassen oder sein. Weitere Beispiele können auch Computer, Prozessoren, Steuereinheiten, (feld-)programmierbare Logik-Arrays ((F)PLAs = (Field) Programmable Logic Arrays),(feld-)programmierbare Gate-Arrays ((F)PGA = (Field) Programmable Gate Arrays), Grafikprozessoren (GPU = Graphics Processor Unit), anwendungsspezifische integrierte Schaltungen (ASIC = application-specific integrated circuit), integrierte Schaltungen (IC= Integrated Circuit) oder Ein-Chip-Systeme (SoC = System-on-a-Chip) abdecken, die zum Ausführen der Schritte der oben beschriebenen Verfahren programmiert sind.Examples may further include or relate to a (computer) program having program code for performing one or more of the above methods when the program is executed on a computer, processor or other programmable hardware component. Thus, steps, operations, or processes of various methods described above may also be performed by programmed computers, processors, or other programmable hardware components. Examples can also include program storage devices genes, such as digital data storage media, which are machine, processor or computer readable and which encode or contain machine-executable, processor-executable or computer-executable programs and instructions. The program storage devices may include or be, for example, digital memory, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media. Further examples can also be computers, processors, control units, (field) programmable logic arrays ((F)PLAs = (Field) Programmable Logic Arrays), (field) programmable gate arrays ((F)PGA = (Field) Programmable Gate arrays), graphics processors (GPU = graphics processor unit), application-specific integrated circuits (ASIC = application-specific integrated circuit), integrated circuits (IC = integrated circuit) or single-chip systems (SoC = system-on-a-chip). ) that are programmed to perform the steps of the above procedures.

Es versteht sich ferner, dass die Offenbarung mehrerer, in der Beschreibung oder den Ansprüchen offenbarter Schritte, Prozesse, Operationen oder Funktionen nicht als zwingend in der beschriebenen Reihenfolge befindlich ausgelegt werden soll, sofern dies nicht im Einzelfall explizit angegeben oder aus technischen Gründen zwingend erforderlich ist. Daher wird durch die vorhergehende Beschreibung die Durchführung von mehreren Schritten oder Funktionen nicht auf eine bestimmte Reihenfolge begrenzt. Ferner kann bei weiteren Beispielen ein einzelner Schritt, eine einzelne Funktion, ein einzelner Prozess oder eine einzelne Operation mehrere Teilschritte, -funktionen, -prozesse oder -operationen einschließen und/oder in dieselben aufgebrochen werden.It is further understood that disclosure of a plurality of steps, processes, operations, or functions disclosed in the specification or claims should not be construed as necessarily being in the order described, unless expressly stated in an individual case or is compellingly necessary for technical reasons . Therefore, the foregoing description is not intended to limit the performance of any number of steps or functions to any particular order. Further, in other examples, a single step, function, process, or operation may include and/or be broken into multiple sub-steps, functions, processes, or operations.

Wenn einige Aspekte in den vorhergehenden Abschnitten im Zusammenhang mit einer Vorrichtung oder einem System beschrieben wurden, sind diese Aspekte auch als eine Beschreibung des entsprechenden Verfahrens zu verstehen. Dabei kann beispielsweise ein Block, eine Vorrichtung oder ein funktionaler Aspekt der Vorrichtung oder des Systems einem Merkmal, etwa einem Verfahrensschritt, des entsprechenden Verfahrens entsprechen. Entsprechend dazu sind Aspekte, die im Zusammenhang mit einem Verfahren beschrieben werden, auch als eine Beschreibung eines entsprechenden Blocks, eines entsprechenden Elements, einer Eigenschaft oder eines funktionalen Merkmals einer entsprechenden Vorrichtung oder eines entsprechenden Systems zu verstehen.If some aspects have been described in the preceding paragraphs in the context of a device or a system, these aspects are also to be understood as a description of the corresponding method. For example, a block, a device or a functional aspect of the device or the system can correspond to a feature, such as a method step, of the corresponding method. Correspondingly, aspects described in connection with a method are also to be understood as a description of a corresponding block, element, property or functional feature of a corresponding device or system.

Die folgenden Ansprüche werden hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch als getrenntes Beispiel für sich stehen kann. Ferner ist zu beachten, dass - obwohl ein abhängiger Anspruch sich in den Ansprüchen auf eine bestimmte Kombination mit einem oder mehreren anderen Ansprüchen bezieht - andere Beispiele auch eine Kombination des abhängigen Anspruchs mit dem Gegenstand jedes anderen abhängigen oder unabhängigen Anspruchs umfassen können. Solche Kombinationen werden hiermit explizit vorgeschlagen, sofern nicht im Einzelfall angegeben ist, dass eine bestimmte Kombination nicht beabsichtigt ist. Ferner sollen auch Merkmale eines Anspruchs für jeden anderen unabhängigen Anspruch eingeschlossen sein, selbst wenn dieser Anspruch nicht direkt als abhängig von diesem anderen unabhängigen Anspruch definiert ist.The following claims are hereby incorporated into the Detailed Description, with each claim being able to stand on its own as a separate example. It should also be noted that although a dependent claim in the claims refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject-matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in individual cases that a specific combination is not intended. Furthermore, features of a claim are also intended to be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.

BezugszeichenlisteReference List

1010
Recheneinheitunit of account
1212
Schnittstelleinterface
1414
Prozessorprocessor
1616
Speichergerätstorage device
18a18a
Start-BasissystemStart base system
18b18b
Betriebssystemoperating system
18c18c
Laufzeitumgebungruntime environment
18d18d
Rechen-FunktionsblöckeArithmetic Function Blocks
18e18e
Rechen-Funktionsblock-Boot-ProzessCompute function block boot process
100100
Fahrzeugvehicle
105105
Fahrzeugschlüsselvehicle key
110110
Speichern eines kryptographisch gesicherten Start-Basissystems, eines Betriebssystems und von ein oder mehreren Rechen-FunktionsblöckenStoring a cryptographically secured boot base system, an operating system, and one or more computational function blocks
120120
Starten des kryptographisch gesicherten Start-BasissystemsStarting the cryptographically secured starting base system
130130
Überprüfen des BetriebssystemsChecking the operating system
140140
Starten des BetriebssystemsStarting the operating system
150150
Überprüfen der ein oder mehreren Rechen-FunktionsblöckeChecking the one or more arithmetic function blocks
160160
Starten der ein oder mehreren Rechen-FunktionsblöckeStarting the one or more arithmetic function blocks
200200
Backend-Serverbackend server

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent Literature Cited

  • US 20200320201 A1 [0007]US20200320201A1 [0007]
  • WO 2020070061 A1 [0008]WO 2020070061 A1 [0008]
  • US 20190391802 A1 [0008]US 20190391802 A1 [0008]

Claims (15)

Eine Recheneinheit (10) für ein Fahrzeug, umfassend: Ein oder mehrere Speichergeräte (16), ausgebildet zum Speichern eines kryptographisch gesicherten Start-Basissystems (18a) der Recheneinheit, eines Betriebssystems (18b) der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken (18d) des Fahrzeugs; und Ein oder mehrere Prozessoren (14), ausgebildet zum: Starten des kryptographisch gesicherten Start-Basissystems der Recheneinheit; Überprüfen, durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems; Starten des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde; Überprüfen, durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke; und Starten der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde.A computing unit (10) for a vehicle, comprising: One or more storage devices (16) designed to store a cryptographically secured starting base system (18a) of the computing unit, an operating system (18b) of the computing unit and one or more computing function blocks (18d) of the vehicle; and One or more processors (14) configured to: starting the cryptographically secured starting base system of the computing unit; Checking, by the cryptographically secured starting base system, an integrity of the operating system of the computing unit based on a cryptographically generated signature of the operating system; starting the operating system of the processing unit if the integrity of the operating system has been determined; verifying, by the cryptographically secured boot base system or by the operating system, an integrity of the one or more computing function blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing function blocks; and Starting the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined. Die Vorrichtung gemäß Anspruch 1, wobei die Überprüfung der ein oder mehreren Rechen-Funktionsblöcke auf einer Vertrauenskette basiert, die auf das kryptographisch gesicherte Start-Basissystem zurückführt.The device according to claim 1 , wherein the verification of the one or more arithmetic function blocks is based on a chain of trust that leads back to the cryptographically secured starting base system. Die Vorrichtung gemäß einem der Ansprüche 1 oder 2, wobei das Überprüfen der Integrität der ein oder mehreren Rechen-Funktionsblöcke durch das kryptographisch gesicherte Start-Basissystem der Recheneinheit erfolgt.The device according to one of Claims 1 or 2 , wherein the integrity of the one or more arithmetic function blocks is checked by the cryptographically secured starting base system of the arithmetic unit. Die Vorrichtung gemäß einem der Ansprüche 1 oder 2, wobei das Überprüfen der Integrität der ein oder mehreren Rechen-Funktionsblöcke durch das Betriebssystem der Recheneinheit erfolgt.The device according to one of Claims 1 or 2 , wherein the integrity of the one or more arithmetic function blocks is checked by the operating system of the arithmetic unit. Die Vorrichtung gemäß einem der Ansprüche 1 bis 4, wobei das kryptographisch gesicherte Start-Basissystem und das Betriebssystem in einem kryptographisch gesicherten Speicherbereich oder in einem Nur-Lese-Speicherbereich der ein oder mehreren Speichergeräte gespeichert sind.The device according to one of Claims 1 until 4 , wherein the cryptographically secured boot base system and the operating system are stored in a cryptographically secured storage area or in a read-only storage area of the one or more storage devices. Die Vorrichtung gemäß einem der Ansprüche 1 bis 5, wobei die ein oder mehreren Rechen-Funktionsblöcke in einem beschreibbaren Speicherbereich der ein oder mehreren Speichergeräte gespeichert sind.The device according to one of Claims 1 until 5 , wherein the one or more computational function blocks are stored in a writable memory area of the one or more memory devices. Die Vorrichtung gemäß Anspruch 6, wobei die ein oder mehreren Prozessoren ausgebildet sind, um, durch das Betriebssystem, eine Rechen-Funktionseinheit dadurch zu aktualisieren, dass die aktualisierte Rechen-Funktionseinheit zusammen mit einer entsprechenden kryptographisch erzeugten Signatur empfangen und in den beschreibbaren Speicherbereich gespeichert wird.The device according to claim 6 , wherein the one or more processors are configured to, through the operating system, update an arithmetic functional unit in that the updated arithmetic functional unit is received together with a corresponding cryptographically generated signature and stored in the writable memory area. Die Vorrichtung gemäß einem der Ansprüche 1 bis 7, wobei die ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke fahrzeugspezifisch sind.The device according to one of Claims 1 until 7 , wherein the one or more cryptographically generated signatures of the one or more computing function blocks are vehicle-specific. Die Vorrichtung gemäß Anspruch 8, wobei die ein oder mehreren Prozessoren ausgebildet sind, um einen kryptographischen Schlüssel zur Überprüfung der ein oder mehreren Rechen-Funktionsblöcke von einem Fahrzeugschlüssel des Fahrzeugs abzurufen.The device according to claim 8 , wherein the one or more processors are designed to retrieve a cryptographic key for checking the one or more arithmetic function blocks from a vehicle key of the vehicle. Die Vorrichtung gemäß einem der Ansprüche 1 bis 9, wobei die ein oder mehreren Rechen-Funktionsblöcke unabhängig von dem Betriebssystem aktualisierbar sind.The device according to one of Claims 1 until 9 , wherein the one or more computational functional blocks are updateable independently of the operating system. Die Vorrichtung gemäß einem der Ansprüche 1 bis 10, wobei das Starten der ein oder mehreren Rechen-Funktionsblöcke verweigert wird, falls die Überprüfung der ein oder mehreren kryptographisch erzeugten Signaturen fehlschlägt.The device according to one of Claims 1 until 10 , wherein the starting of the one or more arithmetic function blocks is denied if the verification of the one or more cryptographically generated signatures fails. Die Vorrichtung gemäß einem der Ansprüche 1 bis 11, wobei die ein oder mehreren Prozessoren ausgebildet sind, um ein Fehlschlagen der Prüfung der ein oder mehreren kryptographisch erzeugten Signaturen an eine entfernte Gegenstelle zu melden.The device according to one of Claims 1 until 11 , wherein the one or more processors are designed to report a failure of the verification of the one or more cryptographically generated signatures to a remote peer. Ein Fahrzeug (100), umfassend die Recheneinheit (10) gemäß einem der Ansprüche 1 bis 12.A vehicle (100) comprising the computing unit (10) according to any one of Claims 1 until 12 . Ein Verfahren für eine Recheneinheit für ein Fahrzeug, umfassend: Speichern (110) eines kryptographisch gesicherten Start-Basissystems der Recheneinheit, eines Betriebssystems der Recheneinheit und von ein oder mehreren Rechen-Funktionsblöcken des Fahrzeugs; Starten (120) des kryptographisch gesicherten Start-Basissystems der Recheneinheit; Überprüfen (130), durch das kryptographisch gesicherte Start-Basissystem, einer Integrität des Betriebssystems der Recheneinheit basierend auf einer kryptographisch erzeugten Signatur des Betriebssystems; Starten (140) des Betriebssystems der Recheneinheit, falls die Integrität des Betriebssystems festgestellt wurde; Überprüfen (150), durch das kryptographisch gesicherte Start-Basissystem oder durch das Betriebssystem, einer Integrität der ein oder mehreren Rechen-Funktionsblöcke des Fahrzeugs basierend auf ein oder mehreren kryptographisch erzeugten Signaturen der ein oder mehreren Rechen-Funktionsblöcke; und Starten (160) der ein oder mehreren Rechen-Funktionsblöcke, falls die Integrität der ein oder mehreren Rechen-Funktionsblöcke festgestellt wurde.A method for a computing unit for a vehicle, comprising: storing (110) a cryptographically secured starting base system of the computing unit, an operating system of the computing unit and one or more computing functional blocks of the vehicle; starting (120) the cryptographically secured starting base system of the computing unit; Checking (130), by means of the cryptographically secured starting base system, an integrity of the operating system of the computing unit based on a cryptographically generated signature of the operating system; Starting (140) the operating system of the arithmetic units heit if the integrity of the operating system has been determined; verifying (150), by the cryptographically secured boot base system or by the operating system, an integrity of the one or more computing functional blocks of the vehicle based on one or more cryptographically generated signatures of the one or more computing functional blocks; and starting (160) the one or more computational function blocks if the integrity of the one or more computational function blocks has been determined. Programm mit einem Programmcode zum Durchführen des Verfahrens gemäß Anspruch 14, wenn der Programmcode auf einem Computer, einem Prozessor, einem Kontrollmodul oder einer programmierbaren Hardwarekomponente ausgeführt wird.Program with a program code for performing the method according to Claim 14 , when the program code is executed on a computer, processor, control module or programmable hardware component.
DE102021125750.6A 2021-10-05 2021-10-05 Computing unit for a vehicle and method and computer program for a computing unit for a vehicle Pending DE102021125750A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021125750.6A DE102021125750A1 (en) 2021-10-05 2021-10-05 Computing unit for a vehicle and method and computer program for a computing unit for a vehicle
PCT/EP2022/077688 WO2023057506A1 (en) 2021-10-05 2022-10-05 Computing unit for a vehicle and method and computer program for a computing unit for a vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021125750.6A DE102021125750A1 (en) 2021-10-05 2021-10-05 Computing unit for a vehicle and method and computer program for a computing unit for a vehicle

Publications (1)

Publication Number Publication Date
DE102021125750A1 true DE102021125750A1 (en) 2023-04-06

Family

ID=84246155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021125750.6A Pending DE102021125750A1 (en) 2021-10-05 2021-10-05 Computing unit for a vehicle and method and computer program for a computing unit for a vehicle

Country Status (2)

Country Link
DE (1) DE102021125750A1 (en)
WO (1) WO2023057506A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190391802A1 (en) 2018-02-14 2019-12-26 Micron Technology, Inc. Over-the-air (ota) update for firmware of a vehicle component
WO2020070061A1 (en) 2018-10-02 2020-04-09 Volkswagen Aktiengesellschaft Method for executing one or more vehicle applications using a vehicle computation unit of a vehicle, vehicle computation unit, method for providing a permission information manifest for a vehicle application, permission information manifest for a vehicle application and computer program
US20200320201A1 (en) 2019-04-02 2020-10-08 Aptiv Technologies Limited Secure boot of vehicular processors

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170364685A1 (en) * 2014-11-20 2017-12-21 Interdigital Patent Holdings. Inc. Providing security to computing systems
EP3101535B1 (en) * 2015-06-01 2022-04-13 OpenSynergy GmbH Method for updating a control unit for an automotive vehicle, control unit for an automotive vehicle, and computer program product
DE102016218986B4 (en) * 2016-09-30 2024-02-08 Volkswagen Aktiengesellschaft Method for managing access to a vehicle

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190391802A1 (en) 2018-02-14 2019-12-26 Micron Technology, Inc. Over-the-air (ota) update for firmware of a vehicle component
WO2020070061A1 (en) 2018-10-02 2020-04-09 Volkswagen Aktiengesellschaft Method for executing one or more vehicle applications using a vehicle computation unit of a vehicle, vehicle computation unit, method for providing a permission information manifest for a vehicle application, permission information manifest for a vehicle application and computer program
US20200320201A1 (en) 2019-04-02 2020-10-08 Aptiv Technologies Limited Secure boot of vehicular processors

Also Published As

Publication number Publication date
WO2023057506A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
DE102013108022A1 (en) Method for activating the development mode of a secure electronic control unit
DE102013108021A1 (en) Selective software rollback method
DE102013108020A1 (en) Authentication scheme for activating a special privilege mode in a secure electronic control unit
DE102013105042A1 (en) Safe flash programming of a secondary processor
DE102015209116A1 (en) Method and update gateway for updating an embedded controller
DE102020122712A1 (en) INTEGRITY MANIFESTO CERTIFICATE
DE102012109619A1 (en) A method of providing a digital signature for securing a flash programming function
DE102015209108A1 (en) Method and decision gateway for authorizing a function of an embedded controller
DE102015203776A1 (en) Method for programming a control device of a motor vehicle
DE112017007515T5 (en) Vehicle-internal authentication system, vehicle-internal authentication method and vehicle-internal authentication program
EP3323076A1 (en) Method and arrangement for securely interchanging configuration data for an apparatus
DE102013213314A1 (en) Deposit at least one computable integrity measure in a memory area of a memory
DE102021127624A1 (en) SECURELY DEPLOYING THE IDENTITY OF A PLATFORM'S BASEBOARD MANAGEMENT CONTROLLER
DE102016210788A1 (en) Component for processing a worthy of protection date and method for implementing a security function to protect a worthy of protection date in such a component
DE102018213615A1 (en) Cryptography module and operating method therefor
DE102020117552A1 (en) SAFE HYBRID BOAT SYSTEMS AND SAFE BOAT PROCEDURES FOR HYBRID SYSTEMS
DE102021125750A1 (en) Computing unit for a vehicle and method and computer program for a computing unit for a vehicle
DE102016208284A1 (en) Improve device authentication using device monitoring data
DE102018211139A1 (en) Control device and method for its operation
DE102008008969B4 (en) Electrical system of a motor vehicle with an authentication device
DE102021129670A1 (en) Method, vehicle component and computer program for granting authorization for a vehicle component of a vehicle to execute a computer program
DE102020206039A1 (en) Create a container instance
DE102022207941A1 (en) Method for booting an electronic control unit
EP3876123B1 (en) Arrangement and operating method for a secure start-up of an electronic device
DE102018217969A1 (en) Computing device and operating method therefor

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication