DE102022123225A1 - Verifizierung einer rechenvorrichtung - Google Patents

Verifizierung einer rechenvorrichtung Download PDF

Info

Publication number
DE102022123225A1
DE102022123225A1 DE102022123225.5A DE102022123225A DE102022123225A1 DE 102022123225 A1 DE102022123225 A1 DE 102022123225A1 DE 102022123225 A DE102022123225 A DE 102022123225A DE 102022123225 A1 DE102022123225 A1 DE 102022123225A1
Authority
DE
Germany
Prior art keywords
computer
security code
message
vehicle
response
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
DE102022123225.5A
Other languages
English (en)
Inventor
Ali Hassani
Mackenzie Martinez
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.)
Ford Global Technologies LLC
Original Assignee
Ford Global Technologies LLC
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 Ford Global Technologies LLC filed Critical Ford Global Technologies LLC
Publication of DE102022123225A1 publication Critical patent/DE102022123225A1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/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
    • 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/3271Cryptographic 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 challenge-response
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Small-Scale Networks (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Als Reaktion auf ein Auslöseereignis wird durch einen ersten Computer eine Abfragenachricht, die einen Sicherheitscode beinhaltet, durch Eingeben des Sicherheitscodes in ein kryptographisches Programm erzeugt, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt. Nach dem Übertragen der Abfragenachricht an einen zweiten Computer wird der Sicherheitscode durch den ersten Computer auf Grundlage einer Zufallszahl aktualisiert, die von einem Zufallszahlengenerator ausgegeben wird. Als Reaktion auf die Abfragenachricht wird an dem ersten Computer eine Antwort von dem zweiten Computer empfangen. Nach dem Verifizieren des zweiten Computers auf Grundlage der Antwort wird eine Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, von dem ersten Computer an den zweiten Computer übertragen.

Description

  • TECHNISCHES GEBIET
  • Die Offenbarung betrifft Fahrzeugrechenvorrichtungen.
  • ALLGEMEINER STAND DER TECHNIK
  • Fahrzeuge können mit Computern, netzen, Sensoren und/oder Steuerungen ausgestattet sein, um Daten bezüglich der Umgebung des Fahrzeugs zu erfassen und/oder Fahrzeugkomponenten zu betreiben. Fahrzeugsensoren können Daten über eine Umgebung des Fahrzeugs bereitstellen, z. B. bezüglich zurückzulegenden Routen und zu umfahrenden Objekten in der Umgebung des Fahrzeugs. Verschiedene Rechenvorrichtungen oder Steuerungen, wie etwa elektronische Steuereinheiten (electronic control units - ECUs), können in einem Fahrzeug bereitgestellt sein und können über ein Fahrzeugnetz kommunizieren. Nachrichten, die über das Fahrzeugnetz gesendet und empfangen werden, können sich auf den Betrieb des Fahrzeugs beziehen und können Sensordaten, Betätigungsbefehle, Fehlerberichte usw. beinhalten. Eine Fahrzeugrechenvorrichtung kann ein Fahrzeug betreiben und Echtzeitentscheidungen auf Grundlage von Daten treffen, die von Sensoren und/oder Rechenvorrichtungen empfangen werden.
  • KURZDARSTELLUNG
  • Wie hierin offenbart, ist es möglich, das Risiko zu reduzieren, dass ein Fahrzeugcomputer nicht authentische (oder unauthentische) Daten, d. h. falsche oder nicht autorisierte Daten, sendet, empfängt und/oder auf diese reagiert. Im Kontext dieses Dokuments handelt es sich bei nicht authentischen Daten um Daten, die von einer nicht autorisierten Quelle (d. h. von einer anderen Quelle als einem der Fahrzeugsensoren oder anderen autorisierten Rechenvorrichtungen in einem Fahrzeugkommunikationsnetz) in das Fahrzeugkommunikationsnetz eingespeist werden. Zum Beispiel sind während des Fahrzeugbetriebs durch Sensoren erfasste Daten in Nachrichten beinhaltet, die von dem Fahrzeugcomputer empfangen werden. Auf Grundlage der Daten kann der Fahrzeugcomputer Steuersignale an Fahrzeugkomponenten erzeugen, die Fahrzeugvorgänge ausführen. Es können jedoch Schwierigkeiten auftreten, falls die dem Fahrzeugcomputer bereitgestellten Daten nicht authentisch sind. Ein Beispiel für nicht authentische Daten kann Daten beinhalten, die dem Fahrzeugcomputer über einen Einschleusungsangriff präsentiert werden. Ein Einschleusungsangriff findet statt, wenn nicht authentische Daten (z. B. Daten, die sich von den durch die Fahrzeugsensoren erfassten Daten unterscheiden) böswillig in das Fahrzeugkommunikationsnetz hochgeladen werden.
  • Um Daten zu authentifizieren, kann ein Fahrzeugcomputer die Daten in ein kryptographisches Programm einspeisen, das die Daten auf Grundlage eines Schlüssels verschlüsselt. Der Fahrzeugcomputer kann dann Nachrichten, die die verschlüsselten Daten beinhalten, an verschiedene andere Rechenvorrichtungen, z. B. elektronische Steuereinheiten (electronic control units - ECUs), bereitstellen. Nach dem Empfangen einer Nachricht, die verschlüsselte Daten beinhaltet, kann jede ECU die verschlüsselten Daten in das kryptographische Programm eingeben, das die verschlüsselten Daten auf Grundlage des Schlüssels entschlüsselt. Das Codieren und Decodieren von Daten, um jede Nachricht über ein kryptographisches Programm zu authentifizieren, verbraucht Rechenressourcen, was eine Leistungsaufnahme von einer Fahrzeugbatterie erhöhen und den Abschluss verschiedener anderer Vorgänge aufgrund der begrenzten Rechenressourcen, die in dem Fahrzeug verfügbar sind, verzögern kann.
  • Vorteilhafterweise kann ein erster Computer einen zweiten Computer als Reaktion auf ein Auslöseereignis verifizieren. Nach dem Verifizieren des zweiten Computers kann der erste Computer dem zweiten Computer einen aktualisierten Sicherheitscode bereitstellen. Der aktualisierte Sicherheitscode kann verwendet werden, um Nachrichten zwischen dem ersten und dem zweiten Computer zu authentifizieren. Das Aktualisieren des Sicherheitscodes nach dem Erfassen eines Auslöserereignisses kann die Entropie der Nachrichten erhöhen, was eine Wahrscheinlichkeit reduzieren kann, dass eine nicht autorisierte Quelle den Sicherheitscode errät und den Computern gefälschte Daten bereitstellt. Zusätzlich reduziert das Verifizieren des zweiten Computers als Reaktion auf ein Auslöseereignis und das Verwenden des aktualisierten Sicherheitscodes zum Authentifizieren von Nachrichten zwischen Computern die Rechenlast, die erforderlich ist, um Daten zu authentifizieren, die zwischen den Computern übertragen werden, was die Leistungsaufnahme von der Fahrzeugbatterie verringern kann und/oder Rechenressourcen verfügbar machen kann, um verschiedene andere Vorgänge durchzuführen.
  • Ein System beinhaltet einen ersten Computer, der einen Prozessor und einen Speicher beinhaltet, wobei in dem Speicher Anweisungen gespeichert sind, die durch den Prozessor ausgeführt werden können, derart, dass der erste Computer dazu programmiert ist, als Reaktion auf ein Auslöseereignis eine Abfragenachricht zu erzeugen, die einen Sicherheitscode beinhaltet, indem er den Sicherheitscode in ein kryptographisches Programm eingibt, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt. Der erste Computer ist ferner dazu programmiert, nach dem Übertragen der Abfragenachricht an einen zweiten Computer den Sicherheitscode auf Grundlage einer Zufallszahl, die von einem Zufallszahlengenerator ausgegeben wird, zu aktualisieren. Der erste Computer ist ferner dazu programmiert, als Reaktion auf die Abfragenachricht eine Antwortnachricht von dem zweiten Computer zu empfangen. Der erste Computer ist ferner dazu programmiert, nach dem Verifizieren des zweiten Computers auf Grundlage der Antwortnachricht eine Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, an den zweiten Computer zu übertragen.
  • Der erste Computer kann ferner dazu programmiert sein, die Sicherheitsnachricht durch Eingeben des aktualisierten Sicherheitscodes in ein kryptographisches Programm zu erzeugen, das den Sicherheitscode auf Grundlage eines zweiten Authentifizierungsschlüssels verschlüsselt.
  • Das System kann den zweiten Computer beinhalten, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, den verschlüsselten aktualisierten Sicherheitscode in ein kryptographisches Programm einzugeben, das den verschlüsselten aktualisierten Sicherheitscode auf Grundlage des zweiten Authentifizierungsschlüssels entschlüsselt.
  • Das System kann den zweiten Computer beinhalten, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, den verschlüsselten Sicherheitscode in ein kryptographisches Programm einzugeben, das den verschlüsselten Sicherheitscode auf Grundlage des Authentifizierungsschlüssels entschlüsselt. Der zweite Computer kann ferner dazu programmiert sein, die Antwortnachricht, die den Sicherheitscode beinhaltet, als Reaktion auf die Abfragenachricht zu übertragen.
  • Das System kann den zweiten Computer beinhalten, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, nach dem Empfangen der Abfragenachricht den ersten Computer auf Grundlage dessen zu verifizieren, dass der Sicherheitscode mit einem gespeicherten Sicherheitscode übereinstimmt. Der zweite Computer kann ferner dazu programmiert sein, dann die Antwortnachricht zu übertragen, die den gespeicherten Sicherheitscode beinhaltet.
  • Der erste Computer kann ferner dazu programmiert sein, nach dem Empfangen der Antwortnachricht den zweiten Computer auf Grundlage dessen zu verifizieren, dass der gespeicherte Sicherheitscode mit dem Sicherheitscode übereinstimmt.
  • Der erste Computer kann ferner dazu programmiert sein, vor dem Erfassen eines zweiten Auslöseereignisses eine Anforderungsnachricht an den zweiten Computer zu übertragen, die den aktualisierten Sicherheitscode und einen Zähler beinhaltet. Der erste Computer kann ferner dazu programmiert sein, dann den in einem jeweiligen Speicher gespeicherten Zähler zu erhöhen.
  • Der erste Computer kann ferner dazu programmiert sein, eine Weiterleitungsnachricht von dem zweiten Computer auf Grundlage dessen zu authentifizieren, dass die Weiterleitungsnachricht als Reaktion auf die Anforderungsnachricht den aktualisierten Sicherheitscode und den inkrementierten Zähler beinhaltet.
  • Das System kann den zweiten Computer beinhalten, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, die Anforderungsnachricht von dem ersten Computer auf Grundlage dessen zu authentifizieren, dass die Anforderungsnachricht den aktualisierten Sicherheitscode und den Zähler beinhaltet. Der zweite Computer kann ferner dazu programmiert sein, den in einem jeweiligen Speicher gespeicherten Zähler zu erhöhen. Der zweite Computer kann ferner dazu programmiert sein, eine Weiterleitungsnachricht zu übertragen, die den aktualisierten Sicherheitscode und den erhöhten Zähler beinhaltet.
  • Das System kann den zweiten Computer beinhalten, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, als Reaktion auf die Sicherheitsnachricht einen gespeicherten Sicherheitscode zu aktualisieren.
  • Das Auslöseereignis kann auf Grundlage dessen bestimmt werden, dass eine Leistungsaufnahme von einer Fahrzeugbatterie unter einem Schwellenwert liegt.
  • Das Auslöseereignis kann das Ablaufen eines Zeitgebers sein.
  • Der erste Computer und der zweite Computer können sich in einem Fahrzeug befinden.
  • Der erste Computer kann entfernt von einem Fahrzeug sein und der zweite Computer kann sich in dem Fahrzeug befinden.
  • Ein Verfahren beinhaltet Erzeugen einer Abfragenachricht, die einen Sicherheitscode beinhaltet, an einem ersten Computer als Reaktion auf ein Auslöseereignis durch Eingeben des Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt. Das Verfahren beinhaltet ferner nach dem Übertragen der Abfragenachricht an einen zweiten Computer Aktualisieren des Sicherheitscodes auf Grundlage einer Zufallszahlenausgabe von einem Zufallszahlengenerator. Das Verfahren beinhaltet ferner Empfangen einer Antwortnachricht von dem zweiten Computer als Reaktion auf die Abfragenachricht. Das Verfahren beinhaltet ferner nach dem Verifizieren des zweiten Computers auf Grundlage der Antwortnachricht Übertragen einer Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, an den zweiten Computer.
  • Das Verfahren beinhaltet ferner Erzeugen der Sicherheitsnachricht durch Eingeben des aktualisierten Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines zweiten Authentifizierungsschlüssels verschlüsselt.
  • Das Verfahren beinhaltet ferner vor dem Erfassen eines zweiten Auslöseereignisses Übertragen einer Anforderungsnachricht an den zweiten Computer, die den aktualisierten Sicherheitscode und einen Zähler beinhaltet. Das Verfahren kann ferner dann das Erhöhen des Zählers, der in einem jeweiligen Speicher gespeichert wird, beinhalten.
  • Das Verfahren beinhaltet ferner Authentifizieren einer Weiterleitungsnachricht von dem zweiten Computer auf Grundlage dessen, dass die Weiterleitungsnachricht als Reaktion auf die Anforderungsnachricht den aktualisierten Sicherheitscode und den inkrementierten Zähler beinhaltet.
  • Das Auslöseereignis kann auf Grundlage dessen bestimmt werden, dass eine Leistungsaufnahme von einer Fahrzeugbatterie unter einem Schwellenwert liegt.
  • Das Auslöseereignis kann das Ablaufen eines Zeitgebers sein.
  • Ferner ist in dieser Schrift eine Rechenvorrichtung offenbart, die dazu programmiert ist, beliebige der vorstehenden Verfahrensschritte auszuführen. Weiterhin ist in dieser Schrift ein Computerprogrammprodukt offenbart, das ein computerlesbares Medium beinhaltet, auf dem Anweisungen gespeichert sind, die durch einen Computerprozessor ausführbar sind, um beliebige der vorstehenden Verfahrensschritte auszuführen.
  • Figurenliste
    • 1 ist ein Blockdiagramm für ein beispielhaftes Steuersystem für ein Fahrzeug.
    • 2A ist ein Blockdiagramm, das eine beispielhafte Authentifizierungsnachricht veranschaulicht.
    • 2B ist ein Blockdiagramm, das eine beispielhafte Abfragenachricht veranschaulicht.
    • 2C ist ein Blockdiagramm, das ein beispielhaftes Permutationsprogramm veranschaulicht.
    • 2D ist ein Blockdiagramm, das eine beispielhafte Sicherheitsnachricht veranschaulicht.
    • 2E ist ein Blockdiagramm, das eine beispielhafte Anforderungsnachricht veranschaulicht.
    • 2F ist ein Blockdiagramm, das eine beispielhafte Antwortnachricht veranschaulicht.
    • 2G ist ein Blockdiagramm, das eine beispielhafte Antwortnachricht veranschaulicht.
    • 2H ist ein Blockdiagramm, das eine beispielhafte Weiterleitungsnachricht veranschaulicht.
    • 3 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Aktualisieren eines Sicherheitscodes für einen zweiten Computer.
    • 4 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Aktualisieren des Sicherheitscodes in einem zweiten Computer.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf die 1-2H beinhaltet ein beispielhaftes Steuersystem 100 ein Fahrzeug 105. Ein Computer 110 in dem Fahrzeug 105 empfängt Daten von Sensoren 115. Der Computer 110 ist dazu programmiert, als Reaktion auf ein Auslöseereignis eine Abfragenachricht 205, die einen Sicherheitscode 235 beinhaltet, zu erzeugen, indem er den Sicherheitscode 235 in ein kryptographisches Programm eingibt, das den Sicherheitscode 235 auf Grundlage eines Authentifizierungsschlüssels 245 verschlüsselt. Der Computer 110 ist ferner dazu programmiert, nach dem Übertragen der Abfragenachricht 205 an eine elektronische Steuereinheit (ECU) 126 den Sicherheitscode 235 auf Grundlage einer Zufallszahlenausgabe von einem Zufallszahlengenerator zu aktualisieren. Der Computer 110 ist ferner dazu programmiert, als Reaktion auf die Abfragenachricht 205 eine Antwortnachricht 225 von der ECU 126 zu empfangen. Der Computer 110 ist ferner dazu programmiert, nach dem Verifizieren der ECU 126 auf Grundlage der Antwortnachricht 225 eine Sicherheitsnachricht 210, die den aktualisierten Sicherheitscode 235 beinhaltet, an die ECU 126 zu übertragen.
  • Unter nunmehriger Bezugnahme auf 1 beinhaltet das Fahrzeug 105 in der Regeln den Computer 110, die Sensoren 115, Aktoren 120 zum Betätigen verschiedener Fahrzeugkomponenten und ein Fahrzeugkommunikationsmodul 130. Das Kommunikationsmodul 130 ermöglicht es dem Computer 110, mit einem entfernten Computer 140 und/oder anderen Fahrzeugen zu kommunizieren, z. B. über ein Nachrichten- oder Übertragungsprotokoll, wie etwa Dedicated Short Range Communication (DSRC), Ultrabreitband (Ultra-Wideband - UWB), ein Mobilfunk- und/oder anderes Protokoll, das Fahrzeug-zu-Fahrzeug-, Fahrzeug-zu-Infrastruktur-, Fahrzeug-zu-Cloud-Kommunikationen oder dergleichen unterstützen kann, und/oder über ein Paketnetz 135.
  • Der Computer 110 beinhaltet einen Prozessor und einen Speicher, wie sie bekannt sind. Der Speicher beinhaltet eine oder mehrere Formen computerlesbarer Medien und speichert Anweisungen, die durch den Computer 110 ausgeführt werden können, um verschiedene Vorgänge durchzuführen, einschließlich der hierin offenbarten. Der Computer 110 kann ferner zwei oder mehr Rechenvorrichtungen beinhalten, die zusammenarbeiten, um Vorgänge des Fahrzeugs 105 auszuführen, einschließlich der hierin beschriebenen. Ferner kann der Computer 110 ein Universalcomputer mit einem Prozessor und einem Speicher sein, wie vorstehend beschrieben, und/oder kann eine ECU 126 oder eine elektronische Steuerung oder dergleichen für eine spezifische Funktion oder einen Satz von Funktionen beinhalten und/oder kann eine dedizierte elektronische Schaltung beinhalten, die eine ASIC beinhaltet, die für einen konkreten Vorgang hergestellt ist, z. B. eine ASIC zum Verarbeiten von Daten der Sensoren 115 und/oder Übermitteln von Daten der Sensoren 115. In einem weiteren Beispiel kann der Computer 110 ein FPGA (feldprogrammierbares Gate-Array) beinhalten, das eine integrierte Schaltung ist, die so hergestellt ist, dass sie durch einen Benutzer konfigurierbar ist. Typischerweise wird eine Hardware-Beschreibungssprache, wie etwa VHDL (Very High Speed Integrated Circuit Hardware Description Language - Hardware-Beschreibungssprache für integrierte Schaltungen mit sehr hoher Geschwindigkeit), in der elektronischen Ausgestaltungsautomatisierung verwendet, um digitale und Mischsignal-Systeme, wie etwa FPGA und ASIC, zu beschreiben. Zum Beispiel wird eine ASIC auf Grundlage einer vor der Herstellung bereitgestellten VHDL-Programmierung hergestellt, wohingegen logische Komponenten innerhalb eines FPGA auf Grundlage der VHDL-Programmierung konfiguriert sein können, z. B. auf einem Speicher gespeichert, der elektrisch mit der FPGA-Schaltung verbunden ist. In einigen Beispielen kann eine Kombination aus Prozessor(en), ASIC(s) und/oder FPGA-Schaltungen in dem Computer 110 beinhaltet sein.
  • Der Computer 110 kann das Fahrzeug 105 in einem autonomen Modus, einem teilautonomen Modus oder einem nicht autonomen (oder manuellen) Modus betreiben und/oder überwachen, d. h., er kann den Betrieb des Fahrzeugs 105 steuern und/oder überwachen, einschließlich des Steuerns und/oder Überwachens der Komponenten 125. Für die Zwecke dieser Offenbarung ist ein autonomer Modus als einer definiert, bei dem jedes von Antrieb, Bremsung und Lenkung des Fahrzeugs 105 durch den Computer 110 gesteuert wird; in einem teilautonomen Modus steuert der Computer 110 eines oder zwei von Antrieb, Bremsung und Lenkung des Fahrzeugs 105; in einem nicht autonomen Modus steuert ein menschlicher Fahrzeugführer jedes von Antrieb, Bremsung und Lenkung des Fahrzeugs 105.
  • Der Computer 110 kann Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Steuerung der Beschleunigung in dem Fahrzeug 105 durch Steuern eines oder mehrerer von einer Brennkraftmaschine, einem Elektromotor, einem Hybridmotor usw.), Lenkung, Getriebe, Klimatisierung, Innen- und/oder Außenbeleuchtung, Hupe, Türen usw. des Fahrzeugs 105 zu betreiben sowie um zu bestimmen, ob und wann der Computer 110 derartige Vorgänge anstelle eines menschlichen Fahrzeugführers steuern soll.
  • Der Computer 110 kann mehr als einen Prozessor beinhalten, der z. B. in den ECUs 126 oder dergleichen beinhaltet ist, die in dem Fahrzeug 105 beinhaltet sind, um verschiedene Fahrzeugkomponenten zu überwachen und/oder zu steuern, z. B. eine Getriebesteuerung, eine Bremssteuerung, eine Lenksteuerung usw., oder kommunikativ daran gekoppelt sein, z. B. über ein Fahrzeugkommunikationsnetz wie etwa einen Kommunikationsbus, wie nachstehend näher beschrieben. Der Computer 110 ist im Allgemeinen zur Kommunikation in einem Fahrzeugkommunikationsnetz, das einen Bus in dem Fahrzeug 105 beinhalten kann, wie etwa ein Controller Area Network (CAN) oder dergleichen, und/oder anderen drahtgebundenen und/oder drahtlosen Mechanismen angeordnet.
  • Der Computer 110 kann über das Fahrzeugkommunikationsnetz Nachrichten an verschiedene Vorrichtungen in dem Fahrzeug 105 übertragen und/oder Nachrichten (z. B. CAN-Nachrichten) von den verschiedenen Vorrichtungen, z. B. Sensoren 115, einem Aktor 120, ECUs 126, anderen Computern usw., empfangen. Alternativ oder zusätzlich kann das Fahrzeugkommunikationsnetzwerk in Fällen, in denen der Computer 110 tatsächlich eine Vielzahl von Vorrichtungen umfasst, zur Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als der Computer 110 dargestellt sind. Ferner können, wie nachstehend erwähnt, verschiedene Steuerungen und/oder Sensoren 115 dem Computer 110 Daten über das Fahrzeugkommunikationsnetz bereitstellen.
  • Die Sensoren 115 des Fahrzeugs 105 können eine Vielfalt von Vorrichtungen beinhalten, wie sie bekannt sind, z. B. LIDAR(Light Detection and Ranging)-Sensor(en) 115, Radarsensoren 115, Kamerasensoren 115 usw., um dem ersten Computer 110 Daten bereitzustellen.
  • Die Aktoren 120 des Fahrzeugs 105 sind mittels Schaltungen, Chips oder anderer elektronischer und/oder mechanischer Komponenten umgesetzt, die verschiedene Teilsysteme des Fahrzeugs 105 gemäß geeigneten Steuersignalen betätigen können, wie es bekannt ist. Die Aktoren 120 können verwendet werden, um Komponenten 125 zu steuern, die Bremsung, Beschleunigung und Lenkung eines Fahrzeugs 105 beinhalten.
  • Im Zusammenhang mit der vorliegenden Offenbarung handelt es sich bei einer Komponente 125 des Fahrzeugs 105 um eine oder mehrere Hardwarekomponenten, die dazu ausgelegt sind, eine mechanische oder elektromechanische Funktion oder einen mechanischen oder elektromechanischen Vorgang durchzuführen - wie etwa das Fahrzeug 105 zu bewegen, das Fahrzeug 105 abzubremsen oder anzuhalten, das Fahrzeug 105 zu lenken usw. Nicht einschränkende Beispielen für Komponenten 125 beinhalten eine Antriebskomponente (die z. B. eine Brennkraftmaschine und/oder einen Elektromotor usw. beinhaltet), eine Getriebekomponente, eine Lenkkomponente (die z. B. eines oder mehrere von einem Lenkrad, einer Lenkungszahnstange usw. beinhalten kann), eine Aufhängungskomponente (die z. B. eines oder mehrere von einem Stoßdämpfer, z. B. einem Achsdämpfer oder einem Federbein, einer Buchse, einer Feder, einem Steuerarm, einem Kugelgelenk, einem Gestänge usw. beinhalten kann), eine Bremskomponente, eine Einparkhilfekomponente, eine Komponente zur adaptiven Geschwindigkeitsregelung, eine Komponente zum adaptiven Lenken, ein oder mehrere passive Rückhaltesysteme (z. B. Airbags), einen beweglichen Sitz usw.
  • Das Fahrzeug 105 kann eine Vielzahl von ECUs 126 beinhalten, die über ein netz kommunikativ gekoppelt ist, in der Regel in einem Fahrzeugkommunikationsbus oder -netz. Die ECUs 126 können übliche Rechenvorrichtungen sein, d. h. einen oder mehrere Prozessoren und einen oder mehrere Speicher beinhalten, die dazu programmiert sind, Vorgänge bereitzustellen, wie sie etwa in dieser Schrift offenbart sind. Zum Beispiel kann eine ECU 126 dazu programmiert sein, eine oder mehrere Fahrzeugkomponenten zu steuern und/oder zu überwachen. Auf die ECUs 126 kann über das Fahrzeugkommunikationsnetz zugegriffen werden.
  • Außerdem kann der Computer 110 dazu konfiguriert sein, über ein Fahrzeug-zu-FahrzeugKommunikationsmodul 130 oder eine Schnittstelle mit Vorrichtungen außerhalb des Fahrzeugs 105, z. B. durch eine drahtlose Kommunikation von Fahrzeug zu Fahrzeug (vehicle-to-vehicle - V2V) oder von Fahrzeug zu Infrastruktur (vehicle-to-infrastructure - V2X) (Mobilfunk und/oder Kurzstreckenfunkkommunikation usw.) mit einem anderen Fahrzeug und/oder mit einem entfernten Computer 140 (in der Regel über direkte Funkfrequenzkommunikation) zu kommunizieren. Das Kommunikationsmodul 130 kann einen oder mehrere Mechanismen, wie etwa einen Sendeempfänger, beinhalten, wodurch die Computer von Fahrzeugen kommunizieren können, einschließlich einer beliebigen gewünschten Kombination aus drahtlosen (z. B. Mobilfunk-, Drahtlos-, Satelliten-, Mikrowellen- und Hochfrequenz-)Kommunikationsmechanismen und einer beliebigen gewünschten Netztopologie (oder -topologien, wenn eine Vielzahl von Kommunikationsmechanismen genutzt wird). Beispielhafte über das Kommunikationsmodul bereitgestellte Kommunikation beinhaltet Mobilfunk, Bluetooth, IEEE 802.11, dedizierte Nahbereichskommunikation (dedicated short range communications - DSRC), Mobilfunk-V2X (CV2X) und/oder Weitbereichsnetze (wide area networks - WAN), einschließlich des Internets, die Datenkommunikationsdienste bereitstellen. Der Einfachheit halber wird die Bezeichnung „V2X“ in dieser Schrift für Kommunikationen verwendet, die von Fahrzeug zu Fahrzeug (V2V) und/oder von Fahrzeug zu Infrastruktur (V2I) erfolgen können und die gemäß einem beliebigen geeigneten Kurzstreckenkommunikationsmechanismus, z. B. DSRC, Mobilfunk oder dergleichen, durch das Kommunikationsmodul 130 bereitgestellt werden können.
  • Das Netz 135 stellt einen oder mehrere Mechanismen dar, durch die ein Computer 110 mit entfernten Rechenvorrichtungen, z. B. dem entfernten Computer 140, einem anderen Computer usw., kommunizieren kann. Dementsprechend kann es sich bei dem Netz 135 um einen oder mehrere von verschiedenen drahtgebundenen oder drahtlosen Kommunikationsmechanismen handeln, einschließlich einer beliebigen gewünschten Kombination aus drahtgebundenen (z. B. Kabel- und Glasfaser-) und/oder drahtlosen (z. B. Mobilfunk-, Drahtlos-, Satelliten-, Mikrowellen- und Hochfrequenz-)Kommunikationsmechanismen und einer beliebigen gewünschten Netztopologie (oder - topologien, wenn mehrere Kommunikationsmechanismen genutzt werden). Beispielhafte Kommunikationsnetze beinhalten drahtlose Kommunikationsnetze (z. B. unter Verwendung von Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, Fahrzeug-zu-Fahrzeug (V2V), wie etwa dedizierter Nahbereichskommunikation (DSRC) usw.), lokale Netze (local area network - LAN) und/oder Weitverkehrsnetze (WAN), einschließlich des Internets, die Datenkommunikationsdienste bereitstellen.
  • Ein entfernter Computer 140 ist ein Computer, der sich außerhalb eines Fahrzeugs 105 befindet und mit dem Fahrzeugcomputer 110 kommunizieren kann, um z. B. Daten für verschiedene Fahrzeugkomponenten 125 bereitzustellen und/oder anzufordern. Die Kommunikation zwischen dem entfernten Computer 140 und dem Fahrzeugcomputer 110 kann durch Authentifizieren der Computer 110, 140 mittels geeigneter Nachrichtenauthentifizierungstechniken gesichert werden. Der entfernte Computer 140 kann eine übliche Rechenvorrichtung sein, d. h. eine, die einen oder mehrere Prozessoren und einen oder mehrere Speicher beinhaltet, die dazu programmiert sind, Vorgänge bereitzustellen, wie etwa hier offenbart. Der entfernte Computer 140 kann z. B. ein cloudbasierter Server sein. Als ein weiteres Beispiel kann der entfernte Computer 140 eine tragbare Vorrichtung sein, d. h. ein Computer, der verwendet werden kann, während er von einer Person getragen wird, wie etwa ein Smartphone, ein Tablet, ein persönlicher digitaler Assistent, eine Smartwatch usw. Ferner kann auf den entfernten Computer 140 über das Netz 135, z. B, das Internet, ein Mobilfunknetz und/oder ein anderes Weitverkehrsnetz, zugegriffen werden.
  • Der Computer 110 kann dazu programmiert sein, eine oder mehrere ECUs 126 auf Grundlage eines Sicherheitscodes 235 zu authentifizieren. Der Sicherheitscode 235 ist ein vorgegebener Satz alphanumerischer Zeichen. Der Sicherheitscode 235 kann z. B. in einem Speicher des Computers 110 gespeichert sein. Der Computer 110 kann den Sicherheitscode 235 erzeugen, wie nachstehend erörtert. Als ein anderes Beispiel kann der entfernte Computer 140 den Sicherheitscode 235 erzeugen und den Sicherheitscode 235 dem Computer 110 bereitstellen, z. B. über das Netz 135.
  • Der Computer 110 kann die ECU 126 unter Verwendung geeigneter, z. B. üblicher, Nachrichtenauthentifizierungstechniken, z. B. Public-Key-Verschlüsselung, Nachrichten-Rollcode, Nachrichtenauthentifizierungscode usw., authentifizieren. Zum Beispiel kann der Computer 110 einen Nachrichtenauthentifizierungscode durch Eingeben des Sicherheitscodes 235 in ein übliches kryptographisches Programm erzeugen, das den Nachrichtenauthentifizierungscode ausgibt. Der Computer 110 kann dann eine Authentifizierungsnachricht 200 erzeugen, die den Nachrichtenauthentifizierungscode beinhaltet. Als ein anderes Beispiel kann der Computer 110 die Authentifizierungsnachricht 200 durch Verschlüsseln von Daten auf Grundlage des Sicherheitscodes 235 erzeugen, z. B. unter Verwendung bekannter Verschlüsselungstechniken. In einem derartigen Beispiel kann der Computer 110 Antwortnachrichten 220 auf Grundlage des Sicherheitscodes 235 entschlüsseln, z. B. unter Verwendung bekannter Entschlüsselungstechniken.
  • Eine Authentifizierungsnachricht 200 beinhaltet einen Header 201 und Nutzdaten 202 (siehe 2A). Der Header 201 der Authentifizierungsnachricht 200 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Computers 110 usw. beinhalten. Die Nutzdaten 202 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Die Nutzdaten 202 können Teilnutzdaten oder Nutzdatensegmente 203-1, 203-2, 203-3 (gemeinsam als Nutzdatensegmente 203 bezeichnet) beinhalten. Die jeweiligen Nutzdatensegmente 203 in 2A sind mit unterschiedlicher Länge veranschaulicht, um widerzuspiegeln, dass unterschiedliche Nutzdatensegmente 203 verschiedene Datenmengen beinhalten und daher unterschiedliche Größen, d. h. Längen, aufweisen können. Der Computer 110 kann zum Beispiel den Nachrichtenauthentifizierungscode (oder die verschlüsselten Daten) in die Nutzdaten 202, z. B. ein spezifiziertes Nutzdatensegment 203, der Authentifizierungsnachricht 200 einschließen.
  • Nach dem Erzeugen der Authentifizierungsnachricht 200 kann der Computer 110 die Authentifizierungsnachricht 200 einer oder mehreren ECUs 126 bereitstellen. Zum Beispiel kann der Computer 110 die Authentifizierungsnachricht 200 über das Fahrzeugnetz an eine ECU 126 übertragen. Nach dem Empfangen einer Antwortnachricht 220 von der ECU 126 kann der Computer 110 die ECU 126 auf Grundlage der Antwortnachricht 220 authentifizieren. Zum Beispiel kann der Computer 110 die ECU 126 auf Grundlage dessen authentifizieren, dass ein empfangener Nachrichtenauthentifizierungscode, den die Antwortnachricht 220 beinhaltet, mit dem bereitgestellten Nachrichtenauthentifizierungscode übereinstimmt. Als ein anderes Beispiel kann der Computer 110 die Antwortnachricht 220 auf Grundlage des Sicherheitscodes 235 entschlüsseln. In einem derartigen Beispiel kann der Computer 110 die ECU 126 auf Grundlage dessen, dass die entschlüsselten Daten mit den bereitgestellten Daten übereinstimmen, authentifizieren. Zusätzlich oder alternativ kann der entfernte Computer 140 dazu programmiert sein, den Computer 110 z. B. im Wesentlichen auf die gleiche Weise wie vorstehend erörtert zu authentifizieren.
  • Nach dem Authentifizieren der ECU 126 ist der Computer 110 dazu programmiert, zu bestimmen, ob ein Auslöseereignis aufgetreten ist. Für die Zwecke dieser Offenbarung ist ein „Auslöseereignis“ als eine spezifische Bedingung definiert, die zu einem gegebenen Zeitpunkt wahr oder falsch sein kann. Zum Beispiel kann ein Auslöseereignis auf Grundlage dessen bestimmt werden, dass eine Leistungsaufnahme von einer Batterie des Fahrzeugs 105 unter einem Schwellenwert liegt. Der Computer 110 kann die Leistungsaufnahme aus der Batterie des Fahrzeugs 105 auf Grundlage von Daten der Sensoren 115 bestimmen. Zum Beispiel kann der Computer 110 Daten von verschiedenen Sensoren 115 empfangen, die eine Menge des aus der Batterie fließenden Stroms und eine Spannungsgröße der Batterie angeben. Der Computer 110 kann dann die Leistungsaufnahme auf Grundlage des Stroms und der Spannung bestimmen, z. B. unter Verwendung bekannter Berechnungsverfahren. Nach dem Bestimmen der Leistungsaufnahme aus der Batterie des Fahrzeugs 105 kann der Computer 110 die Leistungsaufnahme mit dem Schwellenwert vergleichen. Der Schwellenwert legt eine Leistungsaufnahme aus der Batterie des Fahrzeugs 105 fest, unter der der Computer 110 ein Auslöseereignis bestimmt. Der Schwellenwert kann z. B. in einem Speicher des Computers 110 gespeichert sein. Der Schwellenwert kann empirisch bestimmt werden, z. B. auf Grundlage von Tests, die das Bestimmen einer Mindestleistungsaufnahme von der Batterie des Fahrzeugs 105 in verschiedenen Zuständen des Fahrzeugs 105, z. B. eingeschaltet, ausgeschaltet usw., und/oder während verschiedener Vorgänge des Fahrzeugs 105 ermöglichen. Wenn die Leistungsaufnahme aus der Batterie des Fahrzeugs 105 gleich oder größer als der Schwellenwert ist, kann der Computer 110 dazu programmiert sein, kein Auslöseereignis zu bestimmen. Wenn die Leistungsaufnahme aus der Batterie des Fahrzeugs 105 niedriger als der Schwellenwert ist, kann der Computer 110 dazu programmiert sein, ein Auslöseereignis zu bestimmen.
  • Eine Batterie des Fahrzeugs 105 stellt einer oder mehreren Fahrzeugkomponenten 125 Elektrizität bereit. Die Leistungsaufnahme, d. h. die Rate des Leistungsverbrauchs, aus der Batterie des Fahrzeugs 105 variiert auf Grundlage einer Anzahl von Fahrzeugkomponenten 125, die elektrische Leistung verbrauchen. Wenn sich das Fahrzeug 105 zum Beispiel in einem Einschaltzustand befindet, d. h. eingeschaltet ist, kann die Batterie des Fahrzeugs 105 an alle Fahrzeugkomponenten 125 Elektrizität bereitstellen. Wenn sich das Fahrzeug 105 in einem Ausschaltzustand befindet, d. h. ausgeschaltet ist, kann die Batterie des Fahrzeugs 105 alternativ nicht an alle Fahrzeugkomponenten 125 Elektrizität bereitstellen. In einem ausgeschalteten Zustand kann die Batterie des Fahrzeugs 105 zum Beispiel an eine Teilmenge, d. h. einige, aber nicht alle Fahrzeugkomponenten 125 Leistung bereitstellen, oder die Batterie des Fahrzeugs 105 kann an keine der Fahrzeugkomponenten 125 Leistung bereitstellen.
  • Als ein anderes Beispiel kann der Computer 110 ein Auslöserereignis auf Grundlage des Ablaufs eines Zeitgebers bestimmen. Eine Dauer des Zeitgebers ist eine vorbestimmte Zeit, z. B. 1 Minute, 1 Stunde, 1 Tag, 1 Woche usw. Die Dauer des Zeitgebers kann z. B. in dem Speicher des Computers 110 gespeichert sein. Der Computer 110 kann den Zeitgeber initiieren, wenn er initialisiert, d. h. geflasht wird. Wenn der Zeitgeber abläuft, bestimmt der Computer 110 ein Auslöseereignis. Nach Ablauf des Zeitgebers kann der Computer 110 den Zeitgeber zurücksetzen und initiieren.
  • Andere nicht einschränkende Beispiele für Auslöserereignisse können beinhalten, dass der Computer 110 aktualisierte Programmieranweisungen über das Netz 135 empfängt, der Computer 110 Diagnosefehlercodes detektiert, der Computer 110 in einen automatisierten Fahrmodus übergeht, das Fahrzeug 105 aus einem ausgeschalteten Zustand in einen eingeschalteten Zustand übergeht, der Computer 110 einen passiven Einstiegs-/Passivstartzustand aktiviert, der Computer 110 eine unbekannte Nachricht im Fahrzeugkommunikationsnetz erfasst, der Computer 110 keine andere ECU 126 verifiziert usw.
  • Zusätzlich oder alternativ kann der entfernte Computer 140 dazu programmiert sein, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert zu bestimmen, ob ein Auslöseereignis aufgetreten ist.
  • Nach dem Bestimmen des Auslöseereignisses ist der Computer 110 dazu programmiert, die authentifizierte(n) ECU(s) 126 zu verifizieren. Um eine authentifizierte ECU 126 zu verifizieren, erzeugt der Computer 110 eine Abfragenachricht 205. Ähnlich der Authentifizierungsnachricht 200 beinhaltet die Abfragenachricht 205 einen Header 206 und Nutzdaten 207 (siehe 2B) Der Header 206 der Abfragenachricht 205 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Computers 110 usw. beinhalten. Die Nutzdaten 207 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Nach dem Verschlüsseln des Sicherheitscodes 235 kann der Computer 110 den verschlüsselten Sicherheitscode 235 in die Nutzdaten 207, z. B. ein spezifiziertes Nutzdatensegment 208, der Abfragenachricht 205 einschließen.
  • Um den Sicherheitscode 235 zu verschlüsseln, kann der Computer 110 zum Beispiel den Sicherheitscode 235 und einen Authentifizierungsschlüssel 245 in ein Permutationsprogramm 240 eingeben (siehe 2C). Das Permutationsprogramm 240 (mitunter als Permutationsgenerator bezeichnet) kann ein übliches kryptographisches Programm sein, z. B. ein Programm, das einen Advanced-Encryption-Standard(AES)-Algorithmus beinhaltet. Das Permutationsprogramm 240 kann die Daten im Sicherheitscode 235 in einer Reihenfolge neu anordnen, die durch den Authentifizierungsschlüssel 245 festgelegt ist. Das heißt, das Permutationsprogramm 240 führt für jeden Abschnitt des Sicherheitscodes 235 eine oder mehrere von einer Substitution, einer Änderung der Reihenfolge von Segmenten in der Nachricht oder einer mathematischen Operation gemäß Blockchiffren aus, die aus dem Authentifizierungsschlüssel 245 erzeugt werden. Zum Beispiel kann der Computer 110, wenn das Permutationsprogramm 240 ein AES-Algorithmus ist, einen 16-Bit-Teil des Sicherheitscodes 235 identifizieren, eine „Exklusiv-Oder“-Funktion (d. h. eine XOR-Funktion) zwischen dem 16-Bit-Teil und einem Teil des Authentifizierungsschlüssels 245 anwenden, um eine Folge einer ersten Runde zu generieren, und die Folge der ersten Runde in einem 4x4-Raster neu anordnen. Dann kann der Computer 110 eines von (1) Verschieben jeweiliger Positionen von Bits innerhalb der Zeilen des 4x4-Rasters, (2) Substituieren eines der Bits in dem 4x4-Raster durch ein bekanntes Substitutionsbit, (3) Verschieben jeweiliger Positionen von Bits innerhalb der Spalten des 4x4-Rasters oder (4) Skalieren von Werten der Bits durch vorbestimmte ganze Zahlen durchführen. Die Verschiebungs-, Skalierungs- und Substitutionsalgorithmen werden gemäß dem spezifischen Permutationsprogramm 240 bestimmt. Der Computer 110 kann das Permutationsprogramm 240 für den Sicherheitscode 235 durchführen, um den Sicherheitscode 235 zu verschlüsseln.
  • Der Computer 110 kann den Authentifizierungsschlüssel 245 abrufen, z. B. aus dem Speicher des Computers 110. Der Authentifizierungsschlüssel 245 ist ein vorgegebener Satz alphanumerischer Zeichen. Zum Beispiel kann der Authentifizierungsschlüssel 245 ein kryptographischer Schlüssel sein, der in einem üblichen kryptographischen Programm verwendet wird, z. B. Diffie-Hellman-Austausch, RSA-Verschlüsselung, AES usw. Der Authentifizierungsschlüssel 245 kann z. B. durch einen Hersteller des Fahrzeugcomputers 110 festgelegt sein. Der Computer 110 kann den Authentifizierungsschlüssel 245 von dem entfernten Computer 140 empfangen, z. B. über das Netz 135.
  • Als ein anderes Beispiel kann der verschlüsselte Sicherheitscode 235 ein Hash sein. Ein „Hash“ ist eine Ausgabe einer „Hash“-Funktion, die eine eindeutige Zeichenfolge von alphanumerischen Bits für eine spezifische Eingabe ausgibt. Das heißt, obwohl der Hash zufällig erscheint, kann nur der spezifische numerische Schlüssel den spezifischen Hash erzeugen. In einem derartigen Beispiel kann der Computer 110 den Sicherheitscode 235 in eine kryptographische Hashfunktion als Secure Hash Algorithm 1 (SHA-1) eingeben, um den Hashwert (d. h. eine verschlüsselte Bitfolge mit fester Größe) zu erzeugen.
  • Der Computer 110 erzeugt die Abfragenachricht 205 an eine authentifizierte ECU 126. Zum Beispiel kann der Computer 110 die Abfragenachricht 205 über das Fahrzeugkommunikationsnetz an die authentifizierte ECU 126 übertragen. Die ECU 126 kann eine Antwortnachricht 225 als Reaktion auf die Abfragenachricht 205 bereitstellen, wie nachstehend erörtert.
  • In dem Beispiel, in dem der entfernte Computer 140 das Auslöseereignis bestimmt, kann der entfernte Computer 140 dazu programmiert sein, den Computer 110 zu verifizieren. Zum Beispiel kann der entfernte Computer 140 eine Abfragenachricht 205 erzeugen, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert. Der entfernte Computer 140 kann dann die Abfragenachricht 205 an den Computer 110 bereitstellen. Beispielsweise kann der entfernte Computer 140 die Abfragenachricht 205 über das Netz 135 an den Computer 110 übertragen. Der Computer 110 kann eine Antwortnachricht 225 als Reaktion auf die Abfragenachricht 205 bereitstellen, wie nachstehend erörtert.
  • Der Computer 110 kann als Reaktion auf die Abfragenachricht 205 eine Antwortnachricht 225 von der authentifizierten ECU 126 empfangen. Die Antwortnachricht 225 beinhaltet z. B. in einem festgelegten Nutzdatensegment 228 einen Sicherheitscode 235, der von der authentifizierten ECU 126 bereitgestellt wird. Der Computer 110 ist dazu programmiert, den von der authentifizierten ECU 126 bereitgestellten Sicherheitscode 235 zu identifizieren, z. B. auf Grundlage des festgelegten Nutzdatensegments 228 der Antwortnachricht 225. Zum Beispiel kann der Computer 110 nach dem Empfangen einer Antwortnachricht 225 von der authentifizierten ECU 126 auf das festgelegte Nutzdatensegment 228 zugreifen und den von der authentifizierten ECU 126 bereitgestellten Sicherheitscode 235 abrufen.
  • Der abgerufene Sicherheitscode 235 kann z. B. auf Grundlage des Authentifizierungsschlüssels 245 verschlüsselt sein. Zum Beispiel kann der abgerufene Sicherheitscode 235 unter Verwendung des Permutationsprogramms 240 verschlüsselt werden, wie vorstehend erörtert. In einem solchen Beispiel kann der Computer 110 den abgerufenen Sicherheitscode 235 auf Grundlage des Authentifizierungsschlüssels 245 entschlüsseln. Das heißt, der Computer 110 kann den abgerufenen Sicherheitscode 235 neu anordnen, indem er den Authentifizierungsschlüssel 245 verwendet, um den Sicherheitscode 235 zu entschlüsseln und wiederherzustellen. Als ein anderes Beispiel kann der abgerufene Sicherheitscode 235 ein Hash sein, wie oben erörtert. In einem derartigen Beispiel kann der Computer 110 den Hashwert neu anordnen, um den Sicherheitscode 235 unter Verwendung der Hashfunktion und des Authentifizierungsschlüssels 245 neu zu berechnen.
  • Der Computer 110 kann den abgerufenen Sicherheitscode 235 mit dem in der Abfragenachricht 205 bereitgestellten Sicherheitscode 235 vergleichen. Wenn der abgerufene Sicherheitscode 235 mit dem bereitgestellten Sicherheitscode 235 übereinstimmt, kann der Computer 110 die authentifizierte ECU 126 verifizieren. Wenn der abgerufene Sicherheitscode 235 nicht mit dem bereitgestellten Sicherheitscode 235 übereinstimmt, ist der Computer 110 dazu programmiert, die authentifizierte ECU 126 nicht zu verifizieren. In einem derartigen Beispiel kann der Computer 110 die Kommunikation mit der nicht verifizierten ECU 126 verhindern und/oder Nachrichten von dieser ignorieren. Zusätzlich oder alternativ kann der Computer 110 eine Nachricht an den entfernten Computer 140 bereitstellen, welche die nicht verifizierte ECU 126 identifiziert, z. B. über das Netz 135. In dieser Situation kann der Computer 110 auf einen Header 226 der Antwortnachricht 225 zugreifen und eine Kennung der nicht verifizierten ECU 126 abrufen.
  • In dem Beispiel, in dem der entfernte Computer 140 eine Abfragenachricht 205 an den Computer 110 bereitstellt, kann der entfernte Computer 140 den Computer 110 auf Grundlage einer Antwortnachricht 225 verifizieren, die den Sicherheitscode 235 beinhaltet, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert.
  • Nach dem Verifizieren der ECU 126 ist der Computer 110 dazu programmiert, den Sicherheitscode 235 zu aktualisieren. Der Computer 110 kann zum Beispiel den Sicherheitscode 235 auf Grundlage einer Ausgabe von einem Zufallszahlengenerator aktualisieren. Ein „Zufallszahlengenerator“ ist ein Algorithmus, der eine Sequenz von Zahlen erzeugt, wenn ein Anfangswert eingegeben wird. Das heißt, der Zufallszahlengenerator (random number generator - RNG) ist ein deterministischer Algorithmus, der eine spezifizierte Sequenz für jede Seed-Anfangszahl erzeugt; im Zusammenhang mit der vorliegenden Schrift beziehen sich Bezugnahmen auf einen Zufallszahlengenerator auf das, was auf dem Gebiet der Computer 110 als ein „Pseudozufallszahlengenerator“ verstanden wird, d. h. ein Zahlengenerator, der eine Sequenz von Zahlen auf Grundlage einer Seed-Anfangszahl erzeugt. Anders ausgedrückt kann der Computer 110 eine Folge von Zufallszahlen (oder Pseudozufallszahlen) auf Grundlage der anfänglichen Ausgangszahl unter Verwendung des RNG erzeugen. Der RNG kann ein üblicher Algorithmus sein, z. B. ein Lehmer-Generator, ein Mersenne-Twister, ein Advanced Randomization System, Philox usw. In dieser Schrift weist „einen Ausgangswert eingeben“ seine herkömmliche Bedeutung auf dem Gebiet der Computer 110 auf, d. h. im vorliegenden Zusammenhang bedeutet „einen Ausgangswert eingeben“, dass eine Anfangsbedingung des RNG-Algorithmus vorgegeben wird, wodurch der Zufallszahlengenerator initialisiert wird, damit er eine spezifische Zahlenfolge auf Grundlage der vorgegebenen Anfangsbedingung, d. h. des Ausgangswerts, erzeugt.
  • Der Computer 110 kann zum Beispiel den Sicherheitscode 235 als Seed-Wert in den Zufallszahlengenerator eigeben. Als ein anderes Beispiel kann der Computer 110 eine aktuelle Zeit als den Seed-Wert in den Zufallszahlengenerator eingeben. Der Computer 110 kann die Zufallszahl als einen aktualisierten Sicherheitscode 235 speichern, z. B. in einem Speicher des Computers 110. In dem Beispiel, in dem der entfernte Computer 140 den Computer 110 veritizfiert, kann der entfernte Computer 140 den Sicherheitscode 235 aktualisieren, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert.
  • Zusätzlich oder alternativ kann der Computer 110 einige der Auslöserereignisse mit der Verifizierung der ECU 126 und die verbleibenden Auslöserereignisse mit Aktualisierungen des Sicherheitscodes 235 verknüpfen. Zum Beispiel kann der Computer 110 eine Lookup-Tabelle oder dergleichen führen, die z. B. in einem Speicher des Computers 110 gespeichert ist und verschiedene Auslöserereignisse mit der Verifizierung der ECU 126 oder Aktualisierungen des Sicherheitscodes 235 verknüpft. In dieser Situation kann der Computer 110 dazu programmiert sein, den Sicherheitscode 235 zu aktualisieren, wenn ein Auslöserereignis erfasst wird, das mit Aktualisierungen des Sicherheitscodes 235 verknüpft ist, z. B. in der Lookup-Tabelle. Das heißt, in einigen Fällen kann der Computer 110 den Sicherheitscode 235 aktualisieren, bevor die ECUs 126 verifiziert werden. Als ein Beispiel kann ein Auslöseereignis, das mit der Verifizierung der ECU 126 verknüpft ist, der Ablauf eines Zeitgebers sein, der eine erste Dauer aufweist, und ein Auslöseereignis, das mit Aktualisierungen des Sicherheitscodes 235 verknüpft ist, kann der Ablauf eines Zeitgebers sein, der eine zweite Dauer aufweist, die anders, z. B. kürzer, als die erste Dauer ist. Als ein anderes Beispiel kann ein Auslöseereignis, das mit der Verifizierung der ECU 126 verknüpft ist, das Erfassen eines Diagnosefehlercodes sein, und ein Auslöseereignis, das mit Aktualisierungen des Sicherheitscodes 235 verknüpft ist, kann bestimmen, keine andere ECU 126 zu verifizieren.
  • Nach dem Aktualisieren des Sicherheitscodes 235 erzeugt der Computer 110 eine Sicherheitsnachricht 210. Ähnlich der Authentifizierungsnachricht 200 beinhaltet die Sicherheitsnachricht 210 einen Header 211 und Nutzdaten 212 einschließlich Nutzdatensegmenten 213 (siehe 2D). Der Header 211 der Sicherheitsnachricht 210 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Computers 110 usw. beinhalten. Die Nutzdaten 212 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Nach dem Verschlüsseln des aktualisierten Sicherheitscodes 235 kann der Computer 110 den verschlüsselten akutalisierten Sicherheitscode 235 in die Nutzdaten 212, z. B. ein spezifiziertes Nutzdatensegment 213, der Sicherheitsnachricht 210 einschließen. Der Computer 110 kann den aktualisierten Sicherheitscode 235 auf Grundlage eines zweiten Authentifizierungsschlüssels 246 verschlüsseln, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend in Bezug auf das Verschlüsseln des Sicherheitscodes 235 erörtert.
  • Der Computer 110 kann den Authentifizierungsschlüssel 246 abrufen, z. B. aus dem Speicher des Computers 110. Der Authentifizierungsschlüssel 246 ist ein vorgegebener Satz alphanumerischer Zeichen. Der zweite Authentifizierungsschlüssel 246 unterscheidet sich von dem Authentifizierungsschlüssel 245, d. h., er ist ein anderer vorgegebener Satz von alphanumerischen Zeichen (siehe 2C). Zum Beispiel kann der zweite Authentifizierungsschlüssel 246 ähnlich wie der Authentifizierungsschlüssel 245 ein kryptographischer Schlüssel sein, der in einem üblichen kryptographischen Programm verwendet wird, z. B. Diffie-Hellman-Austausch, RSA-Verschlüsselung, AES usw. Der zweite Authentifizierungsschlüssel 246 kann z. B. durch einen Hersteller des Computers 110 spezifiziert sein. Der Computer 110 kann den zweiten Authentifizierungsschlüssel 246 von dem entfernten Computer 140 z. B. über das Netz 135 empfangen. Das Verschlüsseln des aktualisierten Sicherheitscodes 235 unter Verwendung des zweiten Authentifizierungsschlüssels 246 kann die Entropie der Sicherheitsnachricht 210 erhöhen.
  • Der Computer 110 kann die Sicherheitsnachricht 210 an die verifizierte ECU 126 bereitstellen. Zum Beispiel kann der Computer 110 die Sicherheitsnachricht 210 über das Fahrzeugkommunikationsnetz an die verifizierte ECU 126 übertragen.
  • In dem Beispiel, in dem der entfernte Computer 140 den Computer 110 verifiziert, kann der entfernte Computer 140 dazu programmiert sein, den aktualisierten Sicherheitscode 235 an den Computer 110 bereitzustellen. Zum Beispiel kann der entfernte Computer 140 eine Sicherheitsnachricht 210 erzeugen, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert. Der entfernte Computer 140 kann dann die Sicherheitsnachricht 210 an den Computer 110 bereitstellen. Beispielsweise kann der entfernte Computer 140 die Sicherheitsnachricht 210 über das Netz 135 an den Computer 110 übertragen.
  • Vor dem Erfassen eines zweiten Auslöserereignisses kann der Computer 110 eine Anforderungsnachricht 215 an die verifizierte ECU 126 bereitstellen. Ähnlich der Authentifizierungsnachricht 200 beinhaltet die Anforderungsnachricht 215 einen Header 216 und Nutzdaten 217 einschließlich Nutzdatensegmenten 218 (siehe 2E). Der Header 216 der Anforderungsnachricht 215 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Computers 110 usw. beinhalten. Die Nutzdaten 217 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Der Computer 110 kann den aktualisierten Sicherheitscode 235 und einen Zähler in die Nutzdaten 217, z. B. ein festgelegtes Nutzdatensegment 218, der Anforderungsnachricht 215 aufnehmen. Der Computer 110 kann außerdem eine Anforderung von Daten in die Nutzdaten 217, z. B. ein weiteres festgelegtes Nutzdatensegment 218, der Anforderungsnachricht 215 aufnehmen.
  • Der Computer 110 kann den Zähler z. B. in einem Speicher des Computers 110 speichern. Der Computer 110 ist dazu programmiert, den Zähler nach dem Übertragen der Anforderungsnachricht 215 zu erhöhen. Nach dem Erhöhen des Zählers überschreibt der Computer 110 den Zähler mit dem erhöhten Zähler, z. B. in dem Speicher. Der Zähler gibt eine Anzahl von Nachrichten an, die seit einem vorherigen Auslöseereignis übertragen wurden.
  • Der Computer 110 kann die Anforderungsnachricht 215 an die verifizierte ECU 126 bereitstellen. Zum Beispiel kann der Computer 110 die Anforderungsnachricht 215 an die verifizierte ECU 126 übertragen, z. B. über das Fahrzeugkommunikationsnetz. Die ECU 126 kann als Reaktion auf die Anforderungsnachricht 215 eine Weiterleitungsnachricht 230 bereitstellen, wie nachstehend erörtert.
  • In dem Beispiel, in dem der entfernte Computer 140 den Computer 110 verifiziert, kann der entfernte Computer 140 dazu programmiert sein, die Anforderungsnachricht 215 an den Computer 110 bereitzustellen. Zum Beispiel kann der entfernte Computer 140 die Anforderungsnachricht 215 erzeugen, z. B. im Wesentlichen auf die gleiche Weise wie zuvor erörtert. Der entfernte Computer 140 kann dann die Anforderungsnachricht 215 an den Computer 110 bereitstellen. Beispielsweise kann der entfernte Computer 140 die Anforderungsnachricht 215 über das Netz 135 an den Computer 110 übertragen. In einem solchen Beispiel ist der entfernte Computer 140 dazu programmiert, den Zähler nach dem Übertragen der Anforderungsnachricht 215 zu erhöhen. Das heißt, der entfernte Computer 140 kann den Zähler z. B. in einem Speicher speichern. Der Computer 110 kann als Reaktion auf die Anforderungsnachricht 215 eine Weiterleitungsnachricht 230 bereitstellen, wie nachstehend erörtert.
  • Nach dem Empfangen der Weiterleitungsnachricht 230 kann der Computer 110 die Weiterleitungsnachricht 230 auf Grundlage des aktualisierten Sicherheitscodes 235 und des erhöhten Zählers authentifizieren. Zum Beispiel kann der Computer 110 auf das festgelegte Nutzdatensegment 233 der Weiterleitungsnachricht 230 zugreifen und den aktualisierten Sicherheitscode 235 und den erhöhten Zähler abrufen. Der Computer 110 kann dann den abgerufenen Sicherheitscode 235 und den abgerufenen Zähler mit dem bereitgestellten Sicherheitscode 235 bzw. dem erhöhten Zähler vergleichen. Wenn der abgerufene Sicherheitscode 235 mit dem bereitgestellten Sicherheitscode 235 übereinstimmt und der abgerufene Zähler mit dem erhöhten Zähler übereinstimmt, authentifiziert der Computer 110 die Weiterleitungsnachricht 230. Wenn der abgerufene Sicherheitscode 235 nicht mit dem bereitgestellten Sicherheitscode 235 übereinstimmt oder der abgerufene Zähler nicht mit dem erhöhten Zähler übereinstimmt, ist der Computer 110 dazu programmiert, die Weiterleitungsnachricht 230 nicht zu authentifizieren. In einem derartigen Beispiel kann der Computer 110 die Weiterleitungsnachricht 230 ignorieren. Zusätzlich oder alternativ kann der Computer 110 z. B. über das Netz 135 eine Nachricht an den entfernten Computer 140 bereitstellen, welche die ECU 126 identifiziert, die die nicht authentifizierte Weiterleitungsnachricht 230 übertragen hat. In dieser Situation kann der Computer 110 auf einen Header 231 der Weiterleitungsnachricht 230 zugreifen und eine Kennung der ECU 126 abrufen, die die nicht authentifizierte Weiterleitungsnachricht 230 übertragen hat. Das Authentifizieren von Nachrichten zwischen Auslöseereignissen auf Grundlage des aktualisierten Sicherheitscodes 235 und des Zählers kann die Rechenressourcen reduzieren, die zum Authentifizieren der Nachrichten benötigt werden, im Vergleich zum kryptographischen Authentifizieren jeder Nachricht, was eine Leistungsaufnahme von der Batterie des Fahrzeugs 105 minimieren kann.
  • In dem Beispiel, in dem der entfernte Computer 140 die Anforderungsnachricht 215 an den Computer 110 bereitstellt, kann der entfernte Computer 140 eine Weiterleitungsnachricht 230 von dem Computer 110 authentifizieren, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert.
  • Wie vorstehend dargelegt, können jeweilige ECUs 126 dazu programmiert sein, eine oder mehrere Fahrzeugkomponenten 125 zu überwachen und/oder zu betätigen. Jeweilige ECUs 126 können dazu programmiert sein, den Computer 110 auf Grundlage des Sicherheitscodes 235 zu authentifizieren. Jede ECU 126 kann den Sicherheitscode 235 speichern, z. B. in einem jeweiligen Speicher. Jede ECU 126 kann zum Beispiel die Authentifizierungsnachricht 200 von dem Computer 110 empfangen, wie vorstehend erörtert. Eine ECU 126 kann dann den Computer 110 auf Grundlage der Authentifizierungsnachricht 200 authentifizieren. Zum Beispiel kann die ECU 126 den Computer 110 auf Grundlage dessen authentifizieren, dass ein empfangener Nachrichtenauthentifizierungscode, den die Authentifizierung beinhaltet, mit einem gespeicherten Nachrichtenauthentifizierungscode übereinstimmt, der z. B. in einem jeweiligen Speicher der ECU 126 gespeichert ist. Als ein anderes Beispiel kann die ECU 126 die Authentifizierungsnachricht 200 auf Grundlage des Sicherheitscodes 235 entschlüsseln. In einem derartigen Beispiel kann die ECU 126 den Computer 110 auf Grundlage dessen authentifizieren, dass die entschlüsselten Daten mit den gespeicherten Daten übereinstimmen, die z. B. in einem jeweiligen Speicher der ECU 126 gespeichert sind. Wenn die Authentifizierung des Computers 110 fehlschlägt, kann die ECU 126 Nachrichten von dem Computer 110 ignorieren. In dem Beispiel, in dem der entfernte Computer 140 die Authentifizierungsnachricht 200 an den Computer 110 bereitstellt, kann der Computer 110 dazu programmiert sein, den entfernten Computer 140 zu authentifizieren, z. B. im Wesentlichen auf die gleiche Weise wie zuvor erörtert.
  • Nach dem Authentifizieren des Computers 110 kann die ECU 126 eine Antwortnachricht 220 erzeugen. Ähnlich wie die Authentifizierungsnachricht 200 beinhaltet die Antwortnachricht 220 einen Header 221 und Nutzdaten 222 einschließlich Nutzdatensegmenten 223 (siehe 2F). Der Header 221 der Antwortnachricht 220 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung der ECU 126 usw. beinhalten. Die Nutzdaten 222 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Die ECU 126 den Nachrichtenauthentifizierungscode (oder die verschlüsselten Daten) in die Nutzdaten 222, z. B. ein festgelegtes Nutzdatensegment 223, der Authentifizierungsnachricht 220 einschließen. Die ECU 126 kann dann die Antwortnachricht 220 an den Computer 110 bereitstellen. Zum Beispiel kann die ECU 126 die Antwortnachricht 220 über das Netz an den Computer 110 senden.
  • In dem Beispiel, in dem der Computer 110 den entfernten Computer 140 authentifiziert, kann der Computer 110 dazu programmiert sein, die Antwortnachricht 220 zu generieren, z. B. im Wesentlichen auf die gleiche Weise wie zuvor erörtert. In einem solchen Beispiel kann der Computer 110 dann die Antwortnachricht 220 an den entfernten Computer 140 bereitstellen. Beispielsweise kann der Computer 110 die Antwortnachricht 220 über das Netz 135 an den entfernten Computer 140 übertragen.
  • Die jeweiligen ECUs 126 können dazu programmiert sein, den Computer 110 auf Grundlage der Abfragenachricht 205 zu verifizieren. Eine ECU 126 kann die Abfragenachricht 205 von dem Computer 110 empfangen, z. B. über das Fahrzeugnetz, wie vorstehend erörtert. Die ECUs 126 können den verschlüsselten Sicherheitscode 235 identifizieren, z. B. auf Grundlage eines spezifizierten Nutzdatensegments 208 der Abfragenachricht 205. Zum Beispiel können die ECUs 126 nach dem Empfangen der Abfragenachricht 205 von dem Computer 110 auf das festgelegte Nutzdatensegment 208 zugreifen und den verschlüsselten Sicherheitscode 235 abrufen.
  • Die jeweiligen ECUs 126 können dazu programmiert sein, dann den abgerufenen Sicherheitscode 235 auf Grundlage des Authentifizierungsschlüssels 245 zu entschlüsseln, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend in Bezug auf das Entschlüsseln des Sicherheitscodes 235 durch den Computer 110 erörtert. Wenn der entschlüsselte Sicherheitscode 235 mit dem jeweiligen gespeicherten Sicherheitscode 235 übereinstimmt, können die ECUs 126 den Computer 110 verifizieren. Wenn der entschlüsselte Sicherheitscode 235 nicht mit dem jeweiligen gespeicherten Sicherheitscode 235 übereinstimmt, sind die ECUs 126 dazu programmiert den Computer 110 nicht zu verifizieren. In dieser Situation können die ECUs 126 Nachrichten von dem Computer 110 ignorieren. Zusätzlich oder alternativ können die ECUs 126 eine Nachricht an einen weiteren Computer im Fahrzeug 105 bereitstellen, welche die den nicht verifizierten Computer 110 identifiziert, z. B. über das Fahrzeugkommunikationsnetz. In dieser Situation kann der Computer 110 auf einen Header 206 der Abrufnachricht 205 zugreifen und eine Kennung des nicht verifizierten Computers 110 abrufen.
  • In dem Beispiel, in dem der entfernte Computer 140 die Abfragenachricht 205 an den Computer 110 bereitstellt, kann der Computer 110 den entfernten Computer 140 z. B. im Wesentlichen auf die gleiche Weise wie zuvor erörtert verifizieren.
  • Nach dem Authentifizieren des Computers 110 können die ECUs 126 eine Antwortnachricht 225 erzeugen. Ähnlich der Anweisungsnachricht 200 beinhaltet die Antwortnachricht 225 einen Header 226 und Nutzdaten 227 (siehe 2G) Der Header 226 der Antwortnachricht 225 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Fahrzeugcomputers 110 usw. beinhalten. Die Nutzdaten 227 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Die ECUs 126 können den aktualisierten Sicherheitscode 235 nach dem Verschlüsseln des Sicherheitscodes 235 in die Nutzdaten 227, z. B. ein festgelegtes Nutzdatensegment 228, der jeweiligen Antwortnachricht 225 aufnehmen. Die ECUs 126 können den Sicherheitscode 235 auf Grundlage des Authentifizierungsschlüssels 245 verschlüsseln, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend in Bezug auf das Verschlüsseln des Sicherheitscodes 235 durch den Computer 110 erörtert. Die ECUs 126 können den Authentifizierungsschlüssel 245 z. B. aus einem jeweiligen Speicher abrufen.
  • Die ECUs 126 können dann die jeweilige Antwortnachricht 225 an den Computer 110 bereitstellen. Zum Beispiel können die ECUs 126 die jeweilige Antwortnachricht 225 über das Fahrzeugkommunikationsnetz an den Computer 110 übertragen. Der Computer 110 kann eine Sicherheitsnachricht 210 als Reaktion auf die Antwortnachricht 225 bereitstellen, wie vorstehend erörtert.
  • In dem Beispiel, in dem der entfernte Computer 140 die Abfragenachricht 205 bereitstellt, kann der Computer 110 eine Antwortnachricht 225 z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert erzeugen. Der Computer 110 kann die Antwortnachricht 225 an den entfernten Computer 140 bereitstellen. Beispielsweise kann der Computer 110 die Antwortnachricht 225 über das Netz 135 an den entfernten Computer 140 übertragen. Der entfernte Computer 140 kann eine Sicherheitsnachricht 210 als Reaktion auf die Antwortnachricht 225 bereitstellen, wie vorstehend erörtert.
  • Die jeweiligen ECUs 126 können dazu programmiert sein, den gespeicherten Sicherheitscode 235 auf Grundlage der Sicherheitsnachricht 210 zu aktualisieren. Die ECUs 126 können die Sicherheitsnachricht 210 z. B. über das Fahrzeugnetz von dem Computer 110 empfangen, wie vorstehend erörtert. Die ECUs 126 können den aktualisierten Sicherheitscode 235 identifizieren, z. B. auf Grundlage des festgelegten Nutzdatensegments 213 der Sicherheitsnachricht 210. Zum Beispiel können die ECUs 126 auf das festgelegte Nutzdatensegment 213 zugreifen und den aktualisierten Sicherheitscode 235 abrufen.
  • Die jeweiligen ECUs 126 können dazu programmiert sein, dann den abgerufenen Sicherheitscode 235 auf Grundlage des zweiten Authentifizierungsschlüssels 246 zu entschlüsseln, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend in Bezug auf das Entschlüsseln des Sicherheitscodes 235 durch den Computer 110 erörtert. Die jeweiligen ECUs 126 können dazu programmiert sein, den gespeicherten Sicherheitscode 235 mit dem aktualisierten Sicherheitscode 235 zu überschreiben, z. B. in einem jeweiligen Speicher.
  • In dem Beispiel, in dem der entfernte Computer 140 die Sicherheitsnachricht 210 an den Computer 110 bereitstellt, kann der Computer 110 den gespeicherten Sicherheitscode 235 aktualisieren, z. B. im Wesentlichen auf die gleiche Weise wie soeben erörtert.
  • Die jeweiligen ECUs 126 können dazu programmiert sein, eine Anforderungsnachricht 215 von dem Computer 110 zu empfangen. Die ECUs 126 sind dazu programmiert, die Anforderungsnachricht 215 auf Grundlage des aktualisierten Sicherheitscodes 235 und des Zählers zu authentifizieren. Die ECUs 126 können dazu programmiert sein, den aktualisierten Sicherheitscode 235 und den Zähler z. B. auf Grundlage des festgelegten Nutzdatensegments 218 der Anforderungsnachricht 215 zu identifizieren. Zum Beispiel kann eine ECU 126 nach dem Empfangen der Anforderungsnachricht 215 auf das festgelegte Nutzdatensegment 218 zugreifen und den aktualisierten Sicherheitscode 235 und den Zähler abrufen. Eine ECU 126 kann dann den abgerufenen Sicherheitscode 235 und den abgerufenen Zähler mit dem gespeicherten Sicherheitscode 235 bzw. dem Zähler vergleichen. Wenn der abgerufene Sicherheitscode 235 mit dem gespeicherten Sicherheitscode 235 übereinstimmt und der abgerufene Zähler mit dem Zähler übereinstimmt, authentifizieren die ECUs 126 die Anforderungsnachricht 215. Wenn der abgerufene Sicherheitscode 235 nicht mit dem gespeicherten Sicherheitscode 235 übereinstimmt oder der abgerufene Zähler nicht mit dem Zähler übereinstimmt, sind die ECUs 126 dazu programmiert, die Anforderungsnachricht 215 nicht zu authentifizieren. In einem derartigen Beispiel können die ECUs 126 die Anforderungsnachricht 215 ignorieren. Zusätzlich oder alternativ können die ECUs 126 eine Nachricht an einen weiteren Computer bereitstellen, welche die den nComputer 110, der die nicht authentifizierte Anforderungsnachricht 215 übertragen hat, identifiziert, z. B. über das Fahrzeugkommunikationsnetz. In dieser Situation können die ECUs auf einen Header 216 der Anforderungsnachricht 215 zugreifen und eine Kennung des Computers 110 abrufen, der die Anforderungsnachricht 215 übertragen hat.
  • Eine ECU 126 kann den Zähler in einem jeweiligen Speicher speichern. Die ECUs 126 sind dazu programmiert, den Zähler nach dem Authentifizieren der Anforderungsnachricht 215 zu erhöhen. Nach dem Erhöhen des Zählers überschreiben die ECUs 126 den Zähler mit dem erhöhten Zähler, z. B. in dem Speicher.
  • Nach dem Erhöhen des Zählers können die ECUs 126 jeweilige Weiterleitungsnachrichten 230 erzeugen. Ähnlich der Anweisungsnachricht 200 beinhaltet die Weiterleitungsnachricht 230 einen Header 231 und Nutzdaten 232. (Siehe 2H). Der Header 231 der Weiterleitungsnachricht 230 kann einen Nachrichtentyp, eine Nachrichtengröße, eine Kennung des Fahrzeugcomputers 110 usw. beinhalten. Die Nutzdaten 232 können verschiedene Daten, d. h. Nachrichteninhalt, beinhalten. Die ECUs 126 können den aktualisierten Sicherheitscode 235 und den erhöhten Zähler in die Nutzdaten 232, z. B. ein festgelegtes Nutzdatensegment 233, der Weiterleitungsnachricht 230 aufnehmen. Die ECUs 126 können die angeforderten Daten in die Nutzdaten 232, z. B. in ein weiteres festgelegtes Nutzdatensegment 233, der Anforderungsnachricht 230 aufnehmen.
  • Die ECUs 126 können die jeweiligen Weiterleitungsnachrichten 230 an den Computer 110 bereitstellen. Zum Beispiel können die ECUs 126 die jeweilige Weiterleitungsnachricht 230 über das Fahrzeugkommunikationsnetz an den Computer 110 übertragen.
  • In dem Beispiel, in dem der entfernte Computer 140 die Anforderungsnachricht 215 an den Computer 110 bereitstellt, kann der Computer 110 die Anforderungsnachricht 215 authentifizieren, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend erörtert. Zum Beispiel kann der entfernte Computer 140 eine Weiterleitungsnachricht 230 erzeugen, z. B. im Wesentlichen auf die gleiche Weise wie vorstehend erörtert. Der Computer 110 kann dann die Weiterleitungsnachricht 230 an den entfernten Computer 140 bereitstellen. Beispielsweise kann der Computer 110 die Weiterleitungsnachricht 230 über das Netz 135 an den entfernten Computer 140 übertragen.
  • 3 ist ein Diagramm eines beispielhaften Prozesses 300, der in einem ersten Computer gemäß Programmanweisungen, die in einem Speicher desselben gespeichert sind, zum Aktualisieren eines Sicherheitscodes 235 für einen zweiten Computer ausgeführt wird. Der erste Computer kann zum Beispiel ein Computer 110 sein, der sich in einem Fahrzeug 105 befindet. In einem solchen Beispiel kann der zweite Computer eine ECU 126 sein, die sich in dem Fahrzeug 105 befindet. Alternativ kann der erste Computer ein entfernter Computer 140 sein. In einem solchen Beispiel kann der zweite Computer der Computer 110, die sich in dem Fahrzeug 105 befindet.
  • Der Prozess 300 beginnt in einem Block 305. In Block 305 stellt der erste Computer eine Authentifizierungsnachricht 200 an einen oder mehrere zweite Computern bereit. Der erste Computer erzeugt die Authentifizierungsnachricht 200 auf Grundlage eines Sicherheitscodes 235, wie vorstehend erörtert. Nach dem Erzeugen der Authentifizierungsnachricht 200 kann der erste Computer die Authentifizierungsnachricht 200 an den zweiten Computer übertragen, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 310 fortgesetzt.
  • In Block 310 empfängt der erste Computer eine Antwortnachricht 220 von dem zweiten Computer. In einem Beispiel, in dem der erste Computer die Authentifizierungsnachricht 200 an eine Vielzahl von zweiten Computern bereitstellt, empfängt der erste Computer eine eindeutige Antwortnachricht 220 von jedem der Vielzahl von zweiten Computern. Der Prozess 300 wird in einem Block 315 fortgesetzt.
  • In Block 315 bestimmt der erste Computer, ob der zweite Computer authentifiziert werden soll. Der erste Computer kann den zweiten Computer auf Grundlage des Sicherheitscodes 235 und der Antwortnachricht 220 authentifizieren, wie vorstehend erörtert. Wenn der erste Computer den zweiten Computer authentifiziert, wird der Prozess 300 in einem Block 320 fortgesetzt. Andernfalls geht der Prozess 300 zu einem Block 370 über.
  • In Block 320 bestimmt der erste Computer, ob ein Auslöseereignis eingetreten ist, wie vorstehend erörtert. Für die Zwecke dieser Offenbarung ist ein „Auslöseereignis“ als eine spezifische Bedingung definiert, die zu einem gegebenen Zeitpunkt wahr oder falsch sein kann. Wenn der erste Computer bestimmt, dass ein Schlüsselereignis eingetreten ist, geht der Prozess 300 zu einem Block 325 über. Andernfalls wird der Prozess 300 in Block 350 fortgesetzt.
  • In Block 325 stellt der erste Computer eine Abfragenachricht 205 an den zweiten Computer bereit. Der erste Computer kann die Abfragenachricht 205 durch Verschlüsseln des Sicherheitscodes 235 auf Grundlage eines Authentifizierungsschlüssels 245 und Aufnehmen des verschlüsselten Sicherheitscodes 235 in die Abfragenachricht 205 erzeugen, wie vorstehend erörtert. Der erste Computer kann dann die Abfragenachricht 205 an den zweiten Computer übertragen, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 330 fortgesetzt.
  • In Block 330 empfängt der erste Computer eine Antwortnachricht 225 von dem zweiten Computer. In einem Beispiel, in dem der erste Computer die Abfragenachricht 205 an eine Vielzahl von zweiten Computern bereitstellt, empfängt der erste Computer eine eindeutige Antwortnachricht 225 von jedem der Vielzahl von zweiten Computern. Der erste Computer kann den verschlüsselten Sicherheitscode 235 aus der Antwortnachricht 225 abrufen, wie vorstehend erörtert. Der erste Computer kann dann den abgerufenen verschlüsselten Sicherheitscode 235 auf Grundlage des Authentifizierungsschlüssels 245 entschlüsseln, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 335 fortgesetzt.
  • In Block 335 bestimmt der erste Computer, ob der zweite Computer verifiziert wird. Wenn der abgerufene entschlüsselte Sicherheitscode 235 mit dem in der Abfragenachricht 205 bereitgestellten Sicherheitscode 235 übereinstimmt, verifiziert der erste Computer den zweiten Computer. Wenn der abgerufene entschlüsselte Sicherheitscode 235 nicht mit dem in der Abfragenachricht bereitgestellten Sicherheitscode 235 übereinstimmt, bestimmt der erste Computer, den zweiten Computer nicht zu verifizieren. Nach dem Bestimmen, den zweiten Computer nicht zu verifizieren, kann der erste Computer eine Nachricht ausgeben, die den nicht verifizierten zweiten Computer identifiziert, wie vorstehend erörtert. Wenn der zweite Computer verifiziert wird, wird der Prozess 300 in einem Block 340 fortgesetzt. Anderenfalls geht der Prozess 300 zu Block 370 über.
  • In Block 340 aktualisiert der erste Computer den Sicherheitscode 235, z. B. auf Grundlage einer Ausgabe von einem Zufallszahlengenerator, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 345 fortgesetzt.
  • In Block 345 stellt der erste Computer eine Sicherheitsnachricht 210 an den zweiten Computer bereit. Der erste Computer kann die Sicherheitsnachricht 210 durch Verschlüsseln des aktualisierten Sicherheitscodes 235 auf Grundlage eines zweiten Authentifizierungsschlüssels 246 und Aufnehmen des verschlüsselten aktualisierten Sicherheitscodes 235 in die Sicherheitsnachricht 210 erzeugen, wie vorstehend erörtert. Der erste Computer kann dann die Sicherheitsnachricht 210 an den zweiten Computer übertragen, wie vorstehend erörtert. Der Prozess 300 kehrt zu Block 320 zurück.
  • In Block 350 stellt der erste Computer eine Anforderungsnachricht 215 an den zweiten Computer bereit. Der erste Computer kann den aktualisierten Sicherheitscode 235 und einen Zähler in die Anforderungsnachricht 215 aufnehmen, wie vorstehend erörtert. Der erste Computer kann dann die Anforderungsnachricht 215 an den zweiten Computer übertragen, wie vorstehend erörtert. Nach dem Übertragen der Anforderungsnachricht 215 erhöht der erste Computer den Zähler, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 355 fortgesetzt.
  • In Block 355 empfängt der erste Computer eine Weiterleitungsnachricht 230 von dem zweiten Computer. In einem Beispiel, in dem der erste Computer die Abfragenachricht 205 an eine Vielzahl von zweiten Computern bereitstellt, empfängt der erste Computer eine eindeutige Weiterleitungsnachricht 230 von jedem der Vielzahl von zweiten Computern. Der erste Computer kann den aktualisierten Sicherheitscode 235 und den erhöhten Zähler aus der Weiterleitungsnachricht 230 abrufen, wie vorstehend erörtert. Der Prozess 300 wird in einem Block 360 fortgesetzt.
  • In Block 360 bestimmt der erste Computer, ob die Weiterleitungsnachricht 230 authentifiziert werden soll. Wenn der abgerufene Sicherheitscode 235 und der erhöhte Zähler mit dem aktualisierten Sicherheitscode 235, der in der Anforderungsnachricht 215 bereitgestellt wird, und dem gespeicherten Zähler übereinstimmen, authentifiziert der erste Computer die Weiterleitungsnachricht 230. Wenn der abgerufene Sicherheitscode 235 nicht mit dem aktualisierten Sicherheitscode 235, der in der Anforderungsnachricht 215 bereitgestellt wird, übereinstimmt, oder der erhöhte Zähler nicht mit dem gespeicherten Zähler übereinstimmt, bestimmt der erste Computer, die Weiterleitungsnachricht 230 nicht zu authentifizieren. Nach dem Bestimmen, dass die Weiterleitungsnachricht 230 nicht authentifiziert wird, kann der erste Computer eine Nachricht ausgeben, die den zweiten Computer identifiziert, der die nicht authentifizierte Weiterleitungsnachricht 230 übertragen hat, wie vorstehend erörtert. Wenn die Weiterleitungsnachricht 230 authentifiziert wird, wird der Prozess 300 in einem Block 365 fortgesetzt. Wenn die Weiterleitungsnachricht 230 nicht authentifiziert wird, wird der Prozess 300 in einem Block 370 fortgesetzt.
  • In Block 365 handelt der erste Computer gemäß der Weiterleitungsnachricht 230. Zum Beispiel kann der erste Computer das Fahrzeug 105 betreiben, z. B. eine oder mehrere Fahrzeugkomponenten auf Grundlage der Weiterleitungsnachricht 230 betätigen. Als ein anderes Beispiel kann der erste Computer Daten speichern, die in der Weiterleitungsnachricht 230 beinhaltet sind, z. B. in einem Speicher des ersten Computers. Der Prozess 300 kehrt zu Block 320 zurück.
  • In Block 370 ignoriert der erste Computer den zweiten Computer. Das heißt, der erste Computer bestimmt, von dem zweiten Computer empfangene Daten nicht zu speichern oder darauf zu reagieren. Der Prozess 300 endet im Anschluss an den Block 370.
  • 4 ist ein Diagramm eines beispielhaften Prozesses 400, der in einem zweiten Computer gemäß Programmanweisungen, die in einem Speicher desselben gespeichert sind, zum Aktualisieren eines Sicherheitscodes 235 in dem zweiten Computer ausgeführt wird. Der zweite Computer kann zum Beispiel eine ECU 126 sein, die sich in dem Fahrzeug 105 befindet, wenn der erste Computer der Computer 110 ist, der sich in dem Fahrzeug 105 befindet. Alternativ kann der zweite Computer der Computer 110 sein, der sich in dem Fahrzeug 105 befindet, wenn der erste Computer der entfernte Computer 140 ist.
  • Der Prozess 400 beginnt in einem Block 405. In Block 405 empfängt der zweite Computer die Authentifizierungsnachricht 200 von dem ersten Computer. Der Prozess 400 wird in einem Block 410 fortgesetzt.
  • In Block 410 bestimmt der zweite Computer, ob der erste Computer authentifiziert werden soll. Der zweite Computer kann den ersten Computer auf Grundlage des Sicherheitscodes 235 und der Authentifizierungsnachricht 200 authentifizieren, wie vorstehend erörtert. Wenn der zweite Computer den ersten Computer authentifiziert, wird der Prozess 400 in einem Block 415 fortgesetzt. Andernfalls geht der Prozess 400 zu einem Block 465 über.
  • In Block 415 stellt der zweite Computer eine Antwortnachricht 220 an den ersten Computer bereit. Der zweite Computer erzeugt die Antwortnachricht 220 auf Grundlage eines Sicherheitscodes 235, wie vorstehend erörtert. Nach dem Erzeugen der Antwortnachricht 220 kann der zweite Computer die Antwrtnachricht 220 an den ersten Computer übertragen, wie vorstehend erörtert. Der Prozess 400 wird bei einem Block 420 fortgesetzt.
  • In Block 420 empfängt der zweite Computer eine Abfragenachricht 205 von dem ersten Computer. Der zweite Computer kann den verschlüsselten Sicherheitscode 235 aus der Abfragenachricht 205 abrufen, wie vorstehend erörtert. Der zweite Computer kann dann den abgerufenen verschlüsselten Sicherheitscode 235 auf Grundlage des Authentifizierungsschlüssels 245 entschlüsseln, wie vorstehend erörtert. Der Prozess 400 wird in einem Block 425 fortgesetzt.
  • In Block 425 bestimmt der zweite Computer, ob der erste Computer verifiziert wird. Wenn der abgerufene entschlüsselte Sicherheitscode 235 mit dem durch den zweiten Computer z. B. in einem Speicher des zweiten Computers gespeicherten Sicherheitscode 235 übereinstimmt, verifiziert der zweite Computer den ersten Computer. Wenn der abgerufene entschlüsselte Sicherheitscode 235 nicht mit dem gespeicherten Sicherheitscode 235 übereinstimmt, bestimmt der zweite Computer, den ersten Computer nicht zu verifizieren. Nach dem Bestimmen, den ersten Computer nicht zu verifizieren, kann der zweite Computer eine Nachricht ausgeben, die den nicht verifizierten ersten Computer identifiziert, wie vorstehend erörtert. Wenn der erste Computer verifiziert wird, wird der Prozess 400 in einem Block 430 fortgesetzt. Andernfalls wird der Prozess 400 bei dem Block 465 fortgesetzt.
  • In Block 430 stellt der zweite Computer eine Antwortnachricht 225 an den ersten Computer bereit. Der zweite Computer erzeugt die Antwortnachricht 225 durch Verschlüsseln des Sicherheitscodes 235 auf Grundlage des Authentifizierungsschlüssels 245 und Aufnehmen des verschlüsselten Sicherheitscodes 235 in die Antwortnachricht 225, wie vorstehend erörtert. Der zweite Computer kann dann die Antwortnachricht 225 an den ersten Computer übertragen, wie vorstehend erörtert. Der Prozess 400 wird in einem Block 435 fortgesetzt.
  • In Block 435 empfängt der zweite Computer die Sicherheitsnachricht 210 von dem ersten Computer. Der zweite Computer kann den verschlüsselten aktualisierten Sicherheitscode 235 aus der Sicherheitsnachricht 210 abrufen, wie vorstehend erörtert. Der zweite Computer kann dann den abgerufenen verschlüsselten aktualisierten Sicherheitscode 235 auf Grundlage des zweiten Authentifizierungsschlüssels 246 entschlüsseln, wie vorstehend erörtert. Der Prozess 400 wird bei einem Block 440 fortgesetzt.
  • In Block 440 aktualisiert der zweite Computer den Sicherheitscode 235, der im Speicher des zweiten Computers gespeichert ist. Zum Beispiel kann der zweite Computer den Sicherheitscode 235 mit dem aktualisierten Sicherheitscode 235 überschreiben, wie vorstehend erörtert. Der Prozess 400 wird in einem Block 445 fortgesetzt.
  • In Block 445 empfängt der zweite Computer die Anforderungsnachricht 215 von dem ersten Computer. Der zweite Computer kann den aktualisierten Sicherheitscode 235 und den Zähler aus der Anforderungsnachricht 215 abrufen, wie vorstehend erörtert. Der Prozess 400 wird in einem Block 450 fortgesetzt.
  • In Block 450 bestimmt der erste Computer, ob die Weiterleitungsnachricht 230 authentifiziert werden soll. Wenn der abgerufene Sicherheitscode 235 und der erhöhte Zähler mit dem aktualisierten Sicherheitscode 235, der in der Anforderungsnachricht 215 bereitgestellt wird, und dem gespeicherten Zähler übereinstimmen, authentifiziert der erste Computer die Weiterleitungsnachricht 230. Wenn der abgerufene Sicherheitscode 235 nicht mit dem aktualisierten Sicherheitscode 235, der in der Anforderungsnachricht 215 bereitgestellt wird, übereinstimmt, oder der erhöhte Zähler nicht mit dem gespeicherten Zähler übereinstimmt, bestimmt der erste Computer, die Weiterleitungsnachricht 230 nicht zu authentifizieren. Nach dem Bestimmen, dass die Anforderungsnachricht 215 nicht authentifiziert wird, kann der zweite Computer eine Nachricht ausgeben, die den ersten Computer identifiziert, der die nicht authentifizierte Anforderungsnachricht 215 übertragen hat, wie vorstehend erörtert. Wenn die Weiterleitungsnachricht 230 authentifiziert wird, wird der Prozess 300 in einem Block 365 fortgesetzt. Wenn die Weiterleitungsnachricht 230 nicht authentifiziert wird, wird der Prozess 300 in einem Block 370 fortgesetzt.
  • In Block 455 stellt der zweite Computer die Weiterleitungsnachricht 230 an den ersten Computer bereit. Der zweite Computer kann den aktualisierten Sicherheitscode 235 und den erhöhten Zähler in die Weiterleitungsnachricht 230 aufnehmen, wie vorstehend erörtert. Der zweite Computer kann dann die Weiterleitungsnachricht 230 an den ersten Computer übertragen, wie vorstehend erörtert. Der Prozess 400 wird in einem Block 460 fortgesetzt.
  • In Block 460 bestimmt der zweite Computer, ob eine nachfolgend empfangene Nachricht eine Abfragenachricht 205 ist. Zum Beispiel kann der zweite Computer auf einen Header der nachfolgend empfangenen Nachricht zugreifen und einen Nachrichtentyp aus dem Header abrufen. Wenn der Nachrichtentyp angibt, dass die nachfolgend empfangene Nachricht eine Abfragenachricht 205 ist, kehrt der Prozess 400 zu Block 420 zurück. Andernfalls kehrt der Prozess 400 zu Block 445 zurück.
  • In Block 465 ignoriert der zweite Computer den ersten Computer. Das heißt, der zweite Computer bestimmt, von dem ersten Computer empfangene Daten nicht zu speichern oder darauf zu reagieren. Der Prozess 400 endet im Anschluss an den Block 465.
  • Im vorliegenden Zusammenhang ist mit dem Ausdruck „im Wesentlichen“ gemeint, dass eine Form, eine Struktur, ein Messwert, eine Menge, eine Zeit usw. aufgrund von Mängeln bei Materialien, Bearbeitung, Herstellung, Datenübertragung, Berechnungszeit usw. von einem/einer genauen beschriebenen Geometrie, Abstand, Messwert, Menge, Zeit usw. abweichen kann.
  • Im Allgemeinen können die beschriebenen Rechensysteme und/oder -vorrichtungen ein beliebiges aus einer Reihe von Computerbetriebssystemen einsetzen, einschließlich unter anderem Versionen und/oder Varianten der Anwendung Ford Sync®, der Middleware AppLink/Smart Device Link, des Betriebssystems Microsoft Automotive®, des Betriebssystems Microsoft Windows®, des Betriebssystems Unix (z. B. des Betriebssystems Solaris®, vertrieben durch die Oracle Corporation in Redwood Shores, Kalifornien), des Betriebssystems AIX UNIX, vertrieben durch International Business Machines in Armonk, New York, des Betriebssystems Linux, der Betriebssysteme Mac OSX und iOS, vertrieben durch die Apple Inc. in Cupertino, Kalifornien, des BlackBerry OS, vertrieben durch die Blackberry, Ltd. in Waterloo, Kanada, und des Betriebssystems Android, entwickelt durch die Google, Inc. und die Open Handset Alliance, oder der QNX® CAR Platform for Infotainment, angeboten durch QNX Software Systems. Beispiele für Rechenvorrichtungen beinhalten unter anderem einen ersten bordeigenen Computer, einen Computerarbeitsplatz, einen Server, einen Desktop-, Notebook-, Laptop- oder Handheld-Computer oder ein anderes Rechensystem und/oder eine andere Rechenvorrichtung.
  • Computer und Rechenvorrichtungen beinhalten im Allgemeinen computerausführbare Anweisungen, wobei die Anweisungen durch eine oder mehrere Rechenvorrichtungen ausführbar sein können, wie etwa durch die vorstehend aufgeführten. Computerausführbare Anweisungen können von Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung einer Vielfalt von Programmiersprachen und/oder -technologien erstellt werden, einschließlich unter anderem und entweder für sich oder in Kombination Java™, C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Perl, HTMI, usw. Einige dieser Anwendungen können auf einer virtuellen Maschine zusammengestellt und ausgeführt werden, wie etwa der Java Virtual Machine, der Dalvik Virtual Machine oder dergleichen. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen z. B. von einem Speicher, einem computerlesbaren Medium usw. und führt diese Anweisungen aus, wodurch er einen oder mehrere Prozesse durchführt, einschließlich eines oder mehrerer der in dieser Schrift beschriebenen Prozesse. Derartige Anweisungen und andere Daten können unter Verwendung einer Vielfalt von computerlesbaren Medien gespeichert und übertragen werden. Eine Datei in einer Rechenvorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw., gespeichert ist.
  • Ein Speicher kann ein computerlesbares Medium (auch als prozessorlesbares Medium bezeichnet) beinhalten, das ein beliebiges nicht transitorisches (z. B. materielles) Medium beinhaltet, das am Bereitstellen von Daten (z. B. Anweisungen) beteiligt ist, die durch einen Computer (z. B. durch einen Prozessor eines Computers) ausgelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nicht flüchtiger Medien und flüchtiger Medien. Nicht flüchtige Medien können zum Beispiel optische Platten oder Magnetplatten und andere dauerhafte Speicher beinhalten. Flüchtige Medien können zum Beispiel einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM) beinhalten, der typischerweise einen Hauptspeicher darstellt. Derartige Anweisungen können durch ein oder mehrere Übertragungsmedien übertragen werden, einschließlich Koaxialkabeln, Kupferdraht und Glasfaser, einschließlich der Drähte, aus denen ein Systembus besteht, der mit einem Prozessor einer ECU gekoppelt ist. Übliche Formen von computerlesbaren Medien beinhalten zum Beispiel RAM, ein PROM, ein EPROM, ein FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speichereinheit oder ein beliebiges anderes Medium, von dem ein Computer lesen kann.
  • Datenbanken, Datendepots oder andere Datenspeicher, die in dieser Schrift beschrieben sind, können verschiedene Arten von Mechanismen zum Speichern von, Zugreifen auf und Abrufen von verschiedene(n) Arten von Daten beinhalten, einschließlich einer hierarchischen Datenbank, eines Satzes von Dateien in einem Dateisystem, einer Anwendungsdatenbank in einem anwendereigenen Format, eines relationalen Datenbankverwaltungssystems (Relational Database Management System - RDBMS) usw. Jeder derartige Datenspeicher ist im Allgemeinen in einer Rechenvorrichtung beinhaltet, die ein Computerbetriebssystem einsetzt, wie etwa eines der vorstehend erwähnten, wobei auf eine oder mehrere von vielfältigen Weisen über ein netz darauf zugegriffen wird. Auf ein Dateisystem kann von einem Computerbetriebssystem zugegriffen werden und es kann Dateien beinhalten, die in verschiedenen Formaten gespeichert sind. Ein RDBMS setzt im Allgemeinen die Structured Query Language (SQL) zusätzlich zu einer Sprache zum Erzeugen, Speichern, Editieren und Ausführen gespeicherter Prozeduren ein, wie etwa die vorangehend erwähnte PL/SQL-Sprache.
  • In einigen Beispielen können Systemelemente als computerlesbare Anweisungen (z. B. Software) auf einer oder mehreren Rechenvorrichtungen (z. B. Servern, Personal Computern usw.) umgesetzt sein, die auf diesen zugeordneten computerlesbaren Medien (z. B. Platten, Speichern usw.) gespeichert sind. Ein Computerprogrammprodukt kann derartige auf computerlesbaren Medien gespeicherte Anweisungen zum Ausführen der in dieser Schrift beschriebenen Funktionen umfassen.
  • Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren, Heuristiken usw. versteht es sich, dass, auch wenn die Schritte derartiger Prozesse usw. als gemäß einer bestimmten Reihenfolge erfolgend beschrieben worden sind, derartige Prozesse jedoch so umgesetzt werden können, dass die beschriebenen Schritte in einer Reihenfolge durchgeführt werden, die von der in dieser Schrift beschriebenen Reihenfolge verschieden ist. Es versteht sich ferner, dass gewisse Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder gewisse in dieser Schrift beschriebene Schritte weggelassen werden können. Anders ausgedrückt dienen die Beschreibungen von Prozessen in dieser Schrift dem Zwecke der Veranschaulichung gewisser Ausführungsformen und sollten keinesfalls dahingehend ausgelegt werden, dass sie die Patentansprüche einschränken.
  • Dementsprechend versteht es sich, dass die vorstehende Beschreibung veranschaulichend und nicht einschränkend sein soll. Viele Ausführungsformen und Anwendungen, bei denen es sich nicht um die bereitgestellten Beispiele handelt, werden dem Fachmann beim Lesen der vorstehenden Beschreibung ersichtlich. Der Umfang der Erfindung sollte nicht unter Bezugnahme auf die vorstehende Beschreibung festgelegt werden, sondern stattdessen unter Bezugnahme auf die beigefügten Patentansprüche in Zusammenhang mit dem vollständigen Umfang von Äquivalenten, zu denen derartige Patentansprüche berechtigen. Es wird erwartet und ist beabsichtigt, dass es zukünftige Entwicklungen im in dieser Schrift erörterten Stand der Technik geben wird und dass die offenbarten Systeme und Verfahren in derartige zukünftige Ausführungsformen aufgenommen werden. Insgesamt versteht es sich, dass die Erfindung modifiziert und variiert werden kann und ausschließlich durch die folgenden Patentansprüche eingeschränkt ist.
  • Allen in den Patentansprüchen verwendeten Ausdrücken soll deren allgemeine und gewöhnliche Bedeutung zukommen, wie sie vom Fachmann verstanden wird, sofern in dieser Schrift nicht ausdrücklich etwas Anderes angegeben ist. Insbesondere ist die Verwendung der Singularartikel, wie etwa „ein“, „eine“, „der“, „die“, „das“ usw., dahingehend auszulegen, dass ein oder mehrere der aufgeführten Elemente genannt werden, sofern ein Patentanspruch nicht eine ausdrückliche gegenteilige Einschränkung nennt.
  • Gemäß der vorliegenden Erfindung wird ein System bereitgestellt, das Folgendes aufweist: einen ersten Computer, der einen Prozessor und einen Speicher beinhaltet, wobei der in dem Speicher Anweisungen gespeichert sind, die durch den Prozessor ausgeführt werden können, derart, dass der erste Computer zu Folgendem programmiert ist: als Reaktion auf ein Auslöseereignis Erzeugen einer Abfragenachricht, die einen Sicherheitscode beinhaltet, durch Eingeben des Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt; nach dem Übertragen der Abfragenachricht an einen zweiten Computer Aktualisieren des Sicherheitscodes auf Grundlage einer Zufallszahlenausgabe von einem Zufallszahlengenerator; Empfangen einer Antwortnachricht von dem zweiten Computer als Reaktion auf die Abfragenachricht; und nach dem Verifizieren des zweiten Computers auf Grundlage der Antwortnachricht Übertragen einer Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, an den zweiten Computer.
  • Gemäß einer Ausführungsform ist der erste Computer ferner dazu programmiert, die Sicherheitsnachricht durch Eingeben des aktualisierten Sicherheitscodes in ein kryptographisches Programm zu erzeugen, das den Sicherheitscode auf Grundlage eines zweiten Authentifizierungsschlüssels verschlüsselt.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet durch den zweiten Computer, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer dazu programmiert ist, den verschlüsselten aktualisierten Sicherheitscode in ein kryptographisches Programm einzugeben, das den verschlüsselten aktualisierten Sicherheitscode auf Grundlage des zweiten Authentifizierungsschlüssels entschlüsselt.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch den zweiten Computer, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer zu Folgendem programmiert ist: Eingeben des verschlüsselten Sicherheitscodes in ein kryptographisches Programm, das den verschlüsselten Sicherheitscode auf Grundlage des Authentifizierungsschlüssels entschlüsselt; und Übertragen der Antwortnachricht, die den Sicherheitscode beinhaltet, als Reaktion auf die Abrufnachricht.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch den zweiten Computer, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer zu Folgendem programmiert ist: nach dem Empfangen der Abfragenachricht Verifizieren des ersten Computers auf Grundlage dessen, dass der Sicherheitscode mit einem gespeicherten Sicherheitscode übereinstimmt; und dann Übertragen der Antwortnachricht, die den gespeicherten Sicherheitscode beinhaltet.
  • Gemäß einer Ausführungsform ist der erste Computer ferner dazu programmiert, nach dem Empfangen der Antwortnachricht den zweiten Computer auf Grundlage dessen zu verifizieren, dass der gespeicherte Sicherheitscode mit dem Sicherheitscode übereinstimmt.
  • Gemäß einer Ausführungsform ist der erste Computer ferner dazu programmiert, vor dem Erfassen eines zweiten Auslöseereignisses eine Anforderungsnachricht an den zweiten Computer zu übertragen, die den aktualisierten Sicherheitscode und einen Zähler beinhaltet; und dann den Zähler zu erhöhen, der in einem jeweiligen Speicher gespeichert ist.
  • Gemäß einer Ausführungsform ist der erste Computer ferner dazu programmiert, eine Weiterleitungsnachricht von dem zweiten Computer auf Grundlage dessen zu authentifizieren, dass die Weiterleitungsnachricht als Reaktion auf die Anforderungsnachricht den aktualisierten Sicherheitscode und den inkrementierten Zähler beinhaltet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch den zweiten Computer, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer zu Folgendem programmiert ist: Authentifizieren der Anforderungsnachricht von dem ersten Computer auf Grundlage dessen zu, dass die Anforderungsnachricht den aktualisierten Sicherheitscode und den Zähler beinhaltet; Erhöhen des Zählers, der in einem jeweiligen Speicher gespeichert ist; Übertragen einer Weiterleitungsnachricht, die den aktualisierten Sicherheitscode und den erhöhten Zähler beinhaltet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch den zweiten Computer, der einen zweiten Prozessor und einen zweiten Speicher beinhaltet, in dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, derart, dass der zweite Computer zu Folgendem dazu programmiert ist, einen gespeicherten Sicherheitscode als Reaktion auf die Sicherheitsnachricht zu aktualisieren.
  • Gemäß einer Ausführungsform wird das Auslöseereignis auf Grundlage dessen bestimmt, dass eine Leistungsaufnahme von einer Fahrzeugbatterie unter einem Schwellenwert liegt.
  • Gemäß einer Ausführungsform beinhaltet das Auslöseereignis ein Ablaufen eines Zeitgebers.
  • Gemäß einer Ausführungsform befinden sich der erste Computer und der zweite Computer in einem Fahrzeug.
  • Gemäß einer Ausführungsform ist der erste Computer von einem Fahrzeug entfernt und befindet sich der zweite Computer in dem Fahrzeug.
  • Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren: an einem ersten Computer als Reaktion auf ein Auslöseereignis Erzeugen einer Abfragenachricht, die einen Sicherheitscode beinhaltet, durch Eingeben des Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt; nach dem Übertragen der Abfragenachricht an einen zweiten Computer Aktualisieren des Sicherheitscodes auf Grundlage einer Zufallszahlenausgabe von einem Zufallszahlengenerator; Empfangen einer Antwortnachricht von dem zweiten Computer als Reaktion auf die Abfragenachricht; und nach dem Verifizieren des zweiten Computers auf Grundlage der Antwortnachricht Übertragen einer Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, an den zweiten Computer.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Erzeugen der Sicherheitsnachricht durch Eingeben des aktualisierten Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines zweiten Authentifizierungsschlüssels verschlüsselt.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren: vor dem Erfassen eines zweiten Auslöseereignisses Übertragen einer Anforderungsnachricht an den zweiten Computer, die den aktualisierten Sicherheitscode und einen Zähler beinhaltet; und dann Erhöhen des Zählers, der in einem jeweiligen Speicher gespeichert ist.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Authentifizieren einer Weiterleitungsnachricht von dem zweiten Computer auf Grundlage dessen, dass die Weiterleitungsnachricht als Reaktion auf die Anforderungsnachricht den aktualisierten Sicherheitscode und den inkrementierten Zähler beinhaltet.
  • In einem Aspekt der Erfindung wird das Auslöseereignis auf Grundlage dessen bestimmt, dass eine Leistungsaufnahme von einer Fahrzeugbatterie unter einem Schwellenwert liegt.
  • In einem Aspekt der Erfindung ist das Auslöseereignis das Ablaufen eines Zeitgebers.

Claims (15)

  1. Verfahren, umfassend: Erzeugen einer Abfragenachricht, die einen Sicherheitscode beinhaltet, an einem ersten Computer als Reaktion auf ein Auslöseereignis durch Eingeben des Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines Authentifizierungsschlüssels verschlüsselt; nach dem Übertragen der Abfragenachricht an einen zweiten Computer Aktualisieren des Sicherheitscodes auf Grundlage einer Zufallszahlenausgabe von einem Zufall szahlengenerator; Empfangen einer Antwortnachricht von dem zweiten Computer als Reaktion auf die Abfragenachricht; und nach dem Verifizieren des zweiten Computers auf Grundlage der Antwort Übertragen einer Sicherheitsnachricht, die den aktualisierten Sicherheitscode beinhaltet, an den zweiten Computer.
  2. Verfahren nach Anspruch 1, ferner umfassend Erzeugen der Sicherheitsnachricht durch Eingeben des aktualisierten Sicherheitscodes in ein kryptographisches Programm, das den Sicherheitscode auf Grundlage eines zweiten Authentifizierungsschlüssels verschlüsselt.
  3. Verfahren nach Anspruch 2, ferner umfassend, an dem zweiten Computer, Eingeben des verschlüsselten aktualisierten Sicherheitscodes in ein kryptographisches Programm, das den verschlüsselten aktualisierten Sicherheitscode auf Grundlage des zweiten Authentifizierungsschlüssels entschlüsselt.
  4. Verfahren nach Anspruch 1, ferner umfassend, an dem zweiten Computer: Eingeben des verschlüsselten Sicherheitscodes in ein kryptographisches Programm, das den verschlüsselten Sicherheitscode auf Grundlage des Authentifizierungsschlüssels entschlüsselt; und Übertragen der Antwortnachricht, die den Sicherheitscode beinhaltet, als Reaktion auf die Abfragenachricht.
  5. Verfahren nach Anspruch 1, ferner umfassend: nach dem Empfangen der Abrufnachricht an dem zweiten Computer Verifizieren des ersten Computers auf Grundlage dessen, dass der Sicherheitscode mit einem gespeicherten Sicherheitscode übereinstimmt; und dann Übertragen der Antwortnachricht, die den Sicherheitscode beinhaltet.
  6. Verfahren nach Anspruch 5, ferner umfassend, nach dem Empfangen der Antwortnachricht, Verifizieren des zweiten Computers auf Grundlage dessen, dass der empfangene Sicherheitscode mit dem Sicherheitscode übereinstimmt.
  7. Verfahren nach Anspruch 1, ferner umfassend: vor dem Erfassen eines zweiten Auslöseereignisses an dem ersten Computer Übertragen einer Anforderungsnachricht an den zweiten Computer, die den aktualisierten Sicherheitscode und einen Zähler beinhaltet; und dann Erhöhen des Zählers, der in einem jeweiligen Speicher gespeichert ist.
  8. Verfahren nach Anspruch 7, ferner umfassend Authentifizieren einer Weiterleitungsnachricht von dem zweiten Computer auf Grundlage dessen, dass die Weiterleitungsnachricht als Reaktion auf die Anforderungsnachricht den aktualisierten Sicherheitscode und den inkrementierten Zähler beinhaltet.
  9. Verfahren nach Anspruch 7, ferner umfassend: Authentifizieren, an dem zweiten Computer, der Anforderungsnachricht von dem ersten Computer auf Grundlage dessen, dass die Anforderungsnachricht den aktualisierten Sicherheitscode und den Zähler beinhaltet; Erhöhen des Zählers, der in einem jeweiligen Speicher gespeichert ist; Übertragen einer Weiterleitungsnachricht, die den aktualisierten Sicherheitscode und den erhöhten Zähler beinhaltet.
  10. Verfahren nach Anspruch 1, ferner umfassend, an dem zweiten Computer, Aktualisieren eines gespeicherten Sicherheitscodes als Reaktion auf die Sicherheitsnachricht.
  11. Verfahren nach Anspruch 1, wobei das Auslöseereignis auf Grundlage dessen bestimmt wird, dass eine Leistungsaufnahme von einer Fahrzeugbatterie unter einem Schwellenwert liegt.
  12. Verfahren nach Anspruch 1, wobei das Auslöseereignis ein Ablaufen eines Zeitgebers ist.
  13. Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-12 auszuführen.
  14. Computerprogrammprodukt, umfassend Anweisungen zum Ausführen des Verfahrens nach einem der Ansprüche 1-12.
  15. Fahrzeug, umfassend einen Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-12 auszuführen.
DE102022123225.5A 2021-09-20 2022-09-12 Verifizierung einer rechenvorrichtung Pending DE102022123225A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/479,231 2021-09-20
US17/479,231 US20230087521A1 (en) 2021-09-20 2021-09-20 Computing device verification

Publications (1)

Publication Number Publication Date
DE102022123225A1 true DE102022123225A1 (de) 2023-03-23

Family

ID=85383740

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022123225.5A Pending DE102022123225A1 (de) 2021-09-20 2022-09-12 Verifizierung einer rechenvorrichtung

Country Status (3)

Country Link
US (1) US20230087521A1 (de)
CN (1) CN115842630A (de)
DE (1) DE102022123225A1 (de)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100098247A1 (en) * 2008-10-20 2010-04-22 Nokia Corporation Method, Apparatus And Computer Program Product For Generating An Encryption Key And An Authentication Code Key Utilizing A Generic Key Counter
JP5479408B2 (ja) * 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 車載ネットワークシステム
US20170063827A1 (en) * 2015-08-24 2017-03-02 Richard Frederick Ricardo Data obfuscation method and service using unique seeds
US10474823B2 (en) * 2016-02-16 2019-11-12 Atmel Corporation Controlled secure code authentication
US10616197B2 (en) * 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
JP7114413B2 (ja) * 2018-09-06 2022-08-08 株式会社東海理化電機製作所 認証システム及び認証方法
US10749680B1 (en) * 2019-03-25 2020-08-18 Micron Technology, Inc. Secure communication between a vehicle and a remote device
US20220355763A1 (en) * 2019-04-18 2022-11-10 c/o Toyota Motor North America, Inc. Systems and methods for countering security threats in a passive keyless entry system
JP7008661B2 (ja) * 2019-05-31 2022-01-25 本田技研工業株式会社 認証システム
WO2021206933A1 (en) * 2020-04-07 2021-10-14 Cryptography Research, Inc. Authentication using an ephemeral asymmetric keypair
CN111726274B (zh) * 2020-05-25 2021-10-29 武汉理工大学 一种汽车can总线数据通信方法、设备及存储介质
JP7382286B2 (ja) * 2020-06-09 2023-11-16 株式会社東海理化電機製作所 制御装置および制御方法
JP2022059777A (ja) * 2020-10-02 2022-04-14 株式会社東海理化電機製作所 通信システム、通信方法、及びプログラム
KR20240027751A (ko) * 2021-07-01 2024-03-04 하만인터내셔날인더스트리스인코포레이티드 보안 키리스 시스템을 위한 시스템 및 방법
US20230071271A1 (en) * 2021-09-02 2023-03-09 Rivian Ip Holdings, Llc System and method for enhanced ecu failure detection in vehicle fleet

Also Published As

Publication number Publication date
US20230087521A1 (en) 2023-03-23
CN115842630A (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
DE102020124163A1 (de) Verifizierung von fahrzeugdaten
DE102017125826A1 (de) Nachrichtenauthentifizierung über controller area network
EP2689553B1 (de) Kraftwagen-steuergerät mit kryptographischer einrichtung
DE102018103101A1 (de) Sichere sitzungskommunikation zwischen einem mobilgerät und einer basisstation
DE102014114607B4 (de) Programmierung von Fahrzeugmodulen mit Remotevorrichtungen und zugehörige Methoden und Systeme
DE102018101856A1 (de) Sicherheit von Aktualisierungen über eine Luftschnittstelle
DE102016110169A1 (de) Diebstahlverhinderung für autonome Fahrzeuge
DE102018101479A1 (de) Steuerungsschnittstelle für ein autonomes fahrzeug
DE102017102388A1 (de) Regeln des fahrzeugzugangs unter verwendung kryptografischer verfahren
DE102018100157A1 (de) Verfahren und Vorrichtung zur Entschlüsselung, Verschlüsselung und Authentifizierung
DE102018104079A1 (de) Sichere end-to-end-fahrzeug-ecu-freischaltung in einer halb-offline-umgebung
DE102013215303A1 (de) Mobiles elektronisches Gerät
WO2018210567A1 (de) Verfahren, computerlesbares medium, system und fahrzeug umfassend das system zum bereitstellen eines datensatzes eines fahrzeugs an einen dritten
DE102019121164A1 (de) Fahrzeugbasiertes passwort
DE102014113763B4 (de) Angriffsresistentes Diebstahlabwehrsystem
DE102020116438A1 (de) Nutzung von fahrzeugkomponenten
WO2019081395A1 (de) Verfahren und vorrichtung zum aktualisieren von software eines kfz-steuergerätes
EP3422628B1 (de) Verfahren, sicherheitseinrichtung und sicherheitssystem
EP3230131B1 (de) Verfahren zur steuerung des betriebs wenigstens einer funktionskomponente eines kraftfahrzeugs und kraftfahrzeug
DE102018109080A1 (de) Systeme und verfahren zum verwenden mechanischer schwingung für ausserbandkommunikationen an bord eines fahrzeugs
DE102018222864B3 (de) Verfahren zum Deaktivieren eines Kraftfahrzeugs, Deaktivierungssystem für ein Kraftfahrzeug und Kraftfahrzeug
DE102022103553A1 (de) Authentifizierung einer fahrzeugrechenvorrichtung
EP3725055B1 (de) Vorrichtungen, verfahren und computerprogramm zum freischalten von fahrzeugkomponenten, fahrzeug-zu-fahrzeug-kommunikationsmodul
DE102013202322A1 (de) Verfahren zur verschlüsselten Datenübertragung zwischen zwei Komponenten eines Steuergeräts
DE102022123225A1 (de) Verifizierung einer rechenvorrichtung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: PATERIS THEOBALD ELBEL & PARTNER, PATENTANWAEL, DE