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 PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 89
- 238000010200 validation analysis Methods 0.000 claims abstract description 85
- 230000015654 memory Effects 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims description 40
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000013459 approach Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000013514 software validation Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
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
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 in2 gezeigten Datenverarbeitungseinrichtung vorgehaltene Softwarekomponenten.
-
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 in2 software components stored in the data processing facility shown.
Die Erklärung erfolgt zudem mit zusätzlichem Bezug auf
Zum besseren Verständnis soll zunächst ein Überblick über das Verfahren gegeben werden, bevor auf die einzelnen Schritte des in
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
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
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
Im konkreten Ausführungsbeispiel gemäß
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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 |
-
2022
- 2022-10-05 DE DE102022125619.7A patent/DE102022125619A1/en active Pending
Patent Citations (3)
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)
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 | |
DE102018214999A1 (en) | Device for securing diagnostic commands to a control unit and corresponding motor vehicle | |
EP2907072B1 (en) | Method for controlling separated running of linked program blocks and control device | |
EP1401690A1 (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 | |
DE102011054204A1 (en) | Electronic control unit for controlling electrical power steering system of vehicle, has control unit stopping controlling of system based on data in which two-bit error is detected when number of interruption processes exceeds threshold | |
EP1854007A2 (en) | Method, operating system, and computing device for processing a computer program | |
DE102022125619A1 (en) | Method for starting a data processing device, data processing device and motor vehicle | |
DE102013021231A1 (en) | Method for operating an assistance system of a vehicle and vehicle control unit | |
WO2006108849A1 (en) | Method and computer unit for error recognition and error logging in a memory | |
DE102019004612A1 (en) | Method for operating a vehicle with a control device | |
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 | |
WO2022042950A1 (en) | Device for capturing and processing a measurement value of a sensor 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 | |
DE102023101503A1 (en) | Method for starting a data processing device, data processing device and motor vehicle | |
EP1248965B1 (en) | Method for preventing malfunctions in a signal processing system, and a processor system | |
DE102018219700B4 (en) | Control device | |
DE10131300B4 (en) | Method for protecting a microcomputer system against manipulation of data stored in a memory array and microcomputer system | |
DE102017208872A1 (en) | Electronic control unit | |
DE102019208129B4 (en) | Electronic control unit | |
EP1246062B1 (en) | Method of operating a processor-controlled system | |
DE102022128804A1 (en) | Method and system for updating operating software of subcomponents of a motor vehicle | |
DE102023203238A1 (en) | Method for operating a computing unit in a secure operating mode | |
EP4275138A1 (en) | Method for checking digital signatures, vehicle computing unit and vehicle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication |