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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure 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
Aus
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.
-
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.
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.
Im Folgenden wird die Funktionalität der Recheneinheit in Bezug auf die Recheneinheit 10 der
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
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
Die ein oder mehreren Rechen-Funktionsblöcke sind somit an der Spitze eines Schichtenmodells - Die ein oder mehreren Rechenfunktionsblöcke 18d werden, wie in
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
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
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
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
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
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
Mehr Details und Aspekte der Recheneinheit werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher oder nachher beschrieben werden (siehe
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)
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)
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)
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 |
-
2021
- 2021-10-05 DE DE102021125750.6A patent/DE102021125750A1/en active Pending
-
2022
- 2022-10-05 WO PCT/EP2022/077688 patent/WO2023057506A1/en unknown
Patent Citations (3)
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 |