-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft im Allgemeinen Authentifizierungssysteme für Fahrzeug-Hardware.
-
ALLGEMEINER STAND DER TECHNIK
-
Immer mehr Kraftfahrzeuge sind mit teuren modularen Komponenten ausgestattet - wie z. B. einem Katalysator, Leichtmetallrädern, stylischen Heckleuchtenbaugruppen und dergleichen. Diese bestimmten Komponenten können zum Ziel von Dieben werden, die diese sogar mit gefälschten Teilen austauschen können, sodass sich der Fahrzeugbesitzer nicht über den Diebstahl bewusst ist. Es ist ein System erforderlich, um einen solchen Diebstahl zu erfassen.
-
KURZDARSTELLUNG
-
Es ist ein Komponentenvalidierungssystem beschrieben, das eine Multi-Faktor-Authentifizierung ausführt. Gemäß einem veranschaulichenden Beispiel beinhaltet das System Folgendes: eine Hardware-Baugruppe, die Folgendes umfasst: eine Trusted Execution Environment (TEE); und einen Computer, der einen Prozessor umfasst, der programmiert ist, um Anweisungen zu Folgendem auszuführen: Speichern einer kryptographischen Kennung der Baugruppe; Übertragen einer Validierungsnachricht an die Baugruppe; dann Empfangen einer Antwortnachricht; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung; und dann Authentifizieren der Baugruppe.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfasst die Baugruppe ferner eine physische Komponente, die zum Ziel von Dieben werden kann.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist in der TEE ein privater Schlüssel gespeichert.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist die TEE zu Folgendem programmiert: digitales Unterzeichnen der Validierungsnachricht.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist die Kennung ein öffentlicher Schlüssel, der einem privaten Schlüssel entspricht, der in der TEE gespeichert ist.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfassen die Anweisungen ferner solche zu Folgendem: Abfragen der Kennung von einem System eines Beteiligten.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist der Computer ein System eines Beteiligten, das einer Blockchain zugeordnet ist, wobei die Blockchain eine Vielzahl von kryptographischen Kennungen umfasst, die jeweils eine andere Hardware-Baugruppe in einem Fahrzeug eindeutig identifizieren.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfassen die Anweisungen ferner Folgendes: nach einer autorisierten Fahrzeugreparatur, Verwenden einer aktualisierten kryptographischen Kennung und Wiederholen der Anweisungen zum Speichern, Übertragen, Empfangen, Entschlüsseln und Authentifizieren.
-
Gemäß einem weiteren veranschaulichenden Beispiel ist ein Verfahren beschrieben, das Folgendes beinhaltet: an einem Computer in einem Fahrzeug: Speichern einer kryptographischen Kennung einer Hardware-Baugruppe eines Fahrzeugs; Übertragen einer Validierungsnachricht an die Baugruppe; dann Empfangen einer Antwortnachricht; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung; und dann Bestimmen, ob die Baugruppe authentifiziert wurde.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfasst die Baugruppe ferner eine physische Komponente, die zum Ziel von Dieben werden kann.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist in der TEE ein privater Schlüssel gespeichert.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfasst die Antwortnachricht eine digitale Unterschrift von zumindest einem Teil der Validierungsnachricht.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel ist die Kennung ein öffentlicher Schlüssel, der einem privaten Schlüssel entspricht, der verwendet wird, um die Antwortnachricht zu entschlüsseln.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel beinhaltet das Verfahren ferner Anfordern der Kennung von einem System eines Beteiligten.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfasst das System des Beteiligten den Computer oder einen Remote-Server.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel beinhaltet das Verfahren ferner Wiederholen des Entschlüsselns unter Verwendung einer aktualisierten kryptographischen Kennung.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel beinhaltet das Verfahren ferner Bestimmen, dass die Baugruppe nicht authentifiziert wurde; und Bereitstellen einer Warnung auf Grundlage der Bestimmung.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel beinhaltet das Verfahren ferner Bestimmen, dass die Baugruppe authentifiziert wurde; und Hinzufügen eines Blocks zu der Blockchain, der die Authentifizierung aufzeichnet.
-
Gemäß einem weiteren veranschaulichenden Beispiel ist ein System beschrieben, das eine Hardware-Baugruppe umfasst, die Folgendes umfasst: einen ersten Prozessor und eine Trusted Execution Environment (TEE) in dem ersten Prozessor, wobei der erste Prozessor programmiert ist, um eine Validierungsnachricht zu empfangen und die Validierungsnachricht an die TEE weiterzureichen, wobei die TEE programmiert ist, um zumindest einen Teil der Validierungsnachricht digital zu unterzeichnen und eine verschlüsselte Antwortnachricht an den ersten Prozessor zurückzuleiten; und einen Computer, der einen zweiten Prozessor und einen Speicher umfasst, auf dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, umfassend zu Folgendem: Speichern einer kryptographischen Kennung der Baugruppe; Übertragen der Validierungsnachricht an den ersten Prozessor, dann Bestimmen, ob eine Antwortnachricht von dem ersten Prozessor empfangen wurde; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung, wenn die Antwortnachricht empfangen wurde; und dann Bestimmen, ob die Baugruppe authentifiziert wurde; und dann Bestimmen, dass die Baugruppe nicht authentifiziert wurde, wenn die Antwortnachricht nicht empfangen wurde.
-
Gemäß dem vorangehend erwähnten zumindest einen Beispiel umfassen die Anweisungen ferner solche zu Folgendem: Bereitstellen einer Warnung, wenn die Baugruppe nicht authentifiziert wurde.
-
Gemäß dem zumindest einen Beispiel ist ein Computer offenbart, der programmiert ist, um eine beliebige Kombination der Beispiele des bzw. der Verfahren(s) auszuführen, die vorangehend dargelegt sind.
-
Gemäß dem zumindest einen Beispiel ist ein Computerprogrammprodukt offenbart, das ein computerlesbares Medium beinhaltet, auf dem Anweisungen gespeichert sind, die durch einen Computerprozessor ausgeführt werden können, wobei die Anweisungen eine beliebige Kombination der Beispiele des bzw. der Verfahren(s) beinhalten, die vorangehend dargelegt sind.
-
Figurenliste
-
- 1 ist eine schematische Darstellung, die ein Komponentenvalidierungssystem veranschaulicht.
- 2 ist eine schematische Darstellung einer Trusted Execution Environment (TEE) einer Hardware-Baugruppe eines Fahrzeugs.
- 3 ist ein Ablaufdiagramm, das einen veranschaulichenden Multi-Faktor-Authentifizierungsprozess veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Unter Bezugnahme auf die Zeichnungen ist ein veranschaulichendes Komponentenvalidierungssystem 10 offenbart, das Folgendes beinhaltet: ein System eines Beteiligten an einer Blockchain 12 (hiernach einfach als „System des Beteiligten“ bezeichnet, z. B. einer Blockchain und anderen Systemen des Beteiligten (nicht gezeigt) zugeordnet), einen Computer 14 und eine Trusted Execution Environment (TEE) 16 in einer von einer Vielzahl von Hardware-Baugruppen 18-24 (wobei der Computer 14, die TEE 16 und die Baugruppen 18-24 jeweils Teil eines Fahrzeugs 30 sind). In dem veranschaulichten Beispiel sind die Hardware-Baugruppen 18-24 Airbagbaugruppen; bei dieser Art von Baugruppe handelt es sich jedoch lediglich um ein Beispiel (und andere Beispiele sind vorhanden). Wie nachfolgend genauer erörtert, kann der Computer 14 einen Satz von Anweisungen (z. B. Software, Firmware oder dergleichen) ausführen, der eine Multi-Faktor-Authentifizierung umfasst, um jede der Hardware-Baugruppen 18-24 zu authentifizieren. Auf diese Weise kann der Computer 14 bestimmen, ob die entsprechende Baugruppe gefälscht ist oder es sich anderweitig nicht um die Hardware-Baugruppe handelt, die für das entsprechende Fahrzeug 30 katalogisiert ist.
-
Zuerst unter Bezugnahme auf das (die) System(e) des Beteiligten kann es sich bei dem System 12 des Beteiligten um einen Remote-Server handeln, der einen oder mehreren Computer 32 umfasst, die mit einer oder mehreren Datenbank 34 vernetzt sind und/oder diese umfassen. In zumindest einem Beispiel nutzt das System 12 des Beteiligten eine Blockchain, die eine Identität des Fahrzeugs 30 sowie die Identität von jeder der Hardware-Baugruppen 18-24 beinhaltet. Wie hierin verwendet, handelt es sich bei einer Blockchain um eine Liste mit Aufzeichnungen, die unter Verwendung von Kryptographie miteinander verbunden sind, wobei neue Blöcke (die z. B. Auszeichnungen (also Daten) umfassen) durch ein System eines Beteiligten hinzugefügt werden können. Wie hierin verwendet, handelt es sich bei einem System eines Beteiligten um ein Rechensystem, das einer Einheit zugeordnet ist, die über eine Berechtigung verfügt, Blöcke zu der entsprechenden Blockchain hinzuzufügen. Üblicherweise sind mehrere Systeme des Beteiligten einer entsprechenden Blockchain zugeordnet und handelt es sich bei der Blockchain um eine Technik, um einen sicheren Distributed Ledger (z. B. Daten) dazwischen zu unterstützen. Beispielsweise kann es sich in einem Automobilkontext bei dem System 12 des Beteiligten (in 1 gezeigt) um einen Hersteller des Fahrzeugs 30 oder ein beliebiges anderes System eines Beteiligten handeln, das auf die Informationen zugreifen muss, die in der entsprechenden Blockchain enthalten sind. Andere nicht einschränkende Beispiele für das System 12 des Beteiligten schließen Folgendes ein: einen Server eines Automobilzulieferers, der die Hardware-Baugruppen 18-24 hergestellt und diese an den Hersteller des Fahrzeugs 30 verkauft hat, einen Server eines autorisierten Fahrzeughändlers, der das Fahrzeug 30 an einen Kunden (also Endnutzer) verkauft hat, einen Server einer autorisierten Reparaturwerkstatt (die z. B. zur Wartung des Fahrzeugs 30 lizenziert ist) und einen Server einer Versicherungsgesellschaft, die das Fahrzeug 30 versichert. In zumindest einem Beispiel handelt es sich bei dem Fahrzeug 30 ebenfalls um ein System eines Beteiligten - z. B. kann der Computer 14 Anweisungen ausführen, die in Bezug auf ein Kommunizieren über die Blockchain ähnlich denen des Computers 32 sind. Auf diese Weise kann z. B. ein Fahrzeughersteller eine Blockchain generieren, die unter anderem eine Kennung des Fahrzeugs 30 (wie z. B. eine Fahrzeugidentifikationsnummer oder VIN (vehicle identification number)) und kryptographische Kennungen von jeder der Hardware-Baugruppen 18-24 (wie z. B. eine Modellnummer und/oder eindeutige Seriennummern) umfasst. In zumindest einem Beispiel handelt es sich bei der kryptographischen Kennung um eine Blockchain-Kennung. Wie hierin verwendet, handelt es sich bei einer Blockchain-Kennung um eine eindeutige Kennung, die in einem Block (z. B. einer Aufzeichnung) einer Blockchain für ein eindeutiges Fahrzeug gespeichert ist, wobei die Blockchain-Kennung eine Hardware-Baugruppe des entsprechenden Fahrzeugs identifiziert. Üblicherweise beinhaltet die Blockchain mehrere kryptographische Kennungen; dies ist jedoch nicht erforderlich. Die kryptographischen Kennungen können durch die Blockchain sicher festgehalten werden und können auf eine Anzahl von Systemen des Beteiligten verteilt werden. Dementsprechend können Fahrzeuginformationen während einer gesamten Lebensdauer des Fahrzeugs 30 (über die Blockchain) an andere Systeme des Beteiligten verteilt werden, wobei eine Fahrzeugsicherheit erhöht wird, während die Informationen gleichzeitig verfügbarer gemacht werden.
-
Bei dem Computer 32 handelt es sich um eine beliebige geeignete Hardware-Rechenvorrichtung, die durch das System des Beteiligten 12 verwendet wird - und der Computer 32 kann konfiguriert sein, um eine Blockchain-Verschlüsselung auszuführen. Bei der Datenbank 34 handelt es sich um ein Speichermedium, das einen Festwertspeicher (read-only memory -ROM), einen Direktzugriffsspeicher (random-access memory - RAM), optische oder magnetische Platten oder dergleichen umfassen kann. Üblicherweise ist der Computer 32 mit einem landgestützten und/oder drahtlosen Netzwerksystem 36 vernetzt - was eine Langstreckenkommunikation ermöglicht. Ferner ist der Computer 32 üblicherweise mit der Datenbank 34 vernetzt, auf der die für das Fahrzeug 30 eindeutige Blockchain sowie die Blockchains gespeichert sind, die möglicherweise für Millionen von anderen Fahrzeugen eindeutig sind. Wenn z. B. eines der Systeme des Beteiligten - die dem Fahrzeug 30 zugeordnet sind - der Blockchain des Fahrzeugs 30 einen Block hinzufügt, empfängt somit jedes der Systeme des Beteiligten die aktualisierte Blockchain und kann diese in dessen entsprechendem/r Computerspeicher oder Speichervorrichtung speichern. Beispielsweise aktualisiert der Computer 32 in einem solchen Fall die Blockchain in der Datenbank 34, während andere Systeme des Beteiligten (die dem Fahrzeug 30 zugeordnet sind) ähnlich agieren. Ferner kann ein solches Aktualisieren in Bezug auf das Fahrzeug 30 wiederholt erfolgen, wodurch die Länge der Blockchain sowie die Sicherheit der Blockchain erhöht wird.
-
Das landgestützte und/oder drahtlose Netzwerksystem 36, das in 1 gezeigt ist, kann eine Konnektivität mit einem öffentlichen Fernsprechwählnetz (public switched telephone network - PSTN) ermöglichen, wie etwa dem, das verwendet wird, um festverdrahtete Telefonie, paketvermittelte Datenkommunikation, Internetinfrastruktur und dergleichen bereitzustellen. Es kann ferner Architektur zur Satellitenkommunikation beinhalten und/oder kann Mobilfunkkommunikation über (eine) breite geografische Region(en) beinhalten. In zumindest einem Beispiel beinhaltet das System 36 eine geeignete Mobilfunkinfrastruktur, die eNodeBs, bedienende Gateways, Basisstation-Sendeempfänger und dergleichen beinhalten kann (z. B. kann es eine beliebige bestehende oder zukünftige Mobilfunktechnologie nutzen (z. B. einschließlich LTE, CDMA, GSM usw.)). Das Netzwerksystem 36 kann außerdem Fahrzeug-zu-Fahrzeug (V2V) und/oder Fahrzeug-zu-Infrastruktur (V2I) nutzen.
-
Nun unter Bezugnahme auf das Fahrzeug 30 veranschaulicht 1 das Fahrzeug 30 als ein Personenkraftwagen; das Fahrzeug 30 könnte jedoch außerdem ein Truck, ein Geländewagen (sports utility vehicle - SUV), ein Wohnmobil, ein Bus, ein Zugwaggon, ein Luftfahrzeug, eine Drohne oder dergleichen sein, der/die/das den Computer 14 und zumindest eine Trusted Execution Environment (TEE) beinhaltet. Unter anderem kann das Fahrzeug 30 ein Kommunikationsnetzwerk 42 umfassen, um eine fahrzeuginterne Kommunikation zwischen dem Computer 14, einer Telematikvorrichtung 44 und der einen oder mehreren Hardware-Baugruppen (wie z. B. den Baugruppen 18-24) zu unterstützen, die jeweils eine eindeutig konfigurierte TEE umfassen (in 1 ist lediglich eine TEE 16 gezeigt).
-
Das Kommunikationsnetzwerk 42 kann eine beliebige geeignete Hardware beinhalten, die angepasst ist, um eine drahtgebundene und/oder drahtlose Kommunikation unter anderem zwischen dem Computer 14, der Telematikeinheit 44 und den Hardware-Baugruppen 18-24 zu unterstützen. Gemäß einem Beispiel umfasst das Netzwerk 42 ein drahtloses Netzwerk, wie etwa einen Controller-Area-Network(CAN)-Bus, ein Ethernet-Netzwerk, ein Local Interconnect Network (LIN), eine Glasfaserverbindung oder dergleichen. In dem veranschaulichten Beispiel können der Computer 14 und die Telematikvorrichtung 44 über das CAN kommunizieren, während der Computer 14 und jede der Baugruppen 18-24 über das LIN oder eine andere geeignete getrennte drahtgebundene Verbindung kommunizieren können. Andere Beispiele sind ebenfalls vorhanden. Beispielsweise können eines oder mehrere von dem Computer 14, der Telematikvorrichtung 44 und den Baugruppen 18-24 drahtlos über ein drahtloses Netzwerk 42 kommunizieren - z.B. kann jedes von dem Computer 14, der Vorrichtung 44 und den Baugruppen 18-24 einen Chipsatz zur drahtlosen Kommunikation mit kurzer Reichweite (z. B. Bluetooth, Bluetooth Low Energie (BLE), Wi-Fi Direct usw.) umfassen, der konfiguriert ist, um drahtlose Nachrichten in dem Netzwerk 42 zu senden und/oder zu empfangen. Noch weitere Umsetzungen sind ebenfalls vorhanden.
-
Bei dem Computer 14 kann es sich um eine beliebige Hardware-Rechenvorrichtung handeln, die für eine Multi-Faktor-Authentifizierung zumindest einer Hardware-Baugruppe 18-24 konfiguriert ist. In dem veranschaulichten Beispiel umfasst der Computer 14 einen Prozessor 52 und einen Speicher 54. Bei dem Prozessor 52 kann es sich um eine beliebige Art von Vorrichtung handeln, die dazu in der Lage ist, elektronische Anweisungen zu verarbeiten, wobei nicht einschränkende Beispiele einen Mikroprozessor, einen Mikrocontroller oder eine Steuerung, einen anwendungsspezifischen integrierten Schaltkreis (application specific integrated circuit - ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw. einschließen - um nur einige zu nennen. In zumindest einem Beispiel handelt es sich bei dem Prozessor 52 um Hardware, die programmiert ist, um einen Entschlüsselungsalgorithmus auszuführen und als ein System eines Beteiligten der Blockchain (des Fahrzeugs 30) teilzunehmen. In zumindest einem Beispiel ist der Prozessor 52 programmiert, um digital gespeicherte Anweisungen auszuführen, die in dem Speicher 54 gespeichert sein können, die dem Computer 14 unter anderem Folgendes ermöglichen: Speichern einer kryptographischen Kennung der Hardware-Baugruppe 18 (bei der es sich wie nachfolgend erörtert z. B. um einen öffentlichen Schlüssel handeln kann); Übertragen einer Validierungsnachricht an die Hardware-Baugruppe 18; dann Empfangen einer Antwortnachricht von der Hardware-Baugruppe 18 (d. h., nachdem die TEE 16 zumindest einen Teil der Validierungsnachricht unter Verwendung eines privaten Schlüssels verschlüsselt hat, der dem öffentlichen Schlüssel entspricht); dann Versuchen, die Antwortnachricht unter Verwendung der kryptographischen Kennung zu entschlüsseln; und dann Authentifizieren der Hardware-Baugruppe oder Bestimmen, dass diese nicht authentifiziert wurde (z. B. diese gefälscht ist oder fehlt).
-
Der Speicher 54 kann ein beliebiges nichtdauerhaftes computernutzbares oder -lesbares Medium beinhalten, das eine(n) oder mehrere Speichervorrichtungen oder -artikel beinhalten kann. Beispielhafte nichtdauerhafter computernutzbare Speichervorrichtungen schließen Folgendes ein: herkömmlichen Festplatten-, Festspeicher, Direktzugriffsspeicher (random access memory - RAM), Festwertspeicher (read-only memory - ROM), löschbaren programmierbaren Festwertspeicher (erasable programmable read-only memory - EPROM), elektrisch löschbaren und programmierbaren Festwertspeicher (electrically erasable programmable read-only memory - EEPROM) sowie beliebige andere flüchtige oder nichtflüchtige Medien. Nichtflüchtige Medien schließen zum Beispiel optische Platten oder Magnetplatten und andere dauerhafte Speicher ein und flüchtige Medien können zum Beispiel ebenfalls dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM) einschließen. Diese Speichervorrichtungen sind nicht einschränkende Beispiele; z. B. existieren andere Formen von computerlesbaren Medien und diese beinhalten magnetische Medien, Compact Disc ROM (CD-ROMs), Digital Video Disc (DVDs), andere optische Medien, einen beliebigen geeigneten Speicherchip oder ein beliebiges geeignetes Speichermodul oder ein beliebiges anderes Medium, von welchem aus ein Computer lesen kann. Wie vorangehend erörtert, können in dem Speicher 54 ein oder mehrere Computerprogrammprodukte gespeichert sein, die als Software, Firmware oder andere Programmieranweisungen ausgeführt sein können, die durch den Prozessor 52 ausführbar ist/sind.
-
In dem veranschaulichten Beispiel handelt es sich bei dem Computer 14 um ein Rückhaltesteuermodul, das an eine Vielzahl von Airbagbaugruppen (z. B. die Baugruppen 18-24) gekoppelt ist. Dies ist jedoch lediglich ein Beispiel und wie aus der nachfolgenden Beschreibung hervorgeht sind andere Beispiele vorhanden.
-
Wie vorangehend beschrieben, kann der Computer 14 kommunikativ an eine oder mehrere der Hardware-Baugruppen 18-24 gekoppelt sein. Wie hierin verwendet, beinhaltet jede Hardware-Baugruppe 18-24 eine physische Komponente und Computer-Hardware, die eine Trusted Execution Environment (TEE) umfasst, wobei die Computer-Hardware angepasst ist, um mit dem Computer 14 (oder insbesondere mit dem Prozessor 52) zu kommunizieren. Diese physische Komponente ist üblicherweise das Ziel von Dieben und die Computer-Hardware wird verwendet, um einen Diebstahl zu erfassen, wie nachfolgend genauer beschrieben. In einem Beispiel ist jede der Hardware-Komponenten 18-24 eine Airbagbaugruppe; z.B. können ein Airbag und eine Aufblasvorrichtung die physische Komponente ausmachen, die das Ziel von Dieben ist. Andere nicht einschränkende Beispiele für Hardware-Baugruppen schließen Folgendes ein: eine Kamerabaugruppe, einen Light-Detection-and-Ranging-(LIDAR-)Sensor, eine Fahrzeug-Infotainment-Baugruppe, eine GPS-Baugruppe, eine Heckscheinwerferbaugruppe, eine Auto-Emblem- oder -Logo-Baugruppe, eine Radbaugruppe, eine Katalysatorbaugruppe, eine Bremssystembaugruppe, eine Lenksystembaugruppe, eine Fahrzeugbeleuchtungssystembaugruppe, eine Antriebsstrangsteuerbaugruppe und dergleichen. Da in dem veranschaulichten Beispiel jede Hardware-Baugruppe 18-24 ähnlich oder identisch sein kann (Airbagbaugruppen) wird lediglich eine Baugruppe (z. B. 18) in dieser Schrift im Detail beschrieben.
-
Wie in 1 gezeigt, umfasst eine Hardware-Baugruppe 18 ein Gehäuse 60, einen Airbag 62, eine Aufblasvorrichtung 64 und einen Computer 70, der einen Prozessor 72 und einen Speicher 74 umfasst, wobei ein Teil des Prozessors 72 logisch unterteilt ist, um die Trusted Execution Environment (TEE) 16 einzuschließen. Bei dem Gehäuse 60 kann es sich um eine geeignete Einfassung handeln, um den Airbag 62, die Aufblasvorrichtung 64 und den Computer 70 zu tragen. Bei dem Airbag 62 handelt es sich wie hierin verwendet um einen aufblasbaren Airbag, der angepasst ist, um einen Fahrzeuginsassen während eines Kollisionsereignisses abzufedern. Und bei der Aufblasvorrichtung 64 handelt es sich wie hierin verwendet um eine Vorrichtung, die bei Auslösung ein Fluid in den Airbag 62 abgibt, wodurch veranlasst wird, dass sich der Airbag 62 aufbläst. In diesem Beispiel können der Airbag 62 und die Aufblasvorrichtung 64 die physische Komponente darstellen, die zum Ziel von Dieben wird.
-
Der Computer 70 kann eine beliebige geeignete Verarbeitungs- und/oder Speicherfunktion aufweisen. In zumindest einem Beispiel handelt es sich bei dem Prozessor 72 um einen ASIC oder ein FPGA, der bzw. das programmiert ist, um eine Validierungsnachricht (z. B. von dem Computer 14) über das Kommunikationsnetzwerk 42 zu empfangen und die Nachricht unter Verwendung eines privaten kryptographischen Schlüssels (hiernach als privater Schlüssel bezeichnet) digital zu unterzeichnen. Danach kann der Prozessor 72 die Nachricht zu dem Sender (z. B. zu dem Computer 14) zurückleiten - der die digital unterzeichnete Nachricht verwendet, um eine Multi-Faktor-Authentifizierung durchzuführen. Der Prozessor 72 ist zumindest logisch unterteilt, um die TEE 16 zu umfassen. In einigen Beispielen kann die TEE 16 außerdem auch physisch in dem Prozessor 72 unterteilt sein.
-
2 veranschaulicht eine schematische Darstellung der TEE 16. Wie hierin verwendet, handelt es sich bei einer Trusted Execution Environment (TEE) um eine isolierte Verarbeitungsumgebung (d. h. Hardware) in dem Prozessor 72 (wobei die TEE ferner Teil der Hardware-Baugruppe 18) ist. Die TEE 16 kann parallel mit anderen Vorgängen des Prozessors 72 betrieben werden. Die TEE 16 kann ein sicheres Betriebssystem (operating system - OS) 80 und eine oder mehreren TEE-Anwendungen 82 umfassen. Wenngleich die TEE 16 das sichere OS 80 nutzen kann, kann die TEE 16 in der Lage sein, die vollständige Leistung des Prozessors 72 und/oder Speichers 74 zu nutzen. Wie hierin verwendet, handelt es sich bei einer TEE-Anwendung um einen Satz von Anweisungen, die logisch von anderen Anwendungen (d. h. Nicht-TEE-Anwendungen, die durch den Prozessor 72 ausgeführt werden können) isoliert sind. In einigen Fällen kann jede TEE-Anwendung 82 logisch von einer anderen isoliert sein - z. B. unter Verwendung von Software, kryptographischen Techniken und/oder dergleichen.
-
Gemäß einer beispielhaften Umsetzung umfasst die TEE 16 zumindest eine Anwendung 82. Die TEE-Anwendung 82 kann Anweisungen zu Folgendem umfassen: Speichern eines privaten Schlüssels, Empfangen einer Validierungsnachricht von dem Computer 14 (über den Prozessor 72), digitalem Unterzeichnen der Validierungsnachricht unter Verwendung des privaten Schlüssels und Ausgeben der digital unterzeichneten Nachricht (an den Prozessor 72, der wiederum die digital unterzeichnete Nachricht an den Computer 14 sendet).
-
Nun unter Bezugnahme auf die in 1 gezeigte Telematikvorrichtung kann es sich bei der Telematikvorrichtung 44 um eine beliebige geeignete Telematikrechenvorrichtung handeln, die konfiguriert ist, um drahtlos mit anderen entfernt angeordneten elektronischen Vorrichtungen zu kommunizieren - wie z. B. dem System des Beteiligten 12. Eine solche drahtlose Kommunikation über die Telematikvorrichtung 44 kann die Verwendung von Folgendem beinhalten: Mobilfunktechnologie (z. B. LTE, GSM, CDMA und/oder anderen Mobilfunkkommunikationsprotokollen), Nahbereichsdrahtloskommunikationstechnologie (z. B. unter Verwendung von WLAN, Bluetooth, Bluetooth Low Energy (BLE), dedizierter Nahbereichskommunikation (dedicated short range communication - DSRC) und/oder anderen Nahbereichsdrahtloskommunikationsprotokollen) oder einer Kombination davon. Eine solche Kommunikation schließt außerdem sogenannte Fahrzeug-zu-Fahrzeug-(V2V-) und Fahrzeug-zu-Infrastruktur-(V2I-)Kommunikation ein - die alle für den Fachmann nachvollziehbar sind.
-
Nun unter Bezugnahme auf 3 ist ein Ablaufdiagramm gezeigt, um zu veranschaulichen, wie ein Multi-Faktor-Authentifizierungsprozess 300 unter Verwendung des Komponentenvalidierungssystems 10 ausgeführt werden kann. Lediglich zu Veranschaulichungszwecken - und ohne einschränkend zu sein - wird der Prozess 300 im Zusammenhang mit der Hardware-Baugruppe 18 beschrieben, bei der es sich um eine Airbagbaugruppe handelt.
-
Bei Schritt 305 kann der Computer 14 eine Anforderung (z. B. eine Abfrage) einer eindeutigen kryptographischen Kennung einer Airbag-Hardware-Baugruppe 18 (über die Telematikvorrichtung 44 und/oder das landgestützte und/oder drahtlose Netzwerksystem 36) an das System 12 des Beteiligten übertragen. Das System des Beteiligten 12 kann die Anforderung empfangen und bei Schritt 310 kann das System 12 des Beteiligten (als Reaktion) die kryptographische Kennung (erneut über das landgestützte und/oder drahtlose Netzwerksystem 36 und die Telematikvorrichtung 44) bereitstellen. In zumindest einem Beispiel handelt es sich bei der kryptographischen Kennung um einen öffentlichen kryptographischen Schlüssel (hiernach öffentlicher Schlüssel) der einem privaten Schlüssel entspricht, der in der TEE 16 der Baugruppe 18 gespeichert ist. Ferner kann das System 12 des Beteiligten die kryptographische Kennung von einer Blockchain abrufen, die andere eindeutige kryptographische Kennungen enthält, die anderen entsprechenden Hardware-Baugruppen in dem konkreten Fahrzeug 30 zugeordnet sind.
-
Gemäß zumindest einem Beispiel handelt es sich bei dem Computer 14 ebenfalls um ein System eines Beteiligten. In diesem Beispiel können Schritt 305 und 310 weggelassen werden und kann der Computer 14 stattdessen auf dessen eindeutige Blockchain zugreifen und den öffentlichen Schlüssel identifizieren, welcher der Baugruppe 18 zugeordnet ist. Beispielsweise kann der Computer 14 die neueste Version von dessen Blockchain lokal speichern oder kann der Computer 14 (über die Telematikvorrichtung 44) dessen Kopie der Blockchain durch Anfordern der Blockchain (die Kennungen von dessen Hardware-Baugruppen umfasst) von einem Remote-Server oder einer Datenbank (wie z. B. der Datenbank 34) aktualisieren.
-
Unabhängig davon, mit welcher Technik der Computer 14 die eindeutige kryptographische Kennung der Hardware-Baugruppe 18 erwirbt, speichert der Computer 14 bei Schritt 315 die kryptographische Kennung in dem Speicher 54.
-
3 veranschaulicht, dass eine Zeitspanne 320 zwischen Schritt 315 und 325 vorhanden sein kann. Bei einer Zeit 320 kann es sich um eine beliebige geeignete Dauer handeln. Ferner kann in zumindest einem Beispiel ein beliebiger der Schritte 305-315 nach den Schritten 325, 330 und/oder 335 erfolgen (die nachfolgend erörtert sind).
-
Bei Schritt 325 übertragt der Computer 14 eine Validierungsnachricht an die Hardware-Baugruppe 18. Schritt 325 kann durch eine beliebige geeignete Erfassung durch den Computer 14 ausgelöst werden. Beispielsweise kann es sich bei dem Auslöser um Speichern der kryptographischen Kennung in dem Speicher 54 handeln. Oder es kann sich bei dem Auslöser um eine Dauer einer Taktzeit, eine Dauer einer Motorlaufzeit, eine Anzahl an Zündzyklen oder dergleichen handeln. In zumindest einem Beispiel wird Schritt 325 nach einer Automobilreparatur oder -wartung des Fahrzeugs 30 ausgelöst. Da einige Automobilkomponentendiebstähle an nicht autorisierten Tankstellen stattfinden können, kann der Computer 14 Schritt 325 (und beliebige der Schritte 330-355) nach einer Unterbrechung des Fahrzeugbatteriebetriebs oder einem anderen erfassbaren Wartungsvorgang ausführen.
-
Gemäß einem veranschaulichenden Beispiel kann die Validierungsnachricht über das Kommunikationsnetzwerk 42 - z. B. über das LIN von dem Computer 14 zu der Hardware-Baugruppe 18 - an den Prozessor 72 (der Baugruppe 18) übertragen werden. Die Validierungsnachricht kann eine Markierung umfasst, welche die Nachricht als eine Validierungsnachricht identifiziert. Ferner kann der Prozessor 72 einen Satz von Anweisungen beinhalten, die diesen dazu befähigen, zu bestimmen, dass die Nachricht von dem Computer 14 eine Validierungsnachricht ist (im Gegensatz zu einer Nachricht zum Aufblasen des Airbags 62). Somit kann der Prozessor 72 als Reaktion auf Empfangen der Validierungsnachricht, welche die Markierung aufweist, die Validierungsnachricht an die TEE 16 weiterreichen.
-
Bei der Validierungsnachricht kann es sich um eine beliebige Art von und Menge an Daten handeln. In einem Beispiel handelt es sich bei der Validierungsnachricht um einen Zeitstempel. In einem weiteren Beispiel handelt es sich bei der Validierungsnachricht um einen Code. In einem Beispiel handelt es sich bei der Validierungsnachricht um eine Kennung (z. B. eine VIN, Seriennummer usw.). Andere Beispiele sind ebenfalls vorhanden.
-
Bei Schritt 330 kann die TEE 16 die Validierungsnachricht empfangen und - unter Verwendung von deren sicherem OS 80 - die Validierungsnachricht mit deren privatem Schlüssel digital unterzeichnen - wobei z. B. eine verschlüsselte Nachricht (z. B. ein sogenannter Hash) erzeugt wird. Die TEE 16 kann dann die verschlüsselte Nachricht an dem Prozessor 72 bereitstellen.
-
Bei dem folgenden Schritt 335 kann der Prozessor 72 eine Antwortnachricht (welche die verschlüsselte Nachricht beinhaltet) an den Computer 14 übertragen (z. B. erneut über das Kommunikationsnetzwerk 42). Somit kann die Antwortnachricht als Reaktion auf den Empfang der Validierungsnachricht bei Schritt 325 übertragen werden.
-
Bei Schritt 340 kann der Computer 14 (und insbesondere der Prozessor 52) die Antwortnachricht unter Verwendung der kryptographischen Kennung (z. B. des öffentlichen Schlüssels), die über die Blockchain erhalten wurde, die eindeutig kryptographische Kennungen der Hardware-Baugruppen in dem Fahrzeug 30 umfasst, entschlüsseln.
-
Bei Schritt 345 kann der Computer 14 die entschlüsselte Antwortnachricht (von Schritt 340) mit der Validierungsnachricht vergleichen, die er (bei Schritt 325) an die Baugruppe 18 gesendet hat. Wenn die zwei Nachrichten übereinstimmen, kann der Computer 14 in diesem Fall bestimmen, dass die Baugruppe 18 authentifiziert wurde; d. h., der Computer 14 kann bestimmen, dass die Baugruppe 18 nicht manipuliert wurde, nicht unautorisiert ausgetauscht wurde und nicht gefälscht ist.
-
Bei Schritt 350 kann der Computer 14 eine Warnung auf Grundlage der Authentifizierung bereitstellen. Beispielsweise kann der Computer 14 - über die Telematikvorrichtung 44 und das landgestützte und/oder drahtlose Netzwerksystem 36 - eine Warnung an das System 12 des Beteiligten senden und/oder einen neuen Block zu dessen eindeutiger Blockchain des Fahrzeugs hinzufügen (der z. B. die Authentifizierung, einen Zeitstempel und/oder dergleichen aufzeichnet).
-
In einigen Beispielen für Schritt 345 stimmt die entschlüsselte Antwortnachricht (von Schritt 340) unter Umständen nicht mit der Validierungsnachricht (von Schritt 325) überein. In diesem Fall kann der Computer 14 bestimmen, dass die Hardware-Baugruppe 18 nicht authentisch ist. Und bei Block 350 kann der Computer 14 eine diesbezügliche Warnung bereitstellen. Die Warnung kann einen Benutzer des Fahrzeugs 30 und/oder ein oder mehrere Systeme des Beteiligten benachrichtigen. Beispielsweise kann es sich bei der Warnung um eine sichtbare und/oder hörbare Warnung des Benutzers handeln (die z. B. einen möglichen Diebstahl angibt).
-
In einigen Beispielen wird unter Umständen keine Antwortnachricht (Schritt 335) an den Computer 14 übertragen und/oder von diesem empfangen. In solchen Fällen kann Schritt 340 ausgelassen werden und kann Schritt 345 Bestimmen, dass (z.B. innerhalb eines vorbestimmten Zeitraums) keine Antwortnachricht empfangen wurde, beinhalten. In solchen Fällen kann der Computer 14 die Validierungsnachricht erneut sendet und erneut auf die Antwortnachricht warten. Alternativ oder zusätzlich dazu kann der Computer 14 zu Schritt 350 übergehen und eine Warnung bereitstellen, wie vorangehend erörtert.
-
Somit kann der Computer 14 unter Verwendung des Prozesses 300 eine Multi-Faktor-Authentifizierung der Hardware-Baugruppe 18 durchführen. Wie vorangehend beschrieben, müssen zwei oder mehr Quellen Informationen bereitstellen, welche die Authentizität der Hardware-Baugruppe 18 identifizieren: eine Blockchain-Aufzeichnung (die z.B. die kryptographische Kennung umfasst) und die digitale Unterschrift der TEE 16.
-
Andere Beispiele für Authentifizierungsprozesse sind ebenfalls vorhanden. Wenn zum Beispiel das Fahrzeug 30 zufällig einen autorisierten Dienst empfängt und die Airbag-Hardware-Baugruppe 18 durch eine neue und authentische Baugruppe ausgetauscht wird, kann ein System eines Beteiligten (wie etwa die autorisierte Reparaturwerkstatt) einen neuen Block in der Blockchain des Fahrzeugs 30 hinzufügen - z. B. den neuen Block, der eine Aufzeichnung beinhaltet, die eine neue, aktualisierte kryptographische Kennung für die entsprechende Baugruppe 18 beinhaltet. Wenn der Prozess 300 wiederholt wird, kann der Computer 14 somit die aktualisierte kryptographische Kennung empfangen und in der Lage sein, die Hardware-Baugruppe zu authentifizieren. Auf diese Weise kann der Prozess 300 nach Bedarf wiederholt werden, selbst wenn eine autorisierte Wartung und Reparatur erfolgt.
-
Es versteht sich, dass es sich bei allen oder zumindest einigen der vorangehend dargelegten Schritte um computerausführbare Anweisungen handeln kann, die durch den Computer 14, den Prozessor 72, die TEE 16, das System des Beteiligten 12 oder eine Kombination davon ausgeführt werden können. Diese Anweisungen können als Software, Firmware oder ein anderer geeigneter Code ausgebildet sein.
-
Es versteht sich ferner, dass der Computer 14 bezüglich der Hardware-Baugruppe 18 physisch unterteilt ist (z. B. in Bezug auf die Hardware isoliert ist). Auf diese Weise authentifiziert eine unabhängige Quelle (z. B. der Computer 14), ob die Hardware-Baugruppe authentisch ist - z.B. im Gegensatz dazu, dass die Hardware-Baugruppe 18 versucht, sich selbst zu authentifizieren - wobei Letztere einer Manipulation durch Hacker und andere bösartige Elemente ausgesetzt ist.
-
Somit wurde ein Prozess zur Multi-Faktor-Authentifizierung zum Authentifizieren einer Hardware-Baugruppe in einem Fahrzeug beschrieben. Das System kann ein System eines Beteiligten, das an einer Blockchain beteiligt ist, einen Computer in einem Fahrzeug und eine Hardware-Baugruppe (in dem Fahrzeug) beinhalten, die eine Trusted Execution Environment (TEE) aufweist. Der Computer kann die Hardware-Baugruppe unter Verwendung von sicheren Informationen sowohl von der Blockchain als auch der TEE authentifizieren. Auf diese Weise kann ein Diebstahl der Hardware-Baugruppe erfasst werden, selbst wenn der Dieb die gestohlene Baugruppe mit einer gefälschten Baugruppe ausgetauscht hat.
-
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 SYNC®-Anwendung von Ford, AppLink/Smart Device Link Middleware, der Betriebssysteme Microsoft® Automotive, Microsoft Windows®, Unix (z. B. das Betriebssystem Solaris®, vertrieben durch die Oracle Corporation in Redwood Shores, Kalifornien), AIX UNIX, vertrieben durch International Business Machines in Armonk, New York, Linux, Mac OSX und iOS, vertrieben durch die Apple Inc. in Cupertino, Kalifornien, BlackBerry OS, vertrieben durch Blackberry Ltd. in Waterloo, Kanada, und Android, entwickelt von Google Inc. und der Open Handset Alliance, oder der Plattform QNX® CAR for Infotainment, angeboten von QNX Software Systems. Zu Beispielen für Rechenvorrichtungen gehören unter anderem ein bordeigener Fahrzeugcomputer, ein Computerarbeitsplatz, ein Server, ein Desktop-, Notebook-, Laptop- oder Handheld-Computer oder ein anderes Rechensystem und/oder eine andere Rechenvorrichtung.
-
Rechenvorrichtungen beinhalten im Allgemeinen computerausführbare Anweisungen, wobei die Anweisungen durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorangehend dargelegten, ausgeführt werden können. Computerausführbare Anweisungen können von Computerprogrammen zusammengestellt oder ausgewertet werden, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder -technologien erstellt worden sind, einschließlich unter anderem und entweder für sich oder in Kombination Java™, C, C++, Visual Basic, Java Script, Perl 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, einschließlich eines oder mehrerer der hierin beschriebenen Prozesse, durchführt. Derartige Anweisungen und andere Daten können unter Verwendung einer Vielzahl von computerlesbaren Medien gespeichert und übertragen werden.
-
Ein computerlesbares Medium (auch als prozessorlesbares Medium bezeichnet) beinhaltet ein beliebiges nichttransitorisches (z. B. physisches) Medium, das an der Bereitstellung von Daten (z. B. Anweisungen) beteiligt ist, die durch einen Computer (z. B. durch einen Prozessor eines Computers) ausgelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien und flüchtiger Medien. Zu nichtflüchtigen Medien können zum Beispiel optische Platten oder Magnetplatten und andere persistente Speicher gehören. Zu flüchtigen Medien kann zum Beispiel ein dynamischer Direktzugriffsspeicher (dynamic random access memory - DRAM) gehören, der üblicherweise einen Hauptspeicher darstellt. Derartige Anweisungen können durch ein oder mehrere Übertragungsmedien übertragen werden, einschließlich Koaxialkabeln, Kupferdraht und Glasfasern, einschließlich der Drähte, die einen mit einem Prozessor eines Computers gekoppelten Systembus umfassen. Gängige Formen computerlesbarer Medien schließen beispielsweise Folgendes ein: 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.
-
Zu hierin beschriebenen Datenbanken, Datenbeständen oder sonstigen Datenspeichern können verschiedene Arten von Mechanismen zum Speichern von, Zugreifen auf und Abrufen von verschiedenen Arten von Daten gehören, einschließlich einer hierarchischen Datenbank, einer Gruppe von Dateien in einem Dateisystem, einer Anwendungsdatenbank in einem proprietären Format, eines relationalen Datenbankverwaltungssystems (relational database management system - RDBMS) usw. Jeder derartige Datenspeicher ist im Allgemeinen innerhalb einer Rechenvorrichtung eingeschlossen, die ein Computerbetriebssystem, wie etwa eines der vorangehend erwähnten, einsetzt, und es wird auf eine oder mehrere beliebige einer Vielfalt von Weisen über ein Netzwerk darauf zugegriffen. Auf ein Dateisystem kann von einem Computerbetriebssystem zugegriffen werden und es kann in verschiedenen Formaten gespeicherte Dateien beinhalten. Ein RDBMS setzt im Allgemeinen die strukturierte Abfragesprache (Structured Query Language - SQL) zusätzlich zu einer Sprache zum Erstellen, Speichern, Bearbeiten und Ausführen gespeicherter Abläufe 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 damit assoziierten computerlesbaren Medien (z. B. Platten, Speichern usw.) gespeichert sind. Ein Computerprogrammprodukt kann derartige Anweisungen, die auf computerlesbaren Medien gespeichert sind, zum Ausführen der hierin beschriebenen Funktionen umfassen.
-
Der Prozessor ist über Schaltkreise, Chips oder andere elektronische Komponenten umgesetzt und kann einen oder mehrere Mikrocontroller, einen oder mehrere feldprogrammierbare Gate-Arrays (field programmable gate arrays - FPGAs), einen oder mehrere anwendungsspezifische Schaltkreise (application specific circuits - ASICs), einen oder mehrere digitale Signalprozessoren (digital signal processors - DSPs), einen oder mehrere kundenintegrierte Schaltkreise usw. beinhalten. Der Prozessor kann zum Verarbeiten der Sensordaten programmiert sein. Das Verarbeiten der Daten kann Verarbeiten der Videoeingabe oder eines anderen Datenstroms beinhalten, der durch die Sensoren erfasst wird, um die Fahrbahnspur des Host-Fahrzeugs und das Vorhandensein von beliebigen Zielfahrzeugen zu bestimmen. Wie nachfolgend beschrieben, weist der Prozessor die Fahrzeugkomponenten an, gemäß den Sensordaten betätigt zu werden. Der Prozessor kann in eine Steuerung, z. B. eine Steuerung für einen autonomen Modus, integriert sein.
-
Der Speicher (oder die Datenspeichervorrichtung) ist über Schaltkreise, Chips oder andere elektronische Komponenten umgesetzt und kann eines oder mehrere von einem Festwertspeicher (read only memory - ROM), Direktzugriffsspeicher (random access memory - RAM), Flash-Speicher, elektrisch programmierbarem Speicher (electrically programmable memory - EPROM), elektrisch programmierbarem und löschbarem Speicher (electrically programmable and erasable memory - EEPROM), eingebetteten Multimediakarten (embedded MultiMediaCard - eMMC), einer Festplatte oder beliebigen flüchtigen oder nichtflüchtigen Medien usw. beinhalten. Auf dem Speicher können von Sensoren gesammelte Daten gespeichert sein.
-
Die Offenbarung wurde auf veranschaulichende Weise beschrieben und es versteht sich, dass die verwendete Terminologie vielmehr der Beschreibung als der Einschränkung dienen soll. In Anbetracht der vorangehenden Lehren sind viele Modifikationen und Variationen der vorliegenden Offenbarung möglich und die Offenbarung kann anders als konkret beschrieben umgesetzt werden.
-
Gemäß der vorliegenden Erfindung ist ein System bereitgestellt, das Folgendes aufweist: eine Trusted Execution Environment (TEE); und einen Computer, der einen Prozessor umfasst, der programmiert ist, um Anweisungen zu Folgendem auszuführen: Speichern einer kryptographischen Kennung der Baugruppe; Übertragen einer Validierungsnachricht an die Baugruppe; dann Empfangen einer Antwortnachricht; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung; und dann Authentifizieren der Baugruppe.
-
Gemäß einer Ausführungsform umfasst die Baugruppe ferner eine physische Komponente, die zum Ziel von Dieben werden kann.
-
Gemäß einer Ausführungsform ist in der TEE ein privater Schlüssel gespeichert.
-
Gemäß einer Ausführungsform ist die TEE zu Folgendem programmiert: digitales Unterzeichnen der Validierungsnachricht.
-
Gemäß einer Ausführungsform ist die Kennung ein öffentlicher Schlüssel, der einem privaten Schlüssel entspricht, der in der TEE gespeichert ist.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie die Kennung von einem System eines Beteiligten abfragt.
-
Gemäß einer Ausführungsform ist der Computer ein System eines Beteiligten, das einer Blockchain zugeordnet ist, wobei die Blockchain eine Vielzahl von kryptographischen Kennungen umfasst, die jeweils eine andere Hardware-Baugruppe in einem Fahrzeug eindeutig identifizieren.
-
Gemäß einer Ausführungsform ist die Erfindung ferner durch Folgendes gekennzeichnet: nach einer autorisierten Fahrzeugreparatur, Verwendung einer aktualisierten kryptographischen Kennung und Wiederholen der Anweisungen zum Speichern, Übertragen, Empfangen, Entschlüsseln und Authentifizieren.
-
Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren Folgendes: an einem Computer in einem Fahrzeug: Speichern einer kryptographischen Kennung einer Hardware-Baugruppe eines Fahrzeugs; Übertragen einer Validierungsnachricht an die Baugruppe; dann Empfangen einer Antwortnachricht; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung; und dann Bestimmen, ob die Baugruppe authentifiziert wurde.
-
Gemäß einer Ausführungsform umfasst die Baugruppe ferner eine physische Komponente, die zum Ziel von Dieben werden kann.
-
Gemäß einer Ausführungsform ist in der TEE ein privater Schlüssel gespeichert.
-
Gemäß einer Ausführungsform umfasst die Antwortnachricht eine digitale Unterschrift von zumindest einem Teil der Validierungsnachricht.
-
Gemäß einer Ausführungsform ist die Kennung ein öffentlicher Schlüssel, der einem privaten Schlüssel entspricht, der verwendet wird, um die Antwortnachricht zu entschlüsseln.
-
Gemäß einer Ausführungsform ist die Erfindung ferner durch Folgendes gekennzeichnet: Anforderung der Kennung von einem System eines Beteiligten.
-
Gemäß einer Ausführungsform umfasst das System des Beteiligten den Computer oder einen Remote-Server.
-
Gemäß einer Ausführungsform ist die Erfindung ferner durch Wiederholen des Entschlüsselns unter Verwendung einer aktualisierten kryptographischen Kennung gekennzeichnet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner durch Folgendes gekennzeichnet: Bestimmen, dass die Baugruppe nicht authentifiziert wurde; und Bereitstellen einer Warnung auf Grundlage der Bestimmung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner durch Folgendes gekennzeichnet: Bestimmen, dass die Baugruppe authentifiziert wurde; und Hinzufügen eines Blocks zu der Blockchain, der die Authentifizierung aufzeichnet.
-
Gemäß der vorliegenden Erfindung ist ein System bereitgestellt, das eine Hardware-Baugruppe aufweist, die Folgendes umfasst: einen ersten Prozessor und eine Trusted Execution Environment (TEE) in dem ersten Prozessor, wobei der erste Prozessor programmiert ist, um eine Validierungsnachricht zu empfangen und die Validierungsnachricht an die TEE weiterzureichen, wobei die TEE programmiert ist, um zumindest einen Teil der Validierungsnachricht digital zu unterzeichnen und eine verschlüsselte Antwortnachricht an den ersten Prozessor zurückzuleiten; und einen Computer, der einen zweiten Prozessor und einen Speicher umfasst, auf dem Anweisungen gespeichert sind, die durch den zweiten Prozessor ausgeführt werden können, umfassend zu Folgendem: Speichern einer kryptographischen Kennung der Baugruppe; Übertragen der Validierungsnachricht an den ersten Prozessor, dann Bestimmen, ob eine Antwortnachricht von dem ersten Prozessor empfangen wurde; dann Entschlüsseln der Antwortnachricht unter Verwendung der Kennung, wenn die Antwortnachricht empfangen wurde; und dann Bestimmen, ob die Baugruppe authentifiziert wurde; und dann Bestimmen, dass die Baugruppe nicht authentifiziert wurde, wenn die Antwortnachricht nicht empfangen wurde.
-
Gemäß einer Ausführungsform umfassen die Anweisungen ferner Anweisungen zu Folgendem: Bereitstellen einer Warnung, wenn die Baugruppe nicht authentifiziert wurde.