DE102022201901A1 - Mitigation einer manipulation von software eines fahrzeugs - Google Patents

Mitigation einer manipulation von software eines fahrzeugs Download PDF

Info

Publication number
DE102022201901A1
DE102022201901A1 DE102022201901.6A DE102022201901A DE102022201901A1 DE 102022201901 A1 DE102022201901 A1 DE 102022201901A1 DE 102022201901 A DE102022201901 A DE 102022201901A DE 102022201901 A1 DE102022201901 A1 DE 102022201901A1
Authority
DE
Germany
Prior art keywords
component
software
manipulation
vehicle
mitigating
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
DE102022201901.6A
Other languages
English (en)
Inventor
Manuel Jauss
Felix Hallaczek
Marcel Kneib
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022201901.6A priority Critical patent/DE102022201901A1/de
Priority to US18/165,649 priority patent/US20230267212A1/en
Priority to CN202310181849.2A priority patent/CN116639141A/zh
Priority to JP2023025765A priority patent/JP2023122639A/ja
Publication of DE102022201901A1 publication Critical patent/DE102022201901A1/de
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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • B60W2050/065Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot by reducing the computational load on the digital processor of the control computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren. Das Verfahren umfasst Erkennen der Möglichkeit einer Manipulation der Software einer ersten Komponente einer Mehrzahl von Komponenten eines Bordnetzwerks eines Fahrzeugs in einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software. Die zentrale Vorrichtung zur Mitigation einer Manipulation ist ein Teil des Bordnetzwerks ist und zur Mitigation von Software in jedem der Mehrzahl von Komponenten des Bordnetzwerkes ausgelegt. Das Verfahren umfasst weiterhin Einleiten einer Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente durch die zentrale Vorrichtung zur Mitigation einer Manipulation und Durchführen der Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente. Die Gegenmaßnahme gegen die Manipulation umfasst Rücksetzen der Software der ersten Komponente unter Verwendung unter Verwendung eines Sicherheits-Moduls der ersten Komponente und/oder eines unveränderlichen Moduls der ersten Komponente.

Description

  • Stand der Technik
  • In jüngerer Zeit werden Fahrzeuge in immer stärkerem Maß in offene Kontexte eingebunden (d.h., die Fahrzeuge weisen eine oder mehrere Schnittstellen auf, über die im Betrieb Daten empfangen und/oder gesendet werden, die wiederum für den Betrieb des Fahrzeugs verwendet werden). Zusätzlich nimmt die Komplexität der Komponenten der Fahrzeuge und insbesondere ihrer Software stetig zu. Die Software der Fahrzeuge wird außerdem in immer vielfältigerer Weise im Betrieb aktualisiert.
  • Als Folge dessen werden Möglichkeiten zur Manipulation der Software der Komponenten der Fahrzeuge vielfältiger.
  • In manchen Verfahren des Stands der Technik ist die Detektion und vor allem die Mitigation (d.h. Behebung, so dass ein definierter (sicherer) Zustand erreicht wird) von Manipulationen mit erheblichem Aufwand und somit Zeitverzug verbunden. Zum Beispiel kann im Rahmen eines Werkstattaufenthalts die manipulierte Software einer Komponente (z.B. eines Steuergeräts) zurückgesetzt und damit die Manipulation behoben werden. In anderen Techniken kann Software von einem entfernten Computer-System angefordert werden, mit Hilfe derer die manipulierte Software einer Komponente (z.B. eines Steuergeräts) zurückgesetzt und damit die Manipulation behoben wird. In beiden Fällen kann zwischen der Detektion der Manipulation und der Mitigation der Manipulation ein erheblicher Zeitraum liegen. Unter Umständen ist der Betrieb des Fahrzeugs in diesem Zeitraum gestört (z.B. ein vorbestimmtes Sicherheitskriterium wird nicht mehr erfüllt). In manchen Fällen kann das Fahrzeug nicht mehr fahrtüchtig oder seine Funktionalität massiv gestört sein. Daher sind verbesserte Techniken zur Mitigation der Manipulation von Software wünschenswert.
  • Offenbarung der Erfindung
  • Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren. Das Verfahren umfasst Erkennen der Möglichkeit einer Manipulation der Software einer ersten Komponente einer Mehrzahl von Komponenten eines Bordnetzwerks eines Fahrzeugs in einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software. Die zentrale Vorrichtung zur Mitigation einer Manipulation ist ein Teil des Bordnetzwerks ist und zur Mitigation von Software in jedem der Mehrzahl von Komponenten des Bordnetzwerkes ausgelegt. Das Verfahren umfasst weiterhin Einleiten einer Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente durch die zentrale Vorrichtung zur Mitigation einer Manipulation und Durchführen der Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente. Die Gegenmaßnahme gegen die Manipulation umfasst Rücksetzen der Software der ersten Komponente unter Verwendung eines Sicherheits-Moduls der ersten Komponente und/oder eines unveränderlichen Moduls der ersten Komponente.
  • Ein zweiter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein System, das dazu ausgelegt ist, das Verfahren gemäß dem ersten allgemeinen Aspekt auszuführen.
  • Ein dritter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Bordnetzwerk für ein Fahrzeug. Das Bordnetzwerk umfasst eine Mehrzahl von Komponenten, die eine erste Komponente beinhaltet und eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software. Das Bordnetzwerk ist dazu ausgelegt, das Verfahren gemäß dem ersten allgemeinen Aspekt auszuführen.
  • Ein vierter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Fahrzeug, das das System gemäß dem zweiten allgemeinen Aspekt umfasst und/oder ein Teil dessen ist und/oder das Bordnetzwerk gemäß dem dritten allgemeinen Aspekt umfasst.
  • Die Techniken der ersten bis vierten allgemeinen Aspekte der vorliegenden Offenbarung können in manchen Fällen einen oder mehrere der folgenden Vorteile haben.
  • Erstens kann in manchen Situationen erreicht werden, dass eine manipulierte Software einer Komponente sicher zurückgesetzt werden kann (z.B. durch eine nicht manipulierte Software-Komponente ersetzt werden kann). Die Verwendung eines Sicherheits-Moduls und/oder eines unveränderlichen Moduls der ersten Komponente beim Rücksetzen kann in manchen Fällen sicherstellen, dass ein Eindringling nicht (auch) den Rücksetzprozess kompromittieren kann. Das wird durch die Techniken der vorliegenden Offenbarung in manchen dadurch erreicht, dass ein Modul im Rücksetzvorgang eingesetzt wird, welches weniger leicht (im Idealfall gar nicht) von einem Eindringling kompromittiert werden kann. Diese Eigenschaft kann sowohl mittels eines Sicherheits-Moduls als auch mit einem unveränderlichen Modul geboten werden: Das Sicherheits-Modul (z.B. ein Hardware-Sicherheits-Modul, HSM) kann gegenüber den anderen Modulen der ersten Komponente über zusätzliche Sicherheitseinrichtungen verfügen und kann so schwerer zu manipulieren sein als die anderen Module. Ein unveränderliches Modul kann im Betrieb im Wesentlichen keine Änderungen seiner Software und/oder Funktionalität erlauben. Auch damit kann eine Manipulation dieses Moduls erschwert und im besten Fall ausgeschlossen werden. Die Module können in verschiedenen Weisen in dem Rücksetzprozess verwendet werden, bspw. können sie die Komponente in einen Rücksetz-Modus versetzen, der ein Rücksetzen der Software erlaubt. Zusätzlich oder alternativ können sie eine Software-Komponente für ein Rücksetzen entgegennehmen. In jedem Fall kann der jeweilige Vorgang gegen eine Manipulation abgesichert sein.
  • Zweitens (und als Folge des ersten Vorteils) ermöglichen die Techniken der vorliegenden Offenbarung den in manchen Fällen sicheren Einsatz einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software. Ein System mit einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software kann im Vergleich zu manchen Techniken des Stands der Technik leichter skaliert und/oder in älteren Fahrzeugen (die nicht gemäß dem neuesten Standard ausgelegt sind) eingesetzt werden. Zum Beispiel kann die zentrale Vorrichtung zur Mitigation einer Manipulation relativ einfach zur „Betreuung“ zusätzlicher Komponenten modifiziert werden. Die „betreuten“ Komponenten müssen dazu in manchen Fällen wenig oder gar nicht modifiziert werden, was den Einsatz in älteren Fahrzeugen erleichtert. Auch die zentrale Vorrichtung zur Mitigation einer Manipulation selbst kann in manchen Fällen durch ein Software-Update nachgerüstet werden. Zum Beispiel kann eine bestehende Komponente eines Fahrzeugs (bspw. eine zentrale Kommunikationsschnittstelle des Fahrzeugs oder ein Zentral-Computer des Fahrzeugs) mittels eines Software-Updates mit der (zusätzlichen) Funktion einer zentralen Vorrichtung zur Mitigation einer Manipulation versehen werden.
  • Einige Begriffe werden in der vorliegenden Offenbarung in folgender Weise verwendet:
    • Eine „Komponente“ (eines Bordnetzwerks) in der vorliegenden Offenbarung verfügt über eigene Hardwareressourcen, die zumindest einen Prozessor zum Ausführen von Befehlen und Speicher zum Ablegen zumindest einer Software-Komponente umfassen. Der Begriff „Prozessor“ umfasst auch Mehr-Kern-Prozessoren oder mehrere separate Bauteile, die die Aufgaben einer zentralen Verarbeitungseinheit eines elektronischen Geräts übernehmen (und sich diese ggf. teilen). Eine Komponente kann eigenständig Aufgaben ausführen (z.B. Messaufgaben, Überwachungsaufgaben, Steueraufgaben, Kommunikationsaufgaben und/oder andere Arbeitsaufgaben). Eine Komponente kann aber in manchen Beispielen auch von einer anderen Komponente gesteuert werden. Eine Komponente kann physisch abgegrenzt sein (z.B. mit einem eigenen Gehäuse) oder aber in ein übergeordnetes System integriert sein. Eine Komponente kann ein Steuergerät oder ein Kommunikationsgerät des Fahrzeugs sein. Eine Komponente kann ein eingebettetes System sein. Eine Komponente kann einen oder mehrere Mikrocontroller umfassen.
  • Ein „eingebettetes System“ ist eine Komponente, die in einen technischen Kontext eingebunden (eingebettet) ist. Dabei übernimmt die Komponente Messaufgaben, Überwachungsaufgaben, Steueraufgaben, Kommunikationsaufgaben und/oder andere Arbeitsaufgaben.
  • Ein „(dediziertes) Steuergerät“ ist eine Komponente, die (ausschließlich) eine Funktion eines Fahrzeugs steuert. Ein Steuergerät kann zum Beispiel eine Motorsteuerung, eine Steuerung eines Bremssystems oder eine Steuerung eines Assistenzsystems übernehmen. Eine „Funktion“ kann dabei auf verschiedenen Ebenen des Fahrzeugs definiert sein (z.B. kann für eine Funktion einen einzelnen Sensor oder Aktor, aber auch eine Vielzahl von Baugruppen, die zu einer größeren funktionalen Einheit zusammengefasst sind, eingesetzt werden).
  • Der Begriff „Software“ oder „Software-Komponente“ kann grundsätzlich jeder Teil einer Software einer Komponente (z.B. eines Steuergeräts) der vorliegenden Offenbarung sein. Insbesondere kann eine Software-Komponente eine Firmware-Komponente einer Komponente der vorliegenden Offenbarung sein. „Firmware“ ist eine Software, die die in (elektronischen) Komponenten eingebettet ist und dort grundlegende Funktionen leistet. Firmware ist funktional fest mit der jeweiligen Hardware der Komponente verbunden (so dass das eine nicht ohne das andere nutzbar ist). Sie kann in einem nicht-flüchtigen Speicher wie einem Flash-Speicher oder einem EEPROM gespeichert sein.
  • Der Begriff „Update-Information“ oder „Software-Update-Information“ umfasst jedwede Daten, die direkt oder nach entsprechenden Verarbeitungsschritten eine Software-Komponente einer Komponente gemäß der vorliegenden Offenbarung bilden. Die Update-Information kann lauffähigen Code enthalten oder noch zu kompilierenden Code (der in dem Speicher der entsprechenden Komponente abgelegt ist).
  • Der Begriff „Manipulation“ umfasst in der vorliegenden Offenbarung jede Veränderung einer Software einer Komponente eines Fahrzeugs. Die Veränderung kann die Folge eines Angriffs sein (d.h. der bewussten Einflussnahme eines Dritten), aber auch Folge einer zufälligen oder unbeabsichtigten Einwirkung.
  • Der Begriff „Fahrzeug“ umfasst jegliche Vorrichtungen, die Passagiere und/oder Fracht transportieren. Ein Fahrzeug kann ein Kraftfahrzeug (zum Beispiel ein PKW oder ein LKW) sein, aber auch ein Schienenfahrzeug. Allerdings können auch schwimmende und fliegende Vorrichtungen Fahrzeuge sein. Fahrzeuge können zumindest teilautonom operierend oder assistiert sein.
  • Ein „Bordnetzwerk“ kann jedes interne Netzwerk eines Fahrzeugs sein, über das Komponenten des Fahrzeugs kommunizieren. In manchen Beispielen ist ein Bordnetzwerk ein Nahbereichsnetzwerk. Ein Bordnetzwerk kann ein oder mehrere Nahbereichs-Kommunikationsprotokolle einsetzen (z.B. zwei oder mehr Nahbereichs-Kommunikationsprotokolle). Die Nahbereichs-Kommunikationsprotokolle können drahtlose oder drahtgebundene Kommunikationsprotokolle sein. Die Nahbereichs-Kommunikationsprotokolle können ein Bus-Protokoll umfassen (bspw. CAN, LIN, MOST, FlexRay oder Ethernet). Die Nahbereichs-Kommunikationsprotokolle können ein Bluetooth-Protokoll (z.B. Bluetooth 5 oder später) oder ein WLAN-Protokoll (z.B. ein Protokoll der IEEE-802.11-Familie, z.B. 802.11h oder ein späteres Protokoll) umfassen. Ein Bordnetzwerk kann Schnittstellen zur Kommunikation mit Systemen außerhalb des Fahrzeugs enthalten und somit auch in andere Netzwerke eingebunden sein. Die Systeme außerhalb des Fahrzeugs und die anderen Netzwerke sind jedoch nicht Teil des Bordnetzwerks.
  • Der Ausdruck „Erkennen einer Möglichkeit...“ besagt, dass bestimmte Begebenheiten (z.B. Signale oder deren Ausbeleiben) nach vorbestimmten Regeln interpretiert werden, um einen Zustand zu erkennen, in dem eine Manipulation der Software vorliegen kann.
  • Figurenliste
    • 1 ist ein Fluss-Diagramm, das die Techniken der vorliegenden Offenbarung illustriert.
    • 2 zeigt Komponenten eines Bordnetzwerk eines Fahrzeugs, in dem die Techniken der vorliegenden Offenbarung eingesetzt werden können.
    • 3 zeigt eine beispielhafte Komponente eines Bordnetzwerks.
    • 4 zeigt ein Flussdiagramm eines beispielhaften Verfahrens der vorliegenden Offenbarung.
    • 5 zeigt das Bordnetzwerk gemäß 2, in dem eine erste Komponente manipuliert wurde.
    • 6 zeigt das Bordnetzwerk gemäß 2, in dem die Manipulation der ersten Komponente behoben wurde.
  • Detaillierte Beschreibung
  • Zunächst werden in Bezug auf 1 bis 3 ein Fahrzeug und eine Komponente, in dem/der die Techniken der vorliegenden Offenbarung durchgeführt werden können und die grundlegenden Aspekte der Techniken der vorliegenden Offenbarung diskutiert. Ein Beispiel der Technik der vorliegenden Offenbarung wird in Bezug auf 4 diskutiert. Weitere Aspekte der zentralen Vorrichtung zur Mitigation von Software werden anhand von 5 und 6 erörtert.
  • 1 ist ein Fluss-Diagramm, das die Techniken der vorliegenden Offenbarung illustriert. 2 zeigt Komponenten eines Bordnetzwerk eines Fahrzeugs, in dem die Techniken der vorliegenden Offenbarung eingesetzt werden können. 3 zeigt eine beispielhafte Komponente eines Bordnetzwerks.
  • In 1 sind in der mittleren Spalte Schritte gezeigt, die von einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software durchgeführt werden. In der rechten Spalte sind Schritte gezeigt, die von einer bestimmten Komponente (oder einer Gruppe von Komponenten) des Bordnetzwerks ausgeführt werden (ausschließlich der zentralen Vorrichtung zur Mitigation einer Manipulation von Software). In der linken Spalte sind Schritte gezeigt, die von einem entfernten System durchgeführt werden (d.h. außerhalb des Fahrzeugs).
  • Die Techniken der vorliegenden Offenbarung umfassen Erkennen 101 der Möglichkeit einer Manipulation der Software einer ersten Komponente 27c einer Mehrzahl von Komponenten eines Bordnetzwerks eines Fahrzeugs 20. Ein Fahrzeug 20 ist schematisch in 2 gezeigt. Das Fahrzeug ist mit einem Bordnetzwerk ausgestattet, das eine Mehrzahl von Komponenten 21-24, 25, 27a-f, des Fahrzeugs 20 verbindet (das Bordnetzwerk kann wie oben beschrieben aufgebaut sein).
  • Das Fahrzeug 20 weist eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 auf, die die Möglichkeit der Manipulation erkennt. Diese ist somit Teil des Bordnetzwerkes (d.h., auch Teil des Fahrzeugs und wird mit diesem bewegt). Die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 ist zur Mitigation der Manipulation von Software in jedem der Mehrzahl 21-24, 27a-f von Komponenten des Bordnetzwerkes ausgelegt.
  • In manchen Beispielen ist die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 in eine zentrale Kommunikationsschnittstelle des Fahrzeugs 20 integriert. Die zentrale Kommunikationsschnittstelle kann dazu ausgelegt sein, als Datenverteiler für die Kommunikation innerhalb des Fahrzeuges 20 und/oder über eine Kommunikationsschnittstelle 21, 22 mit der Außenwelt zu fungieren. Dabei kann die zentrale Kommunikationsschnittstelle unterschiedliche Kommunikationsprotokolle unterstützen (zur Kommunikation in dem Bordnetzwerk oder mit externen Systemen) und/oder Sicherheitsfunktionen implementieren. In anderen Beispielen kann die zentrale Vorrichtung zur Mitigation einer Manipulation von Software in andere Komponenten integriert werden (weitere Beispiele folgen unten) oder als eigenständige Komponente ausgelegt sein.
  • Das Erkennen kann in manchen Beispielen das Empfangen eines Signals umfassen, das eine Manipulation der Software einer ersten Komponente einer Mehrzahl von Komponenten eines Bordnetzwerks eines Fahrzeugs 20 anzeigt. Das Signal kann in der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 selbst und/oder einer anderen Vorrichtung erzeugt werden.
  • Zusätzlich oder alternativ kann das Erkennen das Erkennen eines Ausbleibens eines (erwarteten) Signals umfassen (z.B. von der ersten Komponente oder einer Komponente, die die erste Komponente überwacht). Das Bordnetzwerk kann dazu ausgelegt sein, dass die Mehrzahl von Komponenten 21-24, 25, 27a-f oder andere Komponenten Signale senden, die anzeigen, dass keine Manipulation der Software der jeweiligen Komponente der Mehrzahl von Komponenten 21-24, 25, 27a-f vorliegt (z.B. regelmäßig oder beim Auftreten von bestimmten Ereignissen wie dem Starten einer Komponente).
  • Weiter zusätzlich oder alternativ kann das Erkennen eine Verarbeitung anderer Zustandsinformation des Bordnetzwerkes umfassen, um die Möglichkeit einer Manipulation der Software der ersten Komponente zu erkennen.
  • In Reaktion auf das Erkennen der Möglichkeit einer Manipulation der Software einer ersten Komponente einer Mehrzahl von Komponenten eines Bordnetzwerks eines Fahrzeugs 20 (z.B. dem Empfangen eines Signals oder dem Erkennen des Ausbleibens eines Signals) leitet 103 die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 eine Gegenmaßnahme zur Mitigation der Manipulation der ersten Komponente ein. Die Gegenmaßnahme zur Mitigation der Manipulation der ersten Komponente wird dann durchgeführt 123.
  • Die Gegenmaßnahme gegen die Manipulation umfasst Rücksetzen der Software einer ersten Komponente 27c, für die die Möglichkeit einer Manipulation erkannt wurde. Das Rücksetzen der Software der ersten Komponente 27c wird unter Verwendung eines Sicherheits-Moduls der ersten Komponente 27c und/oder eines unveränderlichen Moduls der ersten Komponente 27c durchgeführt. Das Sicherheits-Modul und das unveränderliche Modul werden weiter unten in Bezug auf 3 genauer diskutiert. In manchen Beispielen kann ausschließlich ein Sicherheits-Modul oder ausschließlich ein unveränderliches Modul für das Rücksetzen verwendet werden. In anderen Beispielen kann sowohl ein Sicherheits-Modul als auch ein unveränderliches Modul für das Rücksetzen verwendet werden (in manchen Beispielen kann ein Sicherheits-Modul auch ein unveränderliches Modul sein). Das Einleiten kann eine Nachricht und/oder Anweisung der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 an das Sicherheits-Modul oder das unveränderliche Modul umfassen. Nach dem Empfangen der Nachricht und/oder Anweisung kann das Sicherheits-Modul oder das unveränderliche Modul die entsprechenden Schritte ausführen. Alternativ kann das Einleiten das Unterlassen eines Sendens einer Nachricht durch die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 umfassen (z.B. ein Typ von Nachricht, der von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 regelmäßig gesendet wird, solange keine Möglichkeit einer Manipulation detektiert wird).
  • Das Rücksetzen kann mehrere Schritte umfassen, von denen einer oder mehrere unter Verwendung des Sicherheits-Moduls und/oder des unveränderlichen Moduls ausgeführt werden. Die Verwendung des jeweiligen Moduls kann eines oder mehrere umfassen von Orchestrieren des Rücksetzens oder einer seiner Schritte (z.B. das Senden von Anweisungen an andere Module der ersten Komponente, um einen oder mehrere Schritte des Rücksetzens auszuführen). Alternativ oder zusätzlich kann die Verwendung das Senden und/oder Empfangen von Daten im Rahmen des Rücksetzens umfassen.
  • In manchen Beispielen kann das Rücksetzen der Software ein Neustarten 115 eines Prozessors der ersten Komponente beinhalten (der Prozessor ist die zentrale Verarbeitungseinheit der Komponente). In manchen Beispielen kann das Neustarten 115 ein Herunterfahren und darauffolgendes Hochfahren des Prozessors umfassen. Zusätzlich oder alternativ kann das Neustarten ein Ausschalten und darauffolgendes Einschalten des Prozessors umfassen (z.B. durch ein Unterbrechen und Wiederverbinden der Versorgungsspannung des Prozessors). In anderen Beispielen kann ein Neustarten aber auch ein Zurücksetzen des Prozessors in eine bestimmte Konfiguration und/oder ein Zurücksetzen bestimmter Teile des Prozessors (z.B. seiner Register) umfassen. In manchen Beispielen kann nach einem Neustart ein Programm der Komponente erneut von vorne beginnen.
  • Das Neustarten kann auf verschiedene Weisen initiiert werden.
  • In manchen Beispielen kann das Neustarten durch das Sicherheits-Modul initiiert werden. Zum Beispiel kann das Sicherheits-Modul einen Neustart des Prozessors der ersten Komponente 27c erzwingen. Das Sicherheits-Modul kann dafür speziell ausgelegt werden. In anderen Beispielen können Sicherheits-Module über diese Funktionalität bereits verfügen (um unter anderen Umständen einen Neustart zu initiieren).
  • Alternativ oder zusätzlich kann das Neustarten des Prozessors der ersten Komponente 27c durch eine Stromversorgungs-Einheit des Fahrzeugs 20 initiiert werden. In manchen Beispielen kann die Stromversorgungs-Einheit dazu ausgelegt ist, die Mehrzahl von Komponenten 27a-f des Bordnetzwerkes (oder Gruppen daraus) selektiv mit Energie zu versorgen. Die Stromversorgungs-Einheit kann bspw. die Mehrzahl von Komponenten 27a-f des Bordnetzwerkes (oder Gruppen daraus) selektiv anschalten oder ausschalten.
  • Weiter alternativ oder zusätzlich kann das Neustarten des Prozessors der ersten Komponente 27c durch eine Betätigung einer zentralen Aktivierungsfunktion des Fahrzeugs initiiert werden (bspw. einer Zündung oder anderen zentralen Aktivierungsfunktion des Fahrzeugs 20).
  • In allen oben beschriebenen Fällen kann das Neustarten initiiert werden, ohne dass möglicherweise durch die Manipulation kompromittierte Teile der ersten Komponente 27c verwendet werden. Das kann die Wahrscheinlichkeit verringern, dass ein Eindringling den Rücksetzprozess stört.
  • In manchen Beispielen umfasst das Rücksetzen Versetzen 117 der ersten Komponente 27c in einen Rücksetz-Modus (z.B. nach dem Neustarten 115 oder während des Neustartens 115) durch ein Sicherheits-Modul der ersten Komponente 27c und/oder ein unveränderliches Modul der ersten Komponente 27c. Der Rücksetz-Modus kann ein darauffolgendes Rücksetzen der Software ermöglichen. Der Rücksetz-Modus kann beispielsweise ein Programmier-Modus der ersten Komponente 27c sein, in dem die Software der ersten Komponente 27c verändert werden kann (während das in einem Betriebs-Modus nicht möglich ist).
  • In manchen Beispielen umfasst das Rücksetzen Empfangen 119 einer Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c (z.B. nach dem Versetzen der ersten Komponente 27c in einen Rücksetz-Modus) und Ablegen der empfangenen Software-Komponente in einem Speicher der ersten Komponente 27c umfassen. Dadurch kann eine manipulierte Software-Komponente ersetzt werden (und die Manipulation behoben werden). Die manipulierte Software-Komponente kann ein Teil der Software der ersten Komponente sein. Alternativ oder zusätzlich kann die empfangene Software-Komponente Konfigurationsinformationen zum Rücksetzen der Software der ersten Komponente 27c umfassen. Mit Hilfe der Konfigurationsinformationen kann eine Konfiguration der Software der ersten Komponente 27c verändert werden. Die Software-Komponente zum Rücksetzen der Software kann von der zentralen Vorrichtung zur Mitigation einer Manipulation 25 versendet 121 werden (bspw. mittels der weiter unten beschriebenen Techniken).
  • Wie weiter unten beschrieben, kann in manchen Beispielen eine Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c im Fahrzeug gespeichert sein, bspw. als Teil eines Software-Bündels oder Software-Containers 31, der Software-Update-Information für eine Mehrzahl von Komponenten enthält (zum Beispiel gespeichert in einem persistenten Speicher 41 der zentralen Vorrichtung zur Mitigation einer Manipulation 25). In diesen Beispielen (aber auch allgemein), kann die Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c vor dem Rücksetzen verifiziert werden. Das kann auf verschiedene Weisen passieren (die auch kombiniert werden können). In manchen Beispielen kann die Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c authentifiziert werden. Zum Beispiel können der Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c ein oder mehrere Referenz-Authentifizierungs-Elemente zugeordnet sein (die ein oder mehreren Referenz Authentifizierungs-Elemente können ggf. mit entsprechenden Referenz-Authentifizierungs-Elementen für andere Software-Komponente zum Rücksetzen der Software anderer Komponenten des Fahrzeugs in einer Liste gespeichert sein, bspw. in der ersten Komponente 27c oder einem anderen Speicher des Fahrzeugs). In manchen Beispielen werden die einen oder mehreren Referenz-Authentifizierungs-Elemente beim Empfang der Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c, bspw. des Software-Bündels oder Software-Containers 31, im Fahrzeug bestimmt (und z.B. in einer Liste abgelegt). Diese Referenz-Authentifizierungs-Elemente stehen dann für einen späteren Vergleich zur Verifizierung einer Software-Komponente zur Verfügung. Zur Verifizierung der Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c (oder einer anderen Software-Komponente) kann vor dem Zurücksetzen ein entsprechendes Referenz-Authentifizierungs-Element mit einem Authentifizierungs-Element, das für die in dem Fahrzeug gespeicherte Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c ermittelt wird, verglichen werden. Wenn die in dem Fahrzeug gespeicherte Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c anhand des Vergleichs authentifiziert wird (z.B. das Referenz-Authentifizierungs-Element stimmt mit dem ermittelten Authentifizierungs-Element überein), kann die Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c eingesetzt werden. Wenn die in dem Fahrzeug gespeicherte Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c anhand des Vergleichs nicht authentifiziert wird (z.B. das Referenz-Authentifizierungs-Element stimmt nicht mit dem ermittelten Authentifizierungs-Element überein), kann der Rücksetzvorgang abgebrochen werden. Die Referenz-Authentifizierungs-Elemente (und in Folge die entsprechenden ermittelten Authentifizierungs-Elemente) können in verschiedener Weise ausgebildet sein. In manchen Beispielen kann das (Referenz-)Authentifizierungs-Element ein Hash-Wert sein (wobei der Hash-Wert für eine authentische Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c ermittelt wird und im Fahrzeug als Referenz-Authentifizierungs-Element gespeichert wird). In anderen Beispielen kann das (Referenz-)Authentifizierungs-Element eine digitale Signatur sein (wobei die digitale Signatur für eine authentische Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c empfangen und im Fahrzeug als Referenz-Authentifizierungs-Element gespeichert wird). In wieder anderen Beispielen kann das Referenz-Authentifizierungs-Element ein MAC-Element („message -authentication code“) sein (wobei das MAC-Element für eine authentische Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c empfangen und im Fahrzeug als Referenz-Authentifizierungs-Element gespeichert wird). Eine Verifizierung der Software-Komponente zum Rücksetzen der Software der ersten Komponente 27c kann in manchen Situationen verhindern, dass eine im Fahrzeug abgelegte Software-Komponente, die von einem Eindringling nach Empfang in dem Fahrzeug manipuliert wurde, zum Zurücksetzen der ersten Komponente 27c verwendet wird. Ohne die Verifizierung könnte in Fällen, in denen die zum Zurücksetzen der Software eingesetzten Software-Komponenten im Fahrzeug vorgehalten werden (z.B. für einen längeren Zeitraum - bspw. länger als einen Tag), diese vorgehaltene(n) Software-Komponente(n) lokal im Fahrzeug manipuliert und danach zum Zurücksetzen der Komponente eingesetzt werden.
  • In manchen Beispielen können das Empfangen der Software-Komponente zum Rücksetzen der Software und Ablegen der empfangenen Software-Komponente von dem Sicherheits-Modul ausgeführt werden. Alternativ oder zusätzlich können das Empfangen der Software-Komponente zum Rücksetzen der Software und Ablegen der empfangenen Software-Komponente von dem unveränderlichen Modul ausgeführt werden. Wie erwähnt kann die Software-Komponente in manchen Beispielen eine Firmware-Komponente sein. Wiederum werden in beiden Fällen möglicherweise durch die Manipulation kompromittierte Teile der ersten Komponente 27c umgangen. In beiden Fällen kann damit einem Eindringling erschwert werden, den Vorgang des Rücksetzens der Software zu vereiteln und/oder wiederum manipulierte Software einzuschleusen.
  • In Bezug auf 3 werden nun Aspekte der ersten Komponente 27c weiter erläutert (die anderen Komponenten der vorliegenden Offenbarung können ebenfalls den beschriebenen Aufbau aufweisen). Die erste Komponente 27c verfügt über einen Speicher 91. Der Speicher 91 kann z.B. ein nicht-flüchtiger Speicher sein (z.B. ein EPROM-Speicher oder ein Flash-Speicher). Der Speicher 91 kann zum Ablegen zumindest einer Software-Komponente für die erste Komponente 27c (z.B. zur Steuerung der ersten Komponente 27c) ausgelegt sein (z.B. im Rahmen des Rücksetzens wie oben beschreiben). Der Speicher 91 kann ein Programm-Speicher der ersten Komponente 27c sein. Der Speicher 91 kann nur einen Teil des Gesamtspeichers der ersten Komponente 27c umfassen.
  • Alternativ oder zusätzlich kann der Speicher 91 über mehrere Hardware-Module und/oder logische Segmente verteilt sein.
  • Die erste Komponente 27c kann ein Sicherheits-Modul 93 aufweisen. Das Sicherheits-Modul 93 kann in Bezug auf seine Hardware und/oder Software von den restlichen Modulen der ersten Komponente 27c getrennt sein (z.B. ein separates physisches Modul oder ein eigenständiges Peripherie-Modul sein). Das Sicherheits-Modul kann einen oder mehrere eigene-Prozessoren umfassen (z.B. mindestens einen Krypto-Beschleuniger). In anderen Beispielen kann das Sicherheits-Modul 93 einen oder mehrere Kerne eines Mehr-Kernprozessors oder andere Elemente einer übergeordneten Komponente umfassen (die dem Sicherheits-Modul statisch oder dynamisch zugeteilt sind - bspw. können ein oder mehrere Kerne eines Mehr-Kernprozessors zum Sicherheits-Modul konfiguriert werden). Auch in diesem Fall ist das Sicherheits-Modul (z.B. ein oder mehrere Kerne des Mehrkern-Prozessors) von den anderen Elementen separiert (z.B. die Schaltkreise sind physikalisch getrennt). Das Sicherheits-Modul 93 kann in manchen Beispielen zum Ausführen einer oder mehrerer kryptographischer Funktionen ausgelegt sein, um die Kommunikation mit der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 kryptographisch abzusichern (z.B. die weiter oben beschriebenen kryptographischen Funktionen). In manchen Beispielen kann, wie oben beschreiben, das Sicherheits-Modul 93 in dem Rücksetzprozess der ersten Komponente 27c verwendet werden. Zusätzlich oder alternativ kann das Sicherheits-Modul 93 der ersten Komponente 27c dazu ausgelegt sein, eine Möglichkeit einer Manipulation zu detektieren (z.B. eine weiter unten beschriebene Detektionsvorrichtung 81a enthalten).
  • In manchen Beispielen ist das Sicherheits-Modul 93 ein Hardware-Sicherheits-Modul (englisch Hardware Security Module - HSM). In dem Beispiel der 3 ist das Sicherheits-Modul 93 ein internes Sicherheits-Modul der Komponente 27c. In anderen Beispielen kann das Sicherheits-Modul ein externes Sicherheits-Modul für die Komponente 27c sein (das bspw. in einer anderen Komponente des Fahrzeugs 20 beinhaltet ist, z.B. in einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25).
  • Die erste Komponente kann zudem ein unveränderliches Modul 99 enthalten. Wie erwähnt kann das unveränderliche Modul 99 (bzw. seine Software und/oder Funktionalität) im Normalbetrieb der ersten Komponente 27c nicht veränderbar sein. In manchen Beispielen umfasst das unveränderliche Modul 99 einen Bootloader, der zum Ausführen eines (minimalen) Programms zum Starten der ersten Komponente eingerichtet ist. In manchen Beispielen kann das unveränderliche Modul 99 einen Festspeicher oder einen Speicher mit Schreibschutz aufweisen. In manchen Beispielen kann, wie oben beschreiben, das unveränderliche Modul 99 in dem Rücksetzprozess der ersten Komponente 27c verwendet werden.
  • Die Komponente 27c enthält zudem einen Prozessor 94 zum Ausführen von Befehlen. Wie bereits erwähnt umfasst der Begriff „Prozessor“ auch Mehr-Kern-Prozessoren oder mehrere separate Bauteile, die die Aufgaben einer zentralen Verarbeitungseinheit der Komponente übernehmen (und sich diese ggf. teilen). Die Komponente 27c kann in manchen Beispielen eine oder mehrere Schnittstellen 95 umfassen, die zur Kommunikation über eine Übertragungsstrecke 96 des Bordnetzwerks ausgelegt sind. Wie in 3 zu sehen, können der Prozessor 94, das Sicherheits-Modul 93, oder beide direkt auf die einen oder mehreren Schnittstellen 95 zugreifen, um über die Übertragungsstrecke 96 des Bordnetzwerks zu kommunizieren. Die Übertragungsstrecke kann eine Übertragungsstrecke eines Bussystems (bspw. CAN, LIN, MOST, FlexRay oder Ethernet) sein. Ein direkter Zugriff des Sicherheits-Moduls 93 auf die einen oder mehreren Schnittstellen 95 kann ermöglichen, dass das Sicherheits-Modul Software-Komponenten für den Rücksetzprozess (sicher) empfängt (ohne dass möglicherweise kompromittierte Module der ersten Komponente dazwischengeschaltet sind).
  • Anhand von 4 wird in der Folge ein beispielhafter Ablauf eines Verfahrens der vorliegenden Offenbarung diskutiert.
  • In der 4 sind in jeder Spalte die Aktionen einer bestimmten Komponente (oder eines ihrer Module) oder Systems gezeigt. Pfeile zwischen den Spalten symbolisieren Kommunikation zwischen den jeweiligen Einheiten. Ganz links ist eine bestimmte Komponente (die erste Komponente 27c der vorliegenden Offenbarung) gezeigt (z.B. ein eingebettetes System des Fahrzeugs 20, bspw. eine Steuereinheit). Die Komponente 27c kann zwei Module aufweisen, eine Haupteinheit 403 (die z.B. einen Prozessor 94 enthalten kann) und ein Sicherheits-Modul 93. Die Haupteinheit 403 kann dazu ausgelegt sein, eine Funktionalität der Komponente in dem Fahrzeug bereitzustellen (z.B. Messaufgaben, Überwachungsaufgaben, Steueraufgaben, Kommunikationsaufgaben und/oder andere Arbeitsaufgaben). In der mittleren Spalte ist eine der anderen Komponenten 402 des Bordnetzwerks gezeigt. Ganz rechts sind die Operationen einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 gezeigt.
  • Zu einem bestimmten Zeitpunkt kann nun, wie in 4 gezeigt, eine Manipulation 410 der Software der ersten Komponente 27c (bzw. der Haupteinheit 403) erfolgen. Die Manipulation kann durch das Sicherheits-Modul 93 der ersten Komponente 27c detektiert werden 404. In der Folge kann das Sicherheits-Modul 93 ein Rücksetzen der Software der ersten Komponente orchestrieren. Beispielsweise kann die Haupteinheit 403 (z.B. der Prozessor) neu gestartet werden 405. Alternativ oder zusätzlich kann das Sicherheits-Modul 93 die Haupteinheit 403 in einen Rücksetz-Modus versetzen, in dem die manipulierte Software zurückgesetzt werden kann (z.B. einen Reprogrammier-Modus). Eine Bestätigung 422, dass die erste Komponente 27c in den Rücksetz-Modus versetzt wurde, kann von dem Sicherheits-modul 93 an die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 gesendet werden.
  • In manchen Beispielen kann ein Signal zum Auslösen eines Rücksetzens der Software der ersten Komponente 27c durch ein Signal ausgelöst werden, das von dem Sicherheits-Modul 93 empfangen wird (z.B. von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25). Alternativ oder zusätzlich kann das Sicherheits-Modul 93 das Ausbleiben eines andernfalls regelmäßig empfangenen Signals 411 (z.B. von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25) zu einem fälligen Zeitpunkt als Auslöser für das Rücksetzens der Software der ersten Komponente 27c verwenden.
  • Zudem kann an die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 kommuniziert werden, dass eine Manipulation detektiert wurde. Im Beispiel von 4 geschieht dies, in dem ein Signal 411, das andernfalls (regelmäßig) von der ersten Komponente 27c gesendet wird, zu dem fälligen Zeitpunkt nicht gesendet wird. Die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 kann das Ausbleiben des Signals und somit die Möglichkeit einer Manipulation der Software der ersten Komponente 27c erkennen 412. In der Folge kann die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 ein Verschieben einer Funktionalität an die andere Komponente 402 orchestrieren. Beispielweise kann eine Übergabe-Anweisung der Funktionalität 413 an die andere Komponente 402 gesendet werden. Die andere Komponente kann daraufhin die Funktionalität bereitstellen (und ggf. eine Bestätigung 414 an die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 senden).
  • In 4 ist gezeigt, dass das Ändern der Funktionalität der ersten Komponente 27c zeitlich nach dem Verschieben der Funktionalität zu der anderen Komponente 402 beendet wird. In anderen Beispielen können beide Aktionen in umgekehrter Reihenfolge oder gleichzeitig (z.B. innerhalb von einer Sekunde) durchgeführt werden.
  • Die Manipulation kann nun durch Rücksetzen der Software der ersten Komponente 27c behoben werden. In dem Beispiel von 4 wird eine Software-Komponente zu diesem Zweck von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 an die Haupteinheit 403 gesendet 416. In anderen Beispielen kann, wie oben beschrieben, das Sicherheits-Modul 93 die Software-Komponente empfangen.
  • In den folgenden Abschnitten werden Aspekte der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 erläutert. Im Beispiel von 2 ist eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 gezeigt. In manchen Fällen kann das Fahrzeug nur eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 enthalten, die zur Mitigation von Manipulationen der Mehrzahl von Komponenten 21-24, 27a-f ausgelegt ist (z.B. aller Komponenten eines Fahrzeugs, für die eine Manipulation von Software behoben werden kann oder eine Untermenge dieser Komponenten). In anderen Beispielen kann ein Fahrzeug mehrere zentrale Vorrichtungen zur Mitigation einer Manipulation von Software aufweisen, die Teil des Bordnetzwerkes sind und jeweils einer Mehrzahl der Komponenten des Bordnetzwerks zugeordnet sind (d.h. Manipulationen in der Software der zugeordneten Komponenten beheben können). In jedem Fall sind die zentralen Vorrichtungen zur Mitigation einer Manipulation von Software aber von den zugeordneten Komponenten separiert. Die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 kann in manchen Fällen auch eine Manipulation ihrer eigenen Software und/oder der Software einer Komponente, in der die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 integriert ist, ausgelegt sein.
  • Im Beispiel von 2 umfassen eine Mehrzahl von Komponenten, für die mit den Techniken der vorliegenden Offenbarung Manipulationen ihrer Software behoben werden können, eine Mehrzahl von Steuergeräten 27a-f. Wie bereits beschrieben, sind die Techniken der vorliegenden Offenbarung nicht auf Steuergeräte beschränkt, sondern grundsätzlich für jede Komponente eines Bordnetzwerks des Fahrzeugs 20 einsetzbar. Da Steuergeräte 27a-f in Fahrzeugen aber regelmäßig über nur beschränkte Hardware-Ressourcen und/oder Funktionalitäten verfügen, können die Techniken der vorliegenden Offenbarung für Steuergeräte in manchen Fällen besonders vorteilhaft sein.
  • Die Steuergeräte 27a-f sind in 2 in mehrere Domänen 26a-n unterteilt. Die Domänen können funktionale und/oder örtliche Domänen des Fahrzeugs 20 sein. Eine funktionale Domäne kann verschiedene Komponenten eines Fahrzeugs umfassen, die an der Bereitstellung einer bestimmten Funktion des Fahrzeugs teilhaben (z.B. Motorsteuerung, Steuerung des Antriebsstranges, Infotainment, Klimatisierung, usw.). Eine örtliche Domäne kann verschiedene Komponenten eines Fahrzeugs umfassen, die physikalisch in einem bestimmten Bereich des Fahrzeugs angeordnet sind (z.B. „hinten rechts“, „vorne links“, „Innenraum vorne“ usw.).
  • Eine Domäne 26-n kann wiederum eine Komponente 27a, 27d enthalten, die als zentraler Kommunikationsknoten für die jeweilige Domäne 26a-n fungiert und/oder Steuerfunktionen für die jeweilige Domäne 26a-n übernimmt. In manchen Beispielen kann eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software ein Teil der Komponente 27a, 27d sein, die als zentraler Kommunikationsknoten für die jeweilige Domäne 26a-n fungiert und/oder Steuerfunktionen für die jeweilige Domäne 26a-n übernimmt. Diese zentrale Vorrichtung zur Mitigation einer Manipulation von Software kann zusätzlich zu weiteren zentralen Vorrichtungen zur Mitigation einer Manipulation von Software (z.B. einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software als Teil einer zentralen Kommunikationsschnittstelle des Bordnetzwerks) oder als einzige zentrale Vorrichtung zur Mitigation einer Manipulation von Software vorgesehen sein (siehe Erläuterungen weiter oben). Weiter alternativ oder zusätzlich kann eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software als Teil einer zentralen Steuereinheit 23 des Fahrzeugs ausgelegt sein. Weiter alternativ oder zusätzlich kann eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software als Teil einer Haupteinheit (auf Englisch „Head Unit“) eines Infotainment-Systems des Fahrzeugs 20 (nicht in 2 gezeigt) angeordnet sein. Weiter alternativ oder zusätzlich kann eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software als Teil eines Zentral-Computers („vehicle computer“) des Bordnetzwerks angeordnet sein (das Bordnetzwerk kann eine Mehrzahl von Zentral-Computern - „vehicle computers“ enthalten). Ein Zentral-Computer („vehicle computer“) kann (erheblich) performanter sein als dedizierte Steuergeräte des Bordnetzwerks und die Aufgaben von mehreren Steuergeräten (u.U. in mehreren der oben genannten Domänen) übernehmen.
  • Das Fahrzeug 20 kann des Weiteren einen zentralen persistenten Speicher 41 umfassen (d.h. ein Speicher, der seine Information im Fahrzeug dauerhaft - z.B. länger als ein Tag oder länger als eine Woche und/oder während eines Ruhezustands des Fahrzeugs speichert). In manchen Beispielen kann der persistente Speicher 41 einen Flash-Speicher umfassen. Im Beispiel von 2 ist der persistente Speicher 41 in der zentrale Kommunikationsschnittstelle des Fahrzeugs 20 angeordnet oder mit dieser direkt verbunden. Wie besprochen kann in der zentralen Kommunikationsschnittstelle des Fahrzeugs 20 ebenfalls die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 angeordnet sein. Auch wenn eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software (zusätzlich oder alternativ) in einer anderen Komponente angeordnet ist, kann zusätzlich oder alternativ ein persistenter Speicher in derselben Komponente angeordnet sein. In dieser Weise können in dem persistenten Speicher abgelegte Daten von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software zur Mitigation von Manipulationen eingesetzt werden. In anderen Beispielen können eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software und ein persistenter Speicher aber auch in unterschiedlichen Komponenten des Bordnetzwerkes angeordnet sein (und die zentrale Vorrichtung zur Mitigation einer Manipulation von Software über das Netzwerk auf den persistenten Speicher zugreifen).
  • Der persistente Speicher 41 kann dazu ausgelegt sein, Software-Komponenten 42a, 42c-n für jede der Mehrzahl von Komponenten 27a-f gleichzeitig zu speichern. Dazu kann der persistente Speicher 41 mit einer Speicherkapazität von mehr als 256MB (bevorzugt mehr als 5GB) auegelegt sein.
  • Die Gegenmaßnahme gegen die Manipulation umfasst, wie oben beschreiben, Rücksetzen der Software einer Komponente, für die eine Manipulation ihrer Software erkannt wurde (in der vorliegenden Offenbarung auch als „erste Komponente“ bezeichnet). Das kann unter Verwendung von der in dem zentralen persistenten Speicher 41 gespeicherten Software-Komponenten 42a, 42c-n für die jeweilige Komponente geschehen. Weitere Aspekte dieser Gegenmaßnahme werden weiter unten in Bezug auf 5 und 6 diskutiert.
  • In manchen Beispielen können die Software-Komponenten 42a, 42c-n, die in dem zentralen persistenten Speicher 41 enthalten sind, auf Software-Update-Information 32a, 32c-n für jede der Mehrzahl von Komponenten 27a-n beruhen (z.B. aus den als Software-Update-Information 32a, 32c-n erzeugt werden oder diesen entsprechen).
  • Die Software-Update-Information 32a, 32c-n kann über eine Schnittstelle 21 des Fahrzeugs 20 empfangen werden. Die Schnittstelle 21 kann eine Drahtlos-Schnittstelle (wie in 2 gezeigt) aber in anderen Beispielen auch eine drahtgebundene Schnittstelle (nicht in 2 gezeigt) sein. Das Fahrzeug kann dazu ausgelegt sein, von einem entfernten System 30 über die Schnittstelle 21 Software-Update-Information 32a, 32c-n zu empfangen. Wie in 1 gezeigt, kann das entfernte System 30 die Software-Update-Information 32a, 32c-n für das entsprechende Fahrzeug auswählen 107 und über die Schnittstelle 21 an das Fahrzeug 20 senden 109. Das entfernte System 30 kann jedes beliebige System sein, dass für das Bereitstellen von Software-Update-Information 32a, 32c-n geeignet ist (z.B. ein Cloud-Speicher und/oder ein verteiltes System). Das entfernte System 30 kann neben dem Bereitstellen von Software-Update-Information 32a, 32c-n weitere Funktionen im Betrieb des Fahrzeugs übernehmen (z.B. Überwachungs- und/oder Steuerfunktionen für das Fahrzeug).
  • In manchen Beispielen ist die Software-Update-Information 32a, 32c-n für eine Mehrzahl von Komponenten (z.B. Steuergeräte 27a, c-n) in einem Software-Bündel oder Software-Container 31 enthalten (d.h. die Software-Update-Information wird gebündelt bereitgestellt). Das Software-Bündel oder Software-Container 31 (häufig von erheblicher Größe) wird zu einem bestimmten Zeitpunkt an das Fahrzeug 20 übermittelt. In dem Fahrzeug 20 wird, wie beschrieben, die übermittelte Software-Update-Information 32a, 32c-n zur Aktualisierung der Software der Mehrzahl von Komponenten 27a-f verwendet. Dafür kann die von dem entfernte System 30 erhaltene Software-Update-Information 32a, 32c-n einen oder mehrere Vorbereitungsschritte durchlaufen (z.B., entpacken, Verifikation einer Signatur usw.).
  • Zusätzlich oder alternativ kann Software-Update-Information 32a, 32c-n (z.B. in einem Software-Bündel oder Software-Container) auch über eine drahtgebundene Schnittstelle 22 empfangen werden.
  • Die Software-Update-Information 32a, 32c-n kann, vor oder nach etwaigen Vorbereitungsschritten, in dem persistenten Speicher 41 als Software-Komponenten 42a, 42c-n für die Mehrzahl von Komponenten 27a, c-n abgelegt werden (z.B. bevor sie zur Aktualisierung der Software der Komponenten 27a, c-n verwendet wird). Die abgelegten Software-Komponenten 42a, 42c-n für die Mehrzahl von Komponenten 27a, c-n stehen dann der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 zur Mitigation einer Manipulation in der Vielzahl von Komponenten 27a, c-n zur Verfügung. Diese Mitigation kann nach Beendigung der Aktualisierung der Software jeder der Mehrzahl von Komponenten 27a, c-n erfolgen (z.B. in einem Zeitraum bis zum Empfang von weiterer Software-Update-Information 32a, 32c-n).
  • In dieser Weise können sich die Techniken der vorliegenden Offenbarung in manchen Beispielen in dem Fahrzeug bereits vorhandene Komponenten, z.B. einen persistenter Speicher 41, der in einem Aktualisierungsprozess der Software des Fahrzeugs 20 eingesetzt wird, bedienen. Das kann in manchen Fällen eine erhebliche Einsparung an Komponenten zeitigen (wie oben beschrieben kann der zum Ablegen eines Software-Bündels oder Software-Containers 31 an Software-Update-Information 32a, 32c-n benötigte Speicher erhebliche Ausmaße annehmen). Zudem oder alternativ kann vermieden werden, die einzelnen Komponenten mit zusätzlichen Ressourcen (z.B. Speicher auszustatten), was ebenfalls die Komplexität und damit die Fehleranfälligkeit und/oder Kosten reduzieren kann. Weiter zusätzlich oder alternativ stehen die Informationen des persistenten Speichers 41 in vielen Situationen schnell und unabhängig von der Nutzbarkeit eines Kommunikationskanals des Fahrzeugs zur Verfügung. Das kann die Reaktionszeit des Mitigationsverfahrens einer Manipulation erhöhen.
  • In den Techniken der vorliegenden Offenbarung kann die Gegenmaßnahme zur Mitigation im Wesentlichen ohne Zuhilfenahme von Systemen außerhalb des Fahrzeugs 20 durchgeführt werden (z.B. das entfernte System 30). Zum Beispiel kann die Gegenmaßnahme von der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 ohne Notwendigkeit der Kommunikation mit Systemen außerhalb des Fahrzeugs 20 eingeleitet werden (während dieses Vorgangs kann das Fahrzeug 20 zu anderen Zwecken durchaus mit einem System außerhalb des Fahrzeugs 20 kommunizieren). Zusätzlich oder alternativ kann die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 (oder eine andere Komponente des Bordnetzwerks) ohne Notwendigkeit der Kommunikation mit Systemen außerhalb des Fahrzeugs 20 eine Gegenmaßnahme durchführen.
  • In manchen Beispielen können die Techniken der vorliegenden Offenbarung Auswählen der Gegenmaßnahme unter einer Mehrzahl von Gegenmaßnahmen basierend auf Kontext-Informationen für das Fahrzeug umfassen. Die Kontext-Information kann Information bezüglich eines Betriebszustands des Fahrzeugs 20 und/oder bezüglich vorbestimmter Regeln zum Betrieb des Fahrzeugs 20 umfassen.
  • Ein Betriebszustand kann ein Fahrzustand des Fahrzeugs sein (z.B. schnelles Fahren, langsames Fahren, das Durchführen bestimmter Fahrmanöver usw.), aber auch ein Betriebszustand, während das Fahrzeug nicht fährt. Alternativ oder zusätzlich kann die Kontext-Informationen für das Fahrzeug 20 Umfeld-Informationen und/oder Zustandsinformationen der Komponenten des Fahrzeugs umfassen.
  • Die Regeln zum Betrieb des Fahrzeugs 20 können vorbestimmte Sicherheitskriterien enthalten (die wiederum von Betriebszuständen des Fahrzeugs 20 abhängen können und die bspw. festlegen, wann und mit welchen Abhängigkeiten eine Gegenmaßnahme für eine bestimmte Komponente eingeleitet werden darf).
  • Die Kontext-Information kann zumindest teilweise in einem Speicher der zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 abgelegt sein (z.B. dem zentralen persistenten Speicher 41) zur Verwendung in der Auswahl einer Gegenmaßnahme (insbesondere der Teil der Kontext-Information, der Information bezüglich vorbestimmter Regeln zum Betrieb des Fahrzeugs 20 umfasst). Die Kontext-Information kann in manchen Beispielen von außerhalb des Fahrzeugs 20 aus aktualisiert werden (z.B. als Teil von Software-Update-Information 32b für die zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 bzw. einer Komponente, in der die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 angeordnet ist).
  • In manchen Beispielen können für die Mitigation bestimmter Manipulationen der Software der Komponenten 27a, c-n verschiedene Gegenmaßnahmen zur Verfügung stehen (zu den möglichen Gegenmaßnahmen weiter unten mehr). Die Kontext-Information kann nun herangezogen werden, um eine der zur Verfügung stehenden Gegenmaßnahmen auszuwählen. In manchen Beispielen kann unter mehreren zur Verfügung stehenden Gegenmaßnahmen diejenige ausgewählt werden, die eine weitestgehende Wiederherstellung eines Soll-Zustands der Komponente ermöglicht (d.h. die Manipulation am weitestgehenden behebt). Auf der anderen Seite können in manchen Situationen zu Verfügung stehende Gegenmaßnahmen aufgrund von in der Kontext-Information enthaltenen Regeln ausgeschlossen werden (z.B., wenn ein bestimmtes Sicherheitskriterium verletzt würde).
  • Zum Beispiel kann eine erste Gegenmaßnahme zwar eine weitgehendere Mitigation der Manipulation ermöglichen als eine zweite Gegenmaßnahme, aber auf der anderen Seite einen tiefergreifenderen Eingriff in die Komponenten des Fahrzeugs bedingen (und damit eine größere Gefahr für Störungen, die durch den Mitigationsprozess selbst hervorgerufen werden können). Eine zweite Gegenmaßnahme kann im Vergleich zu der ersten Gegenmaßnahme zwar eine weniger weitgehende Mitigation der Manipulation ermöglichen, aber auf der anderen Seite auch einen weniger tiefgreifenden Eingriff in die Komponenten des Fahrzeugs bedingen. In diesem Fall kann in einem ersten Kontext (ausgedrückt durch die Kontext-Information) die erste Gegenmaßnahme ausgewählt werden und in einem zweiten Kontext (ausgedrückt durch die Kontext-Information) die zweite Gegenmaßnahme ausgewählt werden. In einem illustrativen Beispiel kann der erste Kontext ein Kontext sein, in dem das Fahrzeug schnell fährt und der zweite Kontext ein Kontext, in dem das Fahrzeug steht. In anderen Fällen kann die Kontext-Information ein Sicherheitskriterium umfassen, dessen Einhaltung die Durchführung der ersten Gegenmaßnahme in einer ersten Situation verbietet, in einer zweiten Situation aber erlaubt.
  • In einigen Beispielen können die Gegenmaßnahmen ein unverzügliches Rücksetzen (z.B. innerhalb von fünf Minuten oder innerhalb von einer Minute) der Software der ersten Komponente 27a, c-f unter Verwendung von in dem zentralen persistenten Speicher 41 gespeicherten Software-Komponente 42a, c-n (z.B. erzeugt basierend auf der empfangenen Software-Update-Information) für die Komponente 27a, c-f, für die eine Manipulation erkannt wurde, umfassen und ein späteres Rücksetzen der Software der Komponente 27a, c-f unter Verwendung von Software-Komponenten 42a, c-n für die jeweilige Komponente 27a, c-f. Wiederum kann das unverzügliche Rücksetzen in bestimmten Kontexten (z.B. durch Sicherheitskriterien) ausgeschlossen sein. Zum Beispiel kann das spätere Rücksetzen in einem Zeitraum bis zum nächsten Hochfahrprozess der jeweiligen Komponente 27a, c-f erfolgen.
  • In der Folge werden anhand von 5 und 6 weitere Aspekte der Techniken der vorliegenden Offenbarung erläutert. 5 zeigt das Bordnetzwerk gemäß 2, in dem eine erste Komponente 27c manipuliert wurde. 6 zeigt das Bordnetzwerk gemäß 2, in dem die Manipulation der ersten Komponente 27c behoben wurde.
  • Zunächst werden einige Aspekte der Detektion der Manipulation der Software einer Komponente 27a, c-f des Fahrzeugs 20 genauer erläutert. Wie oben erwähnt, beinhalten die Techniken der vorliegenden Offenbarung das Erkennen einer Möglichkeit einer Manipulation der Software einer Komponente einer Mehrzahl von Komponenten eines Bordnetzwerks, was in manchen Beispielen Empfangen eines Signals beinhaltet. Dieses Signal kann auf verschiedene Weisen erzeugt werden.
  • Zunächst kann eine Manipulation einer Software einer Komponente 27a, c-f detektiert werden. Diese Detektion kann lokal durch entsprechende (Manipulations-) Detektionsvorrichtungen der entsprechenden Komponente geschehen.
  • In 5 ist die Software einer der Steuergeräte 27c (die „erste Komponente“ in manchen Beispielen der vorliegenden Offenbarung) manipuliert worden. Eine manipulierte Software-Komponente 71 wurde eingebracht.
  • Eine (Manipulations-)Detektionsvorrichtung 81a des Steuergeräts 27c (z.B. ein Teil eines Sicherheits-Moduls) kann diese Manipulation erkennen und ein entsprechendes Signal für die zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 erzeugen (siehe auch Schritte 111 und 113 in 1). Dieses Signal kann dann wie oben besprochen verarbeitet werden, um eine Mitigation einzuleiten.
  • In anderen Beispielen oder zusätzlich kann eine (Manipulations)-Detektionsvorrichtung 61b der zentralen Kommunikationsschnittstelle des Fahrzeugs 20 die Manipulation des Steuergeräts 27c (aus der Entfernung) detektieren und das Signal für die zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 erzeugen (die im Beispiel von 3 ebenfalls in der zentralen Kommunikationsschnittstelle des Fahrzeugs 20 angeordnet ist). In manchen Beispielen ist die zentrale Vorrichtung zur Mitigation einer Manipulation von Software 25 somit auch für eine zentrale Detektion der Manipulation der Software einer Mehrzahl von Komponenten 27a, c-f des Bordnetzwerks ausgelegt.
  • In anderen Beispielen oder zusätzlich kann eine Detektionsvorrichtung des entfernten System 30 die Manipulation des Steuergeräts 27c (aus der Entfernung) detektieren und das Signal für die zentralen Vorrichtung zur Mitigation einer Manipulation von Software 25 erzeugen. In diesem Beispiel kann das Signal über eine Schnittstelle des Fahrzeugs empfangen werden. Wenn auch die Detektion der Manipulation innerhalb des Fahrzeugs stattfindet, kann ein Zeitraum bis zur Mitigation der Manipulation allerdings in manchen Fällen verkürzt werden.
  • Die verschiedenen Detektionsvorrichtungen 81a, 61b (insbesondere die im Fahrzeug angeordneten Detektionsvorrichtungen 81a, 61b) können bereits in dem (Bord)Netzwerk vorhandene Detektionsvorrichtungen sein. Wie oben beschrieben können auch in manchen bekannten Verfahren Manipulationen der Software erkannt werden.
  • Die Detektion der Manipulation kann auf jede erdenkliche Weise geschehen. Zum Beispiel kann eine Software beim Starten („secure boot)“ und/oder im Betrieb („run-time manipulation detection“) mittels einer oder mehrerer Verfahren zur Prüfung der Echtheit und/oder Unverfälschtheit der Software geprüft werden (z.B. unter Verwendung einer oder mehrerer digitaler Signaturen).
  • In anderen Beispielen ein Signal, bei dessen Ausbeleiben die Möglichkeit der Manipulation erkannt wird, durch die in den vorhergehenden Abschnitten beschriebenen Komponenten erzeugt werden. Z.B. kann eine (Manipulations-)Detektionsvorrichtung 81a des Steuergeräts 27c ein Signal erzeugen (z.B. regelmäßig oder beim Auftreten von bestimmten Ereignissen), dessen Ausbeleiben eine Manipulation der Software des Steuergeräts 27c anzeigen kann.
  • In Bezug auf 5 und 6 werden nun weitere Aspekte der Gegenmaßnahme des Rücksetzens der Software der ersten Komponente 27c unter Verwendung von einer in dem zentralen persistenten Speicher 41 gespeicherter Software-Komponente 42c für die erste Komponente 27c diskutiert.
  • Die zentrale Vorrichtung zur Mitigation einer Manipulation 25 kann basierend auf einer Detektion der Manipulation der ersten Komponente 27c eine Gegenmaßnahme auswählen. Im Beispiel von 5 und 6 wird ein Rücksetzen der Software der ersten Komponente 27c beschrieben. Das Rücksetzen kann umfassen, die Software auf einen letzten authentifizierten Stand zu bringen. Das kann das Löschen und/oder Überschreiben von Teilen oder der kompletten Software der ersten Komponente 27c (z.B. einem Steuergerät) umfassen. Das Löschen und/oder Überschreiben von Teilen oder der kompletten Software der ersten Komponente 27c kann durch die zentrale Vorrichtung zur Mitigation einer Manipulation 25 aus der Entfernung (d.h. über eine Verbindung des Bordnetzwerkes) durchgeführt werden. In dieser Weise kann die manipulierte Software-Komponente 71, oder Teile davon 81a, 81b durch eine authentische (d.h. nicht manipulierte) Software-Komponente 52c, oder Teile davon 53a, 53b ersetzt werden, um die Manipulation zu beheben.
  • Die authentische (d.h. nicht manipulierte) Software 52c kann aus dem persistenten Speicher 41 abgerufen werden. Wie bereits erwähnt kann der persistenten Speicher 41 die Software-Komponente 42c in einer direkt verwendbaren Form oder in einer Form, die erst nach ein oder mehreren Verarbeitungsschritten zum Rücksetzen der manipulierten Software-Komponente 71 der der ersten Komponente 27c verwendet werden kann.
  • In manchen Beispielen kann die zentrale Vorrichtung zur Mitigation einer Manipulation 25 Maßnahmen zur Sicherstellung der Authentizität der zum Zurücksetzen der Software der Komponenten eingesetzten Software-Komponenten 42a, c-n durchführen. Zum Beispiel kann vor der Verwendung einer Software-Komponenten 42a, c-n eine Authentizitätsprüfung durchgeführt werden (z.B. anhand einer digitalen Signatur oder eines anderen Sicherheitsmerkmals).
  • Die zentrale Vorrichtung zur Mitigation einer Manipulation 25 kann für die Authentizitätsprüfung auf Funktionalitäten der Komponente, in die die zentrale Vorrichtung zur Mitigation einer Manipulation 25 integriert ist, zurückgreifen.
  • In manchen Beispielen kann der persistente Speicher 41 mehr als eine Version einer Software-Komponente für eine bestimmte Komponente des Bordnetzwerks enthalten. In diesem Fall kann die zentrale Vorrichtung zur Mitigation einer Manipulation 25 eine der Versionen auswählen (z.B. eine aktuelle Version der Software-Komponente).
  • In den vorhergehenden Abschnitt wurde mit Bezug auf 5 und 6 eine Gegenmaßnahme zur Mitigation der Manipulation einer ersten Komponente 27c des Bordnetzwerkes besprochen. Die zentrale Vorrichtung zur Mitigation einer Manipulation 25 ist jedoch einrichtet, zu einem anderen Zeitpunkt oder gleichzeitig zu der Mitigation der Manipulation der Software der ersten Komponente 27c Gegenmaßnahmen bezüglich der Manipulation der Software einer oder mehrerer weiterer Komponenten der Mehrzahl von Komponenten 27a, d-f einzuleiten.
  • In manchen Beispielen ist die zentrale Vorrichtung zur Mitigation einer Manipulation 25 ausgelegt zum Erkennen der Möglichkeit einer Manipulation der Software einer weiteren Komponente 27a, d-f der Mehrzahl von Komponenten des Bordnetzwerks und Einleiten einer weiteren Gegenmaßnahme zur Mitigation der Manipulation der weiteren Komponente 27a, d-f. Die Detektion der Manipulation, die Einleitung und die Durchführung der Gegenmaßnahmen kann wie oben beschrieben ablaufen. Zum Beispiel kann eine manipulierte Software-Komponente der weiteren Komponente 27a, d-f zurückgesetzt werden.
  • In dieser Weise kann eine einzige zentralen Vorrichtung zur Mitigation einer Manipulation eine Mehrzahl von in dem Bordnetzwerk von ihr entfernten Komponenten (z.B. Steuergeräte in verschiedenen Domänen) versorgen (d.h. Manipulationen von Software der Mehrzahl von Komponenten beheben).
  • In den vorhergehenden Abschnitten wurde ein Rücksetzen einer Software einer Komponente als Gegenmaßnahme, die von der zentralen Vorrichtung zur Mitigation einer Manipulation eingeleitet wird und in dem Bordnetzwerk durchgeführt wird, beschrieben.
  • In manchen Beispielen kann die zentrale Vorrichtung zur Mitigation einer Manipulation zusätzlich weitere Gegenmaßnahmen einleiten, die dann durchgeführt wird.
  • In manchen Beispielen kann die weitere Gegenmaßnahme gegen die Manipulation Blockieren einer Kommunikation über das Bordnetzwerk der ersten Komponente 27c (deren Software manipuliert ist) umfassen. Ein Blockieren der Kommunikation kann verhindern, dass eine manipulierte Software der ersten Komponente 27c über das Bordnetzwerk Schaden anrichtet. Auf der anderen Seite kann eine manipulierte Software eine Funktion der ersten Komponente 27c immer noch (z.B. für eine gewisse Zeitdauer) ausführen. Aus diesem Grund kann in manchen Fällen ein Blockieren der Kommunikation über das Bordnetzwerk der ersten Komponente 27c einem Zurücksetzen der Software der ersten Komponente 27c vorgezogen werden (z.B. in einem Kontext, in dem ein Ausfall der ersten Komponente 27c zumindest kurzfristig nicht tolerabel oder wünschenswert ist). Die Gegenmaßnahme des Zurücksetzens der Software der ersten Komponente 27c kann im Anschluss an die Gegenmaßnahme des Blockierens der Kommunikation der ersten Komponente 27c eingeleitet und durchgeführt werden (z.B. in einem geänderten Kontext).
  • Alternativ oder zusätzlich kann die weitere Gegenmaßnahme gegen die Manipulation Blockieren einer Kommunikation einer Gruppe von Komponenten über das Bordnetzwerk, die die erste Komponente 27c beinhaltet, umfassen. Im Beispiel von 3 kann die erste Komponente 27c in einer ersten Domäne 26a mit weiteren Komponenten 27a, b enthalten sein. Das Blockieren der Kommunikation einer Gruppe von Komponenten über das Bordnetzwerk ähnelt dem Blockieren der einzelnen Komponente, wie oben beschrieben. Auch hier kann verhindert werden, dass aus der Gruppe von Komponenten in dem Bordnetzwerk Schaden angerichtet wird. Auch im Falle des Blockierens der Kommunikation einer Gruppe von Komponenten über das Bordnetzwerk kann zu einem späteren Zeitpunkt die Gegenmaßnahme des Zurücksetzens der Software der ersten Komponente 27c eingeleitet und durchgeführt werden (z.B. in einem geänderten Kontext).
  • Weiter alternativ oder zusätzlich kann die weitere Gegenmaßnahme gegen die Manipulation Ändern einer Funktionalität der ersten Komponente 27c, für die eine Manipulation erkannt wurde, umfassen. Zum Beispiel kann eine Funktionalität eingeschränkt werden nach einem vorbestimmten Muster (z.B. auf eine Funktionalität, die für bestimmte sicherheitsrelevante Aspekte in einem jeweiligen Kontext gebraucht wird).
  • Weiter alternativ oder zusätzlich kann die weitere Gegenmaßnahme gegen die Manipulation Verschieben einer Funktionalität der ersten Komponente 27c, für die eine Manipulation erkannt wurde, zu einer oder mehreren anderen Komponenten der Mehrzahl der Komponenten 27a, b, d-f umfassen. Zum Beispiel kann die eine oder mehrere der anderen Komponenten der Mehrzahl der Komponenten 27a, b, d-f eine Aufgabe (oder Teile davon) der ersten Komponente 27c zumindest zeitweise übernehmen. Die erste Komponente 27c kann dann deaktiviert und/oder blockiert werden. Auch in diesem Fall kann zu einem späteren Zeitpunkt die Gegenmaßnahme des Zurücksetzens der Software der ersten Komponente 27c eingeleitet und durchgeführt werden (z.B. in einem geänderten Kontext).
  • In den vorangehenden Abschnitten wurden die Techniken der vorliegenden Offenbarung des Öfteren anhand der jeweiligen Verfahren beschrieben. Die vorliegende Offenbarung betrifft auch ein System, das dazu ausgelegt ist, die Verfahren der vorliegenden Offenbarung auszuführen. Das System kann eine oder mehrere Komponenten des Bordnetzwerks des Fahrzeugs umfassen (z.B. in diesen integriert sein). Das Bordnetzwerk kann auch Vorrichtungen umfassen, die nur zeitweise in dem Bordnetzwerk enthalten sind (z.B. ein Mobilgerät, das sich dem Fahrzeug befindet und in das Bordnetzwerk integriert ist). In anderen Beispielen kann das System auch ein entferntes System umfassen.
  • Die vorliegende Offenbarung betrifft aber auch ein Bordnetzwerk für ein Fahrzeug, das zumindest eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software gemäß der vorliegenden Offenbarung und eine Mehrzahl von Komponenten des Bordnetzwerks umfasst. Das Bordnetzwerk kann dazu ausgelegt sein, die Verfahren der vorliegenden Offenbarung auszuführen. Das Bordnetzwerk kann auch Vorrichtungen umfassen, die nur zeitweise in dem Bordnetzwerk enthalten sind (z.B. ein Mobilgerät, das sich dem Fahrzeug befindet und in das Bordnetzwerk integriert ist).
  • Wie oben beschrieben kann die zentrale Vorrichtung zur Mitigation einer Manipulation von Software eine Stand-alone-Vorrichtung sein (d.h. ein dediziertes Modul mit eigenen Hardware- und Softwareressourcen, das Teil des Bordnetzwerks ist und mit den anderen Komponenten des Bordnetzwerks kommunizieren kann). In anderen Fällen wird die zentrale Vorrichtung zur Mitigation einer Manipulation von Software jedoch in eine andere (bereits vorhandene) Komponente des Bordnetzwerks integriert sein. Die zentrale Vorrichtung zur Mitigation einer Manipulation von Software kann dabei als Software-Modul ausgestaltet sein (das in die Software der Komponente eingefügt wird). In anderen Fällen kann die zentrale Vorrichtung zur Mitigation einer Manipulation von Software zumindest einige dedizierte Hardware-Komponenten aufweisen (während sie andere Hardware-Komponenten der Komponente, in die sie integriert ist, mitbenutzt). Wie ebenfalls erwähnt kann die andere Komponente eine zentrale Kommunikationsschnittstelle des Bordnetzwerks, ein Zentral-Computer („vehicle computer“) oder eine andere Komponente mit vergleichsweise performanter Hardware sein.
  • In manchen Beispielen kann eine bestehende Komponente des Bordnetzwerkes (z.B. eine zentrale Kommunikationsschnittstelle des Fahrzeugs oder einer Domäne des Fahrzeugs, oder ein Zentral-Computer des Fahrzeugs, oder eine Head-Unit eines Infotainment-Systems) durch eine Aktualisierung der Software der Komponente des Bordnetzwerkes als zentrale Vorrichtung zur Mitigation einer Manipulation von Software eingerichtet werden.
  • Die zentrale Vorrichtung zur Mitigation einer Manipulation von Software oder die andere Komponente, in der sie integriert ist, kann zumindest einen Prozessor (ggf. mit mehreren Kernen) umfassen und Speicher, der Befehle umfasst, die, wenn sie durch den Prozessor ausgeführt werden, die Verfahren der vorliegenden Offenbarung ausführen.
  • Die vorliegende Offenbarung betrifft weiterhin ein Fahrzeug, das ein System gemäß der vorliegenden Offenbarung umfasst oder ein Teil dessen ist und/oder das ein Bordnetzwerk gemäß der vorliegenden Offenbarung umfasst.
  • Die vorliegende Offenbarung betrifft weiterhin ein Computer-Programm, das dazu ausgelegt ist, die Verfahren der vorliegenden Offenbarung auszuführen.
  • Die vorliegende Offenbarung betrifft weiterhin ein computer-lesbares Medium (z.B. eine DVD oder einen Festkörperspeicher), das ein Computer-Programm der vorliegenden Offenbarung enthält.
  • Die vorliegende Offenbarung betrifft weiterhin ein Signal (z.B. ein elektromagnetisches Signal gemäß einem drahtlosen oder drahtgebundenen Kommunikationsprotokoll), das ein Computer-Programm der vorliegenden Offenbarung codiert.

Claims (15)

  1. Computer-implementiertes Verfahren, umfassend: Erkennen (101) der Möglichkeit einer Manipulation der Software einer ersten Komponente (27c) einer Mehrzahl von Komponenten (27a-f) eines Bordnetzwerks eines Fahrzeugs (20) in einer zentralen Vorrichtung zur Mitigation einer Manipulation von Software (25), wobei die zentrale Vorrichtung zur Mitigation einer Manipulation (25) ein Teil des Bordnetzwerks ist und zur Mitigation von Software in jedem der Mehrzahl von Komponenten (27a-f) des Bordnetzwerkes ausgelegt ist; Einleiten (103) einer Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente (27c) durch die zentrale Vorrichtung zur Mitigation einer Manipulation (25); und Durchführen der Gegenmaßnahme zur Mitigation der Manipulation der Software der ersten Komponente (27c), wobei die Gegenmaßnahme gegen die Manipulation Rücksetzen der Software der ersten Komponente (27c) unter Verwendung eines Sicherheits-Moduls (93) der ersten Komponente (27c) und/oder eines unveränderlichen Moduls (99) der ersten Komponente (27c) umfasst.
  2. Verfahren gemäß Anspruch 1, wobei das Rücksetzen der Software der ersten Komponente (27c) umfasst: Versetzen der ersten Komponente (27c) in einen Rücksetz-Modus durch ein Sicherheits-Modul (93) der ersten Komponente (27c) und/oder ein unveränderliches Modul (99) der ersten Komponente (27c);
  3. Verfahren gemäß Anspruch 1 oder Anspruch 2, wobei das Rücksetzen der Software der ersten Komponente (27c) weiter umfasst: Neustarten eines Prozessors der ersten Komponente (27c) vor dem Versetzen der der ersten Komponente (27c) in den Rücksetz-Modus; Empfangen einer Software-Komponente zum Rücksetzen der Software nach dem Versetzen der ersten Komponente (27c) in einen Rücksetz-Modus; und Ablegen der empfangenen Software-Komponente in einem Speicher der ersten Komponente (27c).
  4. Verfahren gemäß Anspruch 3, wobei das Neustarten des Prozessors der ersten Komponente (27c) durch das Sicherheits-Modul (93) initiiert wird.
  5. Verfahren gemäß Anspruch 3 oder Anspruch 4, wobei das Neustarten des Prozessors der ersten Komponente (27c) durch eine Stromversorgungs-Einheit des Fahrzeugs (20) initiiert wird, die dazu ausgelegt ist, die Mehrzahl von Komponenten (27a-f) des Bordnetzwerkes selektiv mit Energie zu versorgen.
  6. Verfahren gemäß einem der Ansprüche 3 bis 5, wobei das Neustarten des Prozessors der ersten Komponente (27c) durch eine Betätigung einer zentralen Aktivierungsfunktion des Fahrzeugs (20) initiiert wird.
  7. Verfahren gemäß einem der Ansprüche 1 bis 6, wobei das unveränderliche Modul der ersten Komponente (27c) ein Bootloader ist.
  8. Verfahren gemäß einem der Ansprüche 1 bis 6, wobei eine Software-Komponente zum Rücksetzen der Software von der zentralen Vorrichtung zur Mitigation einer Manipulation (25) versendet wird.
  9. Verfahren gemäß einem der vorangehenden Ansprüche 3 bis 8, wobei das Empfangen der Software-Komponente zum Rücksetzen der Software und Ablegen der empfangenen Software-Komponente von dem Sicherheits-Modul (93) ausgeführt werden.
  10. Verfahren gemäß einem der vorangehenden Ansprüche 3 bis 9, wobei das Empfangen der Software-Komponente zum Rücksetzen der Software und Ablegen der empfangenen Software-Komponente von dem unveränderlichen Modul (99) ausgeführt werden.
  11. System, das dazu ausgelegt ist, die Verfahren gemäß einem der Ansprüche 1 bis 8 auszuführen.
  12. Bordnetzwerk für ein Fahrzeug (20), umfassend: eine zentrale Vorrichtung zur Mitigation einer Manipulation von Software (25); eine Mehrzahl von Komponenten (27a-f) des Bordnetzwerks, die eine erste Komponente (27c) beinhaltet, wobei das Bordnetzwerk dazu ausgelegt ist, das Verfahren gemäß einem der Ansprüchen 1 bis 10 durchzuführen.
  13. Fahrzeug (20), das das System gemäß Anspruch 11 umfasst oder Teil dessen ist und/oder das Bordnetzwerk gemäß Anspruch 12 umfasst.
  14. Computer-Programm, das dazu ausgelegt ist, die Verfahren der vorangehenden Ansprüche 1 bis 10 auszuführen.
  15. Computer-lesbares Medium oder Signal, das das Computer-Programm gemäß Anspruch 14 enthält bzw. codiert.
DE102022201901.6A 2022-02-23 2022-02-23 Mitigation einer manipulation von software eines fahrzeugs Pending DE102022201901A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102022201901.6A DE102022201901A1 (de) 2022-02-23 2022-02-23 Mitigation einer manipulation von software eines fahrzeugs
US18/165,649 US20230267212A1 (en) 2022-02-23 2023-02-07 Mitigation of a manipulation of software of a vehicle
CN202310181849.2A CN116639141A (zh) 2022-02-23 2023-02-21 减轻对车辆软件的操纵
JP2023025765A JP2023122639A (ja) 2022-02-23 2023-02-22 車両のソフトウェアの改竄の軽減

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022201901.6A DE102022201901A1 (de) 2022-02-23 2022-02-23 Mitigation einer manipulation von software eines fahrzeugs

Publications (1)

Publication Number Publication Date
DE102022201901A1 true DE102022201901A1 (de) 2023-08-24

Family

ID=87518791

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022201901.6A Pending DE102022201901A1 (de) 2022-02-23 2022-02-23 Mitigation einer manipulation von software eines fahrzeugs

Country Status (4)

Country Link
US (1) US20230267212A1 (de)
JP (1) JP2023122639A (de)
CN (1) CN116639141A (de)
DE (1) DE102022201901A1 (de)

Also Published As

Publication number Publication date
CN116639141A (zh) 2023-08-25
JP2023122639A (ja) 2023-09-04
US20230267212A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
DE112016000992T5 (de) Programmneuschreibvorrichtung und programmneuschreibverfahren
DE102010043991A1 (de) Verfahren und Systeme zum Erkennen und Konfigurieren von vernetzten Einrichtungen
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE102006040442B4 (de) Buskommunikationsmanagement bei einem Kraftfahrzeug mit mehreren, über einen Bus verbundenen Steuergeräten
DE102008021030A1 (de) Verfahren zum Betreiben eines Fahrzeugs sowie entsprechende Vorrichtung und entsprechendes Fahrzeug
EP2907072B1 (de) Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät
DE102017209557A1 (de) Verfahren zum Schutz eines Fahrzeugnetzwerks gegen manipulierte Datenübertragung
DE102020213219A1 (de) Verfahren und Vorrichtung für Over-The-Air-Update eines Fahrzeugs
DE102017209468A1 (de) Verfahren zum Zurücksetzen einer Software eines Fahrzeugsteuergeräts eines Fahrzeugs in einen ursprünglichen Zustand
EP3230131B1 (de) Verfahren zur steuerung des betriebs wenigstens einer funktionskomponente eines kraftfahrzeugs und kraftfahrzeug
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102018214301B4 (de) Vorrichtung und System mit einem Vertrauensanker
DE102012105093A1 (de) Sicherer Datenspeicher für Fahrzeugnetzwerke
EP3741094A1 (de) Steuerungssystem für ein kraftfahrzeug, verfahren zum betreiben des steuerungssystems sowie kraftfahrzeug mit einem derartigen steuerungssystem
DE102022201901A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102017209556A1 (de) Verfahren zum Schutz eines Fahrzeugnetzwerks gegen manipulierte Datenübertragung
DE102022201898A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102021207473A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102022201896A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102022201895A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102022201899A1 (de) Mitigation einer manipulation von software eines fahrzeugs
DE102022113922A1 (de) Ota-master, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
DE102007041847A1 (de) Steuergerät und Verfahren zur Ansteuerung von Personenschutzmitteln
DE102020207866A1 (de) Verfahren zum Durchführen einer abgesicherten Startsequenz eines Steuergeräts
DE102022209778A1 (de) Techniken zur mitigation von manipulationen eines bordnetzwerkes