DE102022125619A1 - Method for starting a data processing device, data processing device and motor vehicle - Google Patents

Method for starting a data processing device, data processing device and motor vehicle Download PDF

Info

Publication number
DE102022125619A1
DE102022125619A1 DE102022125619.7A DE102022125619A DE102022125619A1 DE 102022125619 A1 DE102022125619 A1 DE 102022125619A1 DE 102022125619 A DE102022125619 A DE 102022125619A DE 102022125619 A1 DE102022125619 A1 DE 102022125619A1
Authority
DE
Germany
Prior art keywords
data processing
software component
processing device
execution
validation condition
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
DE102022125619.7A
Other languages
German (de)
Inventor
Christopher Corbett
Christian Günter
Karsten Schmidt
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.)
Audi AG
Original Assignee
Audi 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 Audi AG filed Critical Audi AG
Priority to DE102022125619.7A priority Critical patent/DE102022125619A1/en
Publication of DE102022125619A1 publication Critical patent/DE102022125619A1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Starten einer Datenverarbeitungseinrichtung (2), wobei zunächst durch eine Prüfeinrichtung (4) der Datenverarbeitungseinrichtung (2) geprüft wird, ob eine erste Validierungsbedingung (32) erfüllt ist, deren Erfüllung von Programmdaten (21, 22, 23) wenigstens einer ersten Softwarekomponente (11, 12, 13) abhängt, wonach bei Erfüllung der ersten Validierungsbedingung (32) die Prüfeinrichtung ein Ausführen der ersten Softwarekomponente (11, 12, 13) oder wenigstens einer der ersten Softwarekomponenten (11, 12, 13) durch eine Ausführungseinrichtung (3) auslöst, wobei die Prüfeinrichtung (4) nach Erfüllung der ersten Validierungsbedingung (32) zusätzlich das Ausführen wenigstens einer zweiten Softwarekomponente (14, 15) durch die Ausführungseinrichtung (3) auslöst, wobei durch die oder eine weitere Prüfeinrichtung (4) geprüft wird, ob die Programmdaten (24, 25) der zweiten Softwarekomponente (14, 15) eine zweite Validierungsbedingung (33) erfüllen, wobei bei Nichterfüllung der zweiten Validierungsbedingung (33) die Datenverarbeitungseinrichtung (2) in einen Fehlerbetriebsmodus (36) versetzt und/oder eine Fehlerinformation (37) in dem Datenspeicher (5) gespeichert wird, wobei die Prüfeinrichtung (4) die Ausführung der jeweiligen zweiten Softwarekomponente (14, 15) auslöst, bevor die Prüfung der zweiten Validierungsbedingung (33) beginnt oder abgeschlossen ist.Method for starting a data processing device (2), wherein firstly a test device (4) of the data processing device (2) checks whether a first validation condition (32) is fulfilled, the fulfillment of which depends on program data (21, 22, 23) of at least one first software component (11, 12, 13), after which, if the first validation condition (32) is fulfilled, the test device triggers an execution of the first software component (11, 12, 13) or at least one of the first software components (11, 12, 13) by an execution device (3), wherein the test device (4) additionally triggers the execution of at least one second software component (14, 15) by the execution device (3) after the first validation condition (32) has been fulfilled, wherein the or a further test device (4) checks whether the program data (24, 25) of the second software component (14, 15) satisfy a second validation condition (33), wherein if the second validation condition (33) is not fulfilled, the data processing device (2) is placed in an error operating mode (36) and/or error information (37) is stored in the data memory (5), wherein the testing device (4) triggers the execution of the respective second software component (14, 15) before the testing of the second validation condition (33) begins or is completed.

Description

Die Erfindung betrifft ein Verfahren zum Starten einer Datenverarbeitungseinrichtung, wobei zunächst durch eine Prüfeinrichtung der Datenverarbeitungseinrichtung geprüft wird, ob eine erste Validierungsbedingung erfüllt ist, deren Erfüllung von in einem Datenspeicher der Datenverarbeitungseinrichtung gespeicherten Programmdaten wenigstens einer ersten Softwarekomponente abhängt, wonach bei Erfüllung der ersten Validierungsbedingung die Prüfeinrichtung ein Ausführen der ersten Softwarekomponente oder wenigstens einer der ersten Softwarekomponenten durch eine Ausführungseinrichtung der Datenverarbeitungseinrichtung auslöst. Daneben betrifft die Erfindung eine Datenverarbeitungseinrichtung und ein Kraftfahrzeug.The invention relates to a method for starting a data processing device, wherein a test device of the data processing device first checks whether a first validation condition is fulfilled, the fulfillment of which depends on program data of at least one first software component stored in a data memory of the data processing device, after which, if the first validation condition is fulfilled, the test device triggers execution of the first software component or at least one of the first software components by an execution device of the data processing device. In addition, the invention relates to a data processing device and a motor vehicle.

Insbesondere in Embedded-Anwendungen, beispielsweise im Kraftfahrzeugbereich, ist es häufig hochrelevant, die Integrität und Authentizität von ausgeführter Software sicherzustellen und diese beispielsweise vor Manipulationen durch Angreifer zu schützen. In einigen Fällen kann es hierzu ausreichen, entsprechende Softwarekomponenten in internen Speichern von Ausführungseinrichtungen, also beispielsweise Steuereinrichtungen bzw. Host-Controllern, zu speichern.Particularly in embedded applications, for example in the automotive sector, it is often highly relevant to ensure the integrity and authenticity of executed software and to protect it, for example, from manipulation by attackers. In some cases, it may be sufficient to store corresponding software components in the internal memories of execution devices, for example control devices or host controllers.

Da jedoch häufig eine zusätzliche Sicherung gewünscht ist und zudem der Trend dazu geht, auf interne Flash-Speicher und Ähnliches zu verzichten beziehungsweise zumindest zusätzlich externe Flash-Speicher zu verwenden, sind häufig weitere Ansätze zur Softwareabsicherung erforderlich. Eine Möglichkeit hierfür ist der sogenannte „Secure Boot“-Ansatz, bei dem Softwarekomponenten zunächst validiert werden und erst nach der Validierung ein Start der Softwarekomponenten erfolgt. Ein derartiges Vorgehen ist beispielsweise aus der Druckschrift EP 3 291 087 A1 bekannt.However, since additional security is often desired and there is a trend to do without internal flash memory and the like or at least to use external flash memory in addition, additional approaches to software security are often required. One possibility for this is the so-called "Secure Boot" approach, in which software components are first validated and only started after validation. Such an approach is described, for example, in the publication EP 3 291 087 A1 known.

Sollen durch eine solche Validierung nur unabsichtliche Fehler, die beispielsweise aus Speicherfehlern resultieren können, erkannt werden, können relativ einfache Validierungsansätze, beispielsweise eine Bildung von Prüfsummen, genutzt werden. Muss jedoch potentiell mit einem aktiven Angreifer gerechnet werden, der im Kraftfahrzeugbereich beispielsweise zu Tuning- oder Betrugszwecken bestimmte Softwarekomponenten manipulieren möchte, sind kryptografische Validierungsverfahren, beispielsweise eine Signaturprüfung, erforderlich. Entsprechende Verfahren erfordern jedoch einen gewissen Rechenaufwand und die zur Verfügung stehende Rechenleistung ist in Embedded-Anwendungen häufig relativ gering, sodass in vielen Anwendungsfällen ein Validieren der genutzten Softwarekomponenten vor dem Starten der Software zu deutlichen Verzögerungen des Starts führen kann, die beispielsweise im Kraftfahrzeugbereich durch Nutzer eher nicht akzeptiert werden.If such validation is only intended to detect unintentional errors, which may result from memory errors, for example, relatively simple validation approaches, such as the creation of checksums, can be used. However, if an active attacker is potentially to be expected who wants to manipulate certain software components in the automotive sector, for example for tuning or fraud purposes, cryptographic validation methods, such as signature verification, are required. However, corresponding methods require a certain amount of computing effort and the available computing power is often relatively low in embedded applications, so that in many applications, validating the software components used before starting the software can lead to significant delays in the start, which are not generally accepted by users in the automotive sector, for example.

Ein alternativer Ansatz zur Validierung von Software ist es, diese erst nach dem Starten zu prüfen und bei Fehlern beispielsweise entsprechende Hinweise in einen Fehlerspeicher zu schreiben, Funktionen abzuwerfen oder Ähnliches. Dies wird auch als „Authenticated Boot“ bezeichnet. Dieser Ansatz vermeidet zwar lange Wartezeiten beim Starten der Software und ist gut geeignet, um Manipulationen, beispielsweise das Erschleichen von an sich gesperrten Funktionalitäten, eine Manipulation von Wartungsintervallen und Ähnliches, zu erkennen. Die Softwarekomponente wird jedoch bei diesem Ansatz zunächst in einem undefinierten, potentiell manipulierten Zustand betrieben, sodass dieser Ansatz nicht geeignet ist, um Datenverarbeitungseinrichtungen in Kraftfahrzeugen zu betreiben, die potentiell fahrrelevante Funktionen bereitstellen beziehungsweise für die bestimmte Sicherheitsanforderungen vorliegen. Unter Sicherheitsanforderungen werden hierbei insbesondere Anforderungen an die Safety, also bezüglich der Sicherstellung der Unversehrtheit von Fahrzeuginsassen bzw. anderen Verkehrsteilnehmern, bzw. allgemein eine Safety-Relevanz der bereitgestellten Funktion, also z.B. das Vorliegen von ASIL-Anforderungen an die Softwarekomponente, verstanden.An alternative approach to validating software is to check it only after it has been started and, if errors occur, to write corresponding information into an error log, discard functions or similar. This is also known as "authenticated boot". This approach avoids long waiting times when starting the software and is well suited to detecting manipulation, such as obtaining functions that are otherwise blocked, manipulating maintenance intervals and the like. However, with this approach the software component is initially operated in an undefined, potentially manipulated state, so this approach is not suitable for operating data processing devices in motor vehicles that provide potentially driving-relevant functions or for which certain safety requirements exist. Safety requirements are understood to mean in particular safety requirements, i.e. with regard to ensuring the safety of vehicle occupants or other road users, or generally a safety relevance of the function provided, e.g. the existence of ASIL requirements for the software component.

Der Erfindung liegt somit die Aufgabe zu Grunde, einen verbesserten Ansatz zum Starten einer Datenverarbeitungseinrichtung anzugeben, durch den die Nachteile der beiden obig erläuterten Ansätze „Secure Boot“ und „Authenticated Boot“ reduziert oder zumindest vermieden werden können.The invention is therefore based on the object of specifying an improved approach for starting a data processing device, by means of which the disadvantages of the two approaches "Secure Boot" and "Authenticated Boot" explained above can be reduced or at least avoided.

Die Aufgabe wird durch ein Verfahren der eingangs genannten Art gelöst, wobei die Prüfeinrichtung nach Erfüllung der ersten Validierungsbedingung zusätzlich das Ausführen wenigstens einer zweiten Softwarekomponente, deren Programmdaten in dem Datenspeicher der Datenverarbeitungseinrichtung gespeichert sind, durch die Ausführungseinrichtung auslöst, wobei durch die oder eine weitere Prüfeinrichtung der Datenverarbeitungseinrichtung geprüft wird, ob die Programmdaten der zweiten Softwarekomponente eine zweite Validierungsbedingung erfüllen, wobei bei Nichterfüllung der zweiten Validierungsbedingung die Datenverarbeitungseinrichtung in einen Fehlerbetriebsmodus versetzt und/oder eine Fehlerinformation in dem Datenspeicher gespeichert wird, wobei die Prüfeinrichtung die Ausführung der jeweiligen zweiten Softwarekomponente auslöst, bevor die Prüfung der zweiten Validierungsbedingung beginnt oder abgeschlossen ist.The object is achieved by a method of the type mentioned at the outset, wherein the testing device, after fulfilling the first validation condition, additionally triggers the execution of at least one second software component, the program data of which is stored in the data memory of the data processing device, by the execution device, wherein the or a further testing device of the data processing device checks whether the program data of the second software component fulfills a second validation condition, wherein if the second validation condition is not fulfilled, the data processing device is put into an error operating mode and/or error information is stored in the data memory, wherein the testing device triggers the execution of the respective second software component before the test of the second validation condition begins or is completed.

Der Erfindung liegt die Idee zu Grunde, nur Teile der Softwarekomponenten vor dem Start der jeweiligen Softwarekomponente zu prüfen und für andere Softwarekomponenten eine Prüfung erst nach dem Start durchzuführen. Hierdurch kann die Menge der vor dem Systemstart zu prüfenden Programmdaten deutlich reduziert werden. So können beispielsweise ein Bootloader und/oder im Falle der Nutzung in einem Kraftfahrzeug fahrrelevante Funktionen beziehungsweise Funktionen, die gewisse ASIL-Anforderungen aufweisen, vor dem Starten getestet werden, sodass bezüglich dieser Softwarekomponenten ein definierten Systemzustand nach dem Start vorliegt. Wird bei der Implementierung darauf geachtet, dass nicht unmittelbar fahrbeziehungsweise safety-relevante Softwarekomponenten von den fahr- beziehungsweise safety-relevanten Teilen separiert werden, können die vor dem Starten zu prüfenden Programmdaten einen relativ geringen Umfang aufweisen und somit mit geringem Rechenaufwand bzw. einer geringen Startverzögerung validiert werden.The invention is based on the idea of testing only parts of the software components before starting the respective software component and to carry out a test for other software components only after the system has started. This can significantly reduce the amount of program data that needs to be tested before the system starts. For example, a bootloader and/or, in the case of use in a motor vehicle, driving-relevant functions or functions that have certain ASIL requirements can be tested before starting so that a defined system state exists for these software components after starting. If care is taken during implementation to ensure that software components that are not directly relevant to driving or safety are separated from the driving or safety-relevant parts, the program data that needs to be tested before starting can be relatively small and can therefore be validated with little computing effort or a short start-up delay.

Weitere, typischerweise relativ umfangreiche Programmdaten, die beispielsweise Komfortfunktionen bereitstellen, prüfen ob gewisse Funktionen der Datenverarbeitungseinrichtung beziehungsweise des Kraftfahrzeugs, beispielsweise bestimmte Fahrerassistenzsysteme, freigegeben sind, beispielsweise wenn diese kostenpflichtig sind, dem Fahrer eine Auswahl zwischen verschiedenen, jeweils sicheren Betriebszuständen anbieten, Videoinformationen bereitstellen etc. können erst nach dem Start getestet werden, da entsprechende Funktionen problemlos zu einem späteren Betriebszustand abgeworfen werden können beziehungsweise es ausreichend sein kann, sie beim Erkennen einer Manipulation beispielsweise beim nächsten Systemstart zu blockieren beziehungsweise entsprechende Manipulationen in einem Fehlerspeicher zu speichern, beispielsweise um eine entsprechende Manipulation nachzuweisen, wenn sie garantierelevant ist.Other, typically relatively extensive program data, which, for example, provide comfort functions, check whether certain functions of the data processing device or the motor vehicle, such as certain driver assistance systems, are enabled, for example if these are subject to a fee, offer the driver a choice between different, each safe operating states, provide video information, etc. can only be tested after the start, since corresponding functions can easily be dropped to a later operating state or it may be sufficient to block them when manipulation is detected, for example at the next system start, or to store corresponding manipulations in an error memory, for example in order to prove corresponding manipulation if it is relevant to the warranty.

Die Datenverarbeitungseinrichtung kann auch mehrere Ausführungseinrichtungen umfassen, die jeweils wenigstens eine erste und wenigstens eine zweite Softwarekomponente ausführen sollen. In diesem Fall können die Softwarekomponenten der mehreren Ausführungseinrichtungen beispielsweise durch eine gemeinsame Prüfeinrichtung oder durch separate Prüfeinrichtungen, die den jeweiligen Ausführungseinrichtungen beziehungsweise Gruppen hiervon zugeordnet sind, validiert werden.The data processing device can also comprise a plurality of execution devices, each of which is intended to execute at least one first and at least one second software component. In this case, the software components of the plurality of execution devices can be validated, for example, by a common testing device or by separate testing devices that are assigned to the respective execution devices or groups thereof.

Die Prüfeinrichtung kann mehrere Teilprüfeinrichtungen umfassen, die jeweils Teile der ersten beziehungsweise zweiten Softwarekomponenten prüfen beziehungsweise die Softwarekomponenten für unterschiedliche Ausführungseinrichtung prüfen. Das erfindungsgemäße Verfahren ist somit skalierbar und kann für Datenverarbeitungseinrichtungen mit beliebig vielen Ausführungseinrichtungen beziehungsweise Prüf- beziehungsweise Teilprüfeinrichtungen verwendet werden.The test device can comprise several partial test devices, each of which tests parts of the first or second software components or tests the software components for different execution devices. The method according to the invention is thus scalable and can be used for data processing devices with any number of execution devices or test or partial test devices.

Als Prüfeinrichtung kann beispielsweise ein Security-Controller, der beispielsweise als Trust Zone bzw. als Hardware Security Module (HSM) implementiert sein kann, benutzt werden. Die Ausführungseinrichtung kann beispielsweise ein Host-Controller sein. Die Prüfeinrichtung oder Ausführungseinrichtung können jeweils durch Microcontroller aber auch durch andere Prozessoren oder Ähnliches implementiert sein.A security controller, which can be implemented as a trust zone or as a hardware security module (HSM), can be used as a test device. The execution device can be a host controller, for example. The test device or execution device can each be implemented by microcontrollers, but also by other processors or similar.

Der Datenspeicher kann ein einzelner Speicherbaustein sein oder in die Prüfeinrichtung oder Ausführungseinrichtung integriert sein. Es kann jedoch vorteilhaft sein, wenn der Datenspeicher mehrere Teildatenspeicher aufweist, beispielsweise jeweils einen separaten Teildatenspeicher für Softwarekomponenten der Prüfeinrichtung und der Ausführungseinrichtung. Die jeweiligen Teildatenspeicher können in die Prüfeinrichtung beziehungsweise Ausführungseinrichtung integriert oder separat von dieser ausgebildet sein. Es ist auch möglich, separate Teildatenspeicher für Softwarekomponenten mit unterschiedlicher Safety-Relevanz zu nutzen, also beispielsweise die ersten und zweiten Softwarekomponenten in unterschiedlichen Teildatenspeichern abzulegen. Es ist jedoch auch möglich, diese Softwarekomponenten auf einen gemeinsamen Datenspeicher beziehungsweise Teildatenspeicher abzulegen. Hierbei ist es beispielsweise möglich, Blöcke von Programmdaten mit unterschiedlicher Safety-Relevanz separat zu flashen oder Ähnliches.The data memory can be a single memory module or be integrated into the test device or execution device. However, it can be advantageous if the data memory has several partial data memories, for example a separate partial data memory for software components of the test device and the execution device. The respective partial data memories can be integrated into the test device or execution device or designed separately from it. It is also possible to use separate partial data memories for software components with different safety relevance, for example to store the first and second software components in different partial data memories. However, it is also possible to store these software components on a common data memory or partial data memory. In this case, it is possible, for example, to flash blocks of program data with different safety relevance separately or something similar.

In einer vorteilhaften Weiterbildung des Verfahrens können wenigstens zwei Kopien oder Varianten der ersten Softwarekomponente oder wenigstens einer der ersten Softwarekomponenten in dem Datenspeicher gespeichert sein, wobei durch die Prüfeinrichtung die erste Validierungsbedingung zunächst für die erste Kopie oder Variante ausgewertet wird, wonach bei Erfüllung der ersten Validierungsbedingung durch die erste Kopie oder Variante die Ausführung der ersten Kopie oder Variante ausgelöst wird und anderenfalls die erste Validierungsbedingung für die zweite Kopie oder Variante ausgewertet wird und bei Erfüllung der Validierungsbedingung für die zweite Kopie oder Variante die Ausführung der zweiten Kopie oder Variante ausgelöst wird.In an advantageous development of the method, at least two copies or variants of the first software component or at least one of the first software components can be stored in the data memory, wherein the first validation condition is initially evaluated for the first copy or variant by the testing device, after which, if the first validation condition is fulfilled by the first copy or variant, the execution of the first copy or variant is triggered and otherwise the first validation condition is evaluated for the second copy or variant and, if the validation condition is fulfilled for the second copy or variant, the execution of the second copy or variant is triggered.

Das beschriebene Vorgehen ermöglicht es, dass auch dann, wenn die erste Kopie beziehungsweise Variante manipuliert ist beziehungsweise die entsprechenden Programmdaten aus anderen Gründen fehlerhaft sind, ein definierter Betriebszustand für die entsprechende Softwarekomponente erreicht werden kann, indem auf die zweite Kopie beziehungsweise Variante ausgewichen wird. Die Nutzung der zweiten Kopie beziehungsweise Variante kann beispielsweise in einem Fehlerspeicher vermerkt werden, um bei einem Softwareupdate oder Service die entsprechende Softwarekomponente zu reparieren.The procedure described makes it possible to achieve a defined operating state for the corresponding software component even if the first copy or variant is manipulated or the corresponding program data is faulty for other reasons. by switching to the second copy or variant. The use of the second copy or variant can, for example, be noted in an error log in order to repair the corresponding software component during a software update or service.

Im einfachsten Fall werden identische Kopien der jeweiligen Softwarekomponente vorgehalten. Eine Nutzung unterschiedlicher Varianten der Softwarekomponente kann beispielsweise vorteilhaft sein, wenn ein Betrieb der Datenverarbeitungseinrichtung auch nach einem fehlerhaften Softwareupdate möglich sein soll. Beispielsweise kann es sich bei den Varianten um die aktuellste Fassung der Softwarekomponente und die vorangehend stabil genutzte Variante der Softwarekomponente handeln. Werden in einem Kraftfahrzeug beispielsweise als erste Softwarekomponenten ein Bootloader der Ausführungseinrichtung und eine oder mehrere Softwarekomponenten, die ASIL-relevant sind, verwendet, so können all diese Softwarekomponenten in mehreren Kopien beziehungsweise Varianten vorliegen oder es ist auch möglich, ausschließlich den Bootloader oder die ASIL-relevanten Softwarekomponenten zu doppeln.In the simplest case, identical copies of the respective software component are kept. Using different variants of the software component can be advantageous, for example, if the data processing device should be able to operate even after a faulty software update. For example, the variants can be the most recent version of the software component and the previously stable version of the software component. If, for example, the first software components used in a motor vehicle are a bootloader of the execution device and one or more software components that are ASIL-relevant, all of these software components can be present in multiple copies or variants, or it is also possible to duplicate only the bootloader or the ASIL-relevant software components.

Bei Nichterfüllung der ersten Validierungsbedingung kann die Prüfeinrichtung statt der Ausführung der zweiten Softwarekomponente oder wenigstens einer der zweiten Softwarekomponenten die Ausführung einer jeweiligen dritten Softwarekomponente, deren Programmdaten in dem Datenspeicher gespeichert sind, durch die Ausführungseinrichtung auslösen. Die dritte Softwarekomponente kann beispielsweise gegenüber einer Kombination aus der ersten und zweiten Softwarekomponente einen Betrieb der Datenverarbeitungseinrichtung implementieren, der niedrigere oder keine Safety-Relevanz aufweist und daher z.B. nur Anforderungen gemäß ASIL QM genügen muss. If the first validation condition is not met, the test device can trigger the execution of a respective third software component, the program data of which is stored in the data memory, by the execution device instead of executing the second software component or at least one of the second software components. The third software component can, for example, implement an operation of the data processing device that has lower or no safety relevance than a combination of the first and second software components and therefore only has to meet requirements in accordance with ASIL QM, for example.

Soll die Datenverarbeitungseinrichtung beispielsweise ein Fahrerassistenzsystem eines Kraftfahrzeugs implementieren, das bestimmte ASIL-Anforderungen aufweist, beispielsweise eine elektronische Spurkontrolle, einen Abstandtempomat oder allgemein teilautomatisierte oder automatisierte Fahrfunktionen, können die ASIL-relevanten Funktionen in der ersten Softwarekomponente und beispielsweise die Auswahl von Betriebsmodi, eine Freigabe kostenpflichtiger Funktionen usw. in der zweiten Softwarekomponente implementiert werden. Falls die erste Softwarekomponente die erste Validierungsbedingung nicht erfüllt, also beispielsweise ein Fehler oder eine Manipulation vorliegt, kann statt der ersten und zweiten Softwarekomponente die dritte Softwarekomponente genutzt werden, die beispielsweise die Funktionalität des Fahrerassistenzsystems degradiert, also ein Fahrerassistenzsystem mit geringerer ASIL-Anforderung bereitstellt, beispielsweise nur ein Anti-Blockiersystem statt einer elektronischen Spurregelung, beziehungsweise alle Funktionen mit hinreichend hoher ASIL-Anforderung deaktiviert. Die dritte Softwarekomponente kann insbesondere die Degradierung bzw. Abschaltung der Fahrerassistenz betreffende Informationen an einen Nutzer ausgeben. Hierzu können beispielsweise Warnleuchten aktiviert werden, Anpassungen im Menüsystem erfolgen und Ähnliches.If, for example, the data processing device is to implement a driver assistance system of a motor vehicle that has certain ASIL requirements, for example electronic lane control, adaptive cruise control or generally partially automated or automated driving functions, the ASIL-relevant functions can be implemented in the first software component and, for example, the selection of operating modes, the release of paid functions, etc. can be implemented in the second software component. If the first software component does not meet the first validation condition, for example if there is an error or manipulation, the third software component can be used instead of the first and second software components, which, for example, degrades the functionality of the driver assistance system, i.e. provides a driver assistance system with a lower ASIL requirement, for example only an anti-lock braking system instead of electronic lane control, or deactivates all functions with a sufficiently high ASIL requirement. The third software component can in particular output information to a user regarding the degradation or deactivation of the driver assistance. For this purpose, for example, warning lights can be activated, adjustments can be made to the menu system and the like.

Werden, wie obig erläutert, mehrere Kopien beziehungsweise Varianten wenigstens einer ersten Softwarekomponente genutzt, kann der Rückfall auf die dritte Softwarekomponente ausschließlich in dem Fall erfolgen, wenn die erste Validierungsbedingung für keine der Kopien beziehungsweise Varianten erfüllt ist.If, as explained above, several copies or variants of at least a first software component are used, the fallback to the third software component can only occur if the first validation condition is not met for any of the copies or variants.

Durch die oder die weitere oder eine dritte Prüfeinrichtung der Datenverarbeitungseinrichtung kann geprüft werden, ob die Programmdaten der dritten Softwarekomponente eine dritte Validierungsbedingung erfüllen, wobei bei Nichterfüllung der dritten Validierungsbedingung die Datenverarbeitungseinrichtung in den Fehlerbetriebsmodus versetzt und/oder die Fehlerinformation in dem Datenspeicher gespeichert wird, wobei die Prüfeinrichtung die Ausführung der jeweiligen dritten Softwarekomponente auslöst, bevor die Prüfung der dritten Validierungsbedingung beginnt oder abgeschlossen ist. Somit kann auch die Prüfung der dritten Softwarekomponente nach dem Systemstart verlagert werden, da die dritte Softwarekomponente typischerweise keine bzw. eine geringere Safety-Relevanz aufweist als die erste Softwarekomponente.The additional or a third test device of the data processing device can check whether the program data of the third software component fulfill a third validation condition, wherein if the third validation condition is not fulfilled, the data processing device is put into error operating mode and/or the error information is stored in the data memory, wherein the test device triggers the execution of the respective third software component before the test of the third validation condition begins or is completed. The test of the third software component can therefore also be postponed after the system start, since the third software component typically has no or less safety relevance than the first software component.

Die Datenverarbeitungseinrichtung kann eine Datenverarbeitungseinrichtung eines Kraftfahrzeugs sein, wobei ein Fahrbetrieb des Kraftfahrzeugs und/oder der Betrieb wenigstens eines Fahrerassistenzsystems erst nach Auswertung, und insbesondere erst nach Erfüllung, der ersten Validierungsbedingung freigegeben werden kann und/oder wobei der Fahrbetrieb und/oder der Betrieb des Fahrerassistenzsystems vor der Auswertung der zweiten Validierungsbedingung freigegeben werden können. Dies ist insbesondere zweckmäßig, wenn die Datenverarbeitungseinrichtung für den Fahrbetrieb des Kraftfahrzeugs beziehungsweise das Fahrerassistenzsystem relevante Funktionen bereitstellt beziehungsweise selbst das Fahrerassistenzsystem implementiert. Insbesondere kann der Fahrbetrieb beziehungsweise der Betrieb des Fahrerassistenzsystems erst dann freigegeben werden, wenn die erste und zweite Softwarekomponente bereits durch die Ausführungseinrichtung ausgeführt werden, beziehungsweise wenn im Fall der obig erläuterten Rückfalllösung die dritte Softwarekomponente ausgeführt wird.The data processing device can be a data processing device of a motor vehicle, wherein driving of the motor vehicle and/or the operation of at least one driver assistance system can only be enabled after evaluation, and in particular only after fulfillment, of the first validation condition and/or wherein driving and/or the operation of the driver assistance system can be enabled before evaluation of the second validation condition. This is particularly expedient if the data processing device provides functions relevant to driving the motor vehicle or the driver assistance system or implements the driver assistance system itself. In particular, driving or the operation of the driver assistance system can only be enabled when the first and second software components are already being executed by the execution device, or when, in the case of the above-explained Fallback solution the third software component is executed.

Die Datenverarbeitungseinrichtung kann eine Datenverarbeitungseinrichtung des oder eines Kraftfahrzeugs sein, wobei die erste Softwarekomponente oder wenigstens eine der ersten Softwarekomponenten wenigstens eine Funktion implementiert, die in den Fahrbetrieb eingreift und/oder die eine Sicherheitsanforderungsstufe von zumindest ASIL A aufweist. Insbesondere können alle Funktionen, die durch die Datenverarbeitungseinrichtung implementiert werden, und die unmittelbar in den Fahrbetrieb eingreifen und/oder die eine bestimmte Sicherheitsanforderungsstufe, beispielsweise ASIL A, ASIL B oder ASIL C aufweisen, durch die erste Softwarekomponente oder eine der ersten Softwarekomponenten implementiert sein. Vorzugsweise sind nur Funktionen, die nicht unmittelbar in den Fahrbetrieb eingreifen beziehungsweise eine geringere Sicherheitsanforderungsstufe aufweisen, als zweite Softwarekomponenten implementiert.The data processing device can be a data processing device of the or of a motor vehicle, wherein the first software component or at least one of the first software components implements at least one function that intervenes in the driving operation and/or that has a safety requirement level of at least ASIL A. In particular, all functions that are implemented by the data processing device and that directly intervene in the driving operation and/or that have a certain safety requirement level, for example ASIL A, ASIL B or ASIL C, can be implemented by the first software component or one of the first software components. Preferably, only functions that do not directly intervene in the driving operation or have a lower safety requirement level are implemented as second software components.

Wie bereits obig erwähnt, kann es hierbei vorteilhaft sein, Teilfunktionen einer komplexeren Funktion, beispielsweise eines Fahrerassistenzsystems, als separate Softwarekomponenten zu implementieren, um möglichst kompakte Programmdaten für die erste Softwarekomponente beziehungsweise die ersten Softwarekomponenten zu erreichen und möglichst viele Teilfunktionen als zweite Softwarekomponente beziehungsweise zweite Softwarekomponenten auszulagern.As already mentioned above, it can be advantageous to implement sub-functions of a more complex function, for example a driver assistance system, as separate software components in order to achieve the most compact program data possible for the first software component or the first software components and to outsource as many sub-functions as possible as a second software component or second software components.

Bietet ein Fahrerassistenzsystem beispielsweise die Auswahl zwischen verschiedenen Funktionen beziehungsweise Einstellungen, die jedoch alle einen sicheren Fahrbetrieb ermöglichen, kann beispielsweise die Auswahl zwischen den Funktionen beziehungsweise Einstellungen als zweite Softwarekomponente implementiert sein. Ist die Nutzung oder Freischaltung des Fahrerassistenzsystems kostenpflichtig, kann die Prüfung, ob das Fahrerassistenzsystem freigeschaltet ist, beziehungsweise können Abrechnungsfunktionen als zweite Softwarekomponenten implementiert sein.For example, if a driver assistance system offers the choice between different functions or settings, all of which enable safe driving, the choice between the functions or settings can be implemented as a second software component. If the use or activation of the driver assistance system is subject to a fee, the check as to whether the driver assistance system is activated or billing functions can be implemented as second software components.

Programmdaten, die die Kommunikation mit einer Fahrzeugaktorik zum Durchführen von Fahreingriffen, eine Kommunikationsabsicherung der Kommunikation mit Fahrzeugkomponenten, beispielsweise eine Verschlüsselung beziehungsweise Signatur der Kommunikation, den Empfang von Sensordaten und/oder einen Algorithmus zur Fahrerassistenz, insbesondere zur Bestimmung von durchzuführenden Fahreingriffen, betreffen, können hingegen als erste Softwarekomponente implementiert werden.However, program data relating to communication with a vehicle actuator system for carrying out driving interventions, communication security for communication with vehicle components, for example encryption or signature of the communication, the reception of sensor data and/or an algorithm for driver assistance, in particular for determining driving interventions to be carried out, can be implemented as the first software component.

Die erste Softwarekomponente oder eine der ersten Softwarekomponenten kann ein Bootloader der Ausführungseinrichtung sein. Da der Bootloader vorgibt, welche weiteren Softwarekomponenten geladen und ausgeführt werden, ist für diesen das Erreichen einer hohen Manipulationssicherheit besonders relevant.The first software component or one of the first software components can be a bootloader of the execution device. Since the bootloader specifies which other software components are loaded and executed, achieving a high level of security against manipulation is particularly relevant for it.

Die erste Validierungsbedingung kann durch eine durch die Prüfeinrichtung ausgeführte Validierungssoftwarekomponente ausgewertet werden, wobei die Validierungsbedingung nur dann erfüllbar ist, wenn die Programmdaten der ersten Validierungssoftwarekomponente eine vierte Validierungsbedingung erfüllen, die insbesondere durch die Prüfeinrichtung ausgewertet wird. Durch Prüfung der Programmdaten der Validierungssoftwarekomponente kann die Manipulationssicherheit weiter erhöht werden.The first validation condition can be evaluated by a validation software component executed by the test device, whereby the validation condition can only be fulfilled if the program data of the first validation software component fulfill a fourth validation condition, which is evaluated in particular by the test device. By checking the program data of the validation software component, the security against manipulation can be further increased.

Die Prüfung der Validierungssoftwarekomponente kann insbesondere im Rahmen eines Selbsttests der Prüfeinrichtung erfolgen, also insbesondere erst nach dem Start der Prüfeinrichtung.The validation software component can be tested in particular as part of a self-test of the test device, i.e. in particular only after the test device has been started.

Die Validierungssoftwarekomponente kann in einem, insbesondere internen, Speicher der Prüfeinrichtung gespeichert sein beziehungsweise nach dem Starten der Prüfeinrichtung in diesen geladen werden. Beispielsweise kann unmittelbar nach dem Starten der Datenverarbeitungseinrichtung die Prüfeinrichtung zunächst einen Bootloader laden, der wiederum eine weitere Validierungssoftwarekomponente laden und starten kann, die die Prüfung der vierten Validierungsbedingung implementiert und nach erfolgreicher Validierung beziehungsweise einem erfolgreichen Selbsttest der Prüfeinrichtung kann die Validierungssoftwarekomponente gestartet werden, um die erste Softwarekomponente beziehungsweise die ersten Softwarekomponenten zu prüfen. Die vierte Validierungsbedingung kann insbesondere im Rahmen eines Selbsttests der Prüfeinrichtung, in dessen Rahmen auch der Bootloader beziehungsweise die weitere Validierungssoftwarekomponente geprüft werden, ausgewertet werde.The validation software component can be stored in a memory, in particular an internal one, of the test device or can be loaded into it after the test device is started. For example, immediately after the data processing device is started, the test device can first load a bootloader, which in turn can load and start another validation software component that implements the test of the fourth validation condition and after successful validation or a successful self-test of the test device, the validation software component can be started in order to test the first software component or the first software components. The fourth validation condition can be evaluated in particular as part of a self-test of the test device, in the context of which the bootloader or the other validation software component is also tested.

Die erste Softwarekomponente oder eine der ersten Softwarekomponenten kann, wie obig erläutert, insbesondere ein Bootloader für die Ausführungseinrichtung sein, der anschließend unter Kontrolle der Prüfeinrichtung auf der Ausführungseinrichtung gestartet werden kann und weitere erste und zweite Softwarekomponenten nachlädt und startet. Die Prüfeinrichtung und die von dieser ausgeführten Softwarekomponenten, zumindest der Bootloader und die die Prüfung der Validierungssoftwarekomponente durchführende weitere Validierungssoftwarekomponente, können als Root-of-Trust betrachtet werden, bei der von einer hinreichenden Manipulationssicherheit bereits durch geeignete Hardwareausbildung ausgegangen wird. Dies Manipulationssicherheit kann beispielsweise dadurch erreicht werden, dass Softwarekomponenten der Prüfeinrichtung oder zumindest jene Softwarekomponenten, die dieser Root-of-Trust zuzuordnen sind, in einem nur einmal beschreibbaren Speicher abgelegt werden, um eine Veränderung der Programmdaten durch einen Angreifer auszuschließen.The first software component or one of the first software components can, as explained above, be in particular a bootloader for the execution device, which can then be started on the execution device under the control of the test device and loads and starts further first and second software components. The test device and the software components executed by it, at least the bootloader and the further validation software component carrying out the test of the validation software component, can be regarded as a root of trust, in which sufficient protection against manipulation can already be assumed. through suitable hardware configuration. This protection against manipulation can be achieved, for example, by storing software components of the test facility or at least those software components that are assigned to this root of trust in a memory that can only be written to once in order to prevent an attacker from changing the program data.

Die Prüfeinrichtung kann die Ausführungseinrichtung zum Ausführen der ersten Softwarekomponente oder einer zuerst ausgeführten der ersten Softwarekomponenten, die insbesondere einen Bootloader implementiert, zurücksetzen. Ergänzend oder alternativ kann die oder eine zuerst ausgeführte der ersten Softwarekomponenten wenigstens eine weitere der ersten Softwarekomponenten starten. Durch das Zurücksetzen der Ausführungseinrichtung zum Ausführen der zuerst ausgeführten ersten Softwarekomponente wird ein definierter Systemzustand hergestellt, wodurch die Manipulationsmöglichkeiten weiter eingeschränkt werden. Der Startvorgang der Ausführungseinrichtung wurde bereits obig diskutiert.The test device can reset the execution device for executing the first software component or one of the first software components that is executed first, which in particular implements a bootloader. In addition or alternatively, the first software component or one of the first software components that is executed first can start at least one other of the first software components. By resetting the execution device for executing the first software component that is executed first, a defined system state is established, which further limits the possibilities for manipulation. The start process of the execution device has already been discussed above.

Neben dem erfindungsgemäßen Verfahren betrifft die Erfindung eine Datenverarbeitungseinrichtung mit einem Datenspeicher, wenigstens einer Prüfeinrichtung und wenigstens einer Ausführungseinrichtung, wobei die Prüfeinrichtung und die Ausführungseinrichtung zur Ausführung des erfindungsgemäßen Verfahrens eingerichtet sind. Zum erfindungsgemäßen Verfahren erläuterte Merkmale lassen sich mit den dort erläuterten Vorteilen auf die erfindungsgemäße Datenverarbeitungseinrichtung übertragen und umgekehrt.In addition to the method according to the invention, the invention relates to a data processing device with a data memory, at least one test device and at least one execution device, wherein the test device and the execution device are set up to carry out the method according to the invention. Features explained for the method according to the invention can be transferred to the data processing device according to the invention with the advantages explained there and vice versa.

Wie obig erläutert, kann der Datenspeicher in die Prüfeinrichtung oder die Ausführungseinrichtung integriert sein oder separat von diesen Einrichtungen ausgebildet sein. Der Datenspeicher kann auch mehrere Teildatenspeicher umfassen, die optional zumindest zum Teil in die Prüfeinrichtung beziehungsweise die Ausführungseinrichtung beziehungsweise einen die jeweilige Einrichtung implementierenden integrierten Schaltkreises integriert sein können.As explained above, the data memory can be integrated into the test device or the execution device or can be designed separately from these devices. The data memory can also comprise several partial data memories, which can optionally be integrated at least in part into the test device or the execution device or an integrated circuit implementing the respective device.

Zudem betrifft die Erfindung ein Kraftfahrzeug, das eine erfindungsgemäße Datenverarbeitungseinrichtung umfasst. Die Datenverarbeitungseinrichtung kann insbesondere wenigstens eine Funktion implementieren, die für den Fahrbetrieb relevant ist, beispielsweise ein Fahrerassistenzsystem oder eine Sensordatenverarbeitung.The invention also relates to a motor vehicle that includes a data processing device according to the invention. The data processing device can in particular implement at least one function that is relevant to driving operation, for example a driver assistance system or sensor data processing.

Weitere Vorteile und Einzelheiten der Erfindung ergeben sich aus den folgenden Ausführungsbeispielen sowie den zugehörigen Zeichnungen. Hierbei zeigen schematisch:

  • 1 ein Ablaufdiagramm eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens,
  • 2 ein Ausführungsbeispiel eines erfindungsgemäßen Kraftfahrzeugs, das ein Ausführungsbeispiel einer erfindungsgemäßen Datenverarbeitungseinrichtung umfasst, und
  • 3 beispielhafte in einem Datenspeicher der in 2 gezeigten Datenverarbeitungseinrichtung vorgehaltene Softwarekomponenten.
Further advantages and details of the invention emerge from the following embodiments and the associated drawings. These show schematically:
  • 1 a flow chart of an embodiment of the method according to the invention,
  • 2 an embodiment of a motor vehicle according to the invention, which comprises an embodiment of a data processing device according to the invention, and
  • 3 exemplary in a data storage in 2 software components stored in the data processing facility shown.

1 zeigt ein Ausführungsbeispiel eines Verfahrens zum Starten einer Datenverarbeitungseinrichtung 2 wobei das Verfahren beispielshaft mit Bezug auf die in 2 gezeigte Datenverarbeitungseinrichtung 2 eines Kraftfahrzeugs 1 erläutert wird, die beispielsweise ein Fahrerassistenzsystem implementieren kann. 1 shows an embodiment of a method for starting a data processing device 2, wherein the method is described by way of example with reference to the 2 shown data processing device 2 of a motor vehicle 1 is explained, which can, for example, implement a driver assistance system.

Die Erklärung erfolgt zudem mit zusätzlichem Bezug auf 3, die die Belegung eines Datenspeichers 5 beziehungsweise von zwei Teildatenspeichern 6, 7 durch die Programmdaten 21 bis 30 verschiedener Softwarekomponenten 11 bis 20 zeigt, die durch eine Ausführungseinrichtung 3 beziehungsweise eine Prüfeinrichtung 4 der Datenverarbeitungseinrichtung 2 ausführbar sind.The declaration also includes additional reference to 3 , which shows the occupancy of a data memory 5 or of two partial data memories 6, 7 by the program data 21 to 30 of various software components 11 to 20, which can be executed by an execution device 3 or a testing device 4 of the data processing device 2.

Zum besseren Verständnis soll zunächst ein Überblick über das Verfahren gegeben werden, bevor auf die einzelnen Schritte des in 1 gezeigten Ausführungsbeispiels eingegangen wird. Zentral ist hierbei, dass bezüglich der auf der Ausführungseinrichtung auszuführenden Softwarekomponenten 11 bis 16 zwischen ersten Softwarekomponenten 11 bis 13, die eine hohe Safety-Relevanz aufweisen bzw. bestimmten ASIL Anfordereungen genügen sollen, und zweiten Komponenten 14, 15 für die diesbezüglich geringere Anforderungen gestellt werden, unterschieden wird. Daher wird beim Start der Datenverarbeitungseinrichtung 2 durch die Prüfeinrichtung 4 die Validierungsbedingung 32 geprüft, deren Erfüllung von den Programmdaten 21 bis 23 der ersten Softwarekomponenten 11 bis 13 abhängt, bevor mit der Ausführung der Programmdaten 21 bis 26 irgendeiner der Softwarekomponenten 11 bis 16 begonnen wird. Anders ausgedrückt, wird die Ausführungseinrichtung 3 erst nach Prüfung der ersten Validierungsbedingung gestartet.For a better understanding, an overview of the procedure will be given before the individual steps of the 1 shown embodiment. It is crucial here that, with regard to the software components 11 to 16 to be executed on the execution device, a distinction is made between first software components 11 to 13, which have a high safety relevance or are intended to satisfy certain ASIL requirements, and second components 14, 15, for which lower requirements are made in this regard. Therefore, when the data processing device 2 is started, the test device 4 checks the validation condition 32, the fulfillment of which depends on the program data 21 to 23 of the first software components 11 to 13, before the execution of the program data 21 to 26 of any of the software components 11 to 16 begins. In other words, the execution device 3 is only started after the first validation condition has been checked.

Da die erste Validierungsbedingung nur die Programmdaten 21 bis 23 der ersten Softwarekomponenten 11 bis 13 auswertet, ist ein erheblich schnellerer Start der Ausführungseinrichtung 3 möglich, als dies der Fall wäre, wenn die Programmdaten 21 bis 26 aller Softwarekomponenten 11 bis 16, die durch die Ausführungseinrichtung ausgeführt werden können, vor dem Start geprüft würde. Die Validierung der zweiten Softwarekomponenten 14, 15 beziehungsweise von deren Programmdaten 24, 25 erfolgt somit erst nach dem Starten der Ausführungseinrichtung 3 unter Kontrolle der Prüfeinrichtung 4.Since the first validation condition only evaluates the program data 21 to 23 of the first software components 11 to 13, a considerably faster start of the execution device 3 is possible than would be the case if the program data 21 to 26 of all software components 11 to 16 that can be executed by the execution device were checked before the start. The validation The second software components 14, 15 or their program data 24, 25 are thus only activated after the execution device 3 has been started under the control of the test device 4.

Somit liegt nach dem Starten der Datenverarbeitungseinrichtung 2 beziehungsweise der Ausführungseinrichtung 3 zunächst ausschließlich bezüglich der ausgeführten ersten Softwarekomponenten 11 bis 13 ein definierter Systemzustand vor. Bezüglich der ausgeführten zweiten Softwarekomponenten 14, 15 wird erst nachträglich geprüft, ob diese fehlerhaft beziehungsweise manipuliert sind. Wie bereits im allgemeinen Teil detailliert diskutiert wurde, kann eine solche nachgelagerte Prüfung von Softwarekomponenten 14, 15 insbesondere dann zugelassen werden, wenn alle Funktionen, die auf den Fahrbetrieb einwirken beziehungsweise eine Safety-Relevanz aufweisen, durch die ersten Softwarekomponenten implementiert werden und nun nachgeordnete Funktionen, beispielsweise die Auswahl zwischen verschiedenen, an sich sicheren Konfigurationen oder die Prüfung, ob eine kostenpflichtige Funktion freigegeben ist, in den zweiten Softwarekomponenten implementiert sind.Thus, after starting the data processing device 2 or the execution device 3, a defined system state initially exists exclusively with regard to the executed first software components 11 to 13. With regard to the executed second software components 14, 15, it is only subsequently checked whether these are faulty or manipulated. As already discussed in detail in the general part, such a downstream test of software components 14, 15 can be permitted in particular if all functions that affect driving operation or are relevant to safety are implemented by the first software components and now downstream functions, for example the selection between different, inherently safe configurations or the check whether a paid function is released, are implemented in the second software components.

Somit kann es für die zweiten Softwarekomponenten ausreichend sein, bei Nichterfüllung der zweiten Validierungsbedingung die Datenverarbeitungseinrichtung nachträglich in einen Fehlerbetriebsmodus 36, in dem beispielsweise Teile der implementierten Funktionen abgeworfen werden können, zu versetzen beziehungsweise eine Fehlerinformation 37 in den Datenspeicher 5 zu speichern, um beispielsweise bei einem erneuten Start des Kraftfahrzeugs 1 bestimmte Funktionen zu sperren beziehungsweise entsprechende Informationen im Rahmen eines Service abrufen zu können, beispielsweise wenn potentielle Manipulationen garantierelevant sind.Thus, if the second validation condition is not met, it may be sufficient for the second software components to subsequently put the data processing device into an error operating mode 36 in which, for example, parts of the implemented functions can be discarded, or to store error information 37 in the data memory 5 in order to, for example, block certain functions when the motor vehicle 1 is restarted or to be able to retrieve corresponding information as part of a service, for example if potential manipulations are relevant to the warranty.

Im konkreten Ausführungsbeispiel gemäß 1 wird im Schritt S1 das Kraftfahrzeug 1 beziehungsweise die Datenverarbeitungseinrichtung 2 gestartet. Dies kann beispielsweise dann erfolgen, wenn ein Benutzer den Startknopf 39 oder eine Zündung betätigt.In the specific embodiment according to 1 In step S1, the motor vehicle 1 or the data processing device 2 is started. This can occur, for example, when a user presses the start button 39 or an ignition.

Im Schritt S2 werden durch die Prüfeinrichtung 4 zunächst die Programmdaten 27 der Softwarekomponente 17, die einen Bootloader implementiert, ausgeführt. Im Beispiel wird davon ausgegangen, dass der Inhalt des Teildatenspeichers 7 beziehungsweise zumindest die Programmdaten 27, 28 bereits aufgrund der Hardwareausgestaltung der Datenverarbeitungseinrichtung 2 manipulationssicher sind und somit als Root-of-Trust betrachtet werden können.In step S2, the test device 4 first executes the program data 27 of the software component 17, which implements a bootloader. In the example, it is assumed that the content of the partial data memory 7 or at least the program data 27, 28 are already tamper-proof due to the hardware design of the data processing device 2 and can therefore be considered as a root of trust.

Der Bootloader beziehungsweise die Softwarekomponente 17 startet anschließend im Schritt S3 zunächst ausschließlich die Validierungssoftwarekomponente 18, die zum Selbsttest der Prüfeinrichtung 4 beziehungsweise der durch diese auszuführenden Softwarekomponenten 17 bis 20 dient. Durch die Validierungssoftwarekomponente 18 wird hierbei eine Validierungsbedingung 31 ausgewertet, deren Erfüllung zumindest von den Programmdaten 29 der weiteren Validierungssoftwarekomponente 19 abhängt, die dazu dient, im Schritt S4 die Validierungsbedingung 32 bezüglich der ersten Softwarekomponenten 11 bis 13 auszuwerten.The bootloader or the software component 17 then starts, in step S3, initially only the validation software component 18, which serves for the self-test of the test device 4 or the software components 17 to 20 to be executed by it. The validation software component 18 evaluates a validation condition 31, the fulfillment of which depends at least on the program data 29 of the further validation software component 19, which serves to evaluate the validation condition 32 with regard to the first software components 11 to 13 in step S4.

Bevorzugt werden im Rahmen der Validierungsbedingung 31 die Programmdaten 27 bis 30 aller durch die Prüfeinrichtung 4 auszuführenden Softwarekomponenten 17 bis 20 validiert. Diese Validierung sowie die später noch erläuterte Validierung der Softwarekomponenten 11 bis 16 kann insbesondere durch ein kryptografisches Validierungsverfahren erfolgen, bei dem beispielsweise Softwaresignaturen geprüft werden können.Preferably, within the scope of the validation condition 31, the program data 27 to 30 of all software components 17 to 20 to be executed by the test device 4 are validated. This validation as well as the validation of the software components 11 to 16 explained later can be carried out in particular by a cryptographic validation process in which, for example, software signatures can be checked.

Ist die Validierungsbedingung 31 nicht erfüllt, so deutet dies auf Fehler oder Manipulationen in den Programmdaten 27 bis 30 hin, die durch die Prüfeinrichtung 4 ausgeführt werden sollen. Da bezüglich dieser Programmdaten 27 bis 30 hohe Anforderungen an die Manipulations- beziehungsweise Fehlersicherheit zu stellen sind, wird das Verfahren bei Nichterfüllung der Validierungsbedingung 31 im Schritt S8 unmittelbar beendet.If the validation condition 31 is not met, this indicates errors or manipulations in the program data 27 to 30 that are to be carried out by the test device 4. Since high demands are placed on the manipulation or error security with regard to these program data 27 to 30, the method is immediately terminated in step S8 if the validation condition 31 is not met.

Dies kann in Fällen, in denen die Datenverarbeitungseinrichtung 2 ausschließlich abwerfbare Funktionen, beispielsweise ein nicht notwendig erforderliches Fahrerassistenzsystem, implementiert, ausschließlich zu einem Funktionsabwurf führen, der beispielsweise über eine Benutzerschnittstelle 10 an einen Nutzer des Kraftfahrzeugs 1 übermittelt werden kann. Ist die Funktion der Datenverarbeitungseinrichtung 2 hingegen für den Fahrbetrieb des Kraftfahrzeugs 1 notwendig erforderlich, so erfolgt im Schritt S8 eine vollständige Stilllegung des Kraftfahrzeugs 1 beziehungsweise ein Fahrtbeginn wird unterdrückt.In cases where the data processing device 2 only implements functions that can be dropped, for example a driver assistance system that is not necessarily required, this can only lead to a function being dropped, which can be transmitted to a user of the motor vehicle 1, for example, via a user interface 10. If, however, the function of the data processing device 2 is necessary for the operation of the motor vehicle 1, the motor vehicle 1 is completely shut down in step S8, or the start of a journey is suppressed.

Wird die Validierungsbedingung 31 hingegen erfüllt, so startet die Validierungssoftwarekomponente 18 im Schritt S4 die weitere Softwarevalidierungskomponente 19 auf der Prüfeinrichtung 18, die dazu dient, die auf der Ausführungseinrichtung 3 auszuführenden ersten Softwarekomponenten 11 bis 13 zu validieren.If, however, the validation condition 31 is met, the validation software component 18 starts the further software validation component 19 on the test device 18 in step S4, which serves to validate the first software components 11 to 13 to be executed on the execution device 3.

Da es sich bei den ersten Softwarekomponenten 12, 13 im Beispiel um identische Kopien 34, 35 der gleichen Programmdaten 22, 23 handelt und die Kopie 35, wie später noch erläutert wird, nur als Rückfalllösung genutzt wird, berücksichtigt die Validierungsbedingung 32 im Schritt S4 zunächst ausschließlich die Programmdaten 21, 22 der ersten Softwarekomponenten 11, 12. Ermittelt die Softwarevalidierungskomponente 19, dass die Validierungsbedingung 32 in Schritt S4 erfüllt ist, beispielsweise weil beide Softwarekomponenten 11, 12 eine gültige Signatur aufweisen, so löst die Prüfeinrichtung 4 im Schritt S5 einerseits das Ausführen der ersten Softwarekomponenten 11, 12 und andererseits das Ausführen der zweiten Softwarekomponenten 14, 15 durch die Ausführungseinrichtung 3 aus. Hierbei wird die Ausführungseinrichtung 3 insbesondere durch die Prüfeinrichtung 4 derart zurückgesetzt, dass nach dem Zurücksetzen zunächst die erste Softwarekomponente 11 ausgeführt wird, die ein Bootloader sein kann, der die erste Softwarekomponente 12 und die zweiten Softwarekomponenten 14, 15 nachlädt und unter Kontrolle der Prüfeinrichtung 4 startet.Since the first software components 12, 13 in the example are identical copies 34, 35 of the same program data 22, 23 and the copy 35, as will be explained later, only serves as If a fallback solution is used, the validation condition 32 in step S4 initially takes into account exclusively the program data 21, 22 of the first software components 11, 12. If the software validation component 19 determines that the validation condition 32 in step S4 is met, for example because both software components 11, 12 have a valid signature, the testing device 4 triggers the execution of the first software components 11, 12 and the execution of the second software components 14, 15 by the execution device 3 in step S5. In this case, the execution device 3 is reset in particular by the testing device 4 in such a way that after the reset, the first software component 11 is executed first, which can be a bootloader that reloads the first software component 12 and the second software components 14, 15 and starts them under the control of the testing device 4.

Die zweiten Softwarekomponenten 14, 15 beziehungsweise deren Programmdaten 24, 25 werden im Schritt S6 erst nachträglich validiert, wobei im Beispiel die Softwarevalidierungskomponente 19 auch die Validierungsbedingung 33 auswertet, deren Erfüllung von den Programmdaten 24, 25 der zweiten Softwarekomponenten 14, 15 abhängt.The second software components 14, 15 or their program data 24, 25 are only subsequently validated in step S6, wherein in the example the software validation component 19 also evaluates the validation condition 33, the fulfillment of which depends on the program data 24, 25 of the second software components 14, 15.

Parallel zur Abarbeitung der Programmdaten 29 zur Prüfung der Validierungsbedingung 33 können durch die Prüfeinrichtung 4 bereits die Programmdaten 30 der Softwarekomponente 20 ausgeführt werden, die beispielsweise Funktionen der Prüfeinrichtung im laufenden Betrieb der Datenverarbeitungseinrichtung 2 implementiert. Somit ist die Ausführungseinrichtung 3 und somit die Datenverarbeitungseinrichtung 2 bereits vollständig einsatzbereit, sodass die potentiell zeitaufwendige Auswertung der Validierungsbedingung 33 im Fahrbetrieb des Kraftfahrzeugs 1 erfolgen kann, ohne den Nutzungskomfort des Kraftfahrzeugs 1 zu beeinträchtigen.In parallel with the processing of the program data 29 for checking the validation condition 33, the test device 4 can already execute the program data 30 of the software component 20, which, for example, implements functions of the test device during ongoing operation of the data processing device 2. The execution device 3 and thus the data processing device 2 are thus already completely ready for use, so that the potentially time-consuming evaluation of the validation condition 33 can take place while the motor vehicle 1 is in operation, without impairing the comfort of use of the motor vehicle 1.

Dies ist insbesondere möglich, da, wie bereits erläutert, die zweiten Softwarekomponenten 14, 15 nur Funktionen implementieren, die den Fahrbetrieb nicht unmittelbar betreffen beziehungsweise nicht safety-relevant sind, sodass es ausreichend ist, diese Funktionen bei fehlgeschlagener Validierung nachträglich abzuwerfen beziehungsweise eine Fehlerinformation zu speichern.This is possible in particular because, as already explained, the second software components 14, 15 only implement functions that do not directly affect driving operation or are not safety-relevant, so that it is sufficient to subsequently discard these functions or to store error information if validation fails.

Bei Nichterfüllung der Validierungsbedingung 33 erfolgt ein Wechsel in einen Fehlerbetriebsmodus 36, in dem beispielsweise einzelne Funktionen, beispielsweise Bedienoptionen abgeworfen werden, und/oder es wird eine Fehlerinformation 37 im Datenspeicher 5 gespeichert, um beispielsweise mögliche Manipulationen beziehungsweise Fehler im Rahmen eines Services, einer Wartung oder bei der Abwicklung einer Garantieleistung berücksichtigen zu können.If the validation condition 33 is not met, a change to an error operating mode 36 takes place in which, for example, individual functions, such as operating options, are discarded and/or error information 37 is stored in the data memory 5 in order to be able to take into account, for example, possible manipulations or errors in the context of a service, maintenance or when processing a guarantee.

Unabhängig davon, ob die Validierungsbedingung 33 erfüllt war, endet das Verfahren im Schritt S7 mit einem Betrieb des Kraftfahrzeugs 1 beziehungsweise der Datenverarbeitungseinrichtung 2, bei dem zumindest jene Funktionen, die safety-relevant sind, in definierter und geprüfter Weise bereitgestellt werden.Regardless of whether the validation condition 33 was fulfilled, the method ends in step S7 with an operation of the motor vehicle 1 or the data processing device 2, in which at least those functions that are safety-relevant are provided in a defined and tested manner.

Wie bereits im allgemeinen Teil erläutert wurde, kann die erste Softwarekomponente 12 beispielsweise Funktionen bereitstellen, die unmittelbar in den Fahrbetrieb eingreifen beziehungsweise die bestimmte ASIL-Anforderungen aufweisen. Im Beispiel kann die Datenverarbeitungseinrichtung beispielsweise eine elektronische Spurkontrolle implementieren, wobei die Ansteuerung der Bremsen 8, 9, die Erfassung von Sensordaten von nicht gezeigten Sensoren, die Kommunikationsabsicherung der Kommunikation mit anderen Fahrzeugkomponenten und der konkrete Steueralgorithmus als erste Softwarekomponente 12 implementiert sind. Weitere Funktionen, beispielsweise die Auswahl von verschiedenen, an sich sicheren Eingriffsprofilen über die Benutzerschnittstelle 10, können in die zweiten Softwarekomponenten 14, 15 ausgelagert sein.As already explained in the general part, the first software component 12 can, for example, provide functions that directly intervene in driving operations or that have certain ASIL requirements. In the example, the data processing device can, for example, implement electronic lane control, with the control of the brakes 8, 9, the acquisition of sensor data from sensors not shown, the communication security of the communication with other vehicle components and the specific control algorithm being implemented as the first software component 12. Other functions, for example the selection of various, inherently safe intervention profiles via the user interface 10, can be outsourced to the second software components 14, 15.

Sollte im Schritt S4 die Validierungsbedingung 32 zunächst nicht erfüllt sein, beispielsweise da die Programmdaten 21, 22 nicht in erforderlicher Weise signiert sind beziehungsweise die Signatur ungültig ist, wird im Schritt S9 zunächst die Validierungsbedingung 32 erneut geprüft, wobei jedoch die Kopie 34 durch die Kopie 35 ersetzt wird, also die erste Softwarekomponente 13 statt der ersten Softwarekomponente 12 verwendet wird. Somit kann auch dann, wenn die Programmdaten 22 der Kopie 34 manipuliert oder beschädigt sind, durch Nutzung der Kopie 35 potentiell ein robuster Betrieb der Datenverarbeitungseinrichtung 2 erreicht werden. Optional kann bei Nutzung der Kopie 35 und somit anfänglicher Nichterfüllung der Validierungsbedingung 32 im Schritt S4 im Datenspeicher 5 eine Fehlerinformation gespeichert werden, um beispielsweise entsprechende Fehler beziehungsweise Manipulationen der Kopie 34 im Rahmen eines Softwareupdates oder eines Kraftfahrzeugservice zu korrigieren.If the validation condition 32 is not initially met in step S4, for example because the program data 21, 22 are not signed in the required manner or the signature is invalid, the validation condition 32 is first checked again in step S9, but the copy 34 is replaced by the copy 35, i.e. the first software component 13 is used instead of the first software component 12. Thus, even if the program data 22 of the copy 34 is manipulated or damaged, robust operation of the data processing device 2 can potentially be achieved by using the copy 35. Optionally, when the copy 35 is used and the validation condition 32 is thus initially not met in step S4, error information can be stored in the data memory 5 in order, for example, to correct corresponding errors or manipulations of the copy 34 as part of a software update or a motor vehicle service.

Wird im Schritt S9 erkannt, dass die Programmdaten 21, 23 der ersten Softwarekomponenten 11, 13 die Validierungsbedingung 32 erfüllen, kann im Schritt S10 die Prüfeinrichtung 4 ein Ausführen der ersten und zweiten Softwarekomponenten 11, 13, 14, 15 durch die Ausführungseinrichtung 3 auslösen. Dies kann, abgesehen vom Ersetzen der Softwarekomponente 12 durch die Softwarekomponente 13, wie zu Schritt S5 erläutert erfolgen. Die weiteren Schritte können sich anschließend unverändert anschließen.If it is recognized in step S9 that the program data 21, 23 of the first software components 11, 13 satisfy the validation condition 32, the test device 4 can trigger an execution of the first and second software components 11, 13, 14, 15 by the execution device 3 in step S10. This can, apart from replacing the software component 12 with the software component component 13, as explained in step S5. The further steps can then follow unchanged.

Wird im Schritt S9 die Validierungsbedingung 32 erneut nicht erfüllt, könnte prinzipiell, wie zu Schritt S8 erläutert, die Funktionalität der Datenverarbeitungseinrichtung 2 vollständig abgeworfen werden beziehungsweise ein Betrieb des Kraftfahrzeugs 1 unterbunden werden. In vielen Fällen ist es jedoch möglich, eine verringerte Funktionalität der Datenverarbeitungseinrichtung 2 auch dann bereitzustellen, wenn die Softwarekomponenten 12, 13 beide nicht den Validierungsanforderungen entsprechen.If the validation condition 32 is not met again in step S9, the functionality of the data processing device 2 could in principle be completely discarded or operation of the motor vehicle 1 prevented, as explained in step S8. In many cases, however, it is possible to provide a reduced functionality of the data processing device 2 even if the software components 12, 13 both do not meet the validation requirements.

Beispielsweise kann es bei einer Rückstufung der Funktion der Datenverarbeitungseinrichtung 2 von der Implementierung eines ESP-Systems zur Implementierung eines ABS-Systems ausreichend sein, eine Validierung der diese Funktion implementierenden Programmdaten erst nach dem Start des Kraftfahrzeugs 1 beziehungsweise der Datenverarbeitungseinrichtung 2 durchzuführen, beispielsweise weil bei der rückgestuften Funktionalität geringere ASIL-Anforderungen resultieren können. Ist eine solche Rückstufung möglich, kann im Schritt S11 nach erneuter Nichterfüllung der Validierungsbedingung 32 im Schritt S9 statt den zweiten Softwarekomponenten 14, 15 eine dritte Softwarekomponente 16 durch die Prüfeinrichtung 4 auf der Ausführungseinrichtung 3 gestartet werden, die eine solche verringerte Funktionalität bereitstellst. Die weiteren Schritte können sich dann im Wesentlichen unverändert anschließen, wobei im Schritt S6 statt der Validierungsbedingung 33 zur Validierung der zweiten Softwarekomponenten 14, 15 eine Validierungsbedingung 38 zur Validierung der dritten Softwarekomponente 16 ausgeführt wird.For example, if the function of the data processing device 2 is downgraded from the implementation of an ESP system to the implementation of an ABS system, it may be sufficient to carry out a validation of the program data implementing this function only after the motor vehicle 1 or the data processing device 2 has been started, for example because the downgraded functionality may result in lower ASIL requirements. If such a downgrade is possible, in step S11, after the validation condition 32 in step S9 is again not met, a third software component 16 can be started by the test device 4 on the execution device 3 instead of the second software components 14, 15, which provides such a reduced functionality. The further steps can then follow essentially unchanged, with a validation condition 38 for validating the third software component 16 being executed in step S6 instead of the validation condition 33 for validating the second software components 14, 15.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE 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 listed 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 accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • EP 3291087 A1 [0003]EP 3291087 A1 [0003]

Claims (11)

Verfahren zum Starten einer Datenverarbeitungseinrichtung (2), wobei zunächst durch eine Prüfeinrichtung (4) der Datenverarbeitungseinrichtung (2) geprüft wird, ob eine erste Validierungsbedingung (32) erfüllt ist, deren Erfüllung von in einem Datenspeicher (5) der Datenverarbeitungseinrichtung (2) gespeicherten Programmdaten (21, 22, 23) wenigstens einer ersten Softwarekomponente (11, 12, 13) abhängt, wonach bei Erfüllung der ersten Validierungsbedingung (32) die Prüfeinrichtung ein Ausführen der ersten Softwarekomponente (11, 12, 13) oder wenigstens einer der ersten Softwarekomponenten (11, 12, 13) durch eine Ausführungseinrichtung (3) der Datenverarbeitungseinrichtung auslöst, dadurch gekennzeichnet, dass die Prüfeinrichtung (4) nach Erfüllung der ersten Validierungsbedingung (32) zusätzlich das Ausführen wenigstens einer zweiten Softwarekomponente (14, 15), deren Programmdaten (24, 25) in dem Datenspeicher (5) der Datenverarbeitungseinrichtung (2) gespeichert sind, durch die Ausführungseinrichtung (3) auslöst, wobei durch die oder eine weitere Prüfeinrichtung (4) der Datenverarbeitungseinrichtung (2) geprüft wird, ob die Programmdaten (24, 25) der zweiten Softwarekomponente (14, 15) eine zweite Validierungsbedingung (33) erfüllen, wobei bei Nichterfüllung der zweiten Validierungsbedingung (33) die Datenverarbeitungseinrichtung (2) in einen Fehlerbetriebsmodus (36) versetzt und/oder eine Fehlerinformation (37) in dem Datenspeicher (5) gespeichert wird, wobei die Prüfeinrichtung (4) die Ausführung der jeweiligen zweiten Softwarekomponente (14, 15) auslöst, bevor die Prüfung der zweiten Validierungsbedingung (33) beginnt oder abgeschlossen ist.Method for starting a data processing device (2), wherein firstly a test device (4) of the data processing device (2) checks whether a first validation condition (32) is fulfilled, the fulfillment of which depends on program data (21, 22, 23) of at least one first software component (11, 12, 13) stored in a data memory (5) of the data processing device (2), after which, if the first validation condition (32) is fulfilled, the test device triggers an execution of the first software component (11, 12, 13) or at least one of the first software components (11, 12, 13) by an execution device (3) of the data processing device, characterized in that the test device (4) after fulfilling the first validation condition (32) additionally triggers the execution of at least one second software component (14, 15), the program data (24, 25) of which are stored in the data memory (5) of the data processing device (2), by which Execution device (3), wherein the or a further testing device (4) of the data processing device (2) checks whether the program data (24, 25) of the second software component (14, 15) satisfy a second validation condition (33), wherein if the second validation condition (33) is not satisfied, the data processing device (2) is placed in an error operating mode (36) and/or error information (37) is stored in the data memory (5), wherein the testing device (4) triggers the execution of the respective second software component (14, 15) before the test of the second validation condition (33) begins or is completed. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass wenigstens zwei Kopien (34, 35) oder Varianten der ersten Softwarekomponente (11, 12, 13) oder wenigstens einer der ersten Softwarekomponenten (11, 12, 13) in dem Datenspeicher (5) gespeichert sind, wobei durch die Prüfeinrichtung (4) die erste Validierungsbedingung (32) zunächst für die erste Kopie (34) oder Variante ausgewertet wird, wonach bei Erfüllung der ersten Validierungsbedingung (32) durch die erste Kopie (34) oder Variante die Ausführung der ersten Kopie (34) oder Variante ausgelöst wird und anderenfalls die erste Validierungsbedingung (32) für die zweite Kopie (35) oder Variante ausgewertet wird und bei Erfüllung der Validierungsbedingung (32) für die zweite Kopie (35) oder Variante die Ausführung der zweiten Kopie (35) oder Variante ausgelöst wird.Procedure according to Claim 1 , characterized in that at least two copies (34, 35) or variants of the first software component (11, 12, 13) or at least one of the first software components (11, 12, 13) are stored in the data memory (5), wherein the first validation condition (32) is initially evaluated for the first copy (34) or variant by the testing device (4), after which, if the first validation condition (32) is fulfilled by the first copy (34) or variant, the execution of the first copy (34) or variant is triggered and otherwise the first validation condition (32) is evaluated for the second copy (35) or variant and, if the validation condition (32) is fulfilled for the second copy (35) or variant, the execution of the second copy (35) or variant is triggered. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei Nichterfüllung der ersten Validierungsbedingung (32) die Prüfeinrichtung (4) statt der Ausführung der zweiten Softwarekomponente (11, 12, 13) oder wenigstens einer der zweiten Softwarekomponenten (11, 12, 13) die Ausführung einer jeweiligen dritten Softwarekomponente (16), deren Programmdaten (26) in dem Datenspeicher (5) gespeichert sind, durch die Ausführungseinrichtung (3) auslöst.Procedure according to Claim 1 or 2 , characterized in that if the first validation condition (32) is not fulfilled, the testing device (4) triggers the execution of a respective third software component (16), the program data (26) of which are stored in the data memory (5), by the execution device (3) instead of the execution of the second software component (11, 12, 13) or at least one of the second software components (11, 12, 13). Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass durch die oder die weitere oder eine dritte Prüfeinrichtung (4) der Datenverarbeitungseinrichtung (2) geprüft wird, ob die Programmdaten (26) der dritten Softwarekomponente (16) eine dritte Validierungsbedingung (38) erfüllen, wobei bei Nichterfüllung der dritten Validierungsbedingung (38) die Datenverarbeitungseinrichtung in den Fehlerbetriebsmodus (36) versetzt und/oder die Fehlerinformation (37) in dem Datenspeicher (5) gespeichert wird, wobei die Prüfeinrichtung (4) die Ausführung der jeweiligen dritten Softwarekomponente (16) auslöst, bevor die Prüfung der dritten Validierungsbedingung (38) beginnt oder abgeschlossen ist.Procedure according to Claim 3 , characterized in that the or the further or a third testing device (4) of the data processing device (2) checks whether the program data (26) of the third software component (16) satisfy a third validation condition (38), wherein if the third validation condition (38) is not satisfied, the data processing device is put into the error operating mode (36) and/or the error information (37) is stored in the data memory (5), wherein the testing device (4) triggers the execution of the respective third software component (16) before the test of the third validation condition (38) begins or is completed. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Datenverarbeitungseinrichtung (2) eine Datenverarbeitungseinrichtung (2) eines Kraftfahrzeugs (1) ist, wobei ein Fahrbetrieb des Kraftfahrzeugs (1) und/oder der Betrieb wenigstens eines Fahrerassistenzsystems erst nach Auswertung, und insbesondere erst nach Erfüllung, der ersten Validierungsbedingung (32) freigegeben werden, und/oder wobei der Fahrbetrieb und/oder der Betrieb des Fahrerassistenzsystems vor der Auswertung der zweiten Validierungsbedingung (33) freigegeben werden.Method according to one of the preceding claims, characterized in that the data processing device (2) is a data processing device (2) of a motor vehicle (1), wherein a driving operation of the motor vehicle (1) and/or the operation of at least one driver assistance system are only released after evaluation, and in particular only after fulfillment, of the first validation condition (32), and/or wherein the driving operation and/or the operation of the driver assistance system are released before the evaluation of the second validation condition (33). Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Datenverarbeitungseinrichtung (2) eine Datenverarbeitungseinrichtung (2) des oder eines Kraftfahrzeugs (1) ist, wobei die erste Softwarekomponente (11, 12, 13) oder wenigstens eine der ersten Softwarekomponenten (11, 12, 13) wenigstens eine Funktion implementiert, die in den Fahrbetrieb eingreift und/oder die eine Sicherheitsanforderungsstufe von zumindest ASIL A aufweist.Method according to one of the preceding claims, characterized in that the data processing device (2) is a data processing device (2) of the or a motor vehicle (1), wherein the first software component (11, 12, 13) or at least one of the first software components (11, 12, 13) implements at least one function which intervenes in the driving operation and/or which has a safety requirement level of at least ASIL A. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die erste Softwarekomponente (11, 12, 13) oder eine der ersten Softwarekomponenten (11, 12, 13) ein Bootloader der Ausführungseinrichtung (3) ist.Method according to one of the preceding claims, characterized in that the first software component (11, 12, 13) or one of the first software components (11, 12, 13) is a bootloader of the execution device (3). Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die erste Validierungsbedingung (32) durch eine durch die Prüfeinrichtung (4) ausgeführte Validierungssoftwarekomponente (19) ausgewertet wird, wobei die erste Validierungsbedingung (32) nur dann erfüllbar ist, wenn die Programmdaten (29) der Validierungssoftwarekomponente (19) eine vierte Validierungsbedingung (31) erfüllen, die insbesondere durch die Prüfeinrichtung (4) ausgewertet wird.Method according to one of the preceding claims, characterized in that the first validation condition (32) is evaluated by a validation software component (19) executed by the testing device (4), wherein the first validation condition (32) can only be fulfilled if the program data (29) of the validation software component (19) must satisfy a fourth validation condition (31), which is evaluated in particular by the testing device (4). Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Prüfeinrichtung (4) die Ausführungseinrichtung (3) zum Ausführen der ersten Softwarekomponente (11, 12, 13) oder einer zuerst ausgeführten der ersten Softwarekomponenten (11, 12, 13), die insbesondere einen Bootloader implementiert, zurücksetzt, und/oder dass die oder eine zuerst ausgeführte der ersten Softwarekomponenten (11, 12, 13) wenigstens eine weitere der ersten Softwarekomponenten (11, 12, 13) startet.Method according to one of the preceding claims, characterized in that the testing device (4) resets the execution device (3) for executing the first software component (11, 12, 13) or a first-executed one of the first software components (11, 12, 13), which in particular implements a bootloader, and/or that the or a first-executed one of the first software components (11, 12, 13) starts at least one further one of the first software components (11, 12, 13). Datenverarbeitungseinrichtung mit einem Datenspeicher (5), wenigstens einer Prüfeinrichtung (4) und wenigstens einer Ausführungseinrichtung (3), dadurch gekennzeichnet, dass die Prüfeinrichtung (4) und die Ausführungseinrichtung (3) zur Ausführung des Verfahrens nach einem der vorangehenden Ansprüche eingerichtet sind.Data processing device with a data memory (5), at least one testing device (4) and at least one execution device (3), characterized in that the testing device (4) and the execution device (3) are set up to carry out the method according to one of the preceding claims. Kraftfahrzeug, dadurch gekennzeichnet, dass es eine Datenverarbeitungseinrichtung (2) nach Anspruch 10 umfasst.Motor vehicle, characterized in that it comprises a data processing device (2) according to Claim 10 includes.
DE102022125619.7A 2022-10-05 2022-10-05 Method for starting a data processing device, data processing device and motor vehicle Pending DE102022125619A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022125619.7A DE102022125619A1 (en) 2022-10-05 2022-10-05 Method for starting a data processing device, data processing device and motor vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022125619.7A DE102022125619A1 (en) 2022-10-05 2022-10-05 Method for starting a data processing device, data processing device and motor vehicle

Publications (1)

Publication Number Publication Date
DE102022125619A1 true DE102022125619A1 (en) 2024-04-11

Family

ID=90355281

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022125619.7A Pending DE102022125619A1 (en) 2022-10-05 2022-10-05 Method for starting a data processing device, data processing device and motor vehicle

Country Status (1)

Country Link
DE (1) DE102022125619A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3291087A1 (en) 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
EP3599567A1 (en) 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Device and method for an integrity check for one or more equipment components
DE102021208865A1 (en) 2020-08-13 2022-02-17 Robert Bosch Gesellschaft mit beschränkter Haftung ACCELERATED VERIFICATION OF AUTOMOTIVE SOFTWARE IN VEHICLES

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3291087A1 (en) 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
EP3599567A1 (en) 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Device and method for an integrity check for one or more equipment components
DE102021208865A1 (en) 2020-08-13 2022-02-17 Robert Bosch Gesellschaft mit beschränkter Haftung ACCELERATED VERIFICATION OF AUTOMOTIVE SOFTWARE IN VEHICLES

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BIELAWSKI, Russ [et al.]: Cybersecurity of Firmware Updates (Report No. DOT HS 812 807). Tech Report. United States. Department of Transportation. National Highway Traffic Safety Administration, 2020. URL: https://rosap.ntl.bts.gov/view/dot/55729/dot_55729_DS1.pdf [abgerufen am 04.07.2023]

Similar Documents

Publication Publication Date Title
DE102007045398A1 (en) Integrated microprocessor system for safety-critical regulations
EP1854007A2 (en) Method, operating system, and computing device for processing a computer program
EP2907072B1 (en) Method for controlling separated running of linked program blocks and control device
DE102018214999A1 (en) Device for securing diagnostic commands to a control unit and corresponding motor vehicle
WO2002074596A1 (en) Method for actuating a component of a distributed security system
EP1588380B1 (en) Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method
DE102013021231A1 (en) Method for operating an assistance system of a vehicle and vehicle control unit
DE102022125619A1 (en) Method for starting a data processing device, data processing device and motor vehicle
DE102019004612A1 (en) Method for operating a vehicle with a control device
DE102013221098A1 (en) VEHICLE CONTROL UNIT
WO2006108849A1 (en) Method and computer unit for error recognition and error logging in a memory
WO2022042950A1 (en) Device for capturing and processing a measurement value of a sensor in a motor vehicle
DE10131577A1 (en) Process for protecting a microcomputer system against manipulation of its program
DE102013202961A1 (en) Method for monitoring stack memory in operating system of control unit of motor vehicle, involves carrying out predefined action if characteristic parameters of stack memory before and after execution of program codes are not identical
WO2006136189A1 (en) Method and apparatus for monitoring unauthorized access to the memory of an arithmetic unit, especially in a motor vehicle
DE102022128183B3 (en) Method for starting a data processing device, data processing device and motor vehicle
DE102009002898A1 (en) Method for actualizing controller of vehicle, involves providing comparative results based on comparison of two conditions, and accomplishing actualization of controller based on one of comparative results
EP1595212A2 (en) Method and device for monitoring an electronic circuit
DE102018219700B4 (en) Control device
DE102017208872A1 (en) Electronic control unit
EP1248965B1 (en) Method for preventing malfunctions in a signal processing system, and a processor system
DE102019208129B4 (en) Electronic control unit
DE10131300B4 (en) Method for protecting a microcomputer system against manipulation of data stored in a memory array and microcomputer system
WO2009103728A1 (en) Method and device for storing information data
DE102022128804A1 (en) Method and system for updating operating software of subcomponents of a motor vehicle

Legal Events

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