DE102022102448A1 - Authentifizierung einer fahrzeugrechenvorrichtung - Google Patents

Authentifizierung einer fahrzeugrechenvorrichtung Download PDF

Info

Publication number
DE102022102448A1
DE102022102448A1 DE102022102448.2A DE102022102448A DE102022102448A1 DE 102022102448 A1 DE102022102448 A1 DE 102022102448A1 DE 102022102448 A DE102022102448 A DE 102022102448A DE 102022102448 A1 DE102022102448 A1 DE 102022102448A1
Authority
DE
Germany
Prior art keywords
message
vehicle
computing device
request
cmac
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
DE102022102448.2A
Other languages
English (en)
Inventor
Xin Ye
Adam Mistick
Daniel Aaron Zajac
Kevin Thomas Hille
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 DE102022102448A1 publication Critical patent/DE102022102448A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/1396Protocols specially adapted for monitoring users' activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • B60W2050/021Means for detecting failure or malfunction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Ein bordeigenes Kommunikationsnetzwerk eines Fahrzeugs wird überwacht, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung beinhaltet. Eine Abfragenachricht wird auf Grundlage der Anforderungsnachricht bestimmt. Die Abfragenachricht beinhaltet einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator. Ein zweiter CMAC wird auf Grundlage der Abfragenachricht und der Anforderung erzeugt. Die Anforderungsnachricht wird auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt, authentifiziert. Das Fahrzeug wird auf Grundlage der authentifizierten Anforderungsnachricht betrieben.

Description

  • GEBIET DER TECHNIK
  • Die Offenbarung betrifft im Allgemeinen Fahrzeugcomputer und insbesondere das Authentifizieren einer Fahrzeugrechenvorrichtung.
  • ALLGEMEINER STAND DER TECHNIK
  • Fahrzeuge können mit Computern, Netzwerken, Sensoren und/oder Steuerungen ausgestattet sein, um Daten bezüglich der Umgebung des Fahrzeugs zu erheben 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 Fahrzeugnetzwerk kommunizieren. Nachrichten, die über das Fahrzeugnetzwerk 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
  • Ein System beinhaltet einen Computer, der einen Prozessor und einen Speicher beinhaltet, wobei der Speicher Anweisungen speichert, die durch den Prozessor ausgeführt werden können zum Überwachen eines bordeigenen Kommunikationsnetzwerks eines Fahrzeugs, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (cipher based message authentication code - CMAC) und eine Anforderung beinhaltet. Die Anweisungen beinhalten ferner Anweisungen zum Identifizieren einer Abfragenachricht auf Grundlage der Anforderungsnachricht. Die Abfragenachricht beinhaltet einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator. Die Anweisungen beinhalten ferner Anweisungen zum Erzeugen eines zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung. Die Anweisungen beinhalten ferner Anweisungen zum Authentifizieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt. Die Anweisungen beinhalten ferner Anweisungen zum Betreiben des Fahrzeugs auf Grundlage der authentifizierten Anforderungsnachricht.
  • Der zweite CMAC kann durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm erzeugt werden, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Identifizieren einer bordeigenen Rechenvorrichtung, die mit der Anforderungsnachricht assoziiert ist, als eine Angreifervorrichtung auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Verhindern einer Kommunikation mit der Angreifervorrichtung.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Erzeugen der Abfragenachricht und Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk auf Grundlage dessen, dass ein Timer abläuft.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Aktualisieren der Abfragenachricht durch Inkrementieren des Zählers nach Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk.
  • Das System kann eine bordeigene Rechenvorrichtung beinhalten, die einen zweiten Prozessor und einen zweiten Speicher beinhaltet, der Anweisungen speichert, die durch den zweiten Prozessor ausgeführt werden können zum Überwachen des bordeigenen Kommunikationsnetzwerks, um die Abfragenachricht zu detektieren. Die Anweisungen können ferner Anweisungen beinhalten zum, nach Detektieren der Abfragenachricht, Erzeugen des ersten CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert. Die Anweisungen können ferner Anweisungen beinhalten zum anschließenden Erzeugen der Anforderungsnachricht und Bereitstellen der Anforderungsnachricht über das bordeigene Kommunikationsnetzwerk.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Speichern einer Vielzahl von Abfragenachrichten, die entsprechende Zähler beinhalten. Die Anweisungen können ferner Anweisungen beinhalten zum Bestimmen der Abfragenachricht auf Grundlage von Bestimmen, dass ein Zähler, der in der Anforderungsnachricht beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht beinhaltet ist.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der Zähler, der in der Anforderungsnachricht beinhaltet ist, nicht mit dem Zähler übereinstimmt, der in einer beliebigen gespeicherten Abfragenachricht beinhaltet ist.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Betätigen einer oder mehrerer Fahrzeugkomponenten, um die in der authentifizierten Anforderungsnachricht beinhaltete Anforderung durchzuführen.
  • Die Anweisungen können ferner Anweisungen beinhalten zum Einleiten einer Kommunikation mit einer bordeigenen Rechenvorrichtung, die mit der authentifizierten Anforderungsnachricht assoziiert ist.
  • Ein Verfahren beinhaltet Überwachen eines bordeigenen Kommunikationsnetzwerks eines Fahrzeugs, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung beinhaltet. Das Verfahren beinhaltet ferner Identifizieren einer Abfragenachricht auf Grundlage der Anforderungsnachricht. Die Abfragenachricht beinhaltet einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator. Das Verfahren beinhaltet ferner Erzeugen eines zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung. Das Verfahren beinhaltet ferner Authentifizieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt. Das Verfahren beinhaltet ferner Betreiben des Fahrzeugs auf Grundlage der authentifizierten Anforderungsnachricht.
  • Der zweite CMAC kann durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm erzeugt werden, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert.
  • Das Verfahren kann ferner Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt, beinhalten. Das Verfahren kann ferner Erzeugen der Abfragenachricht und Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk auf Grundlage dessen, dass ein Timer abläuft, beinhalten.
  • Das Verfahren kann ferner Überwachen des bordeigenen Kommunikationsnetzwerks, um die Abfragenachricht zu detektieren, beinhalten. Das Verfahren kann nach Detektieren der Abfragenachricht ferner Erzeugen des ersten CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert, beinhalten. Das Verfahren kann ferner dann Erzeugen der Anforderungsnachricht und Bereitstellen der Anforderungsnachricht über das bordeigene Kommunikationsnetzwerk beinhalten.
  • Das Verfahren kann ferner Speichern einer Vielzahl von Abfragenachrichten, die entsprechende Zähler beinhalten, beinhalten. Das Verfahren kann ferner Bestimmen der Abfragenachricht auf Grundlage von Bestimmen, dass ein Zähler, der in der Anforderungsnachricht beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht beinhaltet ist, beinhalten.
  • Das Verfahren kann ferner Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der Zähler, der in der Anforderungsnachricht beinhaltet ist, nicht mit dem Zähler übereinstimmt, der in einer beliebigen gespeicherten Abfragenachricht beinhaltet ist, beinhalten.
  • Das Verfahren kann ferner Betätigen einer oder mehrerer Fahrzeugkomponenten, um die in der authentifizierten Anforderungsnachricht beinhaltete Anforderung durchzuführen, beinhalten.
  • Ferner ist in dieser Schrift eine Rechenvorrichtung offenbart, die dazu programmiert ist, beliebige der vorstehenden Verfahrensschritte auszuführen. Darüber hinaus ist in dieser Schrift ein Computerprogrammprodukt offenbart, das ein computerlesbares Medium beinhaltet, auf dem durch einen Computerprozessor ausführbare Anweisungen gespeichert sind, um beliebige der vorstehenden Verfahrensschritte auszuführen.
  • Figurenliste
    • 1 ist ein Blockdiagramm, das ein beispielhaftes Fahrzeugsteuersystem für ein Fahrzeug veranschaulicht.
    • 2A ist ein Blockdiagramm, das eine beispielhafte Nachricht veranschaulicht.
    • 2B ist ein Blockdiagramm, das ein beispielhaftes Permutationsprogramm veranschaulicht.
    • 2C ist ein Blockdiagramm, das eine beispielhafte Abfragenachricht veranschaulicht.
    • 3 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Erzeugen eines ersten chiffrebasierten Nachrichtenauthentifizierungscodes (CMAC) in einer ersten Fahrzeugrechenvorrichtung.
    • 4 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Authentifizieren der ersten Fahrzeugrechenvorrichtung.
  • DETAILLIERTE BESCHREIBUNG
  • Eine erste Fahrzeugrechenvorrichtung kann eine Anforderungsnachricht an eine zweite Fahrzeugrechenvorrichtung bereitstellen. Die Anforderungsnachricht kann eine Anforderung, eine Abfragenachricht und einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) beinhalten. Nach dem Empfangen der Anforderungsnachricht kann die zweite Fahrzeugrechenvorrichtung die Anforderung und die Abfragenachricht codieren, um einen zweiten CMAC zu erzeugen. Wenn der zweite CMAC mit dem ersten CMAC übereinstimmt, dann authentifiziert die zweite Fahrzeugrechenvorrichtung die Anforderungsnachricht, die eine Absicherung gegen eine Möglichkeit bereitstellt, dass die zweite Rechenvorrichtung auf falsche Daten reagiert.
  • Wie in dieser Schrift offenbart, ist es möglich, das Risiko dafür zu reduzieren, dass Fahrzeugrechenvorrichtungen falsche, z. B. durch einen Angreifer gefälschte, Daten senden, empfangen und/oder darauf reagieren, bei denen es sich um Daten handelt, die durch eine nicht autorisierte Quelle (d. h. eine andere Quelle als einer der Fahrzeugsensoren oder andere autorisierte Rechenvorrichtungen in einem Fahrzeugkommunikationsnetzwerk) in das Fahrzeugkommunikationsnetzwerk eingeschleust werden. Zum Beispiel sind während des Fahrzeugbetriebs durch Sensoren erfasste Daten in Nachrichten beinhaltet, die von Fahrzeugrechenvorrichtungen empfangen werden. Auf Grundlage der Daten können die Fahrzeugrechenvorrichtungen Steuersignale an Fahrzeugkomponenten erzeugen, die Fahrzeugvorgänge ausführen. Schwierigkeiten können jedoch auftreten, wenn die den Fahrzeugrechenvorrichtungen bereitgestellten Daten nicht authentisch sind. Ein Beispiel für nicht authentische Daten kann Daten beinhalten, die den Fahrzeugrechenvorrichtungen über einen Einschleusungsangriff präsentiert werden. Ein Einschleusungsangriff findet statt, wenn falsche Daten (z. B. Daten, die sich von den durch die Fahrzeugsensoren detektierten Daten unterscheiden) böswillig in das Fahrzeugkommunikationsnetzwerk hochgeladen werden. Vorteilhafterweise kann eine erste Fahrzeugrechenvorrichtung nach dem Empfangen einer Abfragenachricht von einer zweiten Fahrzeugrechenvorrichtung einen ersten CMAC auf Grundlage der Abfragenachricht und einer Anforderung erzeugen. Die erste Fahrzeugrechenvorrichtung stellt der zweiten Fahrzeugrechenvorrichtung dann eine Anforderungsnachricht bereit, welche die Anforderung, den ersten CMAC und die Abfragenachricht beinhaltet. Die zweite Fahrzeugrechenvorrichtung kann einen zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung erzeugen. Die zweite Fahrzeugrechenvorrichtung kann die Anforderungsnachricht auf Grundlage dessen, dass der erste CMAC mit dem zweiten CMAC übereinstimmt, authentifizieren, was die Wahrscheinlichkeit dafür reduzieren kann, dass die zweite Fahrzeugrechenvorrichtung das Fahrzeug auf Grundlage von Daten von einer nicht autorisierten Quelle betreibt.
  • Unter Bezugnahme auf die 1-2 beinhaltet ein beispielhaftes Fahrzeugsteuersystem 100 ein Fahrzeug 105. Eine Vielzahl von Fahrzeugrechenvorrichtungen 110 in dem Fahrzeug 105 empfängt Daten von Sensoren 115. Eine Fahrzeugrechenvorrichtung 110 ist dazu programmiert, ein bordeigenes Kommunikationsnetzwerk des Fahrzeugs 105 zu überwachen, um eine Anforderungsnachricht 200 zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung 240 beinhaltet. Die Fahrzeugrechenvorrichtung 110 ist ferner dazu programmiert, eine Abfragenachricht 220 auf Grundlage der Anforderungsnachricht 200 zu bestimmen. Die Abfragenachricht 220 beinhaltet einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator. Die Fahrzeugrechenvorrichtung 110 ist ferner dazu programmiert, einen zweiten CMAC auf Grundlage der Abfragenachricht 220 und der Anforderung 240 zu erzeugen. Die Fahrzeugrechenvorrichtung 110 ist ferner dazu programmiert, die Anforderungsnachricht 200 auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt, zu authentifizieren. Die Fahrzeugrechenvorrichtung 110 ist ferner dazu programmiert, das Fahrzeug 105 auf Grundlage der authentifizierten Anforderungsnachricht 200 zu betreiben.
  • Unter nunmehriger Bezugnahme auf 1 beinhaltet das Fahrzeug 105 typischerweise die Fahrzeugrechenvorrichtungen 110, Sensoren 115, Aktoren 120 zum Betätigen verschiedener Fahrzeugkomponenten 125 und ein Fahrzeugkommunikationsmodul 130. Das Kommunikationsmodul 130 ermöglicht es den Fahrzeugrechenvorrichtungen 110, mit einem Remote-Server 140 und/oder anderen Fahrzeugen zu kommunizieren, z. B. über ein Nachrichten- oder Rundrufprotokoll, wie etwa dedizierte Nahbereichskommunikation (Dedicated Short Range Communications - DSRC), ein Mobilfunkt- und/oder ein anderes Protokoll, das die Kommunikation von Fahrzeug zu Fahrzeug, von Fahrzeug zu Infrastruktur, von Fahrzeug zu Cloud oder dergleichen unterstützen kann, und/oder über ein Paketnetzwerk 135.
  • Jede Fahrzeugrechenvorrichtung 110 beinhaltet typischerweise einen Prozessor und einen Speicher, wie sie bekannt sind. Der Speicher beinhaltet eine oder mehrere Formen computerlesbarer Medien und speichert durch die Fahrzeugrechenvorrichtung 110 ausführbare Anweisungen zum Durchführen verschiedener Vorgänge, welche die in dieser Schrift offenbarten beinhalten. Ferner kann jede Fahrzeugrechenvorrichtung 110 ein Universalcomputer mit einem Prozessor und einem Speicher sein, wie vorstehend beschrieben, und/oder kann eine dedizierte elektronische Schaltung beinhalten, beinhaltend eine ASIC, die für einen bestimmten Vorgang hergestellt ist, z. B. eine ASIC zum Verarbeiten von Sensordaten und/oder Kommunizieren der Sensordaten. In einem weiteren Beispiel kann jede Rechenvorrichtung 110 eine FPGA (Field-Programmable Gate Array - feldprogrammierbare Gate-Anordnung) beinhalten, bei der es sich um eine integrierte Schaltung handelt, die so hergestellt ist, dass sie von einem Benutzer konfiguriert werden kann. 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 von VHDL-Programmierung hergestellt, die vor der Herstellung bereitgestellt wird, wohingegen logische Komponenten innerhalb einer FPGA auf Grundlage von VHDL-Programmierung konfiguriert sein können, z. B. in 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 jeder Fahrzeugrechenvorrichtung 110 beinhaltet sein.
  • Die Fahrzeugrechenvorrichtung 110 kann das Fahrzeug 105 in einem autonomen Modus, einem halbautonomen Modus oder einem nicht autonomen (oder manuellen) Modus betreiben und/oder überwachen, d. h., sie kann den Betrieb des Fahrzeugs 105 steuern und/oder überwachen, was das Steuern und/oder Überwachen der Komponenten 125 beinhaltet. Im Rahmen dieser Offenbarung ist ein autonomer Modus als einer definiert, bei dem jedes von Antrieb, Bremsung und Lenkung des Fahrzeugs 105 durch die Fahrzeugrechenvorrichtungen 110 gesteuert wird; in einem teilautonomen Modus steuern die Fahrzeugrechenvorrichtungen 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.
  • Die Fahrzeugrechenvorrichtungen 110 können eine Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Steuerung der Beschleunigung des Fahrzeugs 105 durch Steuern eines oder mehrerer von einer Brennkraftmaschine, einem Elektromotor, einem Hybridmotor usw.), Lenkung, Getriebe, Steuerung der Klimaanlage, Innen- und/oder Außenbeleuchtung, Hupe, Türen usw. des Fahrzeugs 105 zu betreiben sowie um zu bestimmen, ob und wann die Fahrzeugrechenvorrichtungen 110 derartige Vorgänge anstelle eines menschlichen Fahrzeugführers steuern sollen.
  • Die Fahrzeugrechenvorrichtungen 110 können mehr als einen Prozessor beinhalten, z. B. kann eine Rechenvorrichtung 110 eine elektronische Steuereinheit (ECU) oder dergleichen sein, die in dem Fahrzeug 105 beinhaltet ist, um verschiedene Fahrzeugkomponenten 125 zu überwachen und/oder zu steuern, z. B. eine Getriebesteuerung, eine Bremssteuerung, eine Lenksteuerung usw., oder kommunikativ mit diesen gekoppelt sein, z. B. über ein Fahrzeugkommunikationsnetzwerk, wie etwa einen Kommunikationsbus, wie nachstehend näher beschrieben. Die Fahrzeugrechenvorrichtungen 110 sind im Allgemeinen zur Kommunikation in einem Fahrzeugkommunikationsnetzwerk, das einen Bus in dem Fahrzeug 105 beinhalten kann, wie etwa einem Controller Area Network (CAN) oder dergleichen, und/oder anderen drahtgebundenen und/oder drahtlosen Mechanismen eingerichtet.
  • Über das Netzwerk des Fahrzeugs 105 kann jede Fahrzeugrechenvorrichtung 110 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, anderen Fahrzeugrechenvorrichtungen 110 usw., empfangen. Ferner können, wie nachstehend erwähnt, verschiedene Steuerungen und/oder Sensoren 115 den Fahrzeugrechenvorrichtungen 110 über das Fahrzeugkommunikationsnetzwerk Daten bereitstellen.
  • Die Sensoren 115 des Fahrzeugs 105 können eine Vielfalt an Vorrichtungen beinhalten, die bekanntermaßen den Fahrzeugrechenvorrichtungen 110 Daten bereitstellen. Beispielsweise können die Sensoren 115 (einen) Light-Detection-and-Ranging-Sensor(en) (LIDAR-Sensor(en)) 115 usw. beinhalten, der/die auf einer Oberseite des Fahrzeugs 105, hinter einer Windschutzscheibe des Fahrzeugs 105, um das Fahrzeug 105 herum usw. angeordnet ist/sind und der/die relative Standorte, Größen und Formen von Objekten bereitstellen, die das Fahrzeug 105 umgeben. Als ein anderes Beispiel können ein oder mehrere Radarsensoren 115, die an Stoßfängern des Fahrzeugs 105 befestigt sind, Daten bereitstellen, um Standorte der Objekte, von zweiten Fahrzeugen usw. bezogen auf den Standort des Fahrzeugs 105 bereitzustellen. Die Sensoren 115 können ferner alternativ oder zusätzlich zum Beispiel (einen) Kamerasensor(en) 115 beinhalten, z. B. eine Frontkamera, Seitenkamera usw., der/die Bilder von einem das Fahrzeug 105 umgebenden Bereich bereitstellt/bereitstellen. Im Zusammenhang mit dieser Offenbarung ist ein Objekt ein physischer, d. h. materieller, Gegenstand, der eine Masse aufweist und der durch physikalische Phänomene (z. B. Licht oder andere elektromagnetische Wellen oder Schall usw.), die durch Sensoren 115 detektierbar sind, dargestellt werden kann. Somit fallen das Fahrzeug 105 sowie andere Fahrzeuge und andere Gegenstände, welche die nachstehend erörterten beinhalten, unter die Definition von „Objekt“ in dieser Schrift.
  • Jede Fahrzeugrechenvorrichtung 110 ist dazu programmiert, Daten von einem oder mehreren Sensoren 115 im Wesentlichen kontinuierlich, periodisch und/oder auf Anweisung durch einen Remote-Servercomputer 140 usw. zu empfangen. Die Daten können zum Beispiel einen Standort des Fahrzeugs 105 beinhalten. Standortdaten geben einen Punkt oder Punkte auf einer Bodenfläche an und können in einer bekannten Form vorliegen, z. B. Geokoordinaten, wie etwa Längengrad- und Breitengradkoordinaten, die über ein Navigationssystem erlangt wurden, wie bekannt, welches das globale Positionsbestimmungssystem (GPS) verwendet. Zusätzlich oder alternativ können die Daten einen Standort eines Objekts, z. B. eines Fahrzeugs, eines Schildes, eines Baums usw., in Bezug auf das Fahrzeug 105 beinhalten. Als ein Beispiel können die Daten Bilddaten der Umgebung um das Fahrzeugs 105 sein. In einem solchen Beispiel können die Bilddaten ein oder mehrere Objekte und/oder Markierungen, z. B. Fahrbahnmarkierungen, auf oder entlang einer Straße beinhalten. Mit Bilddaten sind in dieser Schrift digitale Bilddaten gemeint, die z. B. Pixel mit Intensitäts- und Farbwerten umfassen und durch Kamerasensoren 115 aufgenommen werden können. Die Sensoren 115 können an einer beliebigen geeigneten Stelle in oder an dem Fahrzeug 105 montiert sein, z. B. an einem Stoßfänger des Fahrzeugs 105, an einem Dach des Fahrzeugs 105 usw., um Bilder der Umgebung um das Fahrzeug 105 zu sammeln.
  • Die Aktoren 120 des Fahrzeugs 105 sind über Schaltungen, Chips oder andere elektronische und/oder mechanische Komponenten umgesetzt, die verschiedene Fahrzeugteilsysteme gemäß geeigneten Steuersignalen betätigen können, wie es bekannt ist. Die Aktoren 120 können verwendet werden, um Komponenten 125, beinhaltend Bremsung, Beschleunigung und Lenkung eines Fahrzeugs 105, zu steuern.
  • Im Zusammenhang mit der vorliegenden Offenbarung handelt es sich bei einer Fahrzeugkomponente 125 um eine oder mehrere Hardwarekomponenten, die dazu ausgelegt sind, eine(n) mechanische(n) oder elektromechanische(n) Funktion oder 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 Beispiele 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 eines Lenkrads, einer Zahnstange usw. beinhalten kann), eine Aufhängungskomponente (die z. B. eines oder mehrere eines Stoßdämpfers beinhalten kann, z. B. einen Dämpfer oder eine Strebe, eine Buchse, eine Feder, einen Steuerarm, ein Kugelgelenk, ein Gestänge usw.), eine Bremskomponente, eine Einparkhilfekomponente, eine Komponente für adaptive Geschwindigkeitsregelung, eine Komponente zum adaptiven Lenken, ein oder mehrere passive Rückhaltesysteme (z. B. Airbags), einen beweglichen Sitz usw.
  • Außerdem können die Fahrzeugrechenvorrichtungen 110 dazu konfiguriert sein, über ein Fahrzeug-zu-Fahrzeug-Kommunikationsmodul 130 oder eine Schnittstelle mit Vorrichtungen außerhalb des Fahrzeugs 105, z. B. über eine drahtlose Fahrzeug-zu-Fahrzeug(Vehicle-to-Vehicle - V2V)- oder Fahrzeug-zu-Infrastruktur(Vehicle-to-Infrastructure - V2X)-Kommunikation (Mobilfunk und/oder DSRC usw.), mit einem anderen Fahrzeug und/oder mit einem Remote-Servercomputer 140 (typischerweise über direkte Hochfrequenzkommunikation) zu kommunizieren. Das Kommunikationsmodul 130 könnte einen oder mehrere Mechanismen, wie etwa einen Transceiver, beinhalten, durch welche die Computer von Fahrzeugen kommunizieren können, beinhaltend eine beliebige gewünschte Kombination aus drahtlosen Kommunikationsmechanismen (z. B. Mobilfunk, drahtlos, Satellit, Mikrowellen und Hochfrequenz) und einer beliebigen gewünschten Netzwerktopologie (oder -topologien, wenn eine Vielzahl von Kommunikationsmechanismen genutzt wird). Zu einer beispielhaften über das Kommunikationsmodul 130 bereitgestellten Kommunikation gehören Mobilfunk, Bluetooth, IEEE 802.11, dedizierte Nahbereichskommunikation (DSRC), Mobilfunk-V2X (cellular V2X - CV2X) und/oder Weitverkehrsnetzwerke (Wide Area Networks - WAN), beinhaltend das Internet, 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 (vehicle-to-infrastructure V2I) erfolgen können und die gemäß einem beliebigen geeigneten Nahbereichskommunikationsmechanismus, z. B. DSRC, Mobilfunk oder dergleichen, durch das Kommunikationsmodul 130 bereitgestellt werden können.
  • Das Netzwerk 135 stellt einen oder mehrere Mechanismen dar, durch die eine Fahrzeugrechenvorrichtung 110 mit Remote-Rechenvorrichtungen, z. B. dem Remote-Servercomputer 140, einer Remote- Fahrzeugrechenvorrichtung usw., kommunizieren kann. Demnach kann es sich bei dem Netzwerk 135 um einen oder mehrere von verschiedenen drahtgebundenen oder drahtlosen Kommunikationsmechanismen handeln, beinhaltend eine beliebige gewünschte Kombination aus drahtgebundenen (z. B. Kabel und Glasfaser) und/oder drahtlosen (z. B. Mobilfunk, drahtlos, Satellit, Mikrowellen und Funkfrequenz) Kommunikationsmechanismen und einer beliebigen gewünschten Netzwerktopologie (oder - topologien, wenn mehrere Kommunikationsmechanismen genutzt werden). Beispielhafte Kommunikationsnetzwerke beinhalten drahtlose Kommunikationsnetzwerke (z. B. unter Verwendung von Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, Fahrzeug-zu-Fahrzeug (V2V), wie etwa dedizierte Nahbereichskommunikation (DSRC) usw.), lokale Netzwerke (local area network - LAN) und/oder Weitverkehrsnetzwerke (WAN), die das Internet beinhalten, die Datenkommunikationsdienste bereitstellen.
  • Der Remote-Servercomputer 140 kann eine herkömmliche Rechenvorrichtung sein, d. h. einen oder mehrere Prozessoren und einen oder mehrere Speicher beinhalten, die dazu programmiert sind, Vorgänge bereitzustellen, wie etwa in dieser Schrift offenbart. Ferner kann auf den Remote-Servercomputer 140 über das Netzwerk 135, z. B. das Internet, ein Mobilfunknetzwerk und/oder ein anderes Weitverkehrsnetzwerk, zugegriffen werden.
  • Die Vielzahl von Fahrzeugrechenvorrichtungen 110 in dem Steuersystem 100 kann Anforderungsnachrichten 200 authentifizieren. Das Fahrzeug 105 kann andere ECUs oder Rechenvorrichtungen, beinhaltend im Fahrzeugnetzwerk, beinhalten, die Anforderungsnachrichten 200 nicht authentifizieren. Die Fahrzeugrechenvorrichtungen 110 können dazu programmiert sein, das Fahrzeugkommunikationsnetzwerk zu überwachen, um eine Abfragenachricht 220 von einer anderen Fahrzeugrechenvorrichtung 110 zu detektieren. Zum Beispiel kann eine erste Fahrzeugrechenvorrichtung 110 über das Fahrzeugkommunikationsnetzwerk eine oder mehrere Abfragenachrichten 220 von einer zweiten Fahrzeugrechenvorrichtung 110 empfangen. Die Abfragenachrichten 220 beinhalten einen Zähler und eine Zufallszahl, wie weiter unten erörtert.
  • Die erste Fahrzeugrechenvorrichtung 110 kann eine Anforderung 240 erzeugen, d. h. eine Anfrage für Daten oder einen Befehl, z. B. auf Grundlage von Daten des Sensors 115. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 Daten des Sensors 115 von einem oder mehreren Sensoren 115 erhalten, die eine oder mehrere Fahrzeugkomponenten 125 überwachen. Wie bekannt ist, kann die erste Fahrzeugrechenvorrichtung 110 dazu programmiert sein, Daten, wie etwa Daten, die Objekte beschreiben, Daten, die Betriebsbedingungen des Fahrzeugs 105, wie etwa Geschwindigkeit, Kurs usw., beschreiben, Daten über eine geplante Route des Fahrzeugs 105 usw., dann zu codieren und zu serialisieren, d. h. in eine Bitfolge umzuwandeln, sodass die Daten als die Anforderung 240 in der Anforderungsnachricht 200 beinhaltet sein können. Vor dem Erzeugen der Anforderung 240 kann die erste Fahrzeugrechenvorrichtung 110 beliebige detektierte Abfragenachrichten 220 von der zweiten Fahrzeugrechenvorrichtung 110 ignorieren. Nach dem Erzeugen der Anforderung 240 kann die erste Fahrzeugrechenvorrichtung 110 eine Abfragenachricht 220 auswählen, die über das Fahrzeugkommunikationsnetzwerk detektiert wurde.
  • Die erste Fahrzeugrechenvorrichtung 110 ist dazu programmiert, eine Anforderungsnachricht 200 auf Grundlage der ausgewählten Abfragenachricht 220 und der Anforderung 240 zu erzeugen. Eine Anforderungsnachricht 200 beinhaltet typischerweise einen Header 205 und Nutzdaten 210 (siehe 2A). Der Header 205 kann eine Quellenkennung, z. B. eine Bitfolge, welche die Fahrzeugrechenvorrichtung 110 identifiziert, welche die Anforderungsnachricht 200 erzeugt hat, einen Nachrichtentyp, eine Nachrichtengröße usw. beinhalten. Die Nutzdaten 210 können verschiedene Daten beinhalten, d. h. Nachrichteninhalt. Die Nutzdaten können Teilnutzdaten oder Nutzdatensegmente 215-1, 215-2, 215-3 (gemeinsam als Nutzdatensegmente 215 bezeichnet) beinhalten. Die entsprechenden Nutzdatensegmente 215 in 2A weisen der Veranschaulichung nach unterschiedliche Längen auf, um widerzuspiegeln, dass unterschiedliche Nutzdatensegmente 215 verschiedene Datenmengen beinhalten können und daher unterschiedliche Größen aufweisen können.
  • Die Nutzdaten 210 der Anforderungsnachricht 200 beinhalten die Anforderung 240. Nach dem Erzeugen der Anforderung 240 kann die erste Fahrzeugrechenvorrichtung 110 die Anforderung 240 in die Nutzdaten 210, z. B. ein spezifiziertes Nutzdatensegment 215, der Anforderungsnachricht 200 aufnehmen. Außerdem beinhalten die Nutzdaten 210 der Anforderungsnachricht 200 die ausgewählte Abfragenachricht 220. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 die ausgewählte Abfragenachricht 220 in die Nutzdaten 210, z. B. ein spezifiziertes Nutzdatensegment 215, der Anforderungsnachricht 200 aufnehmen. Alternativ kann die erste Fahrzeugrechenvorrichtung 110 einen Abschnitt der ausgewählten Abfragenachricht 220, z. B. den Zähler oder die Zufallszahl, in die Nutzdaten 210, z. B. ein spezifiziertes Nutzdatensegment 215, der Anforderungsnachricht 200 aufnehmen. Als ein Beispiel kann die erste Fahrzeugrechenvorrichtung 110 den Zähler in der ausgewählten Abfragenachricht 220 identifizieren, z. B. auf Grundlage eines spezifizierten Nutzdatensegments 235 (wie nachstehend erörtert) der ausgewählten Abfragenachricht 220. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 auf das spezifizierte Nutzdatensegment 235 der ausgewählten Abfragenachricht 220 zugreifen und den Zähler abrufen. Die erste Fahrzeugrechenvorrichtung 110 kann den Zähler dann in die Nutzdaten 210, z. B. ein spezifiziertes Nutzdatensegment 215, der Anforderungsnachricht 200 aufnehmen. Außerdem beinhalten die Nutzdaten 210 der Anforderungsnachricht 200 einen ersten CMAC. Die erste Fahrzeugrechenvorrichtung 110 kann den ersten CMAC auf Grundlage der Anforderung 240 und der ausgewählten Abfragenachricht 220 erzeugen. Ein CMAC ist für jede Anforderungsnachricht 200 einzigartig, da jede Abfragenachricht 220 einzigartig ist. Das heißt, es werden unterschiedliche CMACs für unterschiedliche Abfragenachrichten 220 erzeugt. Insbesondere wird jede Abfragenachricht 220 durch Inkrementieren des Zählers und/oder durch Erzeugen einer Zufallszahl erzeugt. Dementsprechend unterscheidet sich jede Abfragenachricht 220 von vorherigen Abfragenachrichten 220, d. h., entweder wird der Zähler für jede nachfolgende Abfragenachricht 220 inkrementiert und/oder wird eine neue Zufallszahl für jede nachfolgende Abfragenachricht 220 erzeugt. Daher sind die aus den Abfragenachrichten 220 erzeugten CMACs unterschiedlich.
  • Nach dem Erzeugen des ersten CMAC kann die erste Fahrzeugrechenvorrichtung 110 den ersten CMAC in die Nutzdaten 210, z. B. ein spezifiziertes Nutzdatensegment 215, der Anforderungsnachricht 200 aufnehmen. In einem Beispiel kann die erste Fahrzeugrechenvorrichtung 110 den ersten CMAC auf Grundlage einer Länge des spezifizierten Nutzdatensegments 215 kürzen. Das heißt, die erste Fahrzeugrechenvorrichtung 110 kann einen Abschnitt des ersten CMAC entfernen, sodass eine Länge des gekürzten ersten CMAC gleich der Länge des spezifizierten Nutzdatensegments 215 ist. Das spezifizierte Nutzdatensegment 215, das die entsprechende Länge beinhaltet, kann z. B. in entsprechenden Speichern der Fahrzeugrechenvorrichtungen 110 gespeichert werden.
  • Um den ersten CMAC zu erzeugen, kann die erste Fahrzeugrechenvorrichtung 110 eine erste Eingabenachricht 245 und einen Authentifizierungsschlüssel in ein Permutationsprogramm 250 eingeben, das die erste Eingabenachricht 245 auf Grundlage des Authentifizierungsschlüssels codiert (siehe 2B). Die erste Fahrzeugrechenvorrichtung 110 kann die erste Eingabenachricht 245 durch Kombinieren, z. B. Verketten, der ausgewählten Abfragenachricht 220 (die, wie vorstehend erörtert, die gesamte Abfragenachricht 220 oder ein Abschnitt davon sein kann) und der Anforderung 240 erzeugen. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 den Zähler in der ausgewählten Abfragenachricht 220 und die Anforderung 240 kombinieren, um die erste Eingabenachricht 245 zu erzeugen.
  • Das Permutationsprogramm 250 (mitunter als Permutationsgenerator bezeichnet) kann ein herkömmliches kryptographisches Programm sein, z. B. ein Advanced-Encryption-Standard(AES)-Algorithmus. Das Permutationsprogramm 250 kann die Daten in der ersten Eingabenachricht 245 in einer Reihenfolge neu anordnen, die durch den Authentifizierungsschlüssel spezifiziert ist. Das heißt, das Permutationsprogramm 250 führt für jeden Abschnitt der ersten Eingabenachricht 245 eines oder mehrere von einer Substitution, einer Änderung der Reihenfolge von Segmenten in der ersten Eingabenachricht 245 oder einem mathematischen Vorgang gemäß Blockchiffren durch, die aus dem Authentifizierungsschlüssel erzeugt werden. Wenn das Permutationsprogramm 250 beispielsweise ein AES-Algorithmus ist, kann die erste Fahrzeugrechenvorrichtung 110 einen 16-Bit-Abschnitt der ersten Eingabenachricht 245 identifizieren, eine „Exklusiv-Oder“-Funktion (d. h. eine XOR-Funktion) zwischen dem 16-Bit-Abschnitt und einem Abschnitt des Authentifizierungsschlüssels anwenden, um eine Zeichenfolge für die erste Runde zu generieren, und die Zeichenfolge für die erste Runde in einem 4x4-Raster anordnen. Dann kann die erste Fahrzeugrechenvorrichtung 110 eines von (1) Verschieben entsprechender Positionen von Bits innerhalb der Zeilen des 4x4-Rasters, (2) Substituieren eines der Bits im 4x4-Raster durch ein bekanntes Substitutionsbit, (3) Verschieben entsprechender 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 250 bestimmt. Die erste Fahrzeugrechenvorrichtung 110 kann das Permutationsprogramm 250 für die erste Eingabenachricht 245 durchführen, um den ersten CMAC zu erzeugen.
  • Die erste Fahrzeugrechenvorrichtung 110 kann den Authentifizierungsschlüssel z. B. aus dem Speicher der ersten Fahrzeugrechenvorrichtung 110 abrufen. Der Authentifizierungsschlüssel ist ein vorbestimmter Satz alphanumerischer Zeichen. Zum Beispiel kann der Authentifizierungsschlüssel ein kryptographischer Schlüssel sein, der in einem herkömmlichen kryptographischen Programm verwendet wird, z. B. Diffie-Hellman-Austausch, RSA-Verschlüsselung, AES usw. Der Authentifizierungsschlüssel kann z. B. durch einen Hersteller des Fahrzeugs 105 und/oder einer Rechenvorrichtung 110 spezifiziert sein. Jede Fahrzeugrechenvorrichtung 110 kann den Authentifizierungsschlüssel von dem Remote-Servercomputer 140 z. B. über das Netzwerk 135 empfangen und kann den Authentifizierungsschlüssel z. B. in einem entsprechenden Speicher speichern.
  • Nach dem Erzeugen der Anforderungsnachricht 200 kann die erste Fahrzeugrechenvorrichtung 110 der zweiten Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 bereitstellen. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 an die zweite Fahrzeugrechenvorrichtung 110 z. B. über das Fahrzeugkommunikationsnetzwerk übertragen.
  • Wie vorstehend dargelegt, ist die zweite Fahrzeugrechenvorrichtung 110 dazu programmiert, der ersten Fahrzeugrechenvorrichtung 110 eine Vielzahl von Abfragenachrichten 220 bereitzustellen. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 die Abfragenachrichten 220 an die erste Fahrzeugrechenvorrichtung 110 z. B. über das Fahrzeugkommunikationsnetzwerk übertragen. Die zweite Fahrzeugrechenvorrichtung 110 ist dazu programmiert, eine Abfragenachricht 220 auf Grundlage dessen bereitzustellen, dass ein Timer abläuft. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 nach dem Bereitstellen einer ersten Abfragenachricht 220 einen Timer einleiten. Wenn der Timer abläuft, kann die zweite Fahrzeugrechenvorrichtung 110 eine aktualisierte Abfragenachricht 220 bereitstellen, die z. B. einen inkrementierten Zähler beinhaltet, und den Timer zurücksetzen. Eine Dauer des Timers ist eine vorbestimmte Zeit, z. B. 500 Millisekunden, 1 Sekunde, 5 Sekunden usw. Die Dauer des Timers kann z. B. in dem Speicher der zweiten Fahrzeugrechenvorrichtung 110 gespeichert sein. Als ein anderes Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 nach dem Erzeugen einer neuen Zufallszahl (wie nachstehend erörtert) eine aktualisierte Abfragenachricht 220 bereitstellen.
  • Ähnlich wie die Anforderungsnachricht 200 beinhaltet die Abfragenachricht 220 einen Header 225 und Nutzdaten 230 (siehe 2C). Der Header 225 kann eine Kennung, z. B. eine Bitfolge, welche die zweite Fahrzeugrechenvorrichtung 110 identifiziert, einen Nachrichtentyp, eine Nachrichtengröße usw. beinhalten. Die Nutzdaten 230 können verschiedene Daten beinhalten, d. h. Nachrichteninhalt. Die Nutzdaten können Teilnutzdaten oder Nutzdatensegmente 235-1, 235-2, 235-3 (gemeinsam als Nutzdatensegmente 235 bezeichnet) beinhalten. Die entsprechenden Nutzdatensegmente 235 in 2C weisen der Veranschaulichung nach unterschiedliche Längen auf, um widerzuspiegeln, dass unterschiedliche Nutzdatensegmente 235 verschiedene Datenmengen beinhalten können und daher unterschiedliche Größen aufweisen können. Die Nutzdaten 235 der Abfragenachricht 220 beinhalten den Zähler und die Zufallszahl, z. B. in spezifizierten Nutzdatensegmenten 235. Die zweite Fahrzeugrechenvorrichtung 110 kann den Zähler z.B. in einem Speicher der zweiten Fahrzeugrechenvorrichtung 110 speichern. Ein Zähler ist eine einzigartige Kennung für die Abfragenachricht 220. Der Zähler kann zum Beispiel eine Anzahl von Abfragenachrichten 220 angeben, die über das Fahrzeugkommunikationsnetzwerk übertragen wurden. Nach dem Bereitstellen einer Abfragenachricht 220 in dem Fahrzeugkommunikationsnetzwerk kann die zweite Fahrzeugrechenvorrichtung 110 den in dem entsprechenden Speicher gespeicherten Zähler inkrementieren. Nach dem Inkrementieren des Zählers kann die zweite Fahrzeugrechenvorrichtung 110 den Zähler mit dem inkrementierten Zähler überschreiben, z. B. in dem Speicher.
  • Die Zufallszahl kann unter Verwendung eines Zufallszahlengenerators erzeugt werden. Ein „Zufallszahlengenerator“ ist ein Algorithmus, der eine Sequenz von Zahlen erzeugt, wenn er mit einem Anfangswert voreingestellt 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 in der Computertechnik als ein „Pseudozufallszahlengenerator“ verstanden wird, d. h. ein Zahlengenerator, der eine Sequenz von Zahlen auf Grundlage einer Seed-Anfangszahl erzeugt. Anders ausgedrückt kann die zweite Fahrzeugrechenvorrichtung 110 eine Sequenz von Zufallszahlen (oder Pseudozufallszahlen) auf Grundlage der Seed-Anfangszahl unter Verwendung des RNG erzeugen. Der RNG kann ein herkömmlicher Algorithmus sein, z. B. ein Lehmer-Generator, ein Mersenne-Twister, ein Advanced Randomization System, Philox usw. In dieser Schrift weist „voreinstellen/Seed“ seine/ihre herkömmliche Bedeutung in der Computertechnik auf, d. h., im vorliegenden Zusammenhang bedeutet „voreinstellen“ Spezifizieren einer Anfangsbedingung des RNG-Algorithmus, durch welche eingeleitet wird, dass der Zufallszahlengenerator eine spezifische Sequenz von Zahlen auf Grundlage der spezifischen Anfangsbedingung, d. h. des Seed-Werts, erzeugt.
  • Die zweite Fahrzeugrechenvorrichtung 110 kann zum Beispiel einen entfernten Abschnitt eines zweiten CMAC (wie nachstehend erörtert) in den Zufallszahlengenerator als den Seed-Wert eingeben. In einem derartigen Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 nach dem Erzeugen eines zweiten CMAC eine neue Zufallszahl erzeugen. Das heißt, nach dem Erzeugen eines zweiten CMAC kann die zweite Fahrzeugrechenvorrichtung einen Abschnitt des zweiten CMAC entfernen und den entfernten Abschnitt in den RNG eingeben, um eine neue Zufallszahl zu erzeugen. Als ein anderes Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine aktuelle Zeit in den Zufallszahlengenerator als den Seed-Wert eingeben. In einem derartigen Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 nach einer vorbestimmten Zeit, z. B. 500 Millisekunden, 1 Sekunde, 30 Sekunden usw., eine neue Zufallszahl erzeugen. Die zweite Fahrzeugrechenvorrichtung 110 kann die neue Zufallszahl in eine aktualisierte Abfragenachricht 220 aufnehmen, wie vorstehend dargelegt. Nach dem Erzeugen einer Abfragenachricht 220 kann die zweite Fahrzeugrechenvorrichtung 110 die Abfragenachricht 220 z. B. in dem Speicher der zweiten Fahrzeugrechenvorrichtung 110 speichern. Die zweite Fahrzeugrechenvorrichtung 110 kann eine Vielzahl von Abfragenachrichten 220 speichern. Wenn die zweite Fahrzeugrechenvorrichtung 110 eine spezifizierte Anzahl von Abfragenachrichten 220 gespeichert hat, z. B. vier, acht, sechzehn usw., ist die zweite Fahrzeugrechenvorrichtung 110 dazu programmiert, eine gespeicherte, zeitlich gesehen älteste Abfragenachricht 220 mit einer nachfolgend erzeugten Abfragenachricht 220 zu überschreiben. Die gespeicherten Abfragenachrichten 220 können in einer Lookup-Tabelle oder dergleichen beinhaltet sein. Die Anzahl der gespeicherten Abfragenachrichten 220 kann durch einen Hersteller des Fahrzeugs 105 und/oder der Komponente 125 spezifiziert und in einem Speicher der zweiten Fahrzeugrechenvorrichtung 110 gespeichert sein.
  • Die zweite Fahrzeugrechenvorrichtung 110 ist dazu programmiert, das Fahrzeugkommunikationsnetzwerk zu überwachen, um eine Anforderungsnachricht 200 (wie vorstehend erörtert) von einer anderen Fahrzeugrechenvorrichtung 110 zu detektieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 über das Fahrzeugkommunikationsnetzwerk eine oder mehrere Anforderungsnachrichten 200 von der ersten Fahrzeugrechenvorrichtung 110 empfangen.
  • Nach dem Empfangen der Anforderungsnachricht 200 kann die zweite Fahrzeugrechenvorrichtung 110 die ausgewählte Abfragenachricht 220 auf Grundlage der Anforderungsnachricht 200 identifizieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, z. B. auf Grundlage des spezifizierten Nutzdatensegments 215 identifizieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 auf das spezifizierte Nutzdatensegment 215 zugreifen und die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, abrufen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, mit der Vielzahl von gespeicherten Abfragenachrichten 220 vergleichen. Die zweite Fahrzeugrechenvorrichtung 110 identifiziert die ausgewählte Abfragenachricht 220 auf Grundlage dessen, dass die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, mit einer gespeicherten Abfragenachricht 220 übereinstimmt. Wenn die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, nicht mit einer beliebigen gespeicherten Abfragenachricht 220 übereinstimmt, dann kann die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 ignorieren. Zusätzlich oder alternativ kann die zweite Fahrzeugrechenvorrichtung 110 die erste Fahrzeugrechenvorrichtung 110 als eine Angreifervorrichtung identifizieren. Im vorliegenden Zusammenhang ist eine „Angreifervorrichtung“ eine Rechenvorrichtung, die nicht dafür autorisiert ist, auf das Fahrzeugkommunikationsnetzwerk zuzugreifen, um z. B. Daten mit den Fahrzeugrechenvorrichtungen 110, Sensoren 115 usw. in dem Fahrzeugkommunikationsnetzwerk zu teilen.
  • Als ein anderes Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 einen Abschnitt der Abfragenachricht 220, z. B. den Zähler, in der Anforderungsnachricht 200 z. B. auf Grundlage des spezifizierten Nutzdatensegments 215 identifizieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 auf das spezifizierte Nutzdatensegment 215 zugreifen und einen Zähler abrufen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann den Zähler, der in der Anforderungsnachricht 200 beinhaltet ist, mit den entsprechenden Zählern vergleichen, die in der Vielzahl von gespeicherten Abfragenachrichten 220 beinhaltet sind. Die zweite Fahrzeugrechenvorrichtung 110 identifiziert die ausgewählte Abfragenachricht 220 auf Grundlage dessen, dass der Zähler, der in der Anforderungsnachricht 200 beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht 220 gespeichert ist. Wenn der Zähler, der in der Anforderungsnachricht 200 beinhaltet ist, nicht mit den Zählern in einer beliebigen gespeicherten Abfragenachricht 220 übereinstimmt, dann kann die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 ignorieren und/oder die erste Fahrzeugrechenvorrichtung 110 als eine Angreifervorrichtung identifizieren.
  • Außerdem kann die zweite Fahrzeugrechenvorrichtung 110 die Anforderung 240 in der Anforderungsnachricht 200 z. B. auf Grundlage des spezifizierten Nutzdatensegments 215 identifizieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 auf das spezifizierte Nutzdatensegment 215 zugreifen und die Anforderung 240 abrufen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann einen zweiten CMAC auf Grundlage der Anforderung 240 und der ausgewählten Abfragenachricht 220 erzeugen, z. B. im Wesentlichen auf dieselbe Weise wie vorstehend in Bezug auf den ersten CMAC erörtert. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine zweite Eingabenachricht durch Kombinieren, z. B. Verketten, der ausgewählten Abfragenachricht 220 und der Anforderung 240 erzeugen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann die zweite Eingabenachricht in das Permutationsprogramm 250 eingeben, um den zweiten CMAC auf Grundlage des Authentifizierungsschlüssels zu erzeugen. In Situationen, in denen die erste Fahrzeugrechenvorrichtung 110 den ersten CMAC kürzt, z. B. auf Grundlage einer Länge des spezifizierten Nutzdatensegments 215, kann die zweite Fahrzeugrechenvorrichtung 110 den zweiten CMAC auf ähnliche Weise kürzen. Das heißt, die zweite Fahrzeugrechenvorrichtung 110 kann einen Abschnitt des zweiten CMAC entfernen, sodass eine Länge des gekürzten zweiten CMAC gleich der Länge des ersten CMAC, d. h. der Länge des spezifizierten Nutzdatensegments 215, ist. Nach dem Kürzen des zweiten CMAC kann die zweite Fahrzeugrechenvorrichtung 110 einen entfernten Abschnitt des zweiten CMAC in den RNG eingeben, wie vorstehend erörtert.
  • Die zweite Fahrzeugrechenvorrichtung 110 vergleicht dann den zweiten CMAC (der, wie gerade vorstehend erörtert, der gesamte zweite CMAC oder ein gekürzter Abschnitt davon sein kann) mit dem ersten CMAC (der, wie gerade vorstehend erörtert, der gesamte erste CMAC oder ein gekürzter Abschnitt davon sein kann). Wenn der zweite CMAC mit dem ersten CMAC übereinstimmt, dann authentifiziert die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200. In dieser Situation kann die zweite Fahrzeugrechenvorrichtung 110 auf die authentifizierte Anforderungsnachricht 200 reagieren, um das Fahrzeug 105 zu betreiben. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine Kommunikation mit der ersten Fahrzeugrechenvorrichtung 110 auf Grundlage der Anforderung 240 einleiten, die in der authentifizierten Anforderungsnachricht 200 beinhaltet ist. Als ein anderes Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 Steuersignale erzeugen, um eine oder mehrere Fahrzeugkomponenten 125 auf Grundlage der in der authentifizierten Anforderungsnachricht 200 beinhalteten Anforderung 240 zu betätigen, um z. B. eine Geschwindigkeit, einen Kurs usw. des Fahrzeugs 105 einzustellen.
  • Wenn der zweite CMAC nicht mit dem ersten CMAC übereinstimmt, dann kann die zweite Fahrzeugrechenvorrichtung 110 bestimmen, dass eine Angreifervorrichtung die Anforderungsnachricht 200 bereitgestellt hat. In dieser Situation ignoriert die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200, die vorteilhafterweise eine Absicherung gegen eine Möglichkeit bereitstellt, dass die zweite Fahrzeugrechenvorrichtung 110 auf falsche Daten reagiert. Außerdem kann die zweite Fahrzeugrechenvorrichtung 110 eine Kommunikation zwischen der Angreifervorrichtung und der zweiten Fahrzeugrechenvorrichtung 110 verhindern.
  • 3 ist eine Darstellung eines beispielhaften Prozesses 300 zum Erzeugen eines ersten CMAC. Der Prozess 300 beginnt in einem Block 305. Der Prozess 300 kann durch eine im Fahrzeug 105 beinhaltete erste Fahrzeugrechenvorrichtung 110 ausgeführt werden, die in einem Speicher davon gespeicherte Programmanweisungen ausführt.
  • In dem Block 305 überwacht die erste Fahrzeugrechenvorrichtung 110 ein Fahrzeugkommunikationsnetzwerk, um eine Abfragenachricht 220 von einer zweiten Fahrzeugrechenvorrichtung 110 zu detektieren. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 z. B. über das Fahrzeugkommunikationsnetzwerk eine oder mehrere Abfragenachrichten 220 von der zweiten Fahrzeugrechenvorrichtung 110 empfangen. Der Prozess 300 geht zu einem Block 310 über.
  • In dem Block 310 bestimmt die erste Fahrzeugrechenvorrichtung 110, ob eine Anforderung 240 erzeugt werden soll. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 eine Anforderung 240 erzeugen, um z. B. Daten anzufragen oder zu befehlen, z. B. auf Grundlage von Daten des Sensors 115, wie vorstehend erörtert. Wenn die erste Fahrzeugrechenvorrichtung 110 eine Anforderung 240 erzeugt, dann wählt die erste Fahrzeugrechenvorrichtung 110 die in dem Fahrzeugkommunikationsnetzwerk detektierte Abfragenachricht 220 aus, und der Prozess 300 geht zu einem Block 315 über. Wenn die erste Fahrzeugrechenvorrichtung 110 keine Anforderung 240 erzeugt, dann ignoriert die erste Fahrzeugrechenvorrichtung 110 die in dem Fahrzeugkommunikationsnetzwerk detektierte Abfragenachricht 220, und der Prozess 300 kehrt zu dem Block 310 zurück.
  • In dem Block 315 erzeugt die erste Fahrzeugrechenvorrichtung 110 den ersten CMAC auf Grundlage der Anforderung 240 und der Abfragenachricht 220. Zum Beispiel kann die erste Fahrzeugrechenvorrichtung 110 eine erste Eingabenachricht 245 durch Kombinieren, z. B. Verketten, der Anforderung 240 und der ausgewählten Abfragenachricht 220 erzeugen, wie vorstehend erörtert. Die erste Fahrzeugrechenvorrichtung 110 kann dann die erste Eingabenachricht 245 und einen Authentifizierungsschlüssel, der z. B. von einem Speicher der ersten Fahrzeugrechenvorrichtung 110 empfangen wird, in ein Permutationsprogramm 250 eingeben, das den ersten CMAC erzeugt, wie vorstehend erörtert. Nach dem Erzeugen des ersten CMAC kann die erste Fahrzeugrechenvorrichtung 110 den ersten CMAC kürzen, wie vorstehend erörtert. Der Prozess 300 geht zu einem Block 320 über.
  • In dem Block 320 stellt die erste Fahrzeugrechenvorrichtung 110 eine Anforderungsnachricht 200 über das Fahrzeugkommunikationsnetzwerk bereit. Die erste Fahrzeugrechenvorrichtung 110 kann die Anforderungsnachricht 200 erzeugen, indem sie den ersten CMAC (der, wie gerade erörtert, gekürzt sein kann), die Anforderung 240 und die Abfragenachricht 220 (die, wie vorstehend erörtert, die gesamte ausgewählte Abfragenachricht 220 oder ein Abschnitt davon sein kann) in die Nutzdaten 210, z. B. in die spezifizierten Nutzdatensegmente 215, in der Anforderungsnachricht 200 aufnimmt. Nach dem Erzeugen der Anforderungsnachricht 200 kann die erste Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 an die zweite Fahrzeugrechenvorrichtung 110 z. B. über das Fahrzeugkommunikationsnetzwerk übertragen. Der Prozess 300 endet im Anschluss an den Block 320.
  • 4 ist eine Darstellung eines beispielhaften Prozesses 400 zum Authentifizieren einer Anforderungsnachricht 200 von einer ersten Fahrzeugrechenvorrichtung 110. Der Prozess 400 beginnt in einem Block 405. Der Prozess 400 kann durch eine im Fahrzeug 105 beinhaltete zweite Fahrzeugrechenvorrichtung 110 ausgeführt werden, die in einem Speicher davon gespeicherte Programmanweisungen ausführt.
  • In dem Block 405 stellt die zweite Fahrzeugrechenvorrichtung 110 anderen Fahrzeugrechenvorrichtungen 110 eine Vielzahl von Abfragenachrichten 220 über ein Fahrzeugkommunikationsnetzwerk bereit. Die Abfragenachrichten 220 beinhalten einen Zähler und eine Zufallszahl. Die Zufallszahl kann unter Verwendung eines Zufallszahlengenerators erzeugt werden, wie vorstehend erörtert. Die zweite Fahrzeugrechenvorrichtung 110 kann den Zähler z.B. in einem Speicher der zweiten Fahrzeugrechenvorrichtung 110 speichern. Die zweite Fahrzeugrechenvorrichtung 110 kann die Abfragenachricht 220 erzeugen, indem sie den Zähler und die Zufallszahl in Nutzdaten 230, z. B. die spezifizierten Nutzdatensegmente 235, der Abfragenachricht 220 aufnimmt, wie vorstehend erörtert. Nach dem Erzeugen der Abfragenachricht 220 kann die zweite Fahrzeugrechenvorrichtung 110 die Abfragenachricht 220 an die erste Fahrzeugrechenvorrichtung 110 z. B. über das Fahrzeugkommunikationsnetzwerk übertragen. Außerdem speichert die zweite Fahrzeugrechenvorrichtung 110 die Abfragenachricht 220 z. B. in einer Lookup-Tabelle, wie vorstehend erörtert.
  • Nach dem Bereitstellen einer Abfragenachricht 220 in dem Fahrzeugkommunikationsnetzwerk kann die zweite Fahrzeugrechenvorrichtung 110 den z.B. in dem Speicher der zweiten Fahrzeugrechenvorrichtung 110 gespeicherten Zähler inkrementieren. Die zweite Fahrzeugrechenvorrichtung 110 kann eine aktualisierte Abfragenachricht 220 auf Grundlage dessen bereitstellen, dass ein Timer abläuft, wie vorstehend beschrieben. Wenn der Timer abläuft, kann die zweite Fahrzeugrechenvorrichtung 110 zum Beispiel die aktualisierte Abfragenachricht 220 bereitstellen, die z. B. den inkrementierten Zähler beinhaltet. Zusätzlich oder alternativ kann die zweite Fahrzeugrechenvorrichtung 110 eine aktualisierte Abfragenachricht 220 bereitstellen, die eine neue Zufallszahl beinhaltet, und zwar auf Grundlage von Eingeben eines entfernten Abschnitts eines zweiten CMAC in einen Zufallszahlengenerator, wie vorstehend beschrieben. Der Prozess 400 geht zu einem Block 410 über.
  • In dem Block 410 bestimmt die zweite Fahrzeugrechenvorrichtung 110, ob eine Anforderungsnachricht 200 von einer ersten Fahrzeugrechenvorrichtung 110 empfangen wurde. Die zweite Fahrzeugrechenvorrichtung 110 kann das Fahrzeugkommunikationsnetzwerk überwachen, um eine oder mehrere Anforderungsnachrichten 200 von einer oder mehreren anderen Fahrzeugrechenvorrichtungen 110 zu detektieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine Anforderungsnachricht 200 von einer ersten Fahrzeugrechenvorrichtung 110 empfangen. Wenn die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200 empfängt, dann geht der Prozess 400 zu einem Block 415 über. Andernfalls kehrt der Prozess 400 zu dem Block 405 zurück.
  • In dem Block 415 identifiziert die zweite Fahrzeugrechenvorrichtung 110 die ausgewählte Abfragenachricht 220 auf Grundlage der Anforderungsnachricht 200, z. B. eines spezifizierten Nutzdatensegments 215. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 auf das spezifizierte Nutzdatensegment 215 der Anforderungsnachricht 200 zugreifen und die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, abrufen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, mit einer Vielzahl von gespeicherten Abfragenachrichten 220 vergleichen, wie vorstehend erörtert. Der Prozess 400 geht zu einem Block 420 über.
  • In dem Block 420 vergleicht die zweite Fahrzeugrechenvorrichtung 110 die ausgewählte Abfragenachricht 220 mit einer Vielzahl von gespeicherten Abfragenachrichten 220. Die zweite Fahrzeugrechenvorrichtung 110 identifiziert die ausgewählte Abfragenachricht 220 auf Grundlage dessen, dass die Abfragenachricht 220, die in der Anforderungsnachricht 200 beinhaltet ist, mit einer gespeicherten Abfragenachricht 220 übereinstimmt. Wenn die ausgewählte Abfragenachricht 220 mit einer gespeicherten Abfragenachricht 240 übereinstimmt, dann geht der Prozess 400 zu einem Block 425 über. Andernfalls geht der Prozess 400 zu einem Block 440 über.
  • In dem Block 425 erzeugt die zweite Fahrzeugrechenvorrichtung 110 einen zweiten CMAC auf Grundlage der ausgewählten Abfragenachricht 220 und der Anforderung 240, die in der Anforderungsnachricht 200 beinhaltet ist. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 eine zweite Eingabenachricht durch Kombinieren, z. B. Verketten, der ausgewählten Abfragenachricht 220 und der Anforderung 240 erzeugen. Die zweite Fahrzeugrechenvorrichtung 110 kann dann die zweite Eingabenachricht und einen Authentifizierungsschlüssel, der z. B. von einem Speicher der zweiten Fahrzeugrechenvorrichtung 110 empfangen wird, in ein Permutationsprogramm 250 eingeben, das den zweiten CMAC erzeugt, wie vorstehend erörtert. Nach dem Erzeugen des zweiten CMAC kann die zweite Fahrzeugrechenvorrichtung 110 den zweiten CMAC kürzen, wie vorstehend erörtert. Der Prozess 400 geht zu einem Block 425 über.
  • In dem Block 430 vergleicht die zweite Fahrzeugrechenvorrichtung 110 den ersten CMAC (der, wie vorstehend erörtert, in der Anforderungsnachricht 200 beinhaltet ist und gekürzt sein kann) mit dem zweiten CMAC (der, wie vorstehend erörtert, gekürzt sein kann). Wenn der erste CMAC mit dem zweiten CMAC übereinstimmt, geht der Prozess 400 zu einem Block 435 über. Andernfalls geht der Prozess 400 zu einem Block 440 über.
  • In dem Block 435 authentifiziert die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200. In dieser Situation kann die zweite Fahrzeugrechenvorrichtung 110 auf die authentifizierte Anforderungsnachricht 200 reagieren. Zum Beispiel kann die zweite Fahrzeugrechenvorrichtung 110 das Fahrzeug 105 auf Grundlage der Anforderung 240, die in der authentifizierten Anforderungsnachricht 200 beinhaltet ist, betreiben, indem sie eine Kommunikation mit der ersten Fahrzeugrechenvorrichtung 110 einleitet und/oder Steuersignale erzeugt, um eine oder mehrere Fahrzeugkomponenten 125 zu betätigen, um z. B. eine Geschwindigkeit, einen Kurs usw. des Fahrzeugs 105 einzustellen. Der Prozess 400 endet im Anschluss an den Block 435.
  • In dem Block 440 ignoriert die zweite Fahrzeugrechenvorrichtung 110 die Anforderungsnachricht 200. In dieser Situation kann die zweite Fahrzeugrechenvorrichtung 110 bestimmen, dass eine Angreifervorrichtung die Anforderungsnachricht 200 bereitgestellt hat. Außerdem kann die zweite Fahrzeugrechenvorrichtung 110 eine Kommunikation zwischen der Angreifervorrichtung und der zweiten Fahrzeugrechenvorrichtung 110 verhindern. Der Prozess 400 endet im Anschluss an den Block 440.
  • Im vorliegenden Zusammenhang bedeutet das Adverb „im Wesentlichen“, dass eine Form, eine Struktur, ein Maß, eine Menge, eine Zeit usw. aufgrund von Mängeln bei Materialien, Bearbeitung, Herstellung, Datenübertragung, Berechnungszeit usw. von einer/einem genau beschriebenen Geometrie, Entfernung, Maß, 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 QNX® CAR Platform for Infotainment, angeboten durch QNX Software Systems. Beispiele für Rechenvorrichtungen beinhalten unter anderem einen ersten Bordcomputer, 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 ausgeführt werden können, wie etwa durch die vorstehend aufgeführten. Computerausführbare Anweisungen können von Computerprogrammen zusammengestellt oder ausgewertet werden, die unter Verwendung einer Vielfalt von Programmiersprachen und/oder -technologien erstellt werden, beinhaltend unter anderem und entweder für sich oder in Kombination Java™, C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Perl, HTML 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, beinhaltend einen oder mehrere 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, beinhalten unter anderem nicht flüchtige Medien und flüchtige Medien. Nicht flüchtige Medien können zum Beispiel optische und Magnetplatten und sonstige dauerhafte Speicher beinhalten. Flüchtige Medien können zum Beispiel einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM) beinhalten, der üblicherweise einen Hauptspeicher darstellt. Derartige Anweisungen können durch ein Übertragungsmedium oder mehrere Übertragungsmedien übertragen werden, beinhaltend Koaxialkabel, Kupferdraht und Glasfaser, beinhaltend die Drähte, aus denen ein Systembus besteht, der mit einem Prozessor einer ECU gekoppelt ist. Gängige Formen computerlesbarer Medien beinhalten zum Beispiel Folgendes: eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das von einem Computer gelesen werden 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 verschiedenen Arten von Daten beinhalten, beinhaltend eine hierarchische Datenbank, einen Satz von Dateien in einem Dateisystem, eine Anwendungsdatenbank in einem anwendereigenen Format, ein relationales 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, und es wird auf eine oder mehrere von vielfältigen Weisen über ein Netzwerk darauf zugegriffen. 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 die Schritte derartiger Prozesse usw. zwar als gemäß einer gewissen geordneten Abfolge erfolgend beschrieben wurden, 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 abweicht. 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 hierin 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 solche Patentansprüche berechtigen. Es ist davon auszugehen und 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 einen Computer aufweist, der einen Prozessor und einen Speicher beinhaltet, wobei der Speicher Anweisungen speichert, die durch den Prozessor für Folgendes ausgeführt werden können: Überwachen eines bordeigenen Kommunikationsnetzwerks eines Fahrzeugs, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung beinhaltet; Identifizieren einer Abfragenachricht auf Grundlage der Anforderungsnachricht, wobei die Abfragenachricht einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator beinhaltet; Erzeugen eines zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung; Authentifizieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt; und Betreiben des Fahrzeugs auf Grundlage der authentifizierten Anforderungsnachricht.
  • Gemäß einer Ausführungsform wird der zweite CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm erzeugt, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Identifizieren einer bordeigenen Rechenvorrichtung, die mit der Anforderungsnachricht assoziiert ist, als eine Angreifervorrichtung auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Verhindern einer Kommunikation mit der Angreifervorrichtung.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Erzeugen der Abfragenachricht und Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk auf Grundlage dessen, dass ein Timer abläuft.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Aktualisieren der Abfragenachricht durch Inkrementieren des Zählers nach Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk.
  • Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch eine bordeigene Rechenvorrichtung, die einen zweiten Prozessor und einen zweiten Speicher beinhaltet, der Anweisungen speichert, die durch den zweiten Prozessor für Folgendes ausgeführt werden können: Überwachen des bordeigenen Kommunikationsnetzwerks, um die Abfragenachricht zu detektieren; nach Detektieren der Abfragenachricht, Erzeugen des ersten CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert; und dann Erzeugen der Anforderungsnachricht und Bereitstellen der Anforderungsnachricht über das bordeigene Kommunikationsnetzwerk.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Speichern einer Vielzahl von Abfragenachrichten, die entsprechende Zähler beinhalten; Bestimmen der Abfragenachricht auf Grundlage von Bestimmen, dass ein Zähler, der in der Anforderungsnachricht beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht beinhaltet ist.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der Zähler, der in der Anforderungsnachricht beinhaltet ist, nicht mit dem Zähler übereinstimmt, der in einer beliebigen gespeicherten Abfragenachricht beinhaltet ist.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Betätigen einer oder mehrerer Fahrzeugkomponenten, um die in der authentifizierten Anforderungsnachricht beinhaltete Anforderung durchzuführen.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Einleiten einer Kommunikation mit einer bordeigenen Rechenvorrichtung, die mit der authentifizierten Anforderungsnachricht assoziiert ist.
  • Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren Folgendes: Überwachen eines bordeigenen Kommunikationsnetzwerks eines Fahrzeugs, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung beinhaltet; Identifizieren einer Abfragenachricht auf Grundlage der Anforderungsnachricht, wobei die Abfragenachricht einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator beinhaltet; Erzeugen eines zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung; Authentifizieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt; und Betreiben des Fahrzeugs auf Grundlage der authentifizierten Anforderungsnachricht.
  • In einem Aspekt der Erfindung wird der zweite CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm erzeugt, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert.
  • In einem Aspekt der Erfindung beinhalte das Verfahren Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  • Gemäß einem Aspekt der Erfindung beinhaltet das Verfahren Erzeugen der Abfragenachricht und Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk auf Grundlage dessen, dass ein Timer abläuft.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Folgendes: Überwachen des bordeigenen Kommunikationsnetzwerks, um die Abfragenachricht zu detektieren; nach Detektieren der Abfragenachricht, Erzeugen des ersten CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert; und dann Erzeugen der Anforderungsnachricht und Bereitstellen der Anforderungsnachricht über das bordeigene Kommunikationsnetzwerk.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Folgendes: Speichern einer Vielzahl von Abfragenachrichten, die entsprechende Zähler beinhalten; Bestimmen der Abfragenachricht auf Grundlage von Bestimmen, dass ein Zähler, der in der Anforderungsnachricht beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht beinhaltet ist.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der Zähler, der in der Anforderungsnachricht beinhaltet ist, nicht mit dem Zähler übereinstimmt, der in einer beliebigen gespeicherten Abfragenachricht beinhaltet ist.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Betätigen einer oder mehrerer Fahrzeugkomponenten, um die in der authentifizierten Anforderungsnachricht beinhaltete Anforderung durchzuführen.

Claims (15)

  1. Verfahren, umfassend: Überwachen eines bordeigenen Kommunikationsnetzwerks eines Fahrzeugs, um eine Anforderungsnachricht zu detektieren, die einen ersten chiffrebasierten Nachrichtenauthentifizierungscode (CMAC) und eine Anforderung beinhaltet; Identifizieren einer Abfragenachricht auf Grundlage der Anforderungsnachricht, wobei die Abfragenachricht einen Zähler und eine Zufallszahlenausgabe von einem Zufallszahlengenerator beinhaltet; Erzeugen eines zweiten CMAC auf Grundlage der Abfragenachricht und der Anforderung; Authentifizieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC mit dem ersten CMAC übereinstimmt; und Betreiben des Fahrzeugs auf Grundlage der authentifizierten Anforderungsnachricht.
  2. Verfahren nach Anspruch 1, wobei der zweite CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm erzeugt wird, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert.
  3. Verfahren nach Anspruch 1, ferner umfassend Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  4. Verfahren nach Anspruch 1, ferner umfassend Identifizieren einer bordeigenen Rechenvorrichtung, die mit der Anforderungsnachricht assoziiert ist, als eine Angreifervorrichtung auf Grundlage von Bestimmen, dass der zweite CMAC nicht mit dem ersten CMAC übereinstimmt.
  5. Verfahren nach Anspruch 4, ferner umfassend Verhindern einer Kommunikation mit der Angreifervorrichtung.
  6. Verfahren nach Anspruch 1, ferner umfassend Erzeugen der Abfragenachricht und Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk auf Grundlage dessen, dass ein Timer abläuft.
  7. Verfahren nach Anspruch 6, ferner umfassend Aktualisieren der Abfragenachricht durch Inkrementieren des Zählers nach Bereitstellen der Abfragenachricht über das bordeigene Kommunikationsnetzwerk.
  8. Verfahren nach Anspruch 6, ferner umfassend: Überwachen des bordeigenen Kommunikationsnetzwerks, um die Abfragenachricht zu detektieren; nach Detektieren der Abfragenachricht, Erzeugen des ersten CMAC durch Eingeben der Abfragenachricht und der Anforderung in ein kryptographisches Programm, das die Abfragenachricht und die Anforderung auf Grundlage eines Authentifizierungsschlüssels codiert; und dann Erzeugen der Anforderungsnachricht und Bereitstellen der Anforderungsnachricht über das bordeigene Kommunikationsnetzwerk.
  9. Verfahren nach Anspruch 1, ferner umfassend: Speichern einer Vielzahl von Abfragenachrichten, die entsprechende Zähler beinhalten; Bestimmen der Abfragenachricht auf Grundlage von Bestimmen, dass ein Zähler, der in der Anforderungsnachricht beinhaltet ist, mit dem Zähler übereinstimmt, der in einer gespeicherten Abfragenachricht beinhaltet ist.
  10. Verfahren nach Anspruch 9, ferner umfassend Ignorieren der Anforderungsnachricht auf Grundlage von Bestimmen, dass der Zähler, der in der Anforderungsnachricht beinhaltet ist, nicht mit dem Zähler übereinstimmt, der in einer beliebigen gespeicherten Abfragenachricht beinhaltet ist.
  11. Verfahren nach Anspruch 1, ferner umfassend Betätigen einer oder mehrerer Fahrzeugkomponenten, um die in der authentifizierten Anforderungsnachricht beinhaltete Anforderung durchzuführen.
  12. Verfahren nach Anspruch 1, ferner umfassend Einleiten einer Kommunikation mit einer bordeigenen Rechenvorrichtung, die mit der authentifizierten Anforderungsnachricht assoziiert ist.
  13. Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-12 auszuführen.
  14. Computerprogrammprodukt, das Anweisungen zum Ausführen des Verfahrens nach einem der Ansprüche 1-12 umfasst.
  15. Fahrzeug, das einen Computer umfasst, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-12 auszuführen.
DE102022102448.2A 2021-02-09 2022-02-02 Authentifizierung einer fahrzeugrechenvorrichtung Pending DE102022102448A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/171,239 US20220255752A1 (en) 2021-02-09 2021-02-09 Vehicle computing device authentication
US17/171,239 2021-02-09

Publications (1)

Publication Number Publication Date
DE102022102448A1 true DE102022102448A1 (de) 2022-08-11

Family

ID=82493427

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022102448.2A Pending DE102022102448A1 (de) 2021-02-09 2022-02-02 Authentifizierung einer fahrzeugrechenvorrichtung

Country Status (3)

Country Link
US (1) US20220255752A1 (de)
CN (1) CN114915403A (de)
DE (1) DE102022102448A1 (de)

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594114B2 (en) * 2002-09-16 2009-09-22 General Electric Company Authentication apparatus and method for universal appliance communication controller
KR101020913B1 (ko) * 2003-07-28 2011-03-09 소니 주식회사 데이터 송신 장치, 데이터 사용 인정 방법, 데이터 수신 장치 및 방법, 및 기록 매체
US7596225B2 (en) * 2005-06-30 2009-09-29 Alcatl-Lucent Usa Inc. Method for refreshing a pairwise master key
KR101338477B1 (ko) * 2006-04-19 2013-12-10 한국전자통신연구원 이동 통신 시스템의 인증키 생성 방법
CN101689990B (zh) * 2008-04-30 2011-11-16 联发科技股份有限公司 流量加密密钥的产生方法
JP5446650B2 (ja) * 2009-09-17 2014-03-19 沖電気工業株式会社 通信データ新規性確認システム並びに送信端末及び受信端末
JP2015122620A (ja) * 2013-12-24 2015-07-02 富士通セミコンダクター株式会社 認証システム、認証方法、認証装置、及び、被認証装置
US9231936B1 (en) * 2014-02-12 2016-01-05 Symantec Corporation Control area network authentication
US9407444B2 (en) * 2014-03-20 2016-08-02 Certicom Corp. Method for validating messages
CN106105105B9 (zh) * 2014-04-03 2020-01-24 松下电器(美国)知识产权公司 网络通信系统、不正常检测电子控制单元以及不正常应对方法
US9792440B1 (en) * 2014-04-17 2017-10-17 Symantec Corporation Secure boot for vehicular systems
US10211990B2 (en) * 2014-07-25 2019-02-19 GM Global Technology Operations LLC Authenticating messages sent over a vehicle bus that include message authentication codes
DE102015211451A1 (de) * 2015-06-22 2017-01-05 Volkswagen Aktiengesellschaft Verfahren zu einem Manipulationsschutz von über ein Bussystem zwischen Systemkomponenten zu übertragenden Nutzdatenpaketen
JP6555209B2 (ja) * 2015-08-07 2019-08-07 株式会社デンソー 通信システム、管理ノード、通信ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体
JP6260066B2 (ja) * 2016-01-18 2018-01-17 Kddi株式会社 車載コンピュータシステム及び車両
SG10201605752PA (en) * 2016-07-13 2018-02-27 Huawei Int Pte Ltd A unified authentication work for heterogeneous network
JP2018014558A (ja) * 2016-07-19 2018-01-25 株式会社デンソー 通信装置
US10630481B2 (en) * 2016-11-07 2020-04-21 Ford Global Technologies, Llc Controller area network message authentication
US10705820B2 (en) * 2017-02-02 2020-07-07 Ford Global Technologies, Llc Method and apparatus for secure multi-cycle vehicle software updates
US10944579B2 (en) * 2017-05-26 2021-03-09 Combined Conditional Access Development And Support, Llc Device pairing and authentication
JP6731887B2 (ja) * 2017-06-27 2020-07-29 Kddi株式会社 保守システム及び保守方法
JP6547180B2 (ja) * 2017-12-05 2019-07-24 Kddi株式会社 通信システム
JPWO2020059535A1 (ja) * 2018-09-20 2021-08-30 ソニーセミコンダクタソリューションズ株式会社 送信装置および送信方法、並びに受信装置および受信方法
TW202101946A (zh) * 2019-06-14 2021-01-01 日商索尼半導體解決方案公司 通信裝置及通信方法以及程式
US11522696B2 (en) * 2020-03-13 2022-12-06 Dearborn Group, Inc. Intrusion defense system for a vehicle
US11526458B2 (en) * 2020-05-18 2022-12-13 Stmicroelectronics Application Gmbh Method of operating a communication bus, corresponding system, devices and vehicle

Also Published As

Publication number Publication date
US20220255752A1 (en) 2022-08-11
CN114915403A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
DE102020124163A1 (de) Verifizierung von fahrzeugdaten
DE102017116579A1 (de) Private fahrzeug-zu-fahrzeug-kommunikation
DE102016110169A1 (de) Diebstahlverhinderung für autonome Fahrzeuge
DE102020116438A1 (de) Nutzung von fahrzeugkomponenten
DE102018118598A1 (de) Multimodale fahrzeugnäherungssicherheit
DE102019129506A1 (de) Entfernte fahrzeugsteuerung
DE102019121164A1 (de) Fahrzeugbasiertes passwort
DE102019124913A1 (de) Adaptive fahrzeug-zu-infrastruktur-kommunikation
EP3230131B1 (de) Verfahren zur steuerung des betriebs wenigstens einer funktionskomponente eines kraftfahrzeugs und kraftfahrzeug
DE102019127363A1 (de) Lichtbasierte spurwechselsteuerung
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
DE102020114379A1 (de) Speichern von fahrzeugdaten
DE102022103553A1 (de) Authentifizierung einer fahrzeugrechenvorrichtung
DE102020126906A1 (de) Validieren von fahrzeugen, die innerhalb bestimmter regionen fahren
DE102020122086A1 (de) Messen von vertrauen in tiefen neuronalen netzwerken
DE102022102448A1 (de) Authentifizierung einer fahrzeugrechenvorrichtung
DE102021129043A1 (de) Diagnoseanforderung über fahrzeugbus-authentifizierung
DE102022124848A1 (de) System und prozess unter verwendung homomorpher verschlüsselung, um parameter neuronaler netze für ein kraftfahrzeug zu sichern
DE102022105457A1 (de) System und verfahren für ein fahrzeugnetzwerk
DE102021103773A1 (de) Intelligentes infrastrukturfehlerwarnsystem
DE102021113044A1 (de) Steuerung eines fahrzeugassistenzmerkmals
DE102020122049A1 (de) Taas für verzögerungstolerante blockchain-netzwerke
DE102020126909A1 (de) Sitzungsspezifischer zugriffstoken
DE102019112654A1 (de) Verfahren und system für distributed-ledger-technologie-kommunikationen für fahrzeuge

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: LORENZ SEIDLER GOSSEL RECHTSANWAELTE PATENTANW, DE