DE102021208865A1 - Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen - Google Patents

Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen Download PDF

Info

Publication number
DE102021208865A1
DE102021208865A1 DE102021208865.1A DE102021208865A DE102021208865A1 DE 102021208865 A1 DE102021208865 A1 DE 102021208865A1 DE 102021208865 A DE102021208865 A DE 102021208865A DE 102021208865 A1 DE102021208865 A1 DE 102021208865A1
Authority
DE
Germany
Prior art keywords
fingerprints
memory cells
verification value
memory
boot
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
DE102021208865.1A
Other languages
English (en)
Inventor
Robert Kaster
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
Publication of DE102021208865A1 publication Critical patent/DE102021208865A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

Systeme, Verfahren und Fahrzeuge zum Verifizieren der Integrität von Kraftfahrzeug-Software. In einer Implementierung ist ein elektronischer Prozessor konfiguriert, ein Einschaltsignal zu empfangen und einen von mehreren Fingerabdrücken zufällig auszuwählen. Der elektronische Prozessor ist außerdem konfiguriert, einen Datensatz wiederzugewinnen, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist. Der elektronische Prozessor ist ferner konfiguriert, einen Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung einer kryptographischen Einwegfunktion mit einem geheimen Schlüssel und dem wiedergewonnenen Datensatz zu berechnen. Der elektronische Prozessor ist außerdem konfiguriert, den Verifikationswert vor dem Urladen mit einem Referenzverifikationswert für den ausgewählten Fingerabdruck zu vergleichen. Der elektronische Prozessor ist ferner konfiguriert, einen Sicherheitshalt in dem Software-Bild freizugeben, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.

Description

  • VERWANDTE ANMELDUNG
  • Die vorliegende Anmeldung bezieht sich auf die und beansprucht den Vorteil gemäß 35 U.S.C §119(e) der vorläufigen US-Patentanmeldung Nr. 63/065.419 , eingereicht am 13. August 2020 mit dem Titel „ACCELERATED VERIFICATION OF AUTOMOTIVE SOFTWARE IN VEHICLES“, deren gesamte Inhalte hier durch Bezugnahme mit aufgenommen sind.
  • GEBIET
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Verifikation von Kraftfahrzeug-Software. Spezifischer bezieht sich die vorliegende Offenbarung auf eine beschleunigte Verifikation der Kraftfahrzeug-Software in elektronischen Steuereinheiten von Fahrzeugen.
  • STAND DER TECHNIK
  • Da Kraftfahrzeug-Controller sowohl ihre Verbindungen zur Außenwelt als auch ihre Autorität über das Verhalten des Fahrzeugs ausweiten, werden bewährte Praktiken aus der Sicherheit der Internettechnik übernommen, um Kraftfahrzeug-Controller zu schützen. Die Welt der Personalcomputer und Smartphones unterscheidet sich sehr von den Kraftfahrzeugsystemen. Kraftfahrzeugsysteme verwenden kostensensitive Mikrocontroller mit begrenzten Optionen für die Anwenderwechselwirkung, verfügen aber über die Leistung, cyber-physische Systeme zu beeinflussen oder sogar zu steuern. Jüngste Exploits in der Kraftfahrzeugsicherheit haben die Aufmerksamkeit auf authentifizierte Software, die Authentifizierung von CAN- (Controller-Bereichsnetz-) Nachrichten und das Einschränken des Zugriffs auf Diagnosebefehle konzentriert. Da sowohl die Verbindbarkeit als auch die Autonomie zunehmen, ist die Sicherheit in Kraftfahrzeugen wichtig. Eine Sicherheitsherausforderung ist das Bestimmen, ob die ECU (elektronische Steuereinheit) die richtige Software enthält. Bevor z. B. der ECU ermöglicht wird, mit der physischen Welt in Wechselwirkung zu treten, sollte während des Startprozesses die Integrität der Software bei jedem Urladen überprüft werden. Die knappen Zeitanforderungen, die an ein sicherheitsentscheidendes Echtzeitsystem gestellt werden, erzeugen jedoch ein herausforderndes Problem für das sichere Urladen in Kraftfahrzeug-Controllern.
  • OFFENBARUNG DER ERFINDUNG
  • Die vorliegende Offenbarung stellt unter anderem ein System zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug bereit. In einigen Fällen kann ein derartiges System als ein abgetastetes sicheres Urlade- (SSB-) System bezeichnet werden. Das System enthält in einer Implementierung einen elektronischen Controller. Der elektronische Controller enthält einen Speicher und einen elektronischen Prozessor. In der vorliegenden Offenbarung bezieht sich der Begriff „Zelle“ auf eine Sammlung von Daten. Der Begriff „Block“ bezieht sich auf eine logische Gruppe von Speicherzellen. Der elektronische Prozessor ist konfiguriert, ein Software-Bild zu empfangen und das Software-Bild in mehreren Speicherzellen zu speichern, die in dem Speicher enthalten sind. Die mehreren Speicherzellen sind in Zeilen und Spalten organisiert. Der elektronische Prozessor ist außerdem konfiguriert, einen geheimen Schlüssel zu erzeugen. Der elektronische Prozessor ist ferner konfiguriert, mehrere Fingerabdrücke zu bestimmen, so dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält. Der elektronische Prozessor ist außerdem konfiguriert, Referenzverifikationswerte für die mehreren Fingerabdrücke zu berechnen. Jeder der Referenzverifikationswerte wird unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind. Der elektronische Prozessor ist ferner konfiguriert, ein Einschaltsignal zu empfangen und nach Empfangen des Einschaltsignals einen der mehreren Fingerabdrücke zufällig auszuwählen. Der elektronische Prozessor ist außerdem konfiguriert, aus dem Speicher einen Datensatz wiederzugewinnen, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist. Der elektronische Prozessor ist ferner konfiguriert, unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz einen Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck zu berechnen. Der elektronische Prozessor ist außerdem konfiguriert, den Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck zu vergleichen. Der elektronische Prozessor ist ferner konfiguriert, einen Sicherheitshalt in dem Software-Bild freizugeben, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt. Der elektronische Prozessor ist außerdem konfiguriert, ein Sicherheitswarnsignal zu erzeugen, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
  • Die vorliegende Offenbarung stellt außerdem ein Verfahren zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug bereit. Das Verfahren enthält das Empfangen eines Software-Bildes an einem elektronischen Controller des Fahrzeugs und das Speichern des Software-Bildes in mehreren Speicherzellen. Die mehreren Speicherzellen sind in Zeilen und Spalten organisiert. Das Verfahren enthält außerdem das Erzeugen eines geheimen Schlüssels. Das Verfahren enthält ferner das Bestimmen mehrerer Fingerabdrücke, so dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält. Das Verfahren enthält außerdem das Berechnen von Referenzverifikationswerten für die mehreren Fingerabdrücke. Jeder der Referenzverifikationswerte wird unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind. Das Verfahren enthält ferner das Empfangen eines Einschaltsignals und das zufällige Auswählen eines der mehreren Fingerabdrücke nach dem Empfangen des Einschaltsignals. Das Verfahren enthält außerdem das Wiedergewinnen eines Datensatzes, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist. Das Verfahren enthält ferner das Berechnen eines Verifikationswerts vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz. Das Verfahren enthält außerdem das Vergleichen des Verifikationswerts vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck. Das Verfahren enthält ferner das Freigeben eines Sicherheitshalts in dem Software-Bild, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt. Das Verfahren enthält außerdem das Erzeugen eines Sicherheitswarnsignals, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
  • Die vorliegende Offenbarung stellt ferner ein Fahrzeug bereit. Das Fahrzeug enthält in einer Implementierung einen elektronischen Controller. Der elektronische Controller enthält einen Speicher und einen elektronischen Prozessor. Der elektronische Prozessor ist konfiguriert, ein Software-Bild zu empfangen und das Software-Bild in mehreren Speicherzellen zu speichern, die in dem Speicher enthalten sind. Der elektronische Prozessor ist außerdem konfiguriert, die mehreren Speicherzellen in Zeilen und Spalten zu organisieren und einen geheimen Schlüssel zu erzeugen. Der elektronische Prozessor ist ferner konfiguriert, mehrere Fingerabdrücke zu bestimmen, so dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält. Der elektronische Prozessor ist außerdem konfiguriert, Referenzverifikationswerte für die mehreren Fingerabdrücke zu berechnen. Jeder der Referenzverifikationswerte wird unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind. Der elektronische Prozessor ist ferner konfiguriert, ein Einschaltsignal zu empfangen und nach dem Empfangen des Einschaltsignals einen der mehreren Fingerabdrücke zufällig auszuwählen. Der elektronische Prozessor ist außerdem konfiguriert, aus dem Speicher einen Datensatz wiederzugewinnen, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist. Der elektronische Prozessor ist ferner konfiguriert, unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz einen Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck zu berechnen. Der elektronische Prozessor ist außerdem konfiguriert, den Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck zu vergleichen. Der elektronische Prozessor ist ferner konfiguriert, einen Sicherheitshalt in dem Software-Bild freizugeben, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt. Außerdem ist der elektronische Prozessor konfiguriert, ein Sicherheitswarnsignal zu erzeugen, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
  • Figurenliste
  • Die beigefügten Figuren, in denen sich gleiche Bezugszeichen auf völlig gleiche oder funktional ähnliche Elemente überall in den einzelnen Ansichten beziehen, sind zusammen mit der ausführlichen Beschreibung im Folgenden in die Patentschrift aufgenommen und bilden einen Teil der Patentschrift und dienen dazu, die Implementierungen weiter zu veranschaulichen und die verschiedenen Prinzipien und Vorteile dieser Implementierungen zu erklären.
    • 1 ist ein Blockschaltplan eines Beispiels eines Fahrzeugs, das mit einem System zum Verifizieren der Integrität von Kraftfahrzeug-Software ausgestattet ist, gemäß einigen Implementierungen.
    • 2 ist ein Ablaufplan eines Beispiels eines Verfahrens zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug, wenn ein neues Software-Bild geladen wird, gemäß einigen Implementierungen.
    • 3 ist ein Ablaufplan eines Beispiels eines Verfahrens zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug während einer Phase vor dem Urladen gemäß einigen Implementierungen.
    • 4 ist ein Ablaufplan eines Beispiels eines Verfahrens zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug während der Laufzeit gemäß einigen Implementierungen.
    • 5 ist ein Ablaufplan eines Beispiels eines Verfahrens zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug gemäß einigen Implementierungen.
    • 6 ist eine graphische Darstellung von beispielhaft gemessenen Zeiten, um einen Nachrichtenauthentifizierungscode für einen 1-Megabyte-Abschnitt des Codes mit variierenden Abtastgrößen zu berechnen.
    • 7 ist eine graphische Darstellung, die die simulierten und berechneten Detektions-Entkommensraten über mehrere Zündzyklen darstellt.
    • 8 ist eine graphische Darstellung, die einen Zeitverringerungsfaktor im besten Fall für zwei Mikrocontroller-Familien über mehrere Blockbreiten in einem Beispiel darstellt.
  • Die System- und Verfahrenskomponenten sind hier gegebenenfalls durch herkömmliche Symbole in den Zeichnungen dargestellt worden, die nur jene spezifischen Einzelheiten zeigen, die für das Verständnis der Implementierungen relevant sind, um die Offenbarung nicht mit Einzelheiten zu verbergen, die für die Durchschnittsfachleute auf dem Gebiet, die von der Beschreibung hier profitieren, leicht offensichtlich sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockschaltplan eines Beispiels eines Fahrzeugs 100, das mit einem System 102 zum Verifizieren der Integrität von Kraftfahrzeug-Software ausgestattet ist. Das in 1 veranschaulichte Fahrzeug 100 ist ein Kraftfahrzeug, das vier Räder 104, 106, 108 und 110 enthält. In einigen Implementierungen ist das System 102 in einem Fahrzeug mit mehr oder weniger als vier Rädern eingerichtet. Das System 102 kann z. B. in einem Motorrad, einem Lastkraftwagen, einem Bus, einem Anhänger und dergleichen eingerichtet sein. In der Praxis enthält das Fahrzeug 100 zusätzliche Komponenten, wie z. B. ein Antriebssystem, ein Lenksystem, ein Bremssystem und dergleichen. Zur einfacheren Erklärung sind diese zusätzlichen Komponenten hier nicht veranschaulicht. Obwohl die vorliegende Beschreibung auf Kraftfahrzeug-Software abzielt, ist die Erfindung auf andere eingebettete Steuersysteme und auf Vorrichtungen des Internets der Dinge (loT) anwendbar.
  • Das in 1 veranschaulichte System 102 enthält einen elektronischen Controller 112 (z. B. eine elektronische Steuereinheit), eine Anwenderschnittstelle 114, einen Sender/Empfänger 116 und einen Controller-Bereichsnetz-Bus (z. B. einen CAN-Bus 118). In einigen Implementierungen enthält das System 102 weniger oder zusätzliche Komponenten in Konfigurationen, die sich von der in 1 veranschaulichten unterscheiden. Das System 102 kann z. B. in der Praxis zusätzliche Komponenten, wie z. B. Antriebssysteme und dergleichen, enthalten. Zur einfacheren Erklärung sind diese zusätzlichen Komponenten hier nicht veranschaulicht. In einigen Implementierungen ist das System 102 ganz oder teilweise innerhalb des Fahrzeugs 100 enthalten.
  • Der in 1 veranschaulichte elektronische Controller 112 enthält einen elektronischen Prozessor 120 (z. B. einen oder mehrere Mikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), Systeme auf einem Chip (SoCs) oder andere elektronische Controller), einen Speicher 122 und eine Eingabe-/Ausgabeschnittstelle 124. Die in dem elektronischen Controller 112 enthaltenen Komponenten sind über einen oder mehrere (nicht gezeigte) Busse aneinandergekoppelt. Der Speicher 122 enthält z. B. einen Festwertspeicher (ROM), einen Schreib-Lese-Speicher (RAM), einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), andere nicht transitorische computerlesbare Medien oder eine Kombination daraus. In einigen Implementierungen ist der Speicher 122 in dem elektronischen Prozessor 120 enthalten. Der elektronische Prozessor 120 ist konfiguriert, computerlesbare Anweisungen und Daten aus dem Speicher 122 wiederzugewinnen und die computerlesbaren Anweisungen auszuführen, um die hier beschriebene Funktionalität und die hier beschriebenen Verfahren auszuführen. Die Eingabe-/Ausgabeschnittstelle 124 enthält Routinen zum Übertragen von Daten zwischen den Komponenten innerhalb des elektronischen Controllers 112 und den Komponenten außerhalb des elektronischen Controllers 112. Die Eingabe-/Ausgabeschnittstelle 124 ist konfiguriert, die Daten über eine oder mehrere drahtgebundene Kopplungen (z. B. Drähte, eine optische Faser und dergleichen), drahtlos oder eine Kombination daraus zu senden und zu empfangen. Die Eingabe-/Ausgabeschnittstelle 124 ist z. B. konfiguriert, die Daten über eine oder mehrere drahtgebundene Kopplungen an den CAN-Bus 118 zu senden und von dem CAN-Bus 118 zu empfangen.
  • Die Anwenderschnittstelle 114 enthält z. B. einen oder mehrere Eingabemechanismen (z. B. einen Berührungsschirm, ein Tastenfeld, eine Taste, einen Knopf und dergleichen), einen oder mehrere Ausgabemechanismen (z. B. eine Anzeige, einen Lautsprecher und dergleichen) oder eine Kombination daraus. In einigen Implementierungen enthält die Anwenderschnittstelle 114 eine berührungsempfindliche Schnittstelle (z. B. eine Berührungsschirm-Anzeige), die eine visuelle Ausgabe anzeigt, die durch die Software-Anwendungen erzeugt wird, die durch den elektronischen Prozessor 120 ausgeführt werden. Die visuelle Ausgabe enthält z. B. graphische Indikatoren, Lichter, Farben, Text, Bilder, graphische Anwenderschnittstellen (GUIs), Kombinationen aus dem Vorhergehenden und dergleichen. Die berührungsempfindliche Schnittstelle empfängt außerdem eine Anwendereingabe unter Verwendung eines detektierten physischen Kontakts (z. B. einer detektierten Kapazität oder eines detektierten Widerstands). In einigen Implementierungen ist die Anwenderschnittstelle 114 vom System 102 getrennt.
  • Der Sender/Empfänger 116 enthält Routinen zum Übertragen von Informationen zwischen den Komponenten innerhalb des Systems 102 und den Komponenten außerhalb des Systems 102. Der Sender/Empfänger 116 ist konfiguriert, Signale unter Verwendung von z. B. Wi-Fi, Bluetooth, Zellennetzen, Telematiknetzen und dergleichen drahtlos zu senden und zu empfangen. In einigen Implementierungen ist der Sender/Empfänger 116 ferner konfiguriert, Signale über eine oder mehrere drahtgebundene Kopplungen (z. B. Drähte, eine optische Faser und dergleichen) zu senden und zu empfangen.
  • Mikroprozessoren und Mikrocontroller folgen einem Prozess, der als Bootstrapping oder nur als Urladen bezeichnet wird, wenn sie den Betrieb beginnen. Es ist der erste Schritt, ein kleines Programm, das als ein Urlade-Manager bezeichnet wird, aus einem dedizierten Abschnitt des Speichers zu laden, das es dem Controller ermöglicht, mit dem Speicher zu wechselwirken, entscheidende Treiber zu laden, Sicherheitsprüfungen auszuführen, die Taktfrequenz einzustellen und die Sicherheitsmonitore einzuschalten. Dann lädt der Urlade-Manager ein größeres Programm, das als ein Urlader bezeichnet wird, das weitere Treiber und den Kernel, der der Kern des Betriebssystems ist, lädt.
  • Typische Fahrzeugarchitekturen erlauben den ECUs nur 100 bis 250 Millisekunden zum Hochfahren. Falls die Verzögerung diese Zeit überschreitet, beginnen die Fahrer, das Fahrzeug als träge und nicht schnell reagierend wahrzunehmen. Viele Kraftfahrzeug-ECUs weisen einen Flash innerhalb des Mikrocontrollers auf und erfordern nicht das Laden des Programms von einer Festplatte in den RAM. Der Urlade-Prozess enthält typischerweise sicherheitsbezogene Prüfungen, wie z. B. das Verifizieren, dass der RAM und der Flash keine Störungen aufweisen, und das Initialisieren der Systembetriebsvariable. Der Urlade-Prozess wird normalerweise als abgeschlossen betrachtet, wenn das Modul beginnt, Nachrichten auf dem CAN-Bus zu senden, um den anderen Modulen zu melden, dass es ordnungsgemäß arbeitet.
  • Einige Mikrocontroller enthalten Hardware-Vertrauensanker (HTAs), wie z. B. ein Hardware-Sicherheitsmodul (HSM). Einige HSMs weisen einen unabhängigen, dedizierten Kern innerhalb des Mikrocontrollers mit geschütztem Flash für die Code- und Schlüsselspeicherung, geschütztem RAM für Variable, einem Hardware-Beschleuniger, der den AES unterstützt, echten und Pseudozufallszahlengeneratoren und einigen anderen sicherheitsunterstützenden Merkmalen auf. Typische Kern-Kraftfahrzeug-Controller enthalten 1 bis 8 Megabyte (MB), wobei vernünftigerweise erwartet werden kann, dass sich dies in den nächsten 5 Jahren verdoppelt. Aktuelle HSMs erfordern bis zu einer Sekunde, um eine vollständige Bildprüfung abzuschließen. Aus allen ECUs, die in Kraftfahrzeugen gefunden werden, sind die Infotainment-Systeme die für Sicherheitsexperten am erkennbarsten. Sie können sogar eine Linux-Version ausführen, mehrere HDMI-Ausgänge und Berührungsschirme, Bluetooth, USB und Wi-Fi unterstützen und den Anwenden die Möglichkeit bieten, die Schnittstelle individuell anzupassen und Apps herunterzuladen. Sie sind nicht für das Ausführen sicherheitsentscheidender Funktionen verantwortlich, wobei, während eine Verzögerung von zwei Sekunden für die Lenkung inakzeptabel sein würde, sie für ein Radio viel tolerierbarer ist. Es ist außerdem möglich, dass das System die Urlade-Prozedur beginnt, wenn das Fahrzeug entriegelt wird, was die Verzögerung von dem Zeitpunkt, zu dem der Fahrer das Fahrzeug startet, maskiert.
  • Gateway-Controller weisen außerdem einen starken Sicherheitsfokus und leistungsfähigere Prozessoren auf und werden als Kandidaten für umfangreichere Speicherprüfungen während der Urlade-Phase betrachtet. Diese Module wechselwirken nicht direkt mit der physischen Welt, sie weisen tendenziell mehrere CAN-, Ethernet- und andere Kommunikationsbusse auf, treiben aber keine Motoren oder Ventile an. Die Startgeschwindigkeit ist für diese Module wichtig, da die anderen Module im Fahrzeug ohne das funktionierende Gateway nicht kommunizieren können.
  • Kraftfahrzeug-Controller können aus einer Sicherheitsperspektive in vier Klassen gruppiert werden. Die Infotainment-Systeme und die Sender/Empfänger verwenden tendenziell Mikroprozessoren in Kraftfahrzeugqualität, die ein mehr standardisiertes Betriebssystems wie Linux oder QNX ausführen. Die Gateway-Controller verbinden mehrere CAN- und Ethernet-Busse und leiten Nachrichten von einem Bus zum einem weiteren weiter. Die Gateway-Controller segmentieren das Fahrzeugnetz in isolierte Teilnetze und verbessern zwei unterschiedliche, nicht miteinander in Beziehung stehende Funktionen, die Sicherheit und die Bandbreite. Das Segmentieren der Module in Cluster mit ähnlichen Funktionen und ähnlicher Sicherheitskritikalität stellt eine Isolation bereit, um die Auswirkung einer potentiellen Gefährdung eines Moduls zu begrenzen. Das Trennen der Module in Cluster, die häufig Nachrichten austauschen, ermöglicht die Verwendung von kostengünstigen Bussen. Die Gateway-Controller wechselwirken nicht direkt mit dem Fahrzeug, es ist ihre Hauptfunktion, Nachrichten zu empfangen, weiterzuleiten, abzutasten, zu übertragen und zu blockieren.
  • Die Kraftfahrzeug-Kern-ECUs mit sicherheitsrelevanten Merkmalen, wie z. B. die Kraftmaschinen-, Brems- und Lenkungs-Controller, verwenden Echtzeitbetriebssysteme. Die Echtzeitbetriebssysteme weisen ein System von Schleifen auf, die in regelmäßigen Zeitinkrementen zyklisch durchlaufen werden. Weil die ECU komplex mit dem Fahrzeug verbunden ist, müssen die Hardware- und Software-Entwürfe die physischen Eigenschaften des Systems effizient modellieren. In einem Personenkraftwagen mit einer Zeitkonstante der Gierrate von 500 Millisekunden würde der Brems-Controller z. B. das Trägheitsmodell des Fahrzeugs einmal alle 100 Millisekunden aktualisieren. Falls die Zeitkonstante für die Rotationsträgheit der Räder 50 Millisekunden beträgt, würde der Brems-Controller die Solldrücke in jedem Rad alle 10 Millisekunden aktualisieren. Das Aktualisieren des Soll-Raddrucks jede 1 Millisekunde würde eine signifikante Rechenlast verursachen, aber keine messbare Verbesserung der Leistung bringen. 100 Millisekunden warten, um den Soll-Raddruck alle 100 Millisekunden zu aktualisieren, würde die Steuerleistung beeinflussen.
  • Es gibt außerdem sehr einfache Systeme, manchmal mit nur 8-Bit-Mikrocontrollern mit sehr aggressiven Preisvorgaben. Beispiele dieses Typs von Modulen enthalten Sitz-Controller und Fensterhebermodule. Diese Systeme können kein Betriebssystem verwenden, wobei sie außerdem keine strengen Anforderungen an die Urlade-Zeit aufweisen können, während aber eine Signaturprüfung einen signifikanten Zeitraum dauert.
  • Sicherheits-Gateways bilden eine klare Abgrenzung zwischen der „sauberen“ und der „schmutzigen“ Seite des Fahrzeugkommunikationsnetzes. Die „schmutzige“ Seite ist durch die Anwenderinteraktivität und die Verbindbarkeit charakterisiert. Sie besteht aus den Modulen und Schnittstellen, die die Verbindbarkeit und die Anwenderkonfigurierbarkeit unterstützen. Der OBDII-Anschluss ist eine von der Regierung angeordnete Diagnoseschnittstelle für alle Fahrzeuge mit Kraftmaschinen, die Emissionen erzeugen. Diese Schnittstelle bietet Forschern und Angreifern eine reiches Betriebsmittel, um zu untersuchen, wie die Fahrzeugschnittstellen arbeiten, und außerdem eine leistungsstarke Angriffsfläche, die verwendet werden kann, um Zugriff auf den Fahrzeugbus zu erlangen. Andere Systeme, die mit Wi-Fi-, Bluetooth- oder Zellenverbindbarkeit verbunden sind, stellen ein noch signifikanteres Risiko dar, da der Angreifer keinen physischen Zugang zum Fahrzeug benötigen würde. Die Infotainment-Systeme ermöglichen es dem Anwender, mit dem Fahrzeug zu wechselwirken oder sogar neue Software zu laden. Moderne Autokäufer erwarten diese Funktionalität, erwarten aber außerdem, dass das Fahrzeug sicher bleibt.
  • Die „saubere“ Seite ist durch implizites Vertrauen und Isolierung von den Anwendern charakterisiert. Der Brems-Controller baut ein Modell des tatsächlichen Fahrzeugverhaltens auf und vergleicht es mit der Absicht des Fahrers. Wenn der Brems-Controller den vom Fahrer angeforderten Lenkwinkel vom Lenkungs-Controller empfängt, verwendet er diese Daten, um zu bestimmen, ob der Fahrer beginnt, die Steuerung des Fahrzeugs zu verlieren. Diese Entscheidungen sind für das Retten der Leben von mehr als sechstausend Menschen von 1995 bis 2014 in Europa verantwortlich, wobei die NHTSA schätzt, dass sie 88 % der Überschlagsereignisse bei leichten Lastkraftwagen eliminiert. Da lebensrettende Informationen ausgetauscht werden, müssen die Kern-Kraftfahrzeugmodule vertrauen können, dass die Informationen von der authentischen Quelle kommen. Die Kraftmaschinen-Controller, die Brems-Controller, die Lenkungs-Controller und die Airbag-Controller sind Beispiele der Module, die auf der „sauberen“ Seite angeordnet sind.
  • Eine grundlegende Gateway-Architektur würde die interaktiven Systeme vom Rest des Fahrzeugs isolieren und das Ausgesetzsein einem Angriff auf die Systeme beschränken, die die Sicherheit des Fahrzeugs nicht gefährden. Es gibt Nachrichten, denen es ermöglicht sein solle, Bereiche zu überqueren, die Fahrzeuggeschwindigkeit wird z. B. auf der „sauberen“ Seite erzeugt, wird aber zu der „schmutzigen“ Seite übertragen, um die Radiolautstärke zu erhöhen, wenn das Auto mit hohen Geschwindigkeiten fährt. Das Gateway kann als die primäre Authentifizierungsvorrichtung für die Fahrzeugdiagnose mit mehr Sicherheitsverbesserungen als einige andere Vorrichtungen dienen.
  • Eine anspruchsvollere Architektur segmentiert das Fahrzeug in Cluster von Modulen, die durch die Sicherheitsempfindlichkeit und Häufigkeit des Nachrichtenaustauschs gruppiert sind. Mit fünf bis zehn verschiedenen CAN- und Ethernet-Bussen isoliert ein Gateway mit mehr Granularität, wobei es eine zusätzliche Sicherheitsebene bereitstellt, um die Sicherheit während der gesamten Lebensdauer des Fahrzeugs zu unterstützen. Das Gateway kann den Informationsfluss einschränken, so dass gefährdete Module ihren Einfluss nicht auf andere Segmente des Fahrzeugs ausbreiten können. Außerdem stellt es ein gutes Heim für potentielle zukünftige Eindringdetektionssysteme bereit.
  • Einige Fahrzeuge bieten mehrere Optionen dafür, was seit neuestem eine fast universell konsistente Prozedur ist. Für den größeren Teil eines Jahrhunderts würde der Fahrer in das Fahrzeug einsteigen, einen eindeutigen Schlüssel einstecken und ihn dann drehen. Bis dies geschehen ist, würde das gesamte Fahrzeug „AUS“ sein. Alle ECUs würden sehr wenig Strom aufnehmen. Die Einführung des schlüssellosen Fernzugangs ermöglichte es dem Fahrer, das Fahrzeug innerhalb der Sichtlinie zu entriegeln. Dieser Auslöser wurde durch einige OEMs verwendet, um den Urlade-Prozess mehrerer entscheidender ECUs zu starten. Dies wurde erweitert, um den Fernstart zu unterstützen. Andere Fahrzeuge ermöglichen es dem Fahrer, nur in das Fahrzeug einzusteigen und einen Knopf zu drücken oder sogar mit einem Smartphone über einen Befehl über eine App zu starten. Es ist wichtig, die Ruhestromaufnahme streng zu steuern, da ein Fahrer, der mitten im Winter von einem anstrengenden Ausflug zu einem menschenleeren Parkplatz zurückkehrt, keine Kraftfahrzeugbatterie mit unzureichender Energie, um das Fahrzeug zu starten, begrüßt.
  • Von dem Moment, zu dem der Fahrer den Startknopf drückt, beginnt das Fahrzeug eine Symphonie des Zuführens von Leistung zu den verschiedenen Modulen überall im Fahrzeug. Jedes Modul rast, um seinen Urlade-Ablauf auszuführen, seine Treiber zu initialisieren und dann das Senden von Modulwach-Nachrichten auf dem CAN- oder Ethernet-Bus zu beginnen. Die einzelnen ECUs müssen ihren Funktionszustand überprüfen und sich vorbereiten, dass das Fahrzeug das Fahren beginnt. Der Kraftmaschinen-Controller versucht, das Anlassen der Kraftmaschine innerhalb von etwa 250 Millisekunden zu starten, wobei ein durchschnittlicher Fahrer keine Verzögerung zwischen dem Drücken des Startknopfes und dem Anspringen des Motors wahrnimmt. Während des Anlassprozesses des Motors zieht der Startermotor hunderte oder für manche Fahrzeuge mehr als tausend Ampere. Diese enorme Stromaufnahme verursacht, dass die verfügbare Spannung an den ECUs selbst in gesunden Fahrzeugen für eine kurze Zeit von etwas mehr als 12 Volt auf 6 Volt abfällt. Wenn die Zylinder beginnen zu zünden und der Motor Drehzahl aufnimmt, müssen die anderen ECUs bereit sein, um zu arbeiten.
  • Ferner wird dieses Problem dadurch verkompliziert, dass einige OEMs Fahrzeugidentifikationsnummern (VINs), oft redundant als VIN-Nummern bezeichnet, als einen Diebstahlsicherungsmechanismus verwenden. Der Kraftmaschinen-Controller fragt die VIN von mehreren Modulen an physisch unzugänglichen Stellen ab, bevor er den Motor startet. Dies erfordert, dass ein großer Anteil des CAN-Netzes innerhalb des 250-Millisekunden-Fensters funktionsfähig ist. Das Gateway muss die Nachrichten weiterleiten, der Brems- und der Lenkungs-Controller müssen auf die Abfragen antworten. Es kann sein, dass der Brems-Controller die Feststellbremse lösen muss und der Getriebe-Controller auf den vom Karosserie-Controller gesendeten Befehl reagieren muss, der vorwärts oder rückwärts angibt.
  • Wenn das Fahrzeug fährt, ist es nicht vernünftig, anzunehmen, dass die Spannungsversorgung konstant ist. Wenn eine kurze Unterbrechung auftritt, muss das Modul schnell rückgesetzt werden. Der Lenkungs-Controller muss den Betrieb wiederaufnehmen, bevor der Fahrer die Steuerung des Fahrzeugs verliert. Weil ein Angreifer einen Leistungsverlust simulieren oder einleiten könnte, ist es wichtig, dass der sichere Urlade-Prozess ebenso in diesem Fall die Integrität außerdem verifiziert.
  • Einige ECUs weisen einen Urlade-Manager (z. B. kleiner als 32 kB) auf, der bestimmt, ob das Modul neue Software akzeptieren, Diagnosebefehle einleiten oder in den Normalmodus eintreten sollte. Dann würde ein bis zu 64 kB großer Urlader das System einrichten, die Treiber laden und dann den Betrieb an die Hauptschleife weiterreichen. Unsignierte Software, oder genauer das Fehlen eines strengen Mechanismus, um nur signierte Software zu akzeptieren, kann verwendet werden, um die Steuerung der Kraftfahrzeug-ECUs zu erlangen.
  • Sicherheitsrelevante Systementwürfe implementieren die Privilegierungsebene in einer Weise, um die Anforderungen an die funktionale Sicherheit und die Zuverlässigkeit gegenüber zufälligen Störungen und Software-Defekten unterstützen. Obwohl einige Implementierungen von µCs (Mikrocontrollern) verschiedene Privilegierungsebenen unterstützen, stellt das Implementieren einer Herangehensweise mit einem Kernel, der erhöhte Privilegien aufweist, und allen anderen Anwendungen, die mit eingeschränkten Privilegien laufen, mehrere Herausforderungen einschließlich des Unterstützens der Laufzeit und der ASIL-D-Bewertung dar.
  • Das Springen zwischen dem privilegiertem Modus und dem Anwendermodus beeinflusst die Laufzeit, da entscheidende Register und interne Variablen gespeichert und dann abgerufen werden. Das Echtzeitsystem muss häufig den privilegierten Modus verwenden, um Unterbrechungen zu verarbeiten, Eingaben zu lesen und Treiber zu steuern. Die Verwendung der Sicherheitsprivilegierungsmodi als einen Sicherheitsmechanismus verbraucht einen riesigen Anteil der verfügbaren Schleifenzeit.
  • Es gibt mehrere Phasen, dass eine Verifikationsdetektion stattfindet. Die erste Phase ist, wenn neue Software in die ECU programmiert wird. Die Systeme sind vorgesehen, um sicherzustellen, dass OTA-Aktualisierungen (Aktualisierungen über die Luft) nicht modifizierte Software liefern, wobei aber jede ECU eine Integritätsprüfung ausführen sollte, nachdem die neue Software heruntergeladen worden ist. Weil dies relativ selten geschieht, sich das Fahrzeug in einem passiven Modus befindet und die ECU steuert, wann der Prozess des erneuten Aufspielens stattfindet, gibt es genügend Zeit für die erwartete Lösung der Kryptographie mit asymmetrischem Schlüssel. 2 ist ein Ablaufplan eines Beispiels eines Verfahrens 200 zum Verifizieren der Integrität der Kraftfahrzeug-Software im Fahrzeug 100 während einer Einrichtungsphase. Im Block 202 wird ein neues Software-Bild geladen. Im Block 204 wird das Software-Bild in die ECU (z. B. in den elektronischen Controller 112) geladen. Im Block 206 wird eine Signatur des gesamten Software-Bilds berechnet. Im Block 208 bestimmt die ECU, ob die Signatur richtig ist. Wenn die Signatur nicht richtig ist, stoppt das Verfahren 200 im Block 210. Wenn die Signatur richtig ist, wird alternativ im Block 212 eine Anzahl von zu prüfenden Fingerabdrücken bestimmt, wie im Folgenden ausführlicher beschrieben wird. Im Block 214 werden Referenzverifikationswerte für die Fingerabdrücke berechnet, wie außerdem im Folgenden ausführlicher beschrieben wird.
  • Die Implementierungen eines eingebetteten Mikrocontrollers können ausschließlich den eingebauten Flash-Speicher und RAM verwenden, wobei neue Software geladen werden muss, bevor die Signatur geprüft werden kann. Wenn die neue Software geladen ist, dann kann eine Signaturprüfung z. B. mit einem öffentlichen Schlüssel oder mit einem symmetrischen Schlüssel im geschützten Speicher ausgeführt werden. Nachdem diese Prozedur abgeschlossen ist, ist der beschleunigte Urlade-Prozess abgeschlossen. Tabelle 1 definiert die Variable, die in den hier offenbarten Prozessen verwendet werden. Tabelle 1: Definitionen der Variable
    Basis das gleiche wie n
    Index Variable, um durch den Speicher zu gehen
    ECU_ innerhalb des HSM gespeicherter ECU-
    ID spezifischer Schlüssel
    Schlüssel Kryptographischer Schlüssel
    MAC Nachrichtenauthentifizierungscode
    Mem_Zelle einzelne Speicherzelle, die gelesen wird
    Mem_Start Beginn der zu lesenden Speicherbank
    Mem_Stopp Ende der zu lesenden Speicherbank
    Signatur berechnete Signatur
    Schritt beim Parsen des Speichers verwendete Schrittweite
  • In der Einrichtungsphase wird der Speicher basierend auf der minimalen gefährdeten Codelänge in Spalten aufgeteilt. Für jede Spalte wird eine Signatur berechnet und dann im geschützten Speicher gespeichert. Ein erster Prozess, der im Folgenden beschrieben wird, ist ein Beispiel eines Pseudocodes, um die Signaturen mit einem Nachrichtenauthentifizierungscode (MAC) zu erzeugen. Der erste Prozess kann modifiziert werden, um eine SHA zu verwenden.
  • Erster Prozess: Einrichtungsphase - Nach dem Programmieren neuer Software
 Beginn Einrichtungs_Phase_MAC
       Eingabe Schritt, Mem_Start, Mem_Stopp
       Schlüssel = TRNG(128)
       Für Signatur = 0 bis Schritt - 1
             MAC = 0
             Für Index = (Mem_Start + Schritt) bis Mem_Stopp, Schritt
                   Mem_Zelle = Lesen(Index)
                   MAC = CBCMAC(Schlüssel, MAC, Mem_Zelle)
             Nächster Index
             Speichern MAC
       Nächste Signatur
       Speichern Schlüssel
 Ende
  • In einigen Implementierungen werden die Fingerabdrücke mit Zufälligkeit erstellt, anstatt die Fingerabdrücke aus allen Zellen in den einzelnen Spalten zu erstellen. Die Zellpositionen für einen Fingerabdruck können z. B. unter Verwendung eines Versatzes bestimmt werden, der durch eine Pseudozufallsfunktion bestimmt wird, die bei jedem Urlade-Zyklus reproduziert werden kann. In einigen Implementierungen kann der Startwert für den Versatz basierend auf einer ECUspezifischen Zufallszahl bestimmt werden.
  • In einigen Implementierungen werden die Zellenorte für einen Fingerabdruck um eine Pseudozufallszahl als ein zeilenspezifischer Versatz verschoben. Alternativ oder zusätzlich werden die Zellenorte durch eine abwechselnde Addition und Subtraktion des Versatzes verschoben. Alternativ oder zusätzlich werden die Zellenorte durch die Multiplikation der Pseudozufallszahl und eines spaltenspezifischen Versatzes bestimmt. Alternativ oder zusätzlich wird eine Pseudozufallszahl in einer Nachschlagetabelle (LUT) gespeichert, um ein eindeutiges Muster der Zellenorte bereitzustellen.
  • Bevor der ECU ermöglicht wird, mit der physischen Welt zu wechselwirken, sollte während des Startprozesses die Integrität der Software bei jedem Urladen überprüft werden. 3 ist ein Ablaufplan eines Beispiels eines Verfahrens 300 zum Verifizieren der Integrität der Kraftfahrzeug-Software im Fahrzeug 100 während einer Phase vor dem Urladen. Im Block 302 beginnt die Phase vor dem Urladen. In einigen Implementierungen beginnt die Phase vor dem Urladen in Reaktion auf das Empfangen eines Einschaltsignals (z. B. eines Fahrzeugzündsignals). Im Block 304 wird ein Hash des empfindlichen Speichers berechnet. Der empfindliche Speicher kann z. B. die HSM-Firmware, einen Urlader und eine entscheidende Konfiguration enthalten. Im Block 306 bestimmt die ECU, ob der Hash richtig ist. Wenn der Hash nicht richtig ist, stoppt das Verfahren 300 im Block 308. Wenn der Hash richtig ist, bestimmt die ECU alternativ im Block 310, ob das vorherige Urladen richtig war. Wenn das vorherige Urladen nicht richtig war, stoppt das Verfahren 300 im Block 308. Wenn das vorherige Urladen richtig war, wird alternativ im Block 312 ein zufälliger Fingerabdruck ausgewählt. Im Block 314 wird ein Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck berechnet, wie im Folgenden ausführlicher beschrieben wird. Im Block 316 bestimmt die ECU, ob der Verifikationswert richtig ist. Wenn der Verifikationswert nicht richtig ist, stoppt das Verfahren 300 im Block 308. Wenn der Verifikationswert richtig ist, gibt die Sicherheitsanwendung alternativ im Block 318 den normalen Urlade-Prozess frei.
  • Bei jedem Zündzyklus wird eine zu prüfende Spalte zufällig ausgewählt, wobei dann die Signatur für diese Spalte berechnet wird und dann mit der im geschützten Speicher gespeicherten Signatur verglichen wird. Ein zweiter Prozess, der im Folgenden beschrieben wird, ist ein Beispiel der Phase vor dem Urladen. Wenn der Mikrocontroller startet, hält das HSM den Hauptkern im Reset, bis er seine Initialisierungsphase abschließt. Am Beginn dieser Phase kann das HSM prüfen, dass es in einer sicheren und vertrauenswürdigen Weise arbeiten kann. Die Prüfung für diesen Prozess beginnt mit dem zufälligen Auswählen, welche der im Voraus berechneten Spalten für diesen Zündzyklus zu prüfen sind.
  • Zweiter Prozess: Urlade-Phase - Einrichten, jedes Mal
  •  Beginn Vor-Urlade_Prüfung_MAC
           Eingabe Schritt, Mem_Start, Mem_Stopp, Schlüssel
           Suche = RND (Schritt)
           AC = 0
           Prüfen = Lesen(Volle_Signatur_Status)
           Wenn Prüfen == fehlgeschlagen, dann
                 Halt
           Sonst 
                 Für Index = (Mem_Start + Suche) bis Mem_Stopp, Schritt
                       Mem_Zelle = Lesen(Index)
                       MAC = CBCMAC(Schlüssel, MAC, Mem_Zelle)
                 Nächster Index
                 Gespeicherte_Signatur = Lesen (Suche)
                 Wenn MAC == Gespeicherte_Signatur, dann
                       Rücksprung (Signatur_Bestanden)
                 Sonst
                       Speichern (Signatur_Fehlgeschlagen)
                       Halt
     Ende
  • Nachdem die ECU die Urlade-Phase abgeschlossen hat, kann die kontinuierliche Laufzeit-Detektion gefährdeter Software im Hintergrund ausgeführt werden. 4 ist ein Ablaufplan eines Beispiels eines Verfahrens 400 zum Verifizieren der Integrität von Kraftfahrzeug-Software im Fahrzeug 100 während der Laufzeit. Die Verifikation beginnt während der Hintergrundausführung im Block 402. Im Block 403 wird ein zu prüfender Fingerabdruck ausgewählt. Im Block 404 wird eine Signatur des gesamten Software-Bildes berechnet. Im Block 406 bestimmt die ECU, ob die Signatur richtig ist. Wenn die Signatur nicht richtig ist, wird im Block 408 ein Fehler-Merker gesetzt. Wenn die Signatur richtig ist, kehrt das Verfahren 400 alternativ zum Block 402 zurück, wobei die Hintergrundausführung fortgesetzt wird.
  • Ein im Folgenden beschriebener dritter Prozess ist ein Beispiel einer zusätzlichen Phase, um die Sicherheit zu erhöhen, während dennoch den Sicherheitsanforderungen entsprochen wird. Es ist möglich, die Signatur des aktuellen Bildes mit der ursprünglichen Signatur, die dem Softwarepaket zugeordnet ist, im Hintergrund zu vergleichen. Wenn eine Anomalie im Bild detektiert wird, dann kann das HSM den ASIL-bewerteten Sicherheitskern nicht außer Kraft setzen, wobei es aber den potentiellen Einfluss der gefährdeten Software auf einen einzigen Zündzyklus begrenzt. Beim folgenden Zündzyklus detektiert der HSM-Kern, dass die Bildprüfung nicht bestanden wurde, wobei das HSM die Steuerung über den Haupt-Controller sicher ausüben kann.
  • Dritter Prozess: Hintergrundprüfung - während des normalen Betriebs
  •  Beginn Nach-Urlade_Prüfung_MAC
          Eingabe Mem_Start, Mem_Stopp, Schlüssel
          MAC = 0
          Für Index = Mem_Start bis Mem_Stopp
                Mem_Zelle = Lesen(Index)
                MAC = CBCMAC(Schlüssel, MAC, Mem_Zelle)
          Nächster Index
          Lesen (Gespeicherte_Signatur)
          Wenn MAC == Gespeicherte_Signatur, dann
               Speichern (Volle_Signatur_Status = Bestanden)
               Rücksprung (Volle_Signatur_Bestanden)
          Sonst
               Speichern (Volle_Signatur_Status = Fehlgeschlagen)
               Rücksprung (Volle_Signatur_Fehlgeschlagen)
     Ende
  • 5 ist ein Ablaufplan eines Beispiels eines Verfahrens 500 zum Verifizieren der Integrität der Kraftfahrzeug-Software im Fahrzeug 100. Im Block 502 wird ein Software-Bild am elektronischen Controller 112 des Fahrzeugs 100 empfangen. Im Block 504 wird das Software-Bild in mehreren Speicherzellen gespeichert, die z. B. im Speicher 122 enthalten sind. Im Block 506 werden die mehreren Speicherzellen in Zeilen und Spalten organisiert. In einigen Implementierungen werden die mehreren Speicherzellen so in Zeilen und Spalten organisiert, dass die Gesamtzahl der Speicherzellen in jeder der Zeilen kleiner als eine oder gleich einer minimalen gefährdeten Codelänge ist. Im Block 508 wird ein geheimer Schlüssel erzeugt. Der geheime Schlüssel wird z. B. in dem Speicher 122 gespeichert. In einigen Implementierungen wird der geheime Schlüssel in einem geschützten Abschnitt des Speichers 122 (oder in einem geschützten Speicher) gespeichert.
  • Im Block 510 werden mehrere Fingerabdrücke bestimmt, so dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält. In einigen Implementierungen werden die mehreren Fingerabdrücke so bestimmt, dass jeder der mehreren Fingerabdrücke alle Speicherzellen aus einer der Spalten enthält. Alternativ oder zusätzlich werden die mehreren Fingerabdrücke so bestimmt, dass jeder der mehreren Fingerabdrücke eine der Speicherzellen aus wenigstens zwei der Spalten enthält. Alternativ oder zusätzlich werden die mehreren Fingerabdrücke so bestimmt, dass jede der mehreren Speicherzellen in wenigstens einem der mehreren Fingerabdrücke enthalten ist. Alternativ oder zusätzlich werden die mehreren Fingerabdrücke so bestimmt, dass eine Abtastvariation kleiner als ein Schwellenwert ist.
  • In einigen Implementierungen ist die Abtastvariation so, dass jede Zelle durch mehrere Fingerabdrücke geschützt ist (Überabtastungs-Herangehensweise). Alternativ oder zusätzlich wird jede w-te Zelle abgetastet, wenn bekannt ist, dass die gefährdeten Codesegmente eine minimale Länge w aufweisen (Überspringen-Herangehensweise). Alternativ oder zusätzlich werden kürzlich ungeprüfte Zellen bevorzugt, um abgetastet zu werden (Hybrid-Herangehensweise).
  • Im Block 512 werden Referenzverifikationswerte für die mehreren Fingerabdrücke berechnet. Jeder der Referenzverifikationswerte wird unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind. Die kryptographische Einwegfunktion enthält z. B. einen Nachrichtenauthentifizierungscode, einen Hash und dergleichen. Die Referenzverifikationswerte werden z. B. im Speicher 122 gespeichert. In einigen Implementierungen werden die Referenzverifikationswerte in einem ungeschützten Abschnitt des Speichers 122 (oder in einem ungeschützten Speicher) gespeichert.
  • Im Block 514 wird ein Einschaltsignal empfangen. In einigen Implementierungen enthält das Einschaltsignal ein Fahrzeugzündsignal. Im Block 516 wird einer der mehreren Fingerabdrücke nach dem Empfangen des Einschaltsignals zufällig ausgewählt. Im Block 518 wird ein Datensatz, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist, wiedergewonnen. Im Block 520 wird ein Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz berechnet. Im Block 522 wird der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck verglichen. Wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt, wird im Block 524 ein Sicherheitshalt in dem Software-Bild freigegeben. Wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt, wird alternativ im Block 526 ein Sicherheitswarnsignal erzeugt. In einigen Implementierungen führt das Sicherheitswarnsignal dazu, dass durch die Anwenderschnittstelle 114 eine hörbare und/oder visuelle Benachrichtigung erzeugt wird, um einen Insassen des Fahrzeugs 100 zu informieren. In einigen Implementierungen führt das Sicherheitswarnsignal dazu, dass das Fahrzeug 100 in einen sicheren Modus oder einen eingeschränkten Betriebsmodus versetzt wird.
  • Die Detektionsrate für diese hier beschriebenen Prozesse kann Δ = t/b sein, wobei t die Länge des kontinuierlichen Blocks des gefährdeten Codes ist und b die Blocklänge ist. Wenn es möglich ist, b ≤ t zu setzen, dann kann garantiert werden, dass der modifizierte Code detektiert würde. Aus einer technischer Perspektive ist der Minimalwert von b durch die verfügbare Zeit zum Berechnen des Fingerabdrucks des Speichers bestimmt. Das Verringern von b weist eine lineare Zunahme der Anzahl der zu prüfenden Zellen und folglich der Zeit, um den Fingerabdruck zu berechnen, auf. Das Verringern von b weist außerdem eine lineare Zunahme der Wahrscheinlichkeit des Detektierens gefährdeter Software auf, weist aber eine lineare Zunahme des Bedarfs an geschütztem Speicherplatz auf. Diese hier offenbarten Prozesse laden die Berechnung der b Fingerabdrücke nach vorne, nicht so sehr infolge der Verfügbarkeit von Rechenzeit während des Flash-Prozesses, sondern weil während des Umprogrammierprozesses die Sicherheitssteuerungen strenger gesteuert werden.
  • Nachdem ein Angreifer erfahren hat, dass ein festes Suchmuster verwendet wird, könnte der Angreifer sein Angriffsmuster in einer Weise gestalten, um das Risiko der Detektion zu minimieren. In Tabelle 2 verwendet der Angreifer Zwei- und Drei-Byte-Anweisungen und dann eine Drei-Byte-Sprunganweisung, um zum nächsten Codeblock zu gehen. Die gefährdeten Ausführungszellen enthalten ein ‚x‘, die Sprungbefehle enthalten ein ‚y‘. Auf diese Weise kann der Angreifer die Wahrscheinlichkeit der Detektion eines Zehn-Byte-Programms von 10/b auf 6/b bei einer einzigen Überprüfung verringern. In der Praxis ist es kompliziert, den gefährdeten Code zu verstreuen, ohne den Betrieb anderer Funktionen zu beeinflussen. Tabelle 2 - Gefährdeter Speicher mit Sprung
    0 1 2 3 4 5 b-3 b-2 b-1
    0 x x x y y y
    1 x x y y y
    2 x x y y y
    3 x x x
    d-3
    d-2
    d-1
  • Sei d die Anzahl der Blöcke. Das Produkt aus b und d muss den Speicherplatz übersteigen. Wenn b schrumpft, wächst d, wobei die erforderliche Zeit, um die Prüfung auszuführen, linear wächst. Der Minimalwert von b ist durch die verfügbare Zeit für die Prüfung in der Urlade-Phase begrenzt. Wenn b wächst, wächst außerdem die Minimalgröße der garantierten Detektionslänge. Außerdem wächst Speicherplatz, der erforderlich ist, um die Bilder zu speichern, linear. Aus einer technischer Perspektive sollte es einen Bereich potentiell geeigneter Basen geben. Wenn jede ECU b zufällig auswählt, kann die Schwierigkeit für den Angreifer vergrößert werden, seinen Angriff zu gestalten, wobei aber der Bereich wahrscheinlich in der Größenordnung von 10 liegt, wobei bei Millionen völlig gleicher ECUs der Schlüsselraum unzureichend ist, um den Aufwand signifikant zu erhöhen, der erforderlich ist, damit ein Angreifer das System gefährdet.
  • In einigen Implementierungen werden zwei Basen anstelle von nur einer ausgewählt. Eine Prüfung kann z. B. bei einem zufällig ausgewählten i ausgeführt werden, wobei dann eine zweite Prüfung bei i + b/2 ausgeführt werden kann.
  • Weil der ungenutzte Speicher am Ende eines Blocks im Flash normalerweise in einem gelöschten Zustand belassen wird, so dass er später programmiert werden kann. Die Shannon-Entropie für eine binäre Zeichenfolge ist durch Gleichung 1 gegeben. H p x log p x
    Figure DE102021208865A1_0001
  • Für das Beispiel ist b die Länge des ungenutzten Speichers und ist p(x) die Wahrscheinlichkeit von x, die vorhersagbar ist, die für diese Zeichenfolge 1 ist. Der Wert von log p x ist natürlich 0, so dass die Summe außerdem 0 ist. Bei der Univalenz der Entropie des ungenutzten Speicherplatzes bietet das Ausführen einer kryptographisch robusten Prüfung keinen Vorteil. Weil die Zellen leicht auf beliebige Werte modifiziert werden, kann der Wert des Speichers für einen Angreifer höher als der programmierte Speicher sein und könnte von einer gezielten Prüfung profitieren. Außerdem ist es wahrscheinlich, dass es mehrere Abschnitte des ungenutzten Speichers gibt.
  • Die Optimierung der Firmware-Integritätsprüfung ermöglicht die Verifikation verschiedener Kategorien des Speicherraums mit unterschiedlichen Algorithmen. Aus einer kryptographischen Perspektive ist dies kein interessantes Unterfangen, es sei denn, es gibt Mittel, um schnell zu verifizieren, dass ein Abschnitt des Speichers gelöscht bleibt. Eine mögliche Option würde sein, die Prüfung an dem Hauptkern mit einem vertrauenswürdigen Software-Modul früh im Urlade-Prozesses auszuführen, während das HSM die Signatur des Urladers oder des Kernels überprüft.
  • 6 zeigt ein eine graphische Darstellung beispielhaft gemessener Zeiten, um einen CBCMAC für einen 1-MB-Abschnitt des Codes mit dem Abtasten eines einzelnen Bytes pro Block bei variierenden Blockgrößen zu berechnen. Jede Blockgröße wurde dreimal gemessen, die maximale Streuung betrug 0,04 % zwischen den drei Messungen. Die Datenpunkte fallen sehr nah bei einer Geraden. Ein Kurvenanpassungsalgorithmus kann die Zeit beschreiben, die erforderlich ist, um den MAC für 1 MB durch Gleichung 2 zu berechnen. Die Zeit ist umgekehrt proportional zur Blockgröße. Berechnungszeit = ( 311 ms ) / ( Blockgr o ¨ ß e )
    Figure DE102021208865A1_0002
  • Die Linearität gibt an, dass die Verzögerungen vom Laden des Speichers oder Verarbeiten der Schrittgrößen minimal sind. Falls z. B. das Umstrukturieren der Datenbytes in die entsprechenden Stücke für den MAC einen signifikanten Zeitraum beansprucht, würde die Zeit von einer Schrittgröße von 1 zu 2 nicht halbiert worden sein. Falls eine ECU mit 4 MB Speicher und verfügbaren 40 Millisekunden für den sicheren Urlade-Prozess, würde eine minimale Blockgröße von 32 Byte unterstützt werden.
  • In einigen Implementierungen wird der Hauptkern verwendet, um einige der Funktionen schneller auszuführen, als wenn nur das HSM alles ausführt. Indem der HSM-Kern identifiziert, welcher Zufallsindex für den Zündzyklus zu verwenden ist, und dann die Aufgabe an den Hauptkern delegiert wird, den Flash zu lesen und in den RAM zu kopieren, könnte der Prozess durch Aufgabensegmentierung oder -parallelisierung beschleunigt werden.
  • Die abgetasteten Prüfungen gleichen die Anzahl der modifizierten Zellen, die Anzahl der geprüften Zellen und die Detektions-Entkommensrate aus. Weil sie nicht vollständig sind, können sie die Detektion für jede Modifikation nicht garantieren. Entscheidende Zellen, die die Autorität haben, Sicherheitsmaßnahmen zu umgehen, sollten bei jedem Urlade-Zyklus überprüft werden. Die Mehrzahl der Zellen steuert keine Sicherheitsfunktionen. Um die Wirksamkeit des Systems zu bewerten, sei z die Anzahl der Zellen, die der Gegner modifizieren muss, um sein Ziel zu erreichen. Sei b die Anzahl der Zellen in jedem Datenblock. Sei d die Anzahl der Blöcke. Es kann sein, dass ein Sicherheitsingenieur den Verbesserungsfaktor der minimalen Startzeit und der maximalen Soll-Entkommensrate ausgleichen muss. Als ein Beispiel wird ein Mikrocontroller mit 8 Megabyte Speicher auf dem Chip betrachtet. Als ein Beispiel wird eine Zelle als ein Wort von 4 Byte betrachtet, wobei angenommen wird, dass der Gegner 0,01 % der Zellen ändern muss, deshalb ist z = 200 Wörter. Als ein Beispiel wählt der Sicherheitsingenieur b = 64.
  • Für eine Modifikation des ausführbaren Codes sei v die Anzahl der Blöcke mit gefährdeten Zellen und sei w die Anzahl der gefährdeten Zellen in jedem Block. Wenn w ≥ b ist, dann ist die Detektion garantiert. Für den Fall, in dem w < b ist, erfordert jedes Segment, mit Ausnahme des letzten, einen Sprungbefehl, der es mit dem nächsten Segment verbindet. Der Gegner kann v Segmente modifizieren, jedes mit w = [ z + v 1 v ]
    Figure DE102021208865A1_0003
    gefährdeten Zellen.
  • 7 stellt die Entkommensrate über mehrere Zündzyklen für die Konfiguration im ungünstigsten Fall mit 200 aktiven modifizierten Zellen (v = 8 Segmente von w = 26 Zellen) und eine etwas bessere Konfiguration (v = 50 Segmente von w = 5 Zellen) dar. Die anfängliche Entkommensrate beträgt etwa 1,5 %, wenn aber die Anzahl der Zündzyklen zunimmt, detektiert das Verifikationsverfahren nicht so gut wie die nicht eingeschränkten Zufallsmuster: die SSB-Entkommensrate beträgt im zweiten Zyklus 0,2 % und im dritten 0,03 %.
  • Das SSB kann außerdem als die Zellen von jedem Block auf einen Fingerabdruck abbildend modelliert werden. Falls der Verifizieren-Algorithmus einen Fingerabdruck auswählt, der eine modifizierte Zelle abtastet, ist die Detektion erfolgreich. Als ein Beispiel ist die vergleichbare Entkommensrate mit allen gefährdeten Zellen in einem einzigen Block w* bestimmt, indem die Entkommensraten gleichgesetzt werden: P r ( E s c a p e m ) = ( 1 w b ) v × m = ( 1 w * b ) m w * = b ( 1 ( 1 w b ) v )
    Figure DE102021208865A1_0004
  • Weil das SSB die Abtastwerte wiederverwendet, anstatt sie erneut zu erzeugen, liefert ein Abtastwert jedes Mal, wenn er verwendet wird, Informationen über die anderen Abtastwerte. Jedes Mal, wenn der Urlade-Prüfung das Detektieren misslingt, ist der effektive Wert von w* etwas geringer. Mit diesem als ein Modell wachsen die entwichenen Informationen logarithmisch mit der Anzahl der gefährdeten Segmente v. Das Normieren auf die Gesamtzahl der Zellen wb und das Verwenden einer empirisch bestimmten Skalierungskonstante von 10 verringert die effektive Anzahl der veränderten Zellen bei jedem Zyklus um 1 ln ( v ) b 10 × w .
    Figure DE102021208865A1_0005
    Die w*-Kurve in 7 verfolgt die gemessene Detektionsrate in diesem idealisierten Fall. P r ( E s c a p e m ) = i = 1 m [ ( 1 w * ( 1 ln ( v ) b 10 × w ) i 1 b ) ( i 1 ) ]
    Figure DE102021208865A1_0006
  • In Experimenten wurde eine Implementierung des Beweises des Konzepts vorbereitet und in einem HSM auf fünf ASIL-D-bewerteten Kraftfahrzeug-Mikrocontrollern ausgeführt. Es wurden drei verschiedene Controller der Renesas RH850C-Familie verwendet. Außerdem wurden die Controller der TC37x- und TC39x-Familie von Infineon verwendet. Es war der Zweck der Implementierung, den Einfluss der Verwendung eines Worts oder Bytes als die Zellengröße und des Variierens der Blockgröße, die durch den Algorithmus verarbeitete Menge des Speichers und den dem Puffer zugewiesenen RAM zu bewerten. Die Ergebnisse der Implementierung verringerten die Verifikationszeit in den Infineon-Vorrichtungen um einen Faktor 9 und in den Renesas um einen Faktor 23, was die Urlade-Zeit in einen mit dem Sicherheitskonzept kompatiblen Bereich bringt.
  • Bei der Implementierung des Beweises des Konzepts wurde eine Blockgröße betrachtet, die von 4 bis 64 Wörtern reicht. Die Mikrocontroller sind typischerweise optimiert, um zusammenhängende Abschnitte des Speichers in den AES-Beschleuniger zu lesen, was den Zeitverringerungsfaktor (TRF) beeinflusst. Der TRF wird als das Verhältnis der Zeit, die erforderlich ist, um die Prüfung des gesamten Bildes abzuschließen, zu einer abgetasteten Prüfung berechnet. Weil Gesamtspeicher = b x d ist, nehmen die Anzahl der geprüften Zellen und die Zeit, um sie zu prüfen, ab, wenn die Blockgröße b zunimmt.
  • In diesem Beispiel wurde die optimale Zellengröße gewählt. Die anfänglichen Messungen verwendeten Bytes für die Zellen, wobei aber die HW optimiert ist, um Wörter (4 Bytes) statt Bytes zu lesen. Bei der Implementierung des Beweises des Konzepts verursachte das Wechseln zu Wörtern eine Leistungsverbesserung von 51 %. Das Verwenden von 16 Byte langen Zellen, um die AES-Maschine zu speisen, verbessert die Leserate, verringert aber außerdem die effektive Schnipsellänge w und folglich die Detektionsrate. Das Ausrichten der Zellengröße auf die kleinste Funktionseinheit im Mikrocontroller maximiert die Länge des Codeschnipsels. Falls eine Folge von Zellen gefährdet ist, erhöht das Prüfen aller von ihnen nicht die Detektionsrate gegenüber dem Prüfen nur einer.
  • Das Schema verwendet einen HSM-geschütztem Speicher und ungeschützten Speicher: Der 128-Bit-AES-Schlüssel (16 Byte) ist im geschützten Speicher gespeichert. Bei b = 64 nehmen die Fingerabdrücke 1 kB des ungeschützten Speichers ein. Bei dem kollisionsbeständigen AES-Schlüssel, der den MAC schützt, ermöglicht es die Kenntnis oder das Modifizieren der Fingerabdrücke einem Gegner nicht, die sichere Urlade-Prüfung zu umgehen. Der ungeschützte Speicher ist für die Fingerabdrücke geeignet.
  • 8 stellt die Konfiguration im besten Fall des Zeitverringerungsfaktors (TRF) für die Mikrocontroller sowohl der Infineon- als auch der Renesas-Familien und ihre entsprechende lineare Kurvenanpassung mit der besten Anpassung unter Verwendung der Leistung im besten Fall für jede Blockgröße dar. Die Mikrocontroller der Renesas-Familie stellen einen konstanten Zusatzaufwand (0,0357) bereit, wobei die TRF linear von b abhängig ist (0,3598 x b). Mit anderen Worten, die Zeit wird um b/2,8 verringert. Bei b = 64 stellt dies einen TRF von 23 bereit. Weil die Fingerabdruckerzeugung auf einem symmetrischen Schlüssel basiert, dauert der Einrichtungsalgorithmus etwas länger als das 2,8-fache wie das Berechnen eines nicht abgetasteten CBC-MAC über das gesamte Speicherbild. Für die Infineon-Mikrocontroller TC37x und T39x beträgt der TRF b/7,1. Mit b = 64 stellt dies einen TRF von 9 bereit.
  • In der vorangehenden Beschreibung sind spezifische Implementierungen beschrieben worden. Ein Durchschnittsfachmann auf dem Gebiet erkennt jedoch, dass verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne vom Schutzumfang der im Folgenden dargelegten Ansprüche abzuweichen. Entsprechend sind die Beschreibung und die Figuren in einem veranschaulichenden, anstatt in einem einschränkend Sinn zu betrachten, wobei vorgesehen ist, dass alle derartigen Modifikationen innerhalb des Schutzumfangs der vorliegenden Offenbarung enthalten sind.
  • Es soll erkannt werden, dass die hier verwendete Phraseologie und Terminologie für den Zweck der Beschreibung ist und nicht als einschränkend betrachtet werden sollte. Die Begriffe „angebracht“, „verbunden“ und „gekoppelt“ werden umfassend verwendet und umfassen sowohl das direkte als auch das indirekte Anbringen, Verbinden und Koppeln. Ferner sind „verbunden“ und „gekoppelt“ nicht auf physische oder mechanische Verbindungen oder Kopplungen eingeschränkt und können elektrische Verbindungen oder Kopplungen, ob direkt oder indirekt, enthalten. Außerdem können elektronische Kommunikationen und Benachrichtigungen unter Verwendung irgendwelcher bekannter Mittel einschließlich drahtgebundener Verbindungen, drahtloser Verbindungen usw. ausgeführt werden.
  • Es sollte außerdem angegeben werden, dass sowohl mehrere hardware- und software-basierte Vorrichtungen als auch mehrere unterschiedliche Strukturkomponenten verwendet werden können, um die vorliegende Offenbarung zu implementieren. Es sollte außerdem angegeben werden, dass sowohl mehrere hardware- und software-basierte Vorrichtungen als auch mehrere verschiedene Strukturkomponenten verwendet werden können, um die vorliegende Offenbarung zu implementieren. Zusätzlich sollte erkannt werden, dass Implementierungen der vorliegenden Offenbarung Hardware, Software und elektronische Komponenten oder Module enthalten können, die für die Zwecke der Erörterung veranschaulicht und beschrieben sein können, als ob die Mehrzahl der Komponenten ausschließlich in Hardware implementiert wäre. Ein Durchschnittsfachmann auf dem Gebiet würde jedoch basierend auf einer Lektüre dieser ausführlichen Beschreibung erkennen, dass in wenigstens einer Ausführungsform die elektronikbasierten Aspekte der Erfindung in (z. B. in einem nicht transitorischen, computerlesbaren Medium gespeicherter) Software implementiert sein können sein können, die durch einen oder mehrere Prozessoren ausführbar ist. Als solches sollte angegeben werden, dass sowohl mehrere hardware- und software-basierte Vorrichtungen als auch mehrere unterschiedliche Strukturkomponenten verwendet werden können, um die Erfindung zu implementieren. Die in der Patentschrift beschriebenen „Steuereinheiten“ und „Controller“ können z. B. einen oder mehrere Prozessoren, ein oder mehrere Speichermodule einschließlich eines nicht transitorischen computerlesbaren Mediums, eine oder mehrere Eingabe-/Ausgabeschnittstellen und verschiedene Verbindungen (z. B. einen Systembus), die Komponenten verbinden, enthalten.
  • Zur einfachen Beschreibung sind einige oder alle der hier dargestellten beispielhaften Systeme mit einem einzigen Exemplar jedes seiner Bestandteile veranschaulicht. Einige Beispiele können nicht alle Komponenten der Systeme beschreiben oder veranschaulichen. Andere beispielhafte Ausführungsformen können mehr oder weniger von jeder der veranschaulichten Komponenten enthalten, können einige Komponenten kombinieren oder können zusätzliche oder alternative Komponenten enthalten.
  • In diesem Dokument können relationale Begriffe, wie z. B. erster und zweiter, oben und unten und dergleichen ausschließlich verwendet werden, um eine Entität oder Handlung von einer weiteren Entität oder Handlung zu unterscheiden, ohne notwendigerweise irgendeine tatsächliche derartige Beziehung oder Reihenfolge zwischen derartigen Entitäten oder Handlungen zu erfordern oder zu implizieren. Die Begriffe „umfasst“, „umfassend“, „weist auf“, „aufweisend“, „enthält“, „enthaltend“, „beinhaltet“, „beinhaltend“ oder irgendeine andere Variation davon sind vorgesehen, eine nicht ausschließliche Einbeziehung abzudecken, so dass ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/das/die eine Liste von Elementen umfasst, aufweist, enthält, beinhaltet, nicht nur diese Elemente enthält, sondern andere Elemente enthalten kann, die nicht ausdrücklich aufgeführt sind oder für einen derartigen Prozess, ein derartiges Verfahren, einen derartigen Artikel oder eine derartige Vorrichtung inhärent sind. Ein Element, das durch „umfasst ...ein“, „weist ...ein auf“, „enthält ...ein“ oder „beinhaltet ...ein“ fortgesetzt wird, schließt ohne weitere Einschränkungen das Vorhandensein zusätzlicher völlig gleicher Elemente in dem Prozess, dem Verfahren, dem Artikel oder der Vorrichtung nicht aus, der/das/die das Element umfasst, aufweist, enthält oder beinhaltet. Die Begriffe „ein“ und „eine“ sind als eines oder mehrere definiert, wenn es nicht hier ausdrücklich anders dargelegt ist. Die Begriffe „im Wesentlichen“, „im Grunde“, „approximativ“, „etwa“ oder jede andere Version davon sind so definiert, dass sie sich nah bei dem befinden, wie es durch einen Durchschnittsfachmann auf dem Gebiet verstanden wird, wobei in einer nicht einschränkenden Ausführungsform der Begriff so definiert ist, dass er sich innerhalb von 10 %, in einer weiteren Ausführungsform innerhalb von 5 %, in einer weiteren Ausführungsform innerhalb von 1 % und in einer weiteren Ausführungsform innerhalb von 0,5 % befindet. Der Begriff „gekoppelt“, wie er hier verwendet wird, ist als verbunden definiert, obwohl nicht notwendigerweise direkt und nicht notwendigerweise mechanisch. Eine Vorrichtung oder eine Struktur, die in einer bestimmten Weise „konfiguriert“ ist, ist in wenigstens dieser Weise konfiguriert, kann aber außerdem in Weisen konfiguriert sein, die nicht aufgeführt sind.
  • Folglich stellt die vorliegende Offenbarung unter anderem Systeme, Verfahren und Fahrzeuge zum Verifizieren von Kraftfahrzeug-Software bereit. Verschiedene Merkmale und Vorteile sind in den folgenden Ansprüchen dargelegt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • US 63/065419 [0001]

    Claims (21)

    1. System zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug, wobei das System Folgendes umfasst: einen elektronischen Controller, der einen Speicher und einen elektronischen Prozessor enthält, der konfiguriert ist: ein Software-Bild zu empfangen, das Software-Bild in mehreren Speicherzellen zu speichern, die in dem Speicher enthalten sind, die mehreren Speicherzellen in Zeilen und Spalten zu organisieren, einen geheimen Schlüssel zu erzeugen, mehrere Fingerabdrücke so zu bestimmen, dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält, Referenzverifikationswerte für die mehreren Fingerabdrücke zu berechnen, wobei jeder der Referenzverifikationswerte unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt wird, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind, ein Einschaltsignal zu empfangen, einen der mehreren Fingerabdrücke nach dem Empfangen des Einschaltsignals zufällig auszuwählen, einen Datensatz, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist, aus dem Speicher wiederzugewinnen, einen Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz zu berechnen, den Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck zu vergleichen, einen Sicherheitshalt in dem Software-Bild freizugeben, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt, und ein Sicherheitswarnsignal zu erzeugen, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
    2. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jeder der mehreren Fingerabdrücke alle Speicherzellen aus einer der Spalten enthält.
    3. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jeder der mehreren Fingerabdrücke eine der Speicherzellen aus wenigstens zwei der Spalten enthält.
    4. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jede der mehreren Speicherzellen in wenigstens einem der mehreren Fingerabdrücke enthalten ist.
    5. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass eine Abtastvariation kleiner als ein Schwellenwert ist.
    6. System nach Anspruch 5, wobei die Abtastvariation wenigstens eine einer Überabtastungs-, Überspringen- oder Hybrid-Herangehensweise enthält.
    7. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist, zu bestimmen, ob die Gesamtzahl der Speicherzellen in jeder der Zeilen kleiner als eine oder gleich einer minimalen gefährdeten Codelänge ist.
    8. System nach Anspruch 1, wobei die kryptographische Einwegfunktion wenigstens einen eines Nachrichtenauthentifizierungscodes oder eines Hash enthält.
    9. System nach Anspruch 1, wobei der elektronische Prozessor ferner konfiguriert ist: den geheimen Schlüssel in einem geschützten Abschnitt des Speichers zu speichern und die Referenzverifikationswerte für die mehreren Fingerabdrücke in einem ungeschützten Abschnitt des Speichers zu speichern.
    10. Verfahren zum Verifizieren der Integrität von Kraftfahrzeug-Software in einem Fahrzeug, wobei das Verfahren Folgendes umfasst: Empfangen eines Software-Bildes an einem elektronischen Controller des Fahrzeugs; Speichern des Software-Bildes in mehreren Speicherzellen; Organisieren der mehreren Speicherzellen in Zeilen und Spalten; Erzeugen eines geheimen Schlüssels; Bestimmen mehrerer Fingerabdrücke, so dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält; Berechnen von Referenzverifikationswerten für die mehreren Fingerabdrücke, wobei jeder der Referenzverifikationswerte unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt wird, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind; Empfangen eines Einschaltsignals; zufälliges Auswählen eines der mehreren Fingerabdrücke nach dem Empfangen des Einschaltsignals; Wiedergewinnen eines Datensatzes, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist; Berechnen eines Verifikationswerts vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz; Vergleichen des Verifikationswerts vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck; Freigeben eines Sicherheitshalts in dem Software-Bild, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt; und Erzeugen eines Sicherheitswarnsignals, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
    11. Verfahren nach Anspruch 10, wobei die mehreren Fingerabdrücke ferner so bestimmt werden, dass jeder der mehreren Fingerabdrücke alle Speicherzellen aus einer der Spalten enthält.
    12. Verfahren nach Anspruch 10, wobei die mehreren Fingerabdrücke ferner so bestimmt werden, dass jeder der mehreren Fingerabdrücke eine der Speicherzellen aus wenigstens zwei der Spalten enthält.
    13. Verfahren nach Anspruch 10, wobei die mehreren Fingerabdrücke ferner so bestimmt werden, dass jede der mehreren Speicherzellen in wenigstens einem der mehreren Fingerabdrücke enthalten ist.
    14. Verfahren nach Anspruch 10, wobei die mehreren Fingerabdrücke ferner so bestimmt werden, dass eine Abtastvariation kleiner als ein Schwellenwert ist.
    15. Verfahren nach Anspruch 10, das ferner Folgendes umfasst: Bestimmen, ob die Gesamtzahl der Speicherzellen in jeder der Zeilen kleiner als eine oder gleich einer minimalen gefährdeten Codelänge ist.
    16. Verfahren nach Anspruch 10, wobei die kryptographische Einwegfunktion wenigstens einen eines Nachrichtenauthentifizierungscodes oder eines Hash enthält.
    17. Verfahren nach Anspruch 10, das ferner Folgendes umfasst: Speichern des geheimen Schlüssels in einem geschützten Speicher; und Speichern der Referenzverifikationswerte für die mehreren Fingerabdrücke in einem ungeschützten Speicher.
    18. Fahrzeug, das Folgendes umfasst: einen elektronischen Controller, der einen Speicher und einen elektronischen Prozessor enthält, der konfiguriert ist: ein Software-Bild zu empfangen, das Software-Bild in mehreren Speicherzellen, die in dem Speicher enthalten sind, zu speichern, die mehreren Speicherzellen in Zeilen und Spalten zu organisieren, einen geheimen Schlüssel zu erzeugen, mehrere Fingerabdrücke so zu bestimmen, dass jeder der mehreren Fingerabdrücke wenigstens eine der Speicherzellen aus jeder der Zeilen enthält, Referenzverifikationswerte für die mehreren Fingerabdrücke zu berechnen, wobei jeder der Referenzverifikationswerte unter Verwendung einer kryptographischen Einwegfunktion mit dem geheimen Schlüssel und den Daten bestimmt wird, die in den Speicherzellen gespeichert sind, die in einem der mehreren Fingerabdrücke enthalten sind, ein Einschaltsignal zu empfangen, einen der mehreren Fingerabdrücke nach dem Empfangen des Einschaltsignals zufällig auszuwählen, einen Datensatz, der in den Speicherzellen des ausgewählten Fingerabdrucks gespeichert ist, wiederzugewinnen, einen Verifikationswert vor dem Urladen für den ausgewählten Fingerabdruck unter Verwendung der kryptographischen Einwegfunktion mit dem geheimen Schlüssel und dem wiedergewonnenen Datensatz zu berechnen, den Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck zu vergleichen, einen Sicherheitshalt in dem Software-Bild freizugeben, wenn der Verifikationswert vor dem Urladen mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt, und ein Sicherheitswarnsignal zu erzeugen, wenn der Verifikationswert vor dem Urladen nicht mit dem Referenzverifikationswert für den ausgewählten Fingerabdruck übereinstimmt.
    19. Fahrzeug nach Anspruch 17, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jeder der mehreren Fingerabdrücke alle Speicherzellen aus einer der Spalten enthält.
    20. Fahrzeug nach Anspruch 17, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jede der mehreren Fingerabdrücke eine der Speicherzellen aus wenigstens zwei der Spalten enthält.
    21. Fahrzeug nach Anspruch 17, wobei der elektronische Prozessor ferner konfiguriert ist, die mehreren Fingerabdrücke so zu bestimmen, dass jede der mehreren Speicherzellen in wenigstens einem der mehreren Fingerabdrücke enthalten ist.
    DE102021208865.1A 2020-08-13 2021-08-12 Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen Pending DE102021208865A1 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    US202063065419P 2020-08-13 2020-08-13
    US63/065,419 2020-08-13

    Publications (1)

    Publication Number Publication Date
    DE102021208865A1 true DE102021208865A1 (de) 2022-02-17

    Family

    ID=80000360

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102021208865.1A Pending DE102021208865A1 (de) 2020-08-13 2021-08-12 Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen

    Country Status (3)

    Country Link
    US (1) US11956369B2 (de)
    CN (1) CN114077729A (de)
    DE (1) DE102021208865A1 (de)

    Cited By (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE102022125619A1 (de) 2022-10-05 2024-04-11 Audi Aktiengesellschaft Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug

    Family Cites Families (8)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US8881308B2 (en) 2012-09-12 2014-11-04 GM Global Technology Operations LLC Method to enable development mode of a secure electronic control unit
    US9792440B1 (en) 2014-04-17 2017-10-17 Symantec Corporation Secure boot for vehicular systems
    JP6197000B2 (ja) 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
    JP6217728B2 (ja) 2015-10-19 2017-10-25 トヨタ自動車株式会社 車両システムおよび認証方法
    US10482255B2 (en) 2016-02-16 2019-11-19 Atmel Corporation Controlled secure code authentication
    WO2017147207A1 (en) 2016-02-22 2017-08-31 Continental Automotive Systems, Inc. Method to establish and update keys for secure in-vehicle network communication
    DE102019201922A1 (de) 2019-02-14 2020-08-20 Robert Bosch Gmbh Verfahren und Vorrichtung zum Verarbeiten von in einer Speichereinrichtung gespeicherten Daten
    JP7092071B2 (ja) * 2019-03-05 2022-06-28 トヨタ自動車株式会社 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム

    Cited By (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE102022125619A1 (de) 2022-10-05 2024-04-11 Audi Aktiengesellschaft Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug

    Also Published As

    Publication number Publication date
    US11956369B2 (en) 2024-04-09
    CN114077729A (zh) 2022-02-22
    US20220052854A1 (en) 2022-02-17

    Similar Documents

    Publication Publication Date Title
    JP6898420B2 (ja) セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
    DE102017125826A1 (de) Nachrichtenauthentifizierung über controller area network
    DE102016101327B4 (de) Verfahren zum Reagieren auf einen nicht autorisierten elektronischen Zugriff auf ein Fahrzeug
    EP3987424A1 (de) Systeme und verfahren zur risikobewertung in vernetzten fahrzeugkomponenten
    DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
    DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
    DE112016002785T5 (de) Elektronische Steuereinheiten für Fahrzeuge
    DE102019127100A1 (de) Verfahren und system zum bereitstellen von sicherheit eines fahrzeuginternen netzwerkes
    DE102018123197A1 (de) Priorisierung und behebung von cybersicherheitsschwachstellen
    DE102019124914A1 (de) Cloudautorisierte fahrzeugsteuerung
    DE102021208865A1 (de) Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen
    WO2016091388A1 (de) Verfahren zur steuerung des betriebs wenigstens einer funktionskomponente eines kraftfahrzeugs und kraftfahrzeug
    DE112020001126T5 (de) Fahrzeugsteuergerät
    DE102022105476A1 (de) System und Verfahren zum Aufbauen eines fahrzeugintegrierten Kryptografiemanagers
    DE102023110645A1 (de) Sicherheitsverfahren und Sicherheitsvorrichtung
    CN110908871A (zh) 基于整车控制器的数据管理方法、装置、设备及存储介质
    Camek et al. Future cars: Necessity for an adaptive and distributed multiple independent levels of security architecture
    DE102022119774A1 (de) Verfahren und System zur Durchführung einer sicheren Boot-Prozedur unter Verwendung einer mehrstufigen Sicherheitsverifizierung in einem Mikrocontroller eines Fahrzeugs
    DE102021121039A1 (de) Autonomes-fahren-aufzeichnungsvorrichtung und betriebsverfahren dafür
    DE102021107932A1 (de) Sicherheitssystem und -verfahren zum Deaktivieren von Fahrzeugfunktionen
    DE102021208459A1 (de) Verfahren zur authentischen Datenübertragung zwischen Steuergeräten eines Fahrzeugs, Anordnung mit Steuergeräten, Computerprogramm und Fahrzeug
    DE102020216048A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
    CN112714147A (zh) 改善车辆通信安全性
    CN113705961B (zh) 基于车辆动力总成功能的风险等级评估分解方法及装置
    EP1455312B1 (de) Verfahren und Einrichtung zur Wartung von sicherheitsrelevanten Programmcode eines Kraftfahrzeuges

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed