-
Die Erfindung betrifft ein Verfahren zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain sowie ein System zur Ausführung des Verfahrens.
-
Der Wert eines gebrauchten Fahrzeugs und damit auch der auf dem Gebrauchtwagenmarkt erzielbare Preis richtet sich maßgeblich nach dem Zustand des zu verkaufenden Fahrzeugs. Den tatsächlichen Zustand eines Fahrzeugs zu ermitteln gestaltet sich jedoch unter Umstanden schwierig. Insbesondere der Verschleiß einzelner Komponente und die sich daraus ergebende Wahrscheinlichkeit für Ausfälle und notwendige Reparaturen lässt sich anhand des äußeren Erscheinungsbilds der entsprechenden Komponenten bisweilen nur schwer abschätzen. Eine verlässliche Bewertung wäre gegebenenfalls auf Basis eingehender Untersuchen möglich, welche sich jedoch im Allgemeinen aufgrund des hohen Aufwands und den damit einhergehenden Kosten als unwirtschaftlich erweisen.
-
Für eine einfache und effiziente Bewertung werden daher Hilfsgrößen zur Hand gezogen, um den Zustand eines entsprechenden Fahrzeugs abzuschätzen. Eine weitverbreitete indirekte Hilfsgröße zum Bewerten des Zustands eines Fahrzeugs ist dessen Kilometerstand. Mithin hat der Kilometerstand direkten Einfluss auf den Wiederverkaufswert des Fahrzeugs.
-
Um auf dem Gebrauchtwagenmarkt einen höheren Gewinn zu erzielen, kommt es daher vor, dass Kilometerstände an Fahrzeugen manipuliert und eine geringere Laufleistung vorgetäuscht wird. Grundsätzlich können aus dem Zustand eines Fahrtzeugs zwar Rückschlüsse auf den ungefähren Kilometerstand gezogen werden, aber gerade diesen Zustand gilt es ja zu ermitteln und zu bewerten. Je älter das Fahrzeug und je erheblicher die Diskrepanzen zwischen manipuliertem Kilometerstand und tatsächlichem Kilometerstand ist, desto leichter mögen sich offensichtliche Unstimmigkeiten noch anhand des äußeren Erscheinungsbilds des Fahrzeugs erkennen lassen. Je jünger jedoch das Fahrzeug und je weniger gravierenden die Abweichungen zum tatsächlichen Kilometerstand sind, desto schwieriger gestaltet es sich die Manipulation zu erkennen.
-
Der Erfindung liegt daher die Aufgabe zugrunde, ein einfaches, effizientes und sicheres Verfahren zum Protokollieren von Zustandsdaten eines Fahrzeugs zu schaffen.
-
Die der Erfindung zugrundeliegende Aufgabe wird jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
-
Ausführungsformen umfassen ein Verfahren zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain.
-
Das Fahrzeug umfasst ein Fahrzeugcomputersystem. Ferner umfasst das Fahrzeugcomputersystem einen Speicher. In dem Speicher, beispielsweise in einem geschützten Speicherbereich des Speichers, ist ein privater kryptographischer Schlüssel eines dem Fahrzeug zugeordneten asymmetrischen Schlüsselpaars gespeichert. Das Fahrzeugcomputersystem umfasst zudem eine Mobilfunkschnittstelle zur Kommunikation über ein Mobilfunknetzwerk.
-
Die Blockchain umfasst in einem Block ein Programmmodul mit ersten Programminstruktionen, welches dem Fahrzeug zugeordnet ist. Durch Ausführen der ersten Programminstruktionen wird ein dem Programmmodul zugeordneter Eintrag mit Zustandsdaten des Fahrzeugs in der Blockchain erzeugt. Ferner identifizier das Programmmodul einen öffentlichen kryptographischen Schlüssel des dem Fahrzeug zugeordneten asymmetrischen Schlüsselpaars.
-
Das Verfahren zum Protokollieren von Zustandsdaten des Fahrzeugs umfasst:
- • Empfangen von Zustandsdaten des Fahrzeugs durch das Fahrzeugcomputersystem,
- • Erstellen eines ersten Datensatzes zum Eintragen in die Blockchain, wobei der erste Datensatz die Zustandsdaten des Fahrzeugs umfasst und das dem Fahrzeug zugeordnete Programmmodul identifiziert,
- • Signieren des ersten Datensatzes durch das Fahrzeugcomputersystem mit dem privaten kryptographischen Schlüssel,
- • Senden des signierten ersten Datensatzes durch das Fahrzeugcomputersystem über das Mobilfunknetzwerk an einen Blockchain-Server einer Mehrzahl von Blockchain-Servern eines Blockchain-Netzwerks, wobei die Blockchain-Server dazu konfiguriert sind, zusätzliche Blöcke für die Blockchain zu erstellen,
- • Empfangen des signierten ersten Datensatzes durch den Blockchain-Server,
- • Ausführen der ersten Programminstruktionen des durch den Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der ersten Programminstruktionen ein Prüfen der Signatur des ersten Datensatzes unter Verwendung des von dem Programmmodul identifizierten öffentlichen kryptographischen Schlüssels umfasst und, im Falle einer gültigen Signatur, ein Hinzufügen eines ersten Eintrag mit dem signierten ersten Datensatz und einem ersten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass sich in einfacher Weise eine Protokollierung von Zustandsdaten eines Fahrzeugs implementieren lässt, welche eine hohe Fälschungssicherheit aufweist. Die sich daraus ergebende fälschungssichere Fahrzeughistorie kann als Nachweis dienen, dass es zu keinen Unregelmäßigkeiten gekommen ist. Mithin lässt sich so ein höherer Wiederverkaufswert für das Fahrzeug erzielen. Dabei kann die protokollierte Fahrzeughistorie nicht nur dazu dienen zu belegen, dass es zu keinen Unregelmäßigkeiten bei der Erfassung von Zustandsdaten, wie etwa dem Kilometerstand, gekommen ist. Darüber hinaus lässt sich anhand der Fahrzeughistorie beispielsweise auch ablesen, ob es zu besonderen Ereignissen, wie etwa Unfällen oder Funktionsstörungen gekommen ist.
-
Die protokollierten Zustandsdaten können ferner für eine aktuelle Fehlerdiagnostik herangezogen werden. Tritt ein Problem auf, kann geprüft werde, ob dies bereits früher einmal aufgetreten ist bzw. ob sich aus den protokollierten Zustandsdaten Hinweise auf die mögliche Ursache des beobachteten Problems ergeben.
-
Unter einem „Fahrzeug“ wird hier ein mobiles Verkehrsmittel verstanden. Ein solches Verkehrsmittel kann beispielsweise dem Transport von Gütern (Güterverkehr), von Werkzeugen (Maschinen oder Hilfsmittel) oder Personen (Personenverkehr) dienen. Fahrzeuge umfassen insbesondere auch motorisierte Verkehrsmittel. Bei einem Fahrzeug kann es sich beispielsweise um ein Landfahrzeug, ein Wasserfahrzeug und/oder ein Luftfahrzeug handeln. Ein Landfahrzeug kann beispielsweise sein: ein Automobil, wie etwa ein Personenkraftwagen, Omnibus oder ein Lastkraftwagen, ein motorbetriebenes Zweirad, wie etwa ein Motorrad, Kleinkraftrad, Motorroller oder Motorfahrrad, ein landwirtschaftlicher Traktor, Gabelstapler, Golfmobil, Autokran. Darüber hinaus kann es sich bei einem Landfahrzeug auch um ein Schienen gebundenes Fahrzeug handeln. Wasserfahrzeug kann beispielsweise sein: ein Schiff oder Boot. Ferner kann ein Luftfahrzeug beispielsweise sein: ein Flugzeug oder Hubschrauber. Unter einem Fahrzeug wird insbesondere auch ein Kraftfahrzeug verstanden.
-
Unter einer „Blockchain“ wird hier und im Folgenden eine geordnete Datenstruktur verstanden, welche eine Mehrzahl von miteinander verketteten Datenblöcken umfasst. Insbesondere wird unter einer Blockchain eine geordnete Datenstruktur verstanden, bei welcher jeder der Blöcke (außer dem ersten Block) einen Prüfwert, beispielsweise einen Hash-Wert, seines Vorgängerblocks umfasst und somit anhand jedes Blocks die Gültigkeit aller seiner Vorgängerblocks geprüft und ggf. bestätigt werden kann. Beispiele einer Blockchain vergleiche https://en.wikipedia.org/wiki/Block_chain_(database) und „Mastering Bitcoin“, Chapter 7, The Blockchain, Seite 161 ff. Das Konzept der Blockchain wurde beispielsweise im Jahre 2008 in einem White Paper unter dem Pseudonym Satoshi Nakamoto zu Bitcoin beschrieben („Bitcoin: Peer-to-Peer Electronic Cash System“ (https://bitcoin.org/bitcoin.pdf)). Die darin beschriebene Blockchain besteht aus einer Reihe von Datenblöcken, in denen jeweils ein oder mehrere Einträge bzw. Transaktionen zusammengefasst und mit einer Prüfsumme in Form eines Hashwerts versehen sind. Zusätzliche Blöcke der Blockchain werden beispielsweise in einem rechenintensiven Prozess erzeugt, der auch als sogenanntes Mining bezeichnet wird. Diese zusätzlich erzeugten Blöcke werden anschließend der Blockchain hinzugefügt und über ein Netzwerk an alle Teilnehmer, bzw. Knoten des Netzwerks, verbreitet.
-
Ausführungsformen können den Vorteil haben, dass die Blockchain durch die Speicherung kryptografischer Prüfsumme, d.h. Hashwerten, des vorangehenden Blocks im jeweils nachfolgenden Block ein hohes Maß an Sicherheit gegenüber nachträglichen Manipulationen bietet. Bei einer Blockchain werden die Einträge bzw. Transaktionen eines Blocks beispielsweise durch einen Merkle-Baum paarweise miteinander gehasht und nur der letzte auf diese Weise erhaltene Hashwert des Blocks, der sogenannte Root-Hashwert bzw. Wurzelhashwert, als Prüfsumme beispielsweise in einem Header des Blocks vermerkt. Das Verketten der Blöcke kann dann unter Verwendung dieser Root-Hashwerte überprüft werden. Jeder Block der Blockchain enthält in seinem Header beispielsweise den Hash des gesamten vorherigen Blockheaders. Somit wird die Reihenfolge der Blöcke eindeutig festgelegt und es entsteht eine Kettenstruktur. Durch die so implementierte Verkettung der einzelnen Blöcke miteinander wird erreicht, dass ein nachträgliches Modifizieren vorangegangener Blöcke bzw. einzelner Transaktionen praktisch ausgeschlossen ist, da hierfür die Hashwerte aller nachfolgenden Blöcke in kurzer Zeit ebenfalls neu berechnet werden müssten.
-
Der erste Block in der Blockchain ist vorgegeben und wird Genesisblock genannt. Nach Ausführungsformen sind die öffentlichen kryptographischen Schlüssel eines oder mehrerer Provider, welche zum Erstellen von Programmodulen berechtigt sind, in dem Genesisblock gespeichert. Der Genesisblock ist aufgrund der zuvor beschriebenen Kettenstruktur, derjenige Block, dessen Einträge das höchste Maß an Sicherheit aufweisen, da zu seiner Änderung die gesamte Blockchain durch eine neue Blockchain ersetzt werden müsste. Mithin kann der Eintrag des öffentlichen kryptographischen Schlüssels in den Genesisblock einen Vertrauensanker mit einem ausreichenden Maß an Sicherheit darstellen, sodass beispielsweise keine zusätzliche PKI-Prüfung notwendig ist, um der Authentizität des öffentlichen kryptographischen Schlüssels zu vertrauen. Dadurch kann die Sicherheit des Systems auch in einem Offline-Modus gewährt werden.
-
Zudem kann durch eine Anpassung der notwendigen Rechenintensität für die Erstellung jeweils zusätzlicher Blöcke die Sicherheit zusätzlich erhöht werden. Die für die Erstellung zusätzlicher Blöcke notwendige Rechenintensität lässt sich über Anforderungen an den Hashwert des zu erstellenden zusätzlichen Blocks steuern. Der resultierende Hash-Wert ist nicht vorhersagbar, vielmehr handelt es sich um eine zufallsverteilte Zahl. Es lässt sich aber berechnen, wieviel Zeit in Abhängigkeit von der aufgewendeten Rechenleistung im statistischen Mittel zum Auffinden eines gültigen zusätzlichen Blocks notwendig ist. Der Hashwert eines Blocks lässt sich beispielsweise durch Hinzufügen und Variieren eines Nounce variieren. Aufgrund der Kettenstruktur können Daten, die einmal in einer Blockchain gespeichert sind, nicht mehr geändert oder entfernt werden, ohne große Teile der Blockchain zu ersetzen. Eine solche Ersetzung scheidet jedoch als Folge einer ausreichend rechenintensiven Generierung zusätzlicher Blöcke aus. Bekannte Ausführungsformen einer Blockchain, wie etwa im Fall der Kryptowährung Bitcoin, basieren auf einer Anonymität der an den Transaktionen beteiligten Partner. Demgegenüber kann durch oben beschriebene Signatur der in die Transaktionen eingetragenen Hashwerte, deren Authentizität belegt und ihr Ursprung nachgewiesen werden. Hierdurch kann die Fälschungssicherheit verbessert werden.
-
Eine Anforderung an einen gültigen Block kann beispielsweise darin bestehen, dass der Hashwert des Headers des Blocks kleiner gleich einem Grenzwert ist. Die Hashwertberechnung kann beispielsweise mit dem Secure Hash Algorithm (SHA) SHA 256 erfolgen. Der resultierende Hash-Wert ist in diesem Fall eine Zufallszahl zwischen 0 und 2256-1. Die Wahrscheinlichkeit, dass beim Anwenden des Hashalgorithmus einen bestimmten Hash herauskommt, ist somit (maximaler Hash-Wert+1)-1, im Falle des SHA 256-Algorithums also 2-256 . Die Wahrscheinlichkeit, dass der resultierende Hash-Wert kleiner gleich einem Grenzwert bzw. Zielwert (engl. target) ist, beträgt daher (target)/(max. Hash-Wert). Für einen beispielhaften maximalen Grenzwert von (216-1)·2208 beträgt die Wahrscheinlichkeit [(216-1)·2208]/2256 ≈ 2-32. Die Schwierigkeit S eine Hash-Wert zu erhalten, welcher kleiner gleich einem gewählten Grenzwert bzw. target ist, kann in Abhängigkeit eines maximalen Grenzwerts bzw. max. target wie folgt angegeben werden: S = (max. target)/target. Mithin ist die Wahrscheinlichkeit einen Hash-Wert zu erhalten, welcher kleiner gleich dem gewählten Grenzwert ist, für das zuvor gegebene Beispiel: 2-32/S. Als Beispiel sei ein Computersystem mit einer bestimmten Hashrate betrachtet, welches im Durchschnitt alle x·Sek. einen Hash-Wert findet, welcher kleiner gleich dem gewählten Grenzwert ist. Soll das Computersystem anstelle aller x·Sek. im Durchschnitt alle y·Sek. einen Treffer erzielen, so kann die Schwierigkeit entsprechend angepasst werden: Sy=(x/y)·S. Entsprechende Anpassungen der Schwierigkeit können auch dazu verwendet werden die Trefferrate bei Veränderungen des Computersystems, z.B. Veränderungen der Rechenleistung durch Erhöhen oder Verringern der Anzahl an Blockchain-Servern, konstant zu halten. Wird die Schwierigkeit so angepasst, dass alle y·Sek. ein Treffer erzielt wird, kann die Hashrate R des Computersystems wie folgt parametrisiert werden: R = (232·S)/(y·Sek.).
-
Werden gültige Blöcke durch ein rechenintensive Verfahren, wie das zuvor Beschriebene erzeugt, so vertrauen die Teilnehmer des Blockchain-Netzwerks der längsten gültigen Blockchain, da hinter dieser die meiste Rechenleistung steht und somit angenommen werden kann, dass diese von der Mehrheit der Teilnehmer als gültig anerkannt wird. Kommt es beispielsweise dazu, dass ein Fork, d.h. eine Verzweigung, in der Blockchain entsteht, setzt sich irgendwann der Fork mit der größeren Kettenlänge durch, da anzunehmen ist, dass hinter diesem die Mehrheit der Teilnehmer steht.
-
Eine Blockchain kann beispielsweise auch in Form einer privaten Blockchain implementiert werden, wobei nur eine ausgewählte Gruppe von Teilnehmern eine Berechtigung zum Hinzufügen gültiger Blöcke besitzt. Eine entsprechende Berechtigung kann beispielsweise mittels einer Signatur unter Verwendung eines privaten kryptographischen Schlüssels nachgewiesen werden. Der private kryptographische Schlüssel kann zu einem asymmetrischen Schlüsselpaar gehören, zu welchem auch ein öffentlicher kryptographischer Schlüssel gehört, mit dem die Signatur geprüft werden kann. Dem asymmetrischen Schlüsselpaar kann zudem beispielsweise ein Zertifikat zugeordnet sein, welches die Berechtigung zum Erzeugen eines gültigen Blocks der Blockchain belegt. Dieses Zertifikat kann ferner einer PKI zugeordnet sein, welche die Authentizität des Zertifikats belegt. Nach einer weiteren Ausführungsform kann beispielsweise für jeden Teilnehmer aus der ausgewählte Gruppe ein öffentlicher Schlüssel in der Blockchain hinterlegt sein, beispielsweise in einem Genesisblock. Anhand dieser öffentlichen Schlüssel kann geprüft werden, ob Signaturen von Blöcken und damit die entsprechenden Blöcke selbst gültig sind.
-
Ein Konsens kann auch auf andere Weise in einer Blockchain implementiert werden. So kann etwa ein Konsens erreicht werden, indem über eine Aufnahme vorgeschlagener Einträge in die Blockchain abgestimmt wird. Beispielsweise führt jeder Teilnehmer eine eindeutige Liste anderer Teilnehmer, welchen er als Gruppe vertraut. Jeder Teilnehmer kann zusätzliche Einträge vorschlagen, die in einen zusätzlichen Block der Blockchain aufgenommen werden sollen. Über die Aufnahme und damit die Anerkennung der Gültigkeit der vorgeschlagenen Einträge wird abgestimmt. So stimmt beispielsweise jeder Teilnehmer nur über diejenigen Vorschläge ab, welche von Teilnehmer seiner Liste stammen. Mit anderen Worten werden für die Entscheidung, ob ein Vorschlag für einen zusätzlichen Eintrag als gültig anerkannt wird, d.h. ob bezüglich der Gültigkeit dieses Eintrages ein Konsens zwischen den Teilnehmern besteht, nur die Stimmen derjenigen Teilnehmer berücksichtig, die von der Liste desjenigen Teilnehmers umfasst sind, der den entsprechenden Vorschlag macht. Damit ein Vorschlag für einen Eintrag als gültig angenommen wird, muss ein bestimmter Minimumanteil an stimmberechtigten Teilnehmern mit Ja stimmen, beispielsweise 80%. Alle vorgeschlagenen Einträge, die dieses Kriterium erfüllen werden in die Blockchain aufgenommen. Eine solche Abstimmung kann mehrere Runden umfassen. Alle anderen Vorschläge, die das zuvor genannte Kriterium nicht erfüllen, werden verworfen oder bei der Abstimmung über den nächsten Block der Blockchain erneut zur Abstimmung gestellt. Die zuvor genannten Listen stellen Untergruppen des Blockchain-Netzwerks dar, denen der Teilnehmer, welcher die jeweilige Liste führt, als Gruppe insgesamt traut, ohne dass dies erfordert, dass er jedem einzelnen Teilnehmer der Liste traut. Ein Beispiel für ein solches Konsensverfahren bietet der Ripple Protokoll Konsens Algorithmus (David Schwartz et al.: „The Ripple Protocol Consensus Algorithm", Ripple Labs Inc., 2014, https://ripple.com/files/ripple_consensus_whitepaper.pdf).
-
Beispielsweise kann es sich bei der Blockchain um eine private oder öffentliche Blockchain handeln. Beispielsweise handelt es sich um eine Bitcoin-, Litecoin- oder Ethereum-Blockchain.
-
Ein „Programmmodul“ bezeichnet hier ein eigenständiges Programm, welches in einer Blockchain gespeichert ist. Das Programmmodul kann dazu konfiguriert sein das Erstellen von dem Programmmodul zugeordneten Einträgen in der Blockchain zu steuern. Das Programmodul kann in einem Block der Blockchain oder über mehrere Blöcke der Blockchain verteilt gespeichert sein. Jedem Fahrzeug ist beispielsweise ein individuelles Programmmodul zugeordnet. Bei der Blockchain handelt es sich beispielsweise um eine spezielle Fahrzeugblockchain. Bei einem Programmmodul kann es sich beispielsweise um einen „smart contract“ handeln, wie er beispielsweise in der Open Source Ethereum Blockchain implementierbar ist.
-
Unter einem „Programm“ bzw. „Programminstruktionen“ wird hier ohne Einschränkung jede Art von Computerprogramm verstanden, welches maschinenlesbare Instruktionen zur Steuerung einer Funktionalität des Computers umfasst.
-
Unter einem „Zertifikat“ wird hier ein digitales Zertifikat verstanden, welches auch als Public-Key-Zertifikat bezeichnet wird. Durch solche Zertifikate basierend auf asymmetrischen Schlüsselpaaren wird eine so genannte Public Key Infrastructure (PKI) realisiert. Bei einem solchen Zertifikat handelt es sich um strukturierte Daten, die dazu dienen, einen öffentlichen Schlüssel eines asymmetrischen Kryptosystems einer Identität, wie zum Beispiel einer Person oder einer Vorrichtung, zuzuordnen. Ein Zertifikat kann beispielsweise einen öffentlichen Schlüssel beinhalten und signiert sein. Alternativ sind auch Zertifikate basierend auf zero-knowledge Kryptosystemen möglich. Beispielsweise kann das Zertifikat dem Standard X.509 oder einem anderen Standard entsprechen. Beispielsweise handelt es sich bei dem Zertifikat um ein CV-Zertifikat oder auch Card Verifiable Certificate (CVC). Eine Implementierung von solchen CVCs ist beispielsweise in der ISO/IEC 7816-8 spezifiziert.
-
Die PKI stellt ein System zum Ausstellen, Verteilen und Prüfen digitaler Zertifikate. Ein digitales Zertifikat dient in einem asymmetrischen Kryptosystem dazu die Authentizität eines öffentlichen Schlüssels und seinen zulässigen Anwendungs- und Geltungsbereich zu bestätigen. Das digitale Zertifikat ist selbst durch eine digitale Signatur geschützt, deren Echtheit mit dem öffentlichen Schlüssel des Ausstellers des Zertifikates geprüft werden kann. Um die Authentizität des Ausstellerschlüssels zu prüfen, wird wiederum ein digitales Zertifikat verwendet. Auf diese Weise lässt sich eine Kette von digitalen Zertifikaten aufbauen, die jeweils die Authentizität des öffentlichen Schlüssels bestätigen, mit dem das vorhergehende Zertifikat geprüft werden kann. Eine solche Kette von Zertifikaten bildet einen sogenannten Validierungspfad oder Zertifizierungspfad. Auf die Echtheit des letzten Zertifikats, des sogenannten Wurzelzertifikats, und des durch dieses Zertifikat zertifizierten Schlüssels, müssen sich die Teilnehmer der PKI ohne ein weiteres Zertifikat verlassen können. Das Wurzelzertifikat wird von einer sogenannten Wurzelzertifizierungsinstanz verwaltet, auf deren als gesichert vorausgesetzten Authentizität die Authentizität aller Zertifikate der PKI zurückgeht.
-
Digitale Zertifikate sind bei der Absicherung elektronischer Kommunikation durch asymmetrische kryptographische Verfahren ein bewährtes Mittel um Berechtigungen nachzuweisen. Zertifikate sind strukturierte Daten, die die Authentizität und/oder weitere Eigenschaften/Berechtigungen des Eigentümers eines öffentlichen Schlüssels (Signaturprüfschlüssel) dokumentieren und durch eine unabhängige, glaubwürdige Instanz (Zertifizierungsdienstanbieter/ZDA), im Allgemeinen die das Zertifikat zuteilende Zertifizierungsstelle, bestätigen. Zertifikate werden in der Regel einem breiten Personenkreis zur Verfügung gestellt um diesem eine Prüfung elektronischer Signaturen auf Authentizität und Gültigkeit zu ermöglichen.
-
Ein Zertifikat kann einer elektronischen Signatur zugeordnet sein, wenn der zu dem öffentlichen Schlüssel gehörende private Schlüssel zur Generierung der zu prüfenden elektronischen Signatur verwendet wurde. Dadurch, dass ein ZDA ein Zertifikat in Assoziation mit einem öffentlichen Schlüssel der Allgemeinheit zur Verfügung stellt, ermöglicht ein ZDA den Nutzern asymmetrischer Kryptosysteme den öffentlichen Schlüssel einer Identität, beispielsweise einer Person, einer Organisation, einem Energie- oder Computersystem, zuzuordnen.
-
Asymmetrische Schlüsselpaare werden für eine Vielzahl von Kryptosystemen eingesetzt und spielen auch bei der Signatur elektronischer Dokumente eine wichtige Rolle. Ein asymmetrisches Schlüsselpaar besteht aus einem öffentlichen Schlüssel, welcher zur Ver- und/oder Entschlüsselung von Daten verwendet wird und an Dritte, beispielsweise an einen Dienstanbieter, weitergegeben werden darf sowie einem privaten Schlüssel, welcher zur Ver- und/oder Entschlüsselung von Daten verwendet wird und im Regelfall geheim gehalten werden muss. Der öffentliche Schlüssel ermöglicht es jedermann, Daten für den Inhaber des privaten Schlüssels zu verschlüsseln, digitale Signaturen von dessen Dokumenten zu prüfen oder ihn zu authentifizieren. Ein privater Schlüssel ermöglicht es seinem Inhaber, mit dem öffentlichen Schlüssel verschlüsselte Daten zu entschlüsseln oder digitale Signaturen für elektronische Dokumente zu erstellen. Eine mit einem privaten Schlüssel erstellte Signatur kann mit dem zugehörigen öffentlichen Schlüssel verifiziert werden.
-
Digitale Signaturen werden zum sicheren elektronischen Datenaustausch, beispielsweise im Internet, eingesetzt und ermöglichen die Prüfung von Identitäten und/oder Berechtigungen und der Unverfälschtheit der ausgetauschten Daten. Um dies zu gewährleisten, ist in der Regel eine Public-Key-Infrastruktur notwendig, die die Gültigkeit der verwendeten Schlüssel durch Zertifikate bestätigt.
-
Die Erstellung einer digitalen Signatur, im Folgenden auch lediglich als „Signatur“ bezeichnet, ist ein kryptographisches Verfahren, bei dem zu beliebigen Daten, zum Beispiel einem elektronischen Dokument, ein weiterer Datenwert, welcher als „Signatur“ bezeichnet wird, berechnet wird. Die Signatur kann zum Beispiel ein verschlüsselter Hashwert des elektronischen Dokumentes sein, insbesondere ein mit einem privaten Schlüssel eines einem Zertifikat zugeordneten kryptographischen Schlüsselpaares verschlüsselter Hashwert. Ein entsprechendes Verschlüsseln eines Hashwerts wird mithin als Signieren des Hashwerts bezeichnet. Die Besonderheit einer solchen Signatur besteht darin, dass deren Urheberschaft und Zugehörigkeit zu einer bestimmten Person oder Instanz durch jeden Dritten geprüft werden kann.
-
Unter einer digitalen Signatur wird hier auch ein digitales Siegel verstanden, welches nicht einer natürlichen Person, sondern einer juristischen Person zugeordnet ist. Ein digitales Siegel dient somit nicht der Abgabe einer Willenserklärung einer einzelnen Person, sondern einer Institution als Herkunftsnachweis. Es kann somit den Ursprung und die Unversehrtheit digitaler Dokumente sicherstellen und nachweisen, dass diese von einer bestimmten juristischen Person stammen.
-
Unter einem „Speicher“ werden hier sowohl flüchtige als auch nicht flüchtige elektronische Speicher bzw. digitale Speichermedien verstanden.
-
Unter einem „nichtflüchtigen Speicher“ wird hier ein elektronischer Speicher zur dauerhaften Speicherung von Daten verstanden. Ein nichtflüchtiger Speicher kann als nichtänderbarere Speicher konfiguriert sein, der auch als Read-Only Memory (ROM) bezeichnet wird, oder als änderbarer Speicher, der auch als Non-Volatile Memory (NVM) bezeichnet wird. Insbesondere kann es sich hierbei um ein EEPROM, beispielsweise ein Flash-EEPROM, kurz als Flash bezeichnet, handeln. Ein nichtflüchtiger Speicher zeichnet sich dadurch aus, dass die darauf gespeicherten Daten auch nach Abschalten der Energieversorgung erhalten bleiben.
-
Unter einem „flüchtigen elektronischen Speicher“ wird hier ein Speicher zur vorübergehenden Speicherung von Daten, welcher dadurch gekennzeichnet ist, dass alle Daten nach dem Abschalten der Energieversorgung verloren gehe. Insbesondere kann es sich hierbei um einen flüchtigen Direktzugriffsspeicher, der auch als Random-Access Memory (RAM) bezeichnet wird, oder einen flüchtigen Arbeitsspeicher des Prozessors handeln.
-
Unter einem „geschützten Speicherbereich“ wird hier ein Bereich eines elektronischen Speichers verstanden, auf den ein Zugriff, das heißt ein Lesezugriff oder ein Schreibzugriff, nur über einen Prozessor des entsprechenden elektronischen Geräts möglich ist. Nach Ausführungsformen ist der Zugriff von dem mit dem Speicher gekoppelten Prozessor nur dann möglich, wenn eine hierzu erforderliche Bedingung erfüllt ist. Hierbei kann es sich zum Beispiel um eine kryptografische Bedingung, insbesondere eine erfolgreiche Authentisierung und/oder eine erfolgreiche Berechtigungsprüfung, handeln.
-
Unter einem „Prozessor“ wird hier und im Folgenden eine Logikschaltung verstanden, die zur Ausführung von Programminstruktionen dient. Die Logikschaltung kann auf einem oder mehreren diskreten Bauelementen implementiert sein, insbesondere auf einem Chip. Insbesondere wird unter einem „Prozessor“ ein Mikroprozessor oder ein Mikroprozessorsystem aus mehreren Prozessorkernen und/oder mehreren Mikroprozessoren verstanden.
-
Unter einer „Schnittstelle“ wird hier eine Schnittstelle verstanden, über die Daten empfangen und gesendet werden können, wobei die Kommunikationsschnittstelle kontaktbehaftet oder kontaktlos konfiguriert sein kann. Bei der Kommunikationsschnittstelle kann es sich um eine interne Schnittstelle oder um eine externe Schnittstelle handeln, welche beispielsweise mittels eines Kabels oder kabellos mit einem zugeordneten Gerät verbunden ist.
-
Eine Kommunikation kann beispielsweise über ein Netzwerk erfolgen. Unter einem „Netzwerk“ wird hier jedes Übertragungsmedium mit einer Anbindung zur Kommunikation verstanden, insbesondere eine lokale Verbindung oder ein lokales Netzwerk, insbesondere ein Local Area Network (LAN), ein privates Netzwerk, insbesondere ein Intranet, und ein virtuelles privates Netzwerk (Virtual Private Network - VPN). Beispielsweise kann ein Computersystem eine Standardfunkschnittstelle zur Anbindung an ein WLAN aufweisen. Ferner kann es sich um ein öffentliches Netzwerk, wie beispielsweise das Internet handeln. Je nach Ausführungsform kann diese Verbindung auch über ein Mobilfunknetz hergestellt werden.
-
Unter einem „Mobilfunknetzwerk“ wird hier und im Folgenden ein digitales zellulares Mobilfunknetzwerk verstanden, welches nach einem Mobilfunkstandard wie zum Beispiel GSM, UMTS, LTE, CDMA oder einem anderen Standard aufgebaut sein kann.
-
Nach Ausführungsformen umfasst das Fahrzeug zumindest einen Sensor zum Erfassen von Zustandsdaten des Fahrzeugs. Die Zustandsdaten des Fahrzeugs werden durch das Fahrzeugcomputersystem von dem zumindest einen Sensor empfangen. Nach Ausführungsformen umfasst das Fahrzeug eine Mehrzahl von Sensoren zum Erfassen von Zustandsdaten des Fahrzeugs. Ausführungsformen können den Vorteil haben, dass die fahrzeugeigene Sensorik genutzt werden kann, um den Zustand des Fahrzeugs zu erfassen. Bei dem Zustand des Fahrzeugs kann beispielsweise beschrieben werden durch Angaben zu Kenngrößen des aktuellen Leistungsvermögens des Fahrzeugs, Kilometerstand des Fahrzeugs, Fehlermeldungen, Ergebnisse vordefinierter Prüfprotokolle und/oder Kennungen von Fahrzeugkomponenten.
-
Kenngrößen des aktuellen Leistungsvermögens können zum Beispiel Drehzahl, Geschwindigkeit, Kraftstoffverbrauch, Abgaswerte, Getriebegang sein. Fehlermeldungen können von dem Fahrzeugcomputersystem unter Verwendung eines Fehlererkennungsprotokolls identifizierte Fehlfunktionen, d.h. Abweichungen durch Sensoren erfasster Messwerte von vordefinierten Werten oder Wertebereichen, angeben. Ein vordefiniertes Prüfprotokoll kann einzelne Komponenten abfragen und auf Basis der erhaltenen oder nicht erhaltenen Antworten eine Liste erstellen, welche nicht oder nicht wie erwartetet funktionierende Komponenten identifiziert.
-
Beispielsweise fragt das Fahrzeugcomputersystem Kennungen von Komponenten der Fahrzeugelektronik ab, wie etwa Serien-, Typ- und/oder Herstellerkennungen, die in den Komponenten der Fahrzeugelektronik gespeichert sind. Nach Ausführungsformen kann aus den Kennungen der einzelnen Komponenten eine Kennung des Fahrzeugs berechnet werden. Diese Kennung ist ein Charakteristikum dieses Fahrzeugs, welches die konkrete Zusammenstellung seiner Komponenten und damit den Zustand des Fahrzeugs definiert. Es handelt sich gewissermaßen um einen „Fingerabdruck“ des Fahrzeugs.
-
Nach Ausführungsformen sind in die Kennungen der Komponenten der Fahrzeugelektronik jeweils in einem Speicher der jeweiligen Komponente, beispielsweise in einem geschützten Speicherbereich des Speichers, gespeichert und werden kryptographisch gesichert an das Fahrzeugcomputersystem übertragen.
-
Unter einem „Sensor“ wird hier ein Element zum Erfassen von Messdaten verstanden. Messdaten sind Daten, welche physikalische oder chemische Eigenschaften eines Messobjekts, wie beispielsweise Wärmemenge, Temperatur, Feuchtigkeit, Druck, Schallfeldgrößen, Helligkeit, Beschleunigung, pH-Wert, lonenstärke, elektrochemisches Potential, und/oder dessen stoffliche Beschaffenheit qualitativ oder quantitativ wiedergeben. Messdaten werden mittels physikalischer oder chemischer Effekte erfasst und in ein elektronisch weiterverarbeitbares elektrisches Signal umgeformt. Ferner können Messdaten Zustände und/oder Zustandsänderung von elektronischen Geräten durch Außeneinflüsse und/oder in Folge einer Benutzung durch einen Nutzer wiedergeben.
-
Sensoren zum Erfassen von Zustandsdaten in einem Fahrzeug können beispielsweise umfassen: Kurbelwellensensor, Nockenwellensensor, Luftmassenmesser, Lufttemperatursensor, Kühlwassertemperatursensor, Drosselklappensensor, Klopfsensor, Getriebesensor, Wegstreckensensor, Getriebesensor, Niveausensor, Bremsverschleißsensor, Achslastsensor, Lenkwinkelsensor. Diese Sensoren erfassen und überwachen das Fahrverhalten des Fahrzeugs. Aus Abweichungen von Sollwerten und/oder einem Auftreten von bestimmter Muster lassen sich Fehlfunktionen erkennen und identifizieren. Teils lassen sich auch konkrete Fehlerursachen, wie ausgefallene Komponenten des Fahrzeugs, identifizieren. Sensoren können zudem auch Kennungen elektronischer Komponenten, die in das Fahrzeug eingebaut sind abfragen, um deren Identität zu prüfen.
-
Nach Ausführungsformen umfassen die Zustandsdaten den Kilometerstand des Fahrzeugs. Ausführungsformen können den Vorteil haben, dass der Kilometerstand eine einfach zu erfassende Kenngröße zur Erfassung des Zustands eines Fahrzeugs darstellt. Insbesondere ist der Kilometerstand bei einem Verkauf eines gebrauchten Fahrzeugs eine maßgebliche Größe zur Bewertung des Fahrzeugs und zur Ermittlung eines Kaufpreises. Insbesondere wird durch die Protokollierung der Kilometerstände des Fahrzeugs mit Zeitstempeln in der Blockchain eine fälschungssichere Zusammenfassung der zeitlichen Entwicklung des Kilometerstands bereitgestellt. Bei einer geeigneten Wahl der Protokollierungsintervalle kann somit sichergestellt werden, dass es zu keinen maßgeblichen Manipulationen gekommen ist. Wird der Kilometerstand derart manipuliert, dass er kleiner als der zuletzt protokollierte Kilometerstand ist, wird die Manipulation bei Prüfung der Blockchaineinträge leicht erkennbar. Ferner lässt sich an der Entwicklung der der Kilometerstände die Nutzungshistorie des Fahrzeugs nachvollziehen. Wurde es regelmäßig bzw. gleichmäßig genutzt oder unregelmäßig genutzt, d.h. gab es längere Ruhephasen und Zeiten sehr intensiver Nutzung, welche auf eine erhöhte Belastung des Fahrzeugs hindeuten können.
-
Über die Protokollierung der Kilometerstände lässt sich beispielsweise auch ein fälschungssicheres Fahrtenbuch in einfacherer Weise implementieren. Hierfür wird der Kilometerstand zumindest jeweils bei Beendigung einer Fahrt, beispielsweise auf ein Ausschalten der Zündung durch den Fahrzeugführer hin protokolliert. Zusätzlich kann auch der Kilometerstand zu Beginn der Fahrt, z.B. bei Einschalten der Zündung, mitprotokolliert werden. Ferner können der Ausgangs- und/oder Zielort der Fahrt automatisch miterfasst werden. Informationen über den aktuellen Aufenthaltsort werden beispielsweise durch ein Navigationssystem des Fahrzeugs bereitgestellt. Nach Ausführungsformen fordert das Fahrzeug den Fahrer schließlich auf seinen Namen und sowie den Zweck der Fahrt anzugeben. Die Eingabe kann über eine entsprechende Eingabeschnittstelle des Fahrzeugs erfolgen. Beispielsweise wird mittels Spracherkennung erfasst, was der Fahrer mündlich auf die Aufforderung hin erwidert. Nach Ausführungsformen authentifiziert sich der Nutzer gegenüber dem Fahrzeug mit einem ID-Token. Die als Eintrag des Fahrtenbuchs zusammengefassten Angaben werden beispielweise vollständig oder zumindest teilweise verschlüsselt an die Blockchain übertragen und dort eingetragen. Die Verschlüsselung erfolgt beispielsweise mit einem privaten oder öffentlichen kryptographischen Schlüssel eines asymmetrischen Schlüsselpaars, welches dem Fahrtenbuch zugeordnet ist. Somit kann nur wer über den zweiten Schlüssel des asymmetrischen Schlüsselpaars, d.h. den öffentlichen bzw. privaten kryptographischen Schlüssel verfügt, den Inhalt der Fahrtenbucheinträge im Entschlüsseln und im Klartext lesen. Nach Ausführungsformen werden Zeitstempel und Kilometerstände unverschlüsselt gespeichert, während persönliche Daten wie Ausgangs- und/oder Zielort, Namen des Fahrers oder Zweck der Fahrt verschlüsselt werden.
-
Nach Ausführungsformen umfassen die Zustandsdaten eine Störmeldung des Fahrzeugs. Ausführungsformen können den Vorteil haben, dass anhand der Blockchain nachvollzogen werden kann, wann welche Störungen aufgetreten sind. Somit lässt sich aus der Blockchain ohne viel Aufwand ablesen, ob das Fahrzeug in der Vergangenheit störanfällig war, welche Fehler aufgetreten sind und es lassen sich beim Auftreten neuer Fehler mögliche Zusammenhänge mit bereits in der Vergangenheit aufgetretenen Problemen erkennen und somit Fehlerursachen besser identifizieren.
-
Nach Ausführungsformen umfassen die Zustandsdaten eine Software-ID eines Softwareupdates des Fahrzeugcomputersystems. Ausführungsformen können den Vorteil haben, dass das nachvollzogen werden kann, wann welche Software bzw. Softwareversion auf dem Fahrzeugcomputersystem installiert war. Da in modernen Fahrzeugen die Fahrzeugsoftware weiterreichenden Einfluss auf die Steuerung der technischen Komponenten, wie etwa den Motor, besitzt, kann eine Identifikation der Software wichtige Informationen zum Zustand und das Funktionsverhalten des Fahrzeugs liefern.
-
Nach Ausführungsformen umfassen die Zustandsdaten eine einer Mehrzahl von Elektronikkomponenten des Fahrzeugs zugeordnete Kennung. Ausführungsformen können den Vorteil haben, dass die Kennung eine Kombination von Elektronikkomponenten kennzeichnet. Diese Kennung kann beispielsweise aus Serien-, Typ- und/oder Herstellerkennungen, die in den Komponenten der Fahrzeugelektronik gespeichert sind, berechnet werden. Es kann sich bei dieser Kennung somit beispielsweise um eine dem individuellen Fahrzeug zugeordnete Kennung handeln, welche ein Charakteristikum des Fahrzeugs darstellt, das durch die konkrete Kombination der Elektronikkomponenten definiert ist. Mit anderen Worten kann die Kombination der Elektronikkomponenten eine Art „Fingerabdruck“ des Fahrzeugs darstellen.
-
Anhand der Kennung können sich insbesondere Änderung in der Zusammensetzung der Elektronikkomponenten des Fahrzeugs erkennen lassen. Beispielsweise umfasst jede der Elektronikkomponenten eine eigene Kennung. Hierbei kann es sich beispielsweise um eine individuelle Kennung handeln. Wird eine Komponente entfernt und/oder ausgetauscht ändert sich die Kombination der Elektronikkomponenten und damit die zugeordnete Kennung. Somit können die Elektronikkomponenten selbst als Sensoren zum Erfassen einer Zusammensetzung von Elektronikkomponenten in dem Fahrzeug verstanden werden. Nach Ausführungsformen umfassen die Zustandsdaten eine Mehrzahl von Kennungen einzelner Elektronikkomponenten. Nach Ausführungsformen umfassen die Zustandsdaten im Falle einer Änderung einer Kennung, die einer Mehrzahl von Elektronikkomponenten zugeordnet ist, Kennungen einzelner Elektronikkomponenten der Mehrzahl von Elektronikkomponenten, welche sich geändert haben.
-
Nach Ausführungsformen empfängt das Fahrzeugcomputersystems die Zustandsdaten von einem Computersystem einer Werkstatt. Die von dem Computersystem der Werkstatt empfangenen Zustandsdaten sind signiert mit einem privaten kryptographischen Schlüssel eines der Werkstatt zugeordneten asymmetrischen Schlüsselpaars. Das Verfahren umfasst ferner: Prüfen der Signatur der von der Werkstatt empfangenen Daten unter Verwendung eines öffentlichen kryptographischen Schlüssels des der Werkstatt zugeordneten asymmetrischen Schlüsselpaars und, im Falle einer gültigen Signatur, Verwenden der von der Werkstatt empfangenen Daten zum Erstellen des ersten Datensatzes. Ausführungsformen können den Vorteil haben, dass zusätzliche Daten zum Zustand des Fahrzeugs von der Werkstatt bereitgestellt und in die Blockchain eingetragen werden können. Diese zusätzlichen Zustandsdaten können beispielsweise von der Werkstatt ausgeführte Reparatur- und Wartungsarbeiten betreffen. Beispielsweise wird der Grund einer Reparatur, d.h. der behobene Fehler, sowie die durchgeführten Reparaturmaßnahmen, z.B. ersetzten Fahrzeugteile, angegeben. Nach Ausführungsformen umfassen die Daten Kennungen von ausgebauten sowie von neu eingebauten Fahrzeugteilen. Zudem können die von der Werkstatt bereitgestellten Daten Zustände des Fahrzeugs beschreiben, welche nicht von fahrzeugeigenen Sensoren erfasst werden, wie etwa eine Beschädigung einer Windschutzscheibe durch Steinschlag oder einen Blechschaden.
-
Zudem können auf diese Weise Daten zu durchgeführten Wartungsarbeiten gemäß einem vordefinierten Serviceplan, auch Wartungsplan genannt, gespeichert werden. Der Serviceplan wird vom Hersteller des Fahrzeugs vorgegeben und kann neben dem Fahrzeugmodell vom Intervall oder der Intensität der Nutzung abhängen. Die Wartung kann dabei insbesondere auf verschiedene Prüfpunkte ausgelegt sein, die auf vermuteten oder erkannten Schwächen beruhen. Unter anderem werden dabei beispielsweise die Abnutzung und die Wahrscheinlichkeit technischer Defekte berücksichtigt. Insbesondere kann die Wartung ein auch ein Softwareupdate umfassen.
-
Der Serviceplan dient vorwiegend zur Erhaltung der Funktionsfähigkeit und der Betriebssicherheit des Fahrzeugs. Zudem kann die Einhaltung der Serviceintervalle durch autorisierte Werkstätten eine Grundvoraussetzung für die Gewährleistung seitens des Herstellers sein. Anhand der Blockchain lässt sich somit ablesen, ob der Serviceplan eingehalten wurde und/oder welche Maßnahmen im Zuge der Wartung von der Werkstatt durchgeführt wurden.
-
Nach Ausführungsformen umfasst der erste Datensatz zusätzlich eine Werkstatt-ID als Ursprung der Zustandsdaten. Ausführungsformen können den Vorteil haben, dass das sich eindeutig identifizieren lässt, durch wen welche zusätzlichen Daten zur Verfügung gestellt wurden. Beispielsweise ist so ersichtlich, ob Reparatur und/oder Wartungsarbeiten durch eine autorisierte Werkstatt durchgeführt wurden.
-
Nach Ausführungsformen umfasst der erste Datensatz als Werkstatt-ID die Signatur der von dem Computersystem einer Werkstatt empfangen Zustandsdaten. Ausführungsformen können den Vorteil haben, dass die Identität der Werkstatt durch die Signatur an den Datensatz gebunden wird und sich diese mittels eines öffentlichen kryptographischen Schlüssels der Werkstatt, welcher einem zum Erstellen der Signatur verwendeten geheimen kryptographischen Schlüssel zugeordnet ist, auf ihre Authentizität hin prüfen lässt.
-
Nach Ausführungsformen umfassen die von dem Computersystem der Werkstatt empfangenen Zustandsdaten Daten über ausgeführte Wartungs- und/oder Reparaturmaßnahmen.
-
Nach Ausführungsformen umfassen die von dem Computersystem der Werkstatt empfangenen Zustandsdaten zumindest eine Fahrzeugteile-ID eines ausgetauschten Fahrzeugteils. Ausführungsformen können den Vorteil haben, dass nachvollzogen werden kann, welche Fahrzeugteil ein Fahrzeug tatsächlich umfasst. Diese Angaben können beispielsweise im Falle von elektronischen Komponenten beispielsweise den Kennungen der Komponenten abgeglichen werden, welche das Fahrzeugcomputersystem erfasst und in der Blockchain speichert. So lassen sich effektive Unstimmigkeiten und mögliche Manipulationen aufdecken.
-
Nach Ausführungsformen umfasst die Blockchain einen Eintrag mit der Fahrzeug-ID und dem öffentlichen kryptographischen Schlüssel des dem Fahrzeug zugeordneten asymmetrischen Schlüsselpaars. Ausführungsformen können den Vorteil haben, ein leichter Zugriff auf den öffentlichen kryptographischen Schlüssel des Fahrzeugs und eine effiziente Überprüfung der Signatur der Datensätze des Fahrzeugs ermöglicht wird. Somit lassen sich allein auf Basis der Blockchain die Datensätze des Fahrzeugs auf ihre Authentizität hin prüfen.
-
Nach Ausführungsformen erfolgt das Erstellen des ersten Datensatzes nach Ablauf eines vordefinierten Zeitintervalls. Ausführungsformen können den Vorteil haben, dass Daten in regelmäßigen Intervallen in die Blockchain eingefügt werden.
-
Nach Ausführungsformen erfolgt das Erstellen des ersten Datensatzes auf den Empfangen der Zustandsdaten, wenn die Zustandsdaten ein vordefiniertes Kriterium erfüllen. Ausführungsformen können den Vorteil haben, dass das Erstellen eines Datensatzes und dessen Einfügen in die Blockchain beispielsweise nutzungs- oder ereignisabhängig erfolgen kann. Ein Datensatz wird beispielsweise auf eine bestimmte Fehlermeldung hin erzeugt und umfasst diese Fehlermeldung ggf. zusammen mit weiteren Sensordaten, aus denen sich der Fahrzeugzustand bei Auftreten der Fehlermeldung ableiten lässt.
-
Nach Ausführungsformen ist das Kriterium ein Erreichen eines vordefinierten Kilometerstands. Ausführungsformen können den Vorteil haben, dass sich aus den in der Blockchain gespeicherten Daten ablesen lässt, zu welchem Zeitpunkt und in welchen zeitlichen Abständen bestimmte Kilometerstände erreicht wurden. Dies hat den Vorteil, dass die Menge an Blockchaineinträgen im Falle einer nur geringen Nutzung eines Fahrzeugs ebenfalls entsprechend begrenzt bleibt, wodurch die zum Speichern der Blockchain benötige Speichergröße begrenzt werden kann.
-
Nach Ausführungsformen identifiziert das Programmmodul den öffentlichen kryptographischen Schlüssel des der Werkstatt zugeordneten asymmetrischen Schlüsselpaars. Zudem ist in einem Speicher des Computersystems der Werkstatt, beispielsweise in einem geschützten Speicherbereich des Speichers, der private kryptographische Schlüssel des der Werkstatt zugeordneten asymmetrischen Schlüsselpaars gespeichert. Ferner umfasst das Computersystem der Werkstatt eine Kommunikationsschnittstelle zur Kommunikation über ein erstes Kommunikationsnetzwerk. Das Verfahren umfasst ferner:
- • Erstellen eines zweiten Datensatzes zum Eintragen in die Blockchain durch das Computersystem der Werkstatt, wobei der zweite Datensatz Zustandsdaten des Fahrzeugs umfasst und das dem Fahrzeug zugeordnete Programmmodul identifiziert,
- • Signieren des zweiten Datensatzes durch das Computersystem der Werkstatt mit dem privaten kryptographischen Schlüssel der Werkstatt,
- • Senden des signierten zweiten Datensatzes durch das Computersystem der Werkstatt über das erste Kommunikationsnetzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen des signierten zweiten Datensatzes durch den Blockchain-Server,
- • Ausführen der ersten Programminstruktionen des durch den zweiten Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der ersten Programm instruktionen ein Prüfen der Signatur des zweiten Datensatzes unter Verwendung des von dem Programmmodul identifizierten öffentlichen kryptographischen Schlüssels des der Werkstatt zugeordneten asymmetrischen Schlüsselpaars umfasst und, im Falle einer gültigen Signatur, ein Hinzufügen eines zweiten Eintrags mit dem signierten zweiten Datensatz und einem zweiten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass die Werkstatt auch selbstständig Einträge mit Zustandsdaten des Fahrzeugs in der Blockchain vornehmen kann. Somit steht neben dem Fahrzeug eine weitere unabhängige Datenquelle zur Verfügung. Durch Abgleich der von dem Fahrzeug und von der Werkstatt vorgenommen Einträge in der Blockchain, können Unstimmigkeiten und mögliche Manipulationen erkannt werden.
-
Nach Ausführungsformen identifiziert das Programmmodul einen öffentlichen kryptographischen Schlüssel eines einem Hersteller des Fahrzeugs zugeordneten asymmetrischen Schlüsselpaars. In einem Speicher eines Computersystems des Fahrzeugherstellers, beispielsweise in einem geschützten Speicherbereich des Speichers, ist ein privater kryptographischer Schlüssel des dem Fahrzeugherstellers zugeordneten asymmetrischen Schlüsselpaars gespeichert. Das Computersystem des Fahrzeugherstellers umfasst eine Kommunikationsschnittstelle zur Kommunikation über ein zweites Kommunikationsnetzwerk. Ferner umfasst das Verfahren:
- • Erstellen eines dritten Datensatzes zum Eintragen in die Blockchain durch das Computersystem des Fahrzeugherstellers, wobei der dritte Datensatz Zustandsdaten des Fahrzeugs umfasst und das dem Fahrzeug zugeordnete Programmmodul identifiziert,
- • Signieren des dritten Datensatzes durch das Computersystem des Fahrzeugherstellers mit dem privaten kryptographischen Schlüssel des Fahrzeugherstellers,
- • Senden des signierten dritten Datensatzes durch das Computersystem des Fahrzeugherstellers über das zweite Kommunikationsnetzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen des signierten dritten Datensatzes durch den Blockchain-Server,
- • Ausführen der ersten Programm instruktionen des durch den dritten Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der ersten Programm instruktionen ein Prüfen der Signatur des dritten Datensatzes unter Verwendung des von dem Programmmodul identifizierten öffentlichen kryptographischen Schlüssels des dem Fahrzeughersteller zugeordneten asymmetrischen Schlüsselpaars umfasst und, im Falle einer gültigen Signatur, ein Hinzufügen eines dritten Eintrags mit dem signierten dritten Datensatz und einem dritten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass der Hersteller des Fahrzeugs selbstständig Einträge zu dem Fahrzeug in der Blockchain vornehmen kann. Da Einträge in der Blockchain aufgrund der Kettenstruktur, bei der jeder Block auf den vorausgehenden Blöcken beruht, nicht gelöst werden können, wird dem Fahrzeughersteller ermöglicht grundlegende Angaben zu dem Fahrzeug bereitzustellen, auf die jederzeit zurückgegriffen werden kann. Insbesondere wird es dem Fahrzeughersteller ermöglicht das Fahrzeug so zu initialisieren bzw. das Programmmodul zu personalisieren. Hierbei können initiale Zustandsdaten des Fahrzeugs in die Blockchain eingetragen werden. Somit steht neben dem Fahrzeug eine weitere unabhängige Datenquelle zur Verfügung.
-
Nach Ausführungsformen umfasst der dritte Datensatz technische Fahrzeugspezifikationen. Ausführungsformen können den Vorteil haben, dass ein solcher Datensatz Auskunft erteilt über die grundlegenden Eigenschaften des Fahrzeugs. Insbesondere kann ein solcher Eintrag nachträglich nicht mehr manipuliert werden. Beispielsweise kann der Datensatz eine Fahrgestellnummer, eine Motornummer, Angaben zu Fahrzeugeigenschaften und/oder einen Hash der Zulassungsbescheinigung, d.h. Zulassungsbescheinigung Teil I und/oder II, des Fahrzeugs umfassen. Zudem kann ein solcher Eintrag auch einen initialen Kilometerstand des Fahrzeugs umfassen. Die Angaben zu den Fahrzeugeigenschaften können beispielsweise die Angaben gemäß Zulassungsbescheinigung Teil I und/oder II umfassen, wie etwa Datum der Erstzulassung, Fahrzeugklasse, Art des Aufbaus, Fahrzeug-Identifizierungsnummer, Marke, Typ/ Variante/ Version, Handelsbezeichnungen, Hersteller-Kurzbezeichnung, Bezeichnung der Fahrzeugklasse und des Aufbaus, für die EG-Typgenehmigung maßgebliche Schadstoffklasse, Bezeichnung der nationalen Emissionsklasse, Kraftstoffart oder Energiequelle, Hubraum, Ausnahmen, Anzahl der Achsen, Anzahl der Antriebsachsen, Nennleistung, Nenndrehzahl, Höchstgeschwindigkeit, Länge, Breite, Höhe, Leermasse, Rauminhalt des Tanks, Stützlast, Leistungsgewicht, CO2-Emission, technisch zulässige Gesamtmasse, Achslasten der einzelnen Achsen, Lautstärke Standgeräusch, Lautstärke Fahrgeräusch, technisch zulässige Anhängelast (gebremst/ungebremst), Anzahl Sitzplätze, Anzahl Stehplätze, Bereifung, Farbe des Fahrzeugs, Nummer der EG-Typgenehmigung und/oder Allgemeine Betriebserlaubnis.
-
Nach Ausführungsformen identifiziert das Programmmodul einen öffentlichen kryptographischen Schlüssel eines einem Besitzer des Fahrzeugs zugeordneten asymmetrischen Schlüsselpaars. In einem Speicher eines Computersystems des Fahrzeugbesitzers, beispielsweise in einem geschützten Speicherbereich des Speichers, ist ein privater kryptographischer Schlüssel des dem Fahrzeugbesitzer zugeordneten asymmetrischen Schlüsselpaars gespeichert. Das Computersystem des Fahrzeugbesitzers umfasst zudem eine Kommunikationsschnittstelle zur Kommunikation über ein drittes Kommunikationsnetzwerk. Das Verfahren umfasst ferner:
- • Erstellen eines vierten Datensatzes zum Eintragen in die Blockchain durch das Computersystem des Fahrzeugbesitzers, wobei der vierte Datensatz Zustandsdaten des Fahrzeugs umfasst und das dem Fahrzeug zugeordnete Programmmodul identifiziert,
- • Signieren des vierten Datensatzes durch das Computersystem des Fahrzeugbesitzers mit dem privaten kryptographischen Schlüssel des Fahrzeugbesitzers,
- • Senden des signierten vierten Datensatzes durch das Computersystem des Fahrzeugbesitzers über das dritte Kommunikationsnetzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen des signierten vierten Datensatzes durch den Blockchain-Server,
- • Ausführen der ersten Programminstruktionen des durch den vierten Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der ersten Programm instruktionen ein Prüfen der Signatur des vierten Datensatzes unter Verwendung des von dem Programmmodul identifizierten öffentlichen kryptographischen Schlüssels des dem Fahrzeugbesitzer zugeordneten asymmetrischen Schlüsselpaars umfasst und, im Falle einer gültigen Signatur, ein Hinzufügen eines vierten Eintrags mit dem signierten vierten Datensatz und einem vierten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass der Besitzer des Fahrzeugs auch selbstständig Einträge mit Zustandsdaten des Fahrzeugs in der Blockchain vornehmen kann. Somit steht neben dem Fahrzeug eine weitere unabhängige Datenquelle zur Verfügung. Durch Abgleich der von dem Fahrzeug und von dem Besitzer vorgenommen Einträge in der Blockchain, können Unstimmigkeiten und mögliche Manipulationen erkannt werden.
-
Nach Ausführungsformen umfasst der vierte Datensatz einen Indikator eines Diebstahls und/oder einer Stilllegung des Fahrzeugs. Ausführungsformen können den Vorteil haben, dass selbst bei einem Abhandenkommen des Fahrzeugs, einer Aufgabe des Fahrzeugs und/oder einer Funktionsunfähigkeit diese abschließenden Fahrzeugzustände in die Blockchain eingetragen werden können. Ein solcher Eintrag ermöglicht es beispielsweise beim Erwerb eines Fahrzeugs ohne großen Aufwand zu prüfen, ob es als gestohlen vermerkt ist. Nach Ausführungsbeispielen kann ein Indikator eines Diebstahls und/oder einer Stilllegung des Fahrzeugs auch in einem Datensatz enthalten sein, welcher von dem Fahrzeug selbst oder dem Fahrzeughersteller erzeugt und in die Blockchain eingebracht wird. Ein Indikator einer Stilllegung des Fahrzeugs kann beispielsweise auch in einem Datensatz enthalten sein, welcher von einer Werkstatt erzeugt und in die Blockchain eingebracht wird.
-
Nach Ausführungsformen ist in einem Speicher eines Computersystems eines Providers des Programmmoduls, beispielsweise in einem geschützten Speicherbereich des Speichers, ein privater kryptographischer Schlüssel einer ersten Adresse gespeichert, welche dem Provider des Programmmoduls zugeordnet ist. Das Computersystem des Providers umfasst eine Kommunikationsschnittstelle zur Kommunikation über ein viertes Kommunikationsnetzwerk. Zudem ist in dem Speicher des Computersystems des Fahrzeugherstellers, beispielsweise in dem geschützten Speicherbereich des Speichers, ein privater kryptographischer Schlüssel einer zweiten Adresse gespeichert ist, welche dem Fahrzeughersteller zugeordnet ist. Das Verfahren umfasst ferner:
- • Erstellen einer ersten Transaktionsanweisung zur Transaktion des Programmmoduls von der dem Provider des Programmmoduls zugeordneten ersten Adresse an die dem Fahrzeughersteller zugeordneten zweite Adresse durch das Computersystem des Providers,
- • Signieren der ersten Transaktionsanweisung durch das Computersystem des Providers mit dem privaten kryptographischen Schlüssel der ersten Adresse,
- • Senden der signierten ersten Transaktionsanweisung durch das Computersystem des Providers über das vierte Netzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen der signierten ersten Transaktionsanweisung durch den Blockchain-Server,
- • Prüfen durch den Blockchain-Server, ob die erste Transaktionsanweisung mit dem der ersten Adresse zugeordneten privaten kryptographischen Schlüssel signiert ist,
- • im Falle einer gültigen Signatur, Hinzufügen der ersten Transaktionsanweisung zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass das Programmmodul von einem Provider erstellt und in die Blockchain eingebracht werden. Das Programmmodul kann beispielsweise zum Ausführen der zuvor beschriebenen Ausführungsformen des Verfahrens konfiguriert sein. Insbesondere kann das Programmmodul zum Erzeugen zusätzlicher Einträge in die Blockchain und zum Auffinden alter, beispielsweise durch das Programmmodul erzeugten Blockchaineinträgen konfiguriert sein.
-
Das so erzeugte Programmmodul kann so konfiguriert sein, dass eine bestimmte Funktionalität nur ausgeführt werden kann, wenn zu deren Bestätigung eine Signatur mit einem privaten kryptographischen Schlüssel bereitgestellt wird, welcher einer Instanz zugeordnet ist, die eine Berechtigung zum Ausführen dieser Funktionalität besitzt. Bei einem solchen privaten kryptographischen Schlüssel kann es sich beispielsweise um einen privaten kryptographischen Schlüssel einer in der Blockchain gespeichert Adresse des Programmmoduls handeln. Mit anderen Worten kann dies beispielsweise ein privater kryptographischer Schlüssel einer Adresse sein, welche durch einen dem privaten kryptographischen Schlüssel zugeordneten öffentlichen kryptographischen Schlüssel definiert ist und für die die Blockchain einen Eintrag umfasst, welcher festhält, dass das Programmmodul an diese Adresse übertragen bzw. diesem öffentlichen kryptographischen Schlüssel zugeordnet wurde. Nur wer im Besitz des entsprechenden privaten kryptographischen Schlüssels ist, kann bestimmte Funktionen ausführen und besitzt zugleich die Verfügungshoheit über das Programmmodul. Ein solcher privaten kryptographischen Schlüssel kann als Generalschlüssel oder Masterkey dienen.
-
Ferner kann die Blockchain dem Programmmodul zugeordnete Einträge umfassen, welche einen öffentlichen kryptographischen Schlüssel umfassen und einem dem öffentlichen kryptographischen Schlüssel zugeordneten asymmetrischen Schlüsselpaar die Berechtigung zum Ausführen einer oder mehrerer Funktionalitäten des Programmmoduls zuweisen. Die Einträge können beispielsweise unter Verwendung eines dem Provider des Programmmoduls zugeordneten privaten kryptographischen Schlüssel signiert sein. Nach Ausführungsformen können die Einträge mit einem privaten kryptographischen Schlüssel eines asymmetrischen Schlüsselpaars signiert sein, welchem die Berechtigung hierzu zugewiesen wurde. Somit können Berechtigungsketten implementiert werden, welche auf eine Signatur des Providers des Programmmoduls zurückgeführt werden können.
-
Die Verfügungshoheit über das Programmmodul kann von einem privaten kryptographischen Schlüssel an einen anderen übertragen werden, indem das Programmmodul von einer Adresse bzw. einem ersten öffentlichen kryptographischen Schlüssel, der bzw. dem ein erster privaten kryptographischen Schlüssel zugeordnet ist, an eine andere Adresse bzw. einen zweiten öffentlichen kryptographischen Schlüssel, der bzw. dem ein zweiter privaten kryptographischen Schlüssel zugeordnet ist, übertragen wird. Eine solche Transaktion wird durch einen entsprechenden Eintrag in der Blockchain definiert.
-
Durch die Transaktion des Programmmoduls von einer dem Provider des Programmmoduls zugeordneten Adresse an eine dem Fahrzeughersteller zugeordneten Adresse geht die Verfügungsgewalt über das Programmmodul von dem Provider des Programmmoduls an den Fahrzeughersteller über. Beispielsweise wird der Fahrzeugherstelle durch die Transaktion berechtigt unter Verwendung des der zweiten Adresse zugeordneten privaten kryptographischen Schlüssels das Programmodul für ein bestimmtes Fahrzeug zu personalisieren, d.h. das Programmodul einem bestimmten Fahrzeug zuzuordnen. „Personalisierung“ wird hier als Zuordnung zu einem individuellen Fahrzeug verstanden. Eine Personalisierung kann unter Verwendung von Attributen implementiert werden, welche das entsprechende Fahrzeug identifizieren. Beispielsweise kennzeichnen diese Attribute einzeln für sich genommen oder in Kombination miteinander das Fahrzeug eindeutig.
-
Der Besitzer des Masterkey ist beispielsweise in der Lage Funktionalitäten des Programmmoduls für andere Teilnehmer freizuschalten. So kann etwa die Funktion Datensätze mit Zustandsdaten des Fahrzeugs gültig einzutragen unter Verwendung des Masterkeys freigeschaltet werden, wobei ein mit dem Masterkey signierter Eintrag in der Blockchain erzeugt wird, welcher einen öffentlichen kryptographischen Schlüssel umfasst. Durch einen solchen Eintrag wird der entsprechende öffentlichen kryptographischen Schlüssel identifiziert. Hierbei kann anhand der Blockchain jederzeit nachgeprüft werden, dass der zur Signatur des entsprechenden Eintrags verwendete Masterkey einer Adresse bzw. einem öffentlichen kryptographischen Schlüssel zugeordnet ist, welcher dem Programmmodul zum Zeitpunkt der Aufnahme des Eintrags in die Blockchain entspricht.
-
Das Erzeugen und Einbringen des Programmmoduls in die Blockchain umfasst beispielsweise:
- • Erstellen des Programmmoduls durch das Computersystem des Providers,
- • Erstellen einer Eintragungsaufforderung zur Eintragung des Programmmoduls mit einer dem Provider zugeordnete Initialadresse durch das Computersystem des Providers, wobei die Eintragungsaufforderung das Programmmodul umfasst und der Initialadresse ein privater kryptographischer Schlüssel zugeordnet ist,
- • Signieren der Eintragungsaufforderung durch das Computersystem des Providers mit dem privaten kryptographischen Schlüssel der Initialadresse,
- • Senden der signierten Eintragungsaufforderung durch das Computersystem des Providers über das vierte Netzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen der signierten Eintragungsaufforderung durch den Blockchain-Server,
- • Prüfen durch den Blockchain-Server, ob die Eintragungsaufforderung mit dem der Initialadresse zugeordneten privaten kryptographischen Schlüssel signiert ist,
- • im Falle einer gültigen Signatur, Hinzufügen des Programmmoduls zu einem zusätzlichen Block für die Blockchain.
-
Nach Ausführungsformen wird zudem ein dem asymmetrischen Schlüsselpaar der Initialadresse zugeordnetes Zertifikat in die Blockchain eingetragen. Beispielsweise wird das Zertifikat zusammen mit dem Programmmodul in die Blockchain eingetragen. Bei dem Zertifikat kann es sich beispielsweise um ein Zertifikat einer PKI, beispielsweise einer hierarchischen PKI mit einer zentralen Wurzelzertifizierungsinstanz, handeln. Ausführungsformen können den Vorteil haben, dass durch das Zertifikat ein Vertrauensanker geschaffen wird, durch welchen sichergestellt werden kann, dass es sich bei dem Programmmodul um einen authentischen Eintrag handelt, welcher zu einer offiziell anerkannten Ausgangsinstanz in Form des Providers des Programmmoduls zurückverfolgt werden kann. Von diesem Vertrauensanker kann das Vertrauen in alle nachfolgenden Einträge in der Blockchain zu diesem Fahrzeug abgeleitet werden. Beispielsweise müssen die für die Authentifizierung der nachfolgenden Einträge verwendeten kryptographischen Schlüssel zunächst durch den zertifizierten privaten kryptographischen Schlüssel bestätigt werden.
-
Nach Ausführungsformen kann das Programmmodul über eine Mehrzahl von Blöcken der Blockchain verteilt eingetragen werden.
-
Nach Ausführungsformen verbleibt die Verfügungsgewalt über das Programmmodul bei dem Fahrzeughersteller.
-
Nach Ausführungsformen ist in dem Speicher des Computersystems des Fahrzeugbesitzers, beispielsweise in dem geschützten Speicherbereich des Speichers, ein privater kryptographischer Schlüssel einer dritten Adresse gespeichert, welche dem Fahrzeugbesitzer zugeordnet ist und das Verfahren umfasst:
- • Erstellen einer zweiten Transaktionsanweisung zur Transaktion des Programmmoduls von der dem Fahrzeughersteller zugeordneten zweiten Adresse an die dem Fahrzeugbesitzer zugeordnete dritte Adresse durch das Computersystem des Fahrzeugherstellers,
- • Signieren der zweiten Transaktionsanweisung durch das Computersystem des Fahrzeugherstellers mit dem privaten kryptographischen Schlüssel der zweiten Adresse,
- • Senden der signierten zweiten Transaktionsanweisung durch das Computersystem des Fahrzeugherstellers über das zweite Netzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen der zweiten Transaktionsanweisung durch den Blockchain-Server,
- • Prüfen durch den Blockchain-Server, ob die zweite Transaktionsanweisung mit dem der zweiten Adresse zugeordneten privaten kryptographischen Schlüssel signiert ist,
- • im Falle einer gültigen Signatur, Hinzufügen der zweiten Transaktionsanweisung zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass durch die Transaktion des Programmmoduls von der dem Fahrzeughersteller zugeordneten Adresse an die dem Fahrzeugbesitzer zugeordnete Adresse die Verfügungsgewalt über das Programmodul an den Fahrzeugbesitzer übergeht. Somit wird die Verfügungsgewalt über an den Besitz des Fahrzeugs gekoppelt. Bei einem Verkauf des Fahrzeugs kann beispielsweise eine weitere Transaktion an den neuen Besitzer des Fahrzeugs erfolgen.
-
Nach Ausführungsformen ist in einem Speicher eines Computersystems eines neuen Fahrzeugbesitzers, beispielsweise in einem geschützten Speicherbereich des Speichers, ein privater kryptographischer Schlüssel einer vierten Adresse gespeichert, welche dem neuen Fahrzeugbesitzer zugeordnet ist und das Verfahren umfasst ferner:
- • Erstellen einer dritten Transaktionsanweisung zur Transaktion des Programmmoduls von der dem bisherigen Fahrzeugbesitzer zugeordneten dritten Adresse an die dem neuen Fahrzeugbesitzer zugeordnete vierte Adresse durch das Computersystem des bisherigen Fahrzeugbesitzers,
- • Signieren der dritten Transaktionsanweisung durch das Computersystem des bisherigen Fahrzeugbesitzers mit dem privaten kryptographischen Schlüssel der dritten Adresse,
- • Senden der signierten dritten Transaktionsanweisung durch das Computersystem des bisherigen Fahrzeugbesitzers über das zweite Netzwerk an einen Blockchain-Server des Blockchain-Netzwerks,
- • Empfangen der dritten Transaktionsanweisung durch den Blockchain-Server,
- • Prüfen durch den Blockchain-Server, ob die dritte Transaktionsanweisung mit dem der dritten Adresse zugeordneten privaten kryptographischen Schlüssel signiert ist,
- • im Falle einer gültigen Signatur, Hinzufügen der dritten Transaktionsanweisung zu einem zusätzlichen Block für die Blockchain.
-
Nach Ausführungsformen umfasst das Programmmodul zweite Programminstruktionen. Durch Ausführen der zweiten Programm instruktionen wird ein dem Programmmodul zugeordneter Eintrag in der Blockchain erzeugt, welcher eine Freigabe zur Zuordnung des Programmmoduls zu dem Fahrzeug umfasst. Das Programmmodul umfasst ferner dritte Programminstruktionen, durch deren Ausführen ein dem Programmmodul zugeordneter Eintrag in der Blockchain erzeugt wird, welcher das Programmmodul dem Fahrzeug zuordnet. Dabei umfasst das Verfahren:
- • durch einen Blockchain-Server des Blockchain-Netzwerks Empfangen einer ersten Aufforderung zum Freischalten einer Berechtigung zum Zuordnen des Programmmoduls zu dem Fahrzeug durch den Fahrzeughersteller, wobei die erste Aufforderung den öffentlichen kryptographischen Schlüssel des Fahrzeugherstellers umfasst, das dem Fahrzeug zuzuordnende Programmmodul identifiziert und mit dem privaten kryptographischen Schlüssel des Providers des Programmmoduls signiert ist,
- • Ausführen der zweiten Programminstruktionen des durch die erste Aufforderung identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der zweiten Programminstruktionen ein Prüfen der Signatur der ersten Aufforderung unter Verwendung des von dem Programmmodul identifizierten öffentlichen kryptographischen Schlüssels des asymmetrischen Schlüsselpaars umfasst, welches dem Provider zugeordnet ist, und, im Falle einer gültigen Signatur, ein Hinzufügen eines fünften Eintrags mit dem öffentlichen kryptographischen Schlüssel des Fahrzeugherstellers, einer Zuordnungsfreigabe und einem fünften Zeitstempel zu dem zusätzlichen Block für die Blockchain,
- • Empfangen einer zweiten Aufforderung des Fahrzeugherstellers zum Zuordnen des Programmmoduls zum dem Fahrzeug durch den Blockchain-Server, wobei die zweite Aufforderung das dem Fahrzeug zuzuordnende Programmmodul identifiziert und mit dem privaten kryptographischen Schlüssel des Fahrzeugherstellers signiert ist,
- • Ausführen der dritten Programm instruktionen des durch den Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der dritten Programminstruktionen ein Prüfen der Signatur der zweiten Aufforderung unter Verwendung des in dem fünften Eintrag gespeicherten öffentlichen kryptographischen Schlüssels des asymmetrischen Schlüsselpaars umfasst, welches dem Fahrzeugherstellers zugeordnet ist, und, im Falle einer gültigen Signatur, ein Hinzufügen eines sechsten Eintrags mit dem öffentlichen kryptographischen Schlüssel des Fahrzeugs, einer Zuordnung des Programmmoduls zu dem Fahrzeug und einem sechsten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass das Programmmodul von dem Provider erstellt und in die Blockchain eingefügt wird. Das so erstellte Programmmodul ist noch nicht personalisiert, d.h. es ist noch keinem bestimmten Fahrzeug zugeordnet. Dieses nicht-personalisiert Programmmodul wird durch den Fahrzeughersteller personalisiert, d.h. einem Fahrzeug zugeordnet, indem eine Kennung des Fahrzeugs in einem dem Programmmodul zugeordneten Block der Blockchain gespeichert wird. Bei der Kennung kann es sich beispielsweise um eine Identifikationsnummer des Fahrzeugs oder einen dem Fahrzeug zugeordneten öffentlichen kryptographischen Schlüssel handeln.
-
Beispielsweise fragt der Fahrzeughersteller, wenn er ein neues Fahrzeug herstellt bzw. hergestellt hat, bei dem Provider ein zusätzliches Programmodul für das neue Fahrzeug an. Zudem übermittelt der Fahrzeughersteller dem Provider seinen öffentlichen kryptographischen Schlüssel. Dieser öffentlichen kryptographischen Schlüssel wird von dem Provider freigeschaltet, so dass der Fahrzeughersteller das Programmmodul für das neue Fahrzeug personalisieren kann.
-
Nach Ausführungsformen umfasst das Programmmodul vierte Programminstruktionen. Durch Ausführen der vierten Programm instruktionen wird ein dem Programmmodul zugeordneter Eintrag in der Blockchain erzeugt, welcher eine Freigabe zur Zuordnung des Programmmoduls zu dem Fahrzeug umfasst. Das Zuordnen umfasst:
- • durch einen Blockchain-Server des Blockchain-Netzwerks Empfangen einer dritten Aufforderung zum Freischalten einer Berechtigung zum Zuordnen des Programmmoduls zu dem Fahrzeug durch den Fahrzeughersteller, wobei die dritte Aufforderung ein Passwort und den öffentlichen kryptographischen Schlüssel des Fahrzeugherstellers umfasst und das dem Fahrzeug zuzuordnende Programmmodul identifiziert,
- • Ausführen der vierten Programm instruktionen des durch die dritte Aufforderung identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der vierten Programminstruktionen ein Prüfen des Passworts unter Verwendung eines in der Blockchain gespeicherten verschlüsselten Referenzwerts und, im Falle eines gültigen Referenzwerts, ein Hinzufügen eines siebten Eintrags mit dem öffentlichen kryptographischen Schlüssel des Fahrzeugherstellers, einer Zuordnungsfreigabe und einem siebten Zeitstempel zu einem zusätzlichen Block für die Blockchain,
- • Empfangen einer zweiten Aufforderung des Fahrzeugherstellers zum Zuordnen des Programmmoduls zum dem Fahrzeug durch den Blockchain-Server, wobei die zweite Aufforderung das dem Fahrzeug zuzuordnende Programmmodul identifiziert und mit dem privaten kryptographischen Schlüssel des Fahrzeugherstellers signiert ist,
- • Ausführen der dritten Programminstruktionen des durch den Datensatz identifizierten Programmmoduls durch den Blockchain-Server, wobei das Ausführen der dritten Programminstruktionen ein Prüfen der Signatur der zweiten Aufforderung unter Verwendung des in dem fünften Eintrag gespeicherten öffentlichen kryptographischen Schlüssels des asymmetrischen Schlüsselpaars umfasst, welches dem Fahrzeugherstellers zugeordnet ist, und, im Falle einer gültigen Signatur, ein Hinzufügen eines sechsten Eintrags mit dem öffentlichen kryptographischen Schlüssel des Fahrzeugs, einer Zuordnung des Programmmoduls zu dem Fahrzeug und einem sechsten Zeitstempel zu einem zusätzlichen Block für die Blockchain.
-
Ausführungsformen können den Vorteil haben, dass dem Fahrzeughersteller auf Anfrage ein Passwort von dem Provider des Programmmoduls übermittelt wird, mit welchem der Fahrzeughersteller die Berechtigung zum Zuordnen des Programmmoduls zu einem Fahrzeug, d.h. ein registrierend es Fahrzeugs, für sich freischalten kann.
-
Bei dem Passwort kann es sich beispielsweise um eine „One-Time-Password“ oder „OTP“ handeln. Unter einem OTP wird hier ein Einmal-Passwort oder ein Einmal-Kennwort verstanden, welches nur für eine einmalige Verwendung gültig sein soll. Beispielsweis kann es sich bei einem solchen Einmal-Passwort um eine TAN handeln.
-
Ausführungsformen umfassen ferner ein System, welches ein Fahrzeug mit einem Fahrzeugcomputersystem und ein Blockchain-Netzwerk mit zumindest einem Blockchain-Server umfasst. Das Fahrzeugcomputersystem umfasst einen Speicher. Ferner umfasst das Fahrzeugcomputersystem eine Mobilfunkschnittstelle zur Kommunikation über ein Mobilfunknetzwerk. Der zumindest eine Blockchain-Server ist dazu konfiguriert, ein in der Blockchain gespeichertes Programmmodul auszuführen und zusätzliche Blöcke für die Blockchain zu erstellen. Das System ist zum Ausführen eines Verfahrens nach einer der zuvor beschriebenen Ausführungsformen konfiguriert.
-
Nach Ausführungsformen umfasst das System ferner ein Computersystem einer Werkstatt. Das Computersystem der Werkstatt umfasst einen Speicher und eine Kommunikationsschnittstelle zur Kommunikation über ein erstes Kommunikationsnetzwerk. Das System ist zum Ausführen eines Verfahrens nach einer der zuvor beschriebenen Ausführungsformen konfiguriert.
-
Nach Ausführungsformen umfasst das System ferner ein Computersystem eines Herstellers des Fahrzeugs. Das Computersystem des Fahrzeugherstellers einen Speicher und eine Kommunikationsschnittstelle zur Kommunikation über ein zweites Kommunikationsnetzwerk. Das System ist zum Ausführen eines Verfahrens nach einer der zuvor beschriebenen Ausführungsformen konfiguriert.
-
Nach Ausführungsformen umfasst das System ferner ein Computersystem eines Besitzers des Fahrzeugs. Das Computersystem des Fahrzeugbesitzers umfasst einen Speicher und eine Kommunikationsschnittstelle zur Kommunikation über ein drittes Kommunikationsnetzwerk. Das System ist zum Ausführen eines Verfahrens nach einer der zuvor beschriebenen Ausführungsformen konfiguriert.
-
Nach Ausführungsformen umfasst das System ferner ein Computersystem eines Providers des Programmmoduls. Das Computersystem eines Providers des Programmmoduls umfasst einen Speicher und eine Kommunikationsschnittstelle zur Kommunikation über ein viertes Kommunikationsnetzwerk. Das System ist zum Ausführen eines Verfahrens nach einer der zuvor beschriebenen Ausführungsformen konfiguriert.
-
Die Verwendung von Ordinalzahlen wie erstes, zweites, drittes etc. dient hier, soweit sich aus dem konkreten Zusammenhang nicht eindeutig etwas anderes ergibt, allein der Unterscheidung voneinander verschiedener Elemente und soll keine bestimmte Reihenfolge implizieren.
-
Bei den zuvor genannten Kommunikationsnetzwerken kann es sich nach Ausführungsformen bei allen oder einem Teil davon um ein und dasselbe oder verschiedene Kommunikationsnetzwerke handeln.
-
Nach Ausführungsformen werden alle oder ein Teil der zuvor genannten Einträge, d.h. der ersten bis siebten Einträge, zu demselben zusätzlichen Block oder verschiedenen zusätzlichen Blöcken für die Blockchain hinzugefügt.
-
Im Weiteren werden Ausführungsformen der Erfindung mit Bezugnahme auf die Zeichnungen näher erläutert. Es zeigen:
- 1 Blockdiagramme einer ersten Ausführungsform eines exemplarischen Systems zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain,
- 2 Blockdiagramme einer zweiten Ausführungsform eines exemplarischen Systems zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain,
- 3 ein Blockdiagramm einer Ausführungsform eines exemplarischen Systems zum Erfassen von Zustandsdaten eines Fahrzeugs,
- 4 ein Flussdiagramm einer ersten Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain,
- 5 ein Flussdiagramm einer zweiten Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain, und
- 6 ein Flussdiagramm einer dritten Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain.
-
Elemente der nachfolgenden Ausführungsformen, die einander entsprechen, werden mit denselben Bezugszeichen gekennzeichnet.
-
1A und 1B zeigen eine erste Ausführungsform eines exemplarischen Systems zum Protokollieren von Zustandsdaten 110, 310, 510, 610 eines Fahrzeugs in einer Blockchain 204. Bei dem Fahrzeug handelt es sich beispielsweise um eine Automobil, wie etwa einen Personenkraftwagen. Das Fahrzeug umfasst ein Fahrzeugcomputersystem 100. Das Fahrzeugcomputersystem 100 weist einen Speicher 102 auf, in welchem ein öffentlicher kryptographischer Schlüssel 106 eines dem Fahrzeug zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Ferner sind in dem Speicher 102 Zustandsdaten 110 des Fahrzeugs gespeichert, welche das Fahrzeugcomputersystem 100 beispielsweise von fahrzeugeigenen Sensoren 130, 150, 170 oder einem Computersystem 300 einer Werkstatt empfangen hat.
-
Diese Zustandsdaten können beispielsweise den Kilometerstand des Fahrzeugs umfassen. Ferner umfasst der Speicher 102 einen geschützten Speicherbereich 104, auf welchen ein Zugriff nur über einen Prozessor 112 des Fahrzeugcomputersystems 100 möglich ist und in dem ein privater kryptographischer Schlüssel 106 des dem Fahrzeug zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Der privater kryptographischer Schlüssel 106 kann dazu verwendet werden, in die Blockchain einzutragende Datensätze mit Zustandsdaten des Fahrzeugs zu signieren. Der Prozessor 112 ist dazu konfiguriert Programminstruktionen 114 auszuführen, durch deren Ausführung der Prozessor 112 das Fahrzeugcomputersystem 100 so steuert, dass ein Datensatz mit den Zustandsdaten 110 des Fahrzeugs erzeugt und in einer Blockchain 204 gespeichert wird. Schließlich kann der Prozessor 112 Programminstruktionen 114 ausführen, welche ein kryptographisches Protokoll implementieren. Mittels des kryptographischen Protokolls kann eine Datenübertragung zwischen dem Fahrzeugcomputersystem 100 und dem Computersystem 300 der Werkstatt, den Sensoren 130, 150, 170 und/oder den Blockchain-Servern 200, 220, 240 kryptographisch gesichert werden. Ferner umfasst das Fahrzeugcomputersystem 100 eine Mobilfunkschnittstelle 118 zur Kommunikation über ein Mobilfunknetzwerk 270. Über das Mobilfunknetzwerk 270 kann das Fahrzeugcomputersystem 100 mit einem oder mehreren der Blockchain-Server 200, 220, 240 des Blockchain-Netzwerks 260 kommunizieren. Zudem umfasst das Fahrzeugcomputersystem 100 eine Sensorschnittstelle zur Kommunikation mit fahrzeugeigenen Sensoren 130, 150, 170, insbesondere zum Empfangen von Sensormesswerten, welche Zustandsdaten des Fahrzeugs bereitstellen.
-
Das Fahrzeug umfasst zudem eine Mehrzahl von fahrzeugeigenen Sensoren 130, 150, 170, welche jeweils eine Sensorschnittstelle 132, 152, 172 zur Kommunikation mit dem Fahrzeugcomputersystem 100 über ein fahrzeugeigenes Netzwerk 276 aufweisen. Falls die Sensormesswerte kryptographisch gesichert, d.h. beispielsweise verschlüsselt und/oder signiert, an das Fahrzeugcomputersystem 100 übertragen werden sollen, umfassen die Sensoren 130, 150, 170 zudem jeweils einen Speicher ggf. mit einem geschützten Speicherbereich, entsprechende kryptographische Schlüssel, wie etwa ein dem jeweiligen Sensor zugeordnetes kryptographisches Schlüsselpaar, und einen Prozessor mit Programminstruktionen zur Ausführung der kryptographisch gesicherten Kommunikation.
-
Ferner kann ein Computersysteme 300 einer Werkstatt vorgesehen sein, welches einen Speicher 302 umfasst. Bei dem Computersysteme 300 kann sich beispielsweise um ein mobiles Diagnosegerät oder einen Personalcomputer handeln. Beispielsweise handelt es sich um ein mobiles Diagnosegerät in Form eines speziellen Computersystems mit verschiedenen Diagnosefunktionen für das Fahrzeugcomputersystem und/oder die Fahrzeugelektronik. Das Computersysteme 300 kann beispielsweise unmittelbar über ein oder mehrere Kabel 274 mit dem Fahrzeugcomputersystem und/oder der Fahrzeugelektronik verbunden werden. Desktop. In dem Speicher 302 ist ein öffentlicher kryptographischer Schlüssel 308 eines der Werkstatt zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Ferner sind in dem Speicher 302 Zustandsdaten 310 des Fahrzeugs gespeichert. Diese Zustandsdaten 310 des Fahrzeugs werden beispielsweise durch Sensoren der Werkstatt bereitgestellt und/oder umfassen Angaben zur Reparatur oder Wartungsarbeiten, welche die Werkstatt durchgeführt hat. Ferner können diese Zustandsdaten auch Angaben von Mitarbeitern der Werkstatt über den Zustand des Wagens umfassen, insbesondere über festgestellte Mängel. Ferner umfasst der Speicher 302 einen geschützten Speicherbereich 304, auf welchen ein Zugriff nur über einen Prozessor 312 des Computersystems 300 möglich ist und in dem ein privater kryptographischer Schlüssel 306 des der Werkstatt zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Der Prozessor 312 ist dazu konfiguriert Programminstruktionen 314 auszuführen, durch deren Ausführung der Prozessor 312 das Computersystem 300 so steuert, dass die Zustandsdaten 310 eines Fahrzeugs zur Speicherung in der Blockchain 204 an das Fahrzeugcomputersystem 100 übertragen werden. Zum Nachweis der Authentizität der entsprechenden Zustandsdaten 310 können diese mit dem privaten kryptographischen Schlüssel 306 signiert sein. Die Authentizität des dem Werkstatt zugeordneten asymmetrischen Schlüsselpaar kann zudem beispielsweise durch ein Zertifikat und/oder eine entsprechende PKI belegt werden. Schließlich kann der Prozessor 312 Programminstruktionen 114 ausführen, welche ein kryptographisches Protokoll implementieren. Mittels des kryptographischen Protokolls kann eine Datenübertragung zwischen dem Computersystem 300 der Werkstatt und dem Fahrzeugcomputersystem 100 über die Kommunikationsverbindung 274 kryptographisch gesichert werden. Beispielsweise werden die Zustandsdaten 310 vor dem Senden an das Fahrzeugcomputersystem 100 mit dem öffentlichen kryptographischen Schlüssel 108 des Fahrzeugcomputersystems 100 verschlüsselt, sodass sie von dem Fahrzeugcomputersystems 100 mittels des zugehörigen privaten Schlüssels 106 wieder entschlüsselt werden können.
-
Ferner umfasst das Computersystem 300 der Werkstatt eine Kommunikationsschnittstelle 316 zur Kommunikation mit dem Fahrzeugcomputersystem 100 und dessen Kommunikationsschnittstelle 120 über die Kommunikationsverbindung 274. Bei der Kommunikationsverbindung 274 kann es sich beispielsweise um eine kabellose oder eine kabelgebundene Kommunikationsverbindung handeln.
-
Das Fahrzeugcomputersystem 100 kann beispielsweise über das Mobilfunknetz 270 mit dem Blockchain-Netzwerkwerk 260 kommunizieren. Das Blockchain-Netzwerkwerk 260 umfasst zumindest einen oder mehrere Blockchain-Server 200, 220, 240. Die Blockchain-Server 200, 220, 240 umfassen jeweils einen Speicher 202, 222, 242 mit der Blockchain 204, welche in einem der Blöcke eine dem Fahrzeug zugeordnetes Programmmodul 206 zum Eintragen von Zustandsdaten umfasst. Das Programmmodul 206 umfasst dabei Programminstruktionen. Durch ein Ausführen dieser Programminstruktionen wird ein dem Programmmodul 206 und damit dem entsprechenden Fahrzeug zugeordneten Eintrag mit Zustandsdaten 110, 310, 510, 610 des Fahrzeugs in der Blockchain 204 erzeugt. Zudem identifiziert das Programmmodul 206 den öffentlichen kryptographischen Schlüssel 108 des Fahrzeugs. Beispielsweise ist der öffentlichen kryptographischen Schlüssel 108 in einem der Blöcke der Blockchain hinterlegt. Ferner umfasst jeder der Blockchain-Server 200, 220, 240 einen Prozessor 208, 230, 250, welcher jeweils dazu konfiguriert die Programminstruktionen auszuführen, welche von einem in der Blockchain 204 gespeicherten Programmmodul 206 bereitgestellt werden. Schließlich umfassen die Blockchain-Server 200, 220, 240 eine Kommunikationsschnittstelle 210, 230, 250 zur Kommunikation über das Blockchain-Netzwerk 260 und/oder das Mobilfunknetzwerk 270. Bei dem Blockchain-Netzwerk 260 handelt es sich beispielsweise um ein Peer-to Peer-Netzwerk.
-
Ferner sind die Kommunikationsschnittstelle 210, 230, 250 zur Kommunikation über das Netzwerk 272 konfiguriert. Über das Netzwerk 272 können beispielsweise ein Computersystem 500 eines Herstellers des Fahrzeugs, ein Computersystem 600 eines Besitzers des Fahrzeugs und/oder ein Computersystem 400 eines Providers des Programmmoduls 206 mit einem oder mehreren der Blockchain-Server 200, 220, 240 kommunizieren.
-
Das Computersystem 400 des Providers des Programmmoduls 206 umfasst einen Speicher 402 mit einem öffentlichen kryptographischen Schlüssel 408 eines dem Provider zugeordneten asymmetrischen Schlüsselpaars. Zudem umfasst der Speicher 402 das von dem Providercomputersystem 400 erstellte Programmmodul 206, welches in einem Block der Blockchain 204 gespeichert wird. Zudem umfasst der Speicher 402 einen geschützten Speicherbereich 404, auf welchen ein Zugriff nur über einen Prozessor 412 des Computersystems 400 möglich ist und in dem ein privater kryptographischer Schlüssel 406 des dem Provider zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Der Prozessor 412 ist dazu konfiguriert Programminstruktionen 414 auszuführen, durch deren Ausführung der Prozessor 412 das Computersystem 400 so steuert, dass es das Programmmodul 206 erstellt und zur Speicherung in der Blockchain 204 an einen der Blockchain-Server 200, 220, 240 überträgt. Zum Nachweis der Authentizität des entsprechenden Programmmoduls 206 kann dieses mit dem privaten kryptographischen Schlüssel 406 signiert sein. Ferner kann das Programmmodul 206 in der Blockchain einer Adresse zugeordnet sein, welche dem öffentlichen kryptographischen Schlüssel 408 des Providers entspricht. Somit ist das Programmmodul 206 initial dem Provider zugeordnet, welcher mithin die Verfügungsgewalt über das Programmmodul 206 besitzt. Die Authentizität des dem Provider zugeordneten asymmetrischen Schlüsselpaar kann zudem beispielsweise durch ein Zertifikat und/oder eine entsprechende PKI belegt werden. Schließlich kann der Prozessor 412 Programminstruktionen 414 ausführen, welche ein kryptographisches Protokoll implementieren. Mittels des kryptographischen Protokolls kann beispielsweise eine Datenübertragung zwischen dem Computersystem 400 des Providers und den Blockchain-Servern 200, 220, 240 kryptographisch gesichert werden. Schließlich umfasst das Computersystems 400 eine Kommunikationsschnittstelle 416 zur Kommunikation über das Netzwerk 272. Nach Ausführungsformen handelt es sich bei dem Computersystem 400 beispielsweise um einen Blockchain-Servern des Blockchain-Netzwerks 260.
-
Das Computersystem 500 des Herstellers des Fahrzeugs umfasst einen Speicher 502 mit einem öffentlichen kryptographischen Schlüssel 508 eines dem Hersteller zugeordneten asymmetrischen Schlüsselpaars. Zudem umfasst der Speicher 502 Fahrzeugdaten 510 zum Personalisieren des Programmmoduls 206, d.h. zum Zuordnen des Programmmoduls 206 zu dem Fahrzeug. Hierzu werden die Fahrzeugdaten 510 in einem Block der Blockchain 204 gespeichert. Die Fahrzeugdaten 510 können dabei auch initiale Zustandsdaten des Fahrzeugs umfassen. Zudem umfasst der Speicher 502 einen geschützten Speicherbereich 504, auf welchen ein Zugriff nur über einen Prozessor 512 des Computersystems 500 möglich ist und in dem ein privater kryptographischer Schlüssel 506 des dem Fahrzeughersteller zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Der Prozessor 512 ist dazu konfiguriert Programminstruktionen 514 auszuführen, durch deren Ausführung der Prozessor 512 das Computersystem 500 so steuert, dass es das Programmmodul 206 Personalisiert, d.h. die Fahrzeugdaten 510 dem Programmmodul 206 zuordnet und in der Blockchain 204 speichert. Zum Nachweis der Authentizität eines entsprechenden Datensatzes mit den Fahrzeugdaten 510 kann dieser mit dem privaten kryptographischen Schlüssel 506 signiert sein. Ferner kann das Programmmodul 206 in der Blockchain beispielsweise einer Adresse zugeordnet werden, welche dem öffentlichen kryptographischen Schlüssel 508 des Fahrzeugherstellers entspricht. Somit kann das Programmmodul 206 zum Personalisieren dem Fahrzeughersteller zugeordnet werden, welcher fortan ebenso wie über das von ihm hergestellte Fahrzeug auch die Verfügungsgewalt über das Programmmodul 206 besitzt. Die Authentizität des dem Fahrzeughersteller zugeordneten asymmetrischen Schlüsselpaar kann zudem beispielsweise durch ein Zertifikat und/oder eine entsprechende PKI belegt werden. Schließlich kann der Prozessor 512 Programminstruktionen 514 ausführen, welche ein kryptographisches Protokoll implementieren. Mittels des kryptographischen Protokolls kann beispielsweise eine Datenübertragung zwischen dem Computersystem 500 des Fahrzeugherstellers und den Blockchain-Servern 200, 220, 240 kryptographisch gesichert werden. Schließlich umfasst das Computersystems 500 eine Kommunikationsschnittstelle 516 zur Kommunikation über das Netzwerk 272.
-
Ferner kann ein Computersystem 600 des Besitzers des Fahrzeugs vorgesehen sein, welches einen Speicher 602 mit einem öffentlichen kryptographischen Schlüssel 608 eines dem Fahrzeugbesitzer zugeordneten asymmetrischen Schlüsselpaars umfasst. Der Speicher 602 umfasst ferner Zustandsdaten 610 des Fahrzeugs. Die Zustandsdaten 610 können beispielsweise einen Indikator eines Diebstahls und/oder einer Stilllegung des Fahrzeugs umfassen. Ebenso können die Zustandsdaten 610 aber beispielsweise auch den Kilometerstand des Fahrzeugs angeben. Zudem umfasst der Speicher 602 einen geschützten Speicherbereich 604, auf welchen ein Zugriff nur über einen Prozessor 612 des Computersystems 600 möglich ist und in dem ein privater kryptographischer Schlüssel 606 des dem Fahrzeugbesitzer zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Der Prozessor 612 ist dazu konfiguriert Programminstruktionen 614 auszuführen, durch deren Ausführung der Prozessor 612 das Computersystem 600 so steuert, dass ein Datensatz mit den Zustandsdaten 610 des Fahrzeugs zum Speichern in der Blockchain 204 erzeugt und an einen der Blockchain-Server 200, 220, 240 sendet. Zum Nachweis der Authentizität eines entsprechenden Datensatzes mit den Zustandsdaten 610 kann dieser mit dem privaten kryptographischen Schlüssel 606 signiert sein. Ferner kann das Programmmodul 206 in der Blockchain beispielsweise einer Adresse zugeordnet werden, welche dem öffentlichen kryptographischen Schlüssel 608 des Fahrzeugbesitzers entspricht. Somit kann das Programmmodul 206 beispielsweise nach dem Erwerb des Fahrzeugs durch den Besitzer, dem Fahrzeugbesitzer zugeordnet werden, welcher fortan ebenso wie über das von ihm erworbene Fahrzeug auch die Verfügungsgewalt über das Programmmodul 206 besitzt. Die Authentizität des dem Fahrzeugbesitzer zugeordneten asymmetrischen Schlüsselpaar kann zudem beispielsweise durch ein Zertifikat und/oder eine entsprechende PKI belegt werden. Schließlich kann der Prozessor 612 Programminstruktionen 614 ausführen, welche ein kryptographisches Protokoll implementieren. Mittels des kryptographischen Protokolls kann beispielsweise eine Datenübertragung zwischen dem Computersystem 600 des Fahrzeugbesitzers und den Blockchain-Servern 200, 220, 240 kryptographisch gesichert werden. Schließlich umfasst das Computersystems 600 eine Kommunikationsschnittstelle 616 zur Kommunikation über das Netzwerk 272.
-
2A und 2B zeigen eine zweite Ausführungsform eines exemplarischen Systems zum Protokollieren von Zustandsdaten 110, 310, 510, 610 des Fahrzeugs in einer Blockchain 204. Das System entspricht dabei weitestgehend dem System aus den 1A und 1B. Im Gegensatz zu dem System gemäß den 1, ist im Falle der 2A das Computersystem 300 der Werkstatt dazu berechtigt selbständig Datensatze mit Zustandsdaten 310 an einen oder mehrere der Blockchain-Servern 200, 220, 240 zum Eintragen in die Blockchain 204 zu senden. Hierzu ist das Computersystem 300 dazu konfiguriert mit seiner Kommunikationsschnittstelle 316 über das Netzwerk 272 mit dem Blockchain-Netzwerk 260 zu kommunizieren. Nach weiteren Ausführungsformen kann das Computersystem 300 der Werkstatt zusätzlich wie bereits in 1A gezeigt auch über das Fahrzeugcomputersystem Zustandsdaten in die Blockchain 204 eintragen lassen. Hierzu verfügt das Computersystem 300 gemäß 2A zusätzlich über eine Kommunikationsverbindung 274, wie sie in 1A gezeigt ist.
-
3 zeigt eine Ausführungsform eines exemplarischen Systems zum Erfassen von Zustandsdaten 110 des Fahrzeugs. Das Fahrzeugcomputersystem 100 entspricht den in den 1A und 2A gezeigten Ausführungsformen. Die fahrzeugeigenen Sensoren umfassen im Falle der 3 eine Mehrzahl von Elektronikkomponenten 140, 160, 180 der Fahrzeugelektronik, welche über das fahrzeugeigene Netzwerk 276 mit dem Fahrzeugcomputersystem 100 verbunden sind.
-
Die Elektronikkomponenten 140, 160, 180 umfassen jeweils einen Speicher 144, 164, 184 mit einem öffentlichen kryptographischen Schlüssel 152, 172, 192 eines der jeweiligen Elektronikkomponente 140, 160, 180 zugeordneten asymmetrischen Schlüsselpaars. Zudem umfassen die Speicher 144, 164, 184 jeweils einen geschützten Speicherbereich 146, 166, 186, auf welchen ein Zugriff nur über einen Prozessor 154, 174, 194 der jeweiligen Elektronikkomponente 140, 160, 180 möglich ist und in dem ein privater kryptographischer Schlüssel 148, 168, 188 des der jeweiligen Elektronikkomponente 140, 160, 180 zugeordneten asymmetrischen Schlüsselpaars gespeichert ist. Zudem ist in dem geschützten Speicherbereich 146, 166, 186 jeweils eine Kennung 150, 170, 190 der entsprechenden Elektronikkomponente 140, 160, 180 gespeichert. Die Prozessor 154, 174, 194 sind dazu konfiguriert Programminstruktionen 156, 176, 196 auszuführen, durch welche eine kryptographisch gesicherte Übertragung der Kennungen 150, 170, 190 an das Fahrzeugcomputersystem 100 implementiert wird. Schließlich umfassen die Elektronikkomponente 140, 160, 180 jeweils eine Kommunikationsschnittstelle 142, 162, 182 zur Kommunikation mit dem Fahrzeugcomputersystem 100 über das Netzwerk 276.
-
Das System gemäß 3 ermöglicht eine Abfrage der Kennungen, d.h. zum Beispiel der Seriennummern, von einer oder mehreren in dem Fahrzeug eingebauter Komponenten 140, 160, 180 der Fahrzeugelektronik durch das Fahrzeugcomputersystem 100 zum Zusammenstellen von Zustandsdaten 110 des Fahrzeugs. Aus empfangenen Seriennummern kann das Fahrzeugcomputersystem 100 beispielsweise Zustandsdaten in Form eines die Zusammenstellung der Elektronikkomponenten 140, 160, 180 kennzeichnenden fahrzeugspezifischen Code erstellen, der in mit Hilfe des privaten kryptographischen Schlüssels 106 des Fahrzeugs signiert und zum Eintragen in die Blockchain an einen der Blockchain-Servern 200, 220, 240 übertragen wird. Bei den Elektronikkomponenten 140, 160, 180 handelt es sich beispielsweise um Motorelektronikkomponenten, Fahrwerkselektronikkomponenten und/oder weitere Elektronikkomponenten, die jeweils als gesonderte Electronic Control Units (ECUs) ausgebildet sein können.
-
Vor der Abfrage der Kennungen, z.B. der Seriennummern, von den Elektronikkomponenten 140, 160, 180 müssen diese Komponenten beispielsweise zunächst untereinander und/oder gegenüber dem Fahrzeugcomputersystem 100 mit Hilfe der jeweiligen Schlüsselpaare kryptographisch authentifiziert werden. Die Authentizität der den Elektronikkomponenten 140, 160, 180 zugeordneten asymmetrischen Schlüsselpaare kann zudem beispielsweise durch Zertifikate und/oder jeweils eine entsprechende PKI belegt werden.
-
Beispielsweise erzeugt das Fahrzeugcomputersystem 100 bzw. eine authentifizierende Elektronikkomponente eine Zufallszahl, insbesondere ein Pseudo-Zufallszahl, welche mit dem öffentlichen kryptographischen Schlüssel 152, 172, 192 der zu authentifizierenden Elektronikkomponenten 140, 160, 180 verschlüsselt und an die entsprechende zu authentifizierenden Elektronikkomponenten 140, 160, 180 über das Netzwerk 276 gesendet wird, beispielsweise Elektronikkomponente 140. Die Elektronikkomponenten 140 empfängt die verschlüsselte Pseudo-Zufallszahl, entschlüsselt diese mit Hilfe ihres privaten kryptographischen Schlüssels 148 und sendet die entschlüsselte Pseudo-Zufallszahl wieder an das Fahrzeugcomputersystem 100 zurück. Nach Ausführungsformen verschlüsselt die Elektronikkomponente 140 die Pseudo-Zufallszahl mit dem öffentlichen kryptographischen Schlüssel 108 des Fahrzeugcomputersystem 100. Das Fahrzeugcomputersystem 100 empfängt die Pseudo-Zufallszahl von der Elektronikkomponente 140 und entschlüsselt diese gegebenenfalls mit ihrem privaten kryptographischen Schlüssel 106. Nur wenn die von dem Fahrzeugcomputersystem 100 empfangene Pseudo-Zufallszahl mit der ursprünglich gesendeten Zufallszahl übereinstimmt, ist die Elektronikkomponente 140 gegenüber dem Fahrzeugcomputersystem 100 authentifiziert, woraufhin deren Kennung 170 abgefragt werden kann. Die Übertragung der Kennung 170 kann beispielsweise in verschlüsselter Form erfolgen. Beispielsweise wird ein symmetrischer Schlüssel verwendet, der unter Verwendung der Pseudozufallszahl errechnet wird.
-
Falls die kryptographische einer der Elektronikkomponenten 140, 160, 180 gegenüber dem Fahrzeugcomputersystem 100 fehlschlägt, so kann dieses keinen entsprechenden Code erzeugen und sendet daher als Zustandsdaten des Fahrzeugs eine entsprechende Fehlermeldung an die Blockchain-Servern 200, 220, 240, welche diese daraufhin in die Blockchain 204 eintragen.
-
Fällt eine der Elektronikkomponenten 140, 160, 180 aus und muss diese durch eine neue Elektronikkomponente mit einer neuen Kennung ersetzt werden, so ändert sich durch einen Austausch einer der Elektronikkomponenten 140, 160, 180 der Zustand des Fahrzeugs, was sich damit auch in einem veränderten Code niederschlägt. Nach Ausführungsformen wird der Code jeweils mit dem zuletzt berechneten Code verglichen. Der zuletzt berechnete Code kann beispielsweise in dem Speicher 102 des Fahrzeugcomputers 100 gespeichert sein oder aus der Blockchain 204 abgefragt werden. Unterscheidet sich der neu berechnete Code von dem zuletzt berechneten Code, so umfasst der von dem Fahrzeugcomputers 100 erstellte Datensatz mit dem neuen Code beispielsweise zusätzlich alle einzelnen Kennungen 150, 170, 190 der Elektronikkomponenten 140, 160, 180. Nach weiteren Ausführungsformen werden initial einmal alle Kennungen 150, 170, 190 aller Elektronikkomponenten 140, 160, 180 in der Blockchain 204 gespeichert. Anschließend werden bei Änderungen der Zusammenstellung nur diejenigen Kennungen zusammen mit dem neuen Code in der Blockchain gespeichert, welche sich geändert haben, d.h. neu sind. Somit kann beim Austausch einer der Elektronikkomponenten 140, 160, 180 anhand der der Blockchain 204 zudem ermittelt werden, welche der Elektronikkomponenten 140, 160, 180 ausgetauscht wurde.
-
4 zeigt eine erste Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain. Die Zustandsdaten werden beispielsweise durch ein Computersystem des Fahrzeugs selbst zusammengestellt und zum Eintragen in die Blockchain an einen Blockchain-Server eines Blockchain-Netzwerks gesendet. In Block 700 werden Zustandsdaten empfangen. Diese Zustandsdaten können beispielsweise von fahrzeugeigenen Sensoren oder externen Sensoren stammen. Je nach Ausführungsform der Sensoren kann vor der Übertragung der Sensormesswerte zunächst eine Authentifizierung eines oder mehrerer Sensoren durch das Fahrzeugcomputersystem und/oder eine Authentifizierung des Fahrzeugcomputersystems durch einen oder mehrere der Sensoren vorgesehen sein. ferner kann auch eine Authentifizierung von Sensoren untereinander vorgesehen sein. Eine Authentifizierung kann beispielsweise unter Verwendung von den zu authentifizierenden Einrichtungen zugeordneten asymmetrischen Schlüsselpaaren erfolgen.
-
Werden sensormesswerte beispielsweise von einem Computersystem einer autorisierten Werkstatt bereitgestellt, kann beispielsweise vorgesehen sein, dass das Fahrzeugcomputersystem ein asymmetrisches Schlüsselpaar bestehend aus einem öffentlichen kryptographischen Schlüssel und einem privaten kryptographischen Schlüssel sowie einem diesem Schlüsselpaar zugeordneten Zertifikat umfasst, welches dem betreffenden Fahrzeug zugeordnet ist. Das Fahrzeug ist in dem Zertifikat vermerkt. Ferner umfasst das Computersystem der autorisierten Werkstatt zudem ein asymmetrisches Schlüsselpaar bestehend aus einem öffentlichen kryptographischen Schlüssel und einem privaten kryptographischen Schlüssel sowie einem diesem Schlüsselpaar zugeordneten Zertifikat, welches der betreffenden autorisierten Werkstatt zugeordnet ist. Die autorisierte Werkstatt ist in dem Zertifikat vermerkt.
-
Für die Durchführung einer gegenseitigen kryptographischen Authentifizierung generiert das Fahrzeugcomputersystem und/oder das Computersystem der Werkstatt beispielsweise eine Zufallszahl, insbesondere ein Pseudo-Zufallszahl. Die Pseudo-Zufallszahl(en) werden mit dem jeweiligen privaten kryptographischen Schlüssel von Fahrzeugcomputersystem und/oder Computersystem der Werkstatt verschlüsselt zwischen Fahrzeugcomputersystem und Computersystem der Werkstatt ausgetauscht. Zudem wird mit der verschlüsselten Pseudo-Zufallszahl jeweils auch ein Zertifikat mit dem öffentlichen Schlüssel zum Entschlüsseln der Pseudozufallszahl mitgesendet. Somit können das Fahrzeugcomputersystem und/oder das Computersystem der Werkstatt über den Besitz des jeweiligen privaten Schlüssels Authentifiziert werden.
-
Nach einer weiteren Ausführungsform wird zur Authentifizierung zunächst eine Zufallszahl, insbesondere ein Pseudo-Zufallszahl von dem Fahrzeugcomputersystem und/oder dem Computersystem der Werkstatt berechnet. Die entsprechende Pseudo-Zufallszahl wird mit dem öffentlichen kryptographischen Schlüssel des Empfängercomputersystems verschlüsselt und an das entsprechende Empfängercomputersystem gesandt. Dieses kann die empfangene verschlüsselte Pseudo-Zufallszahl mit seinem privaten kryptographischen Schlüssel entschlüsseln. Nach Ausführungsformen wird die Pseudo-Zufallszahl anschließend mit dem öffentlichen kryptographischen Schlüssel des ursprünglichen Sendercomputersystems verschlüsselt und an dieses zurückgesendet. Das ursprüngliche Sendercomputersystem kann die Pseudo-Zufallszahl mit seinem privaten kryptographischen Schlüssel entschlüsseln und mit der ursprünglichen Pseudo-Zufallszahl vergleichen. Stimmen diese überein, so ist das Empfängercomputersystem authentifiziert. Ein analoges verfahren kann nun umgekehrt angewandt werden, um das Sendercomputersystem zu authentifizieren. Ferner kann unter Verwendung der Pseudo-Zufallszahl auch ein symmetrischer kryptographischer Schlüssel zur Verschlüsselung der weiteren Kommunikation zwischen den Computersystemen berechnet werden.
-
Die Übertragung von Sensordaten kann beispielsweise auf eine Anfrage durch das Fahrzeugcomputersystem hin erfolgen. Nach einer alternativen Ausführungsform erfolgt die Übertragung durch den Sensor selbständig. Eine solche selbständige Übertragung kann beispielsweise auf einer Erfüllung eines vordefinierten Kriteriums hin erfolgen. Ein solches vordefiniertes Kriterium kann der beispielsweise ein Ablauf eines vordefinierten Zeitintervalls sein oder ein erfasst Sensormesswert erfüllt ein entsprechendes Kriterium. Beispielsweise liegt der Sensormesswert über oder unter einem vordefinierten Schwellenwert.
-
In Block 702 erstellt das Fahrzeugcomputersystem einen Datensatz zum Eintragen in die Blockchain, welcher die einzutragenden Zustandsdaten umfasst und zudem das dem Fahrzeug zugeordnete Programmmodul identifiziert. Das Programmmodul kann beispielsweise durch eine Kennung, eine dem Programmmodul zugeordnete Adresse oder eine Kennung des Blocks, welcher das Programmmodul umfasst, identifiziert werden. In Block 704 signiert das Fahrzeugcomputersystem den Datensatz mit einem dem Fahrzeugcomputersystem zugeordneten privaten kryptographischen Schlüssel. In Block 706 wird der signierte Datensatz zum Eintragen in die Blockchain an einen Blockchain-Server des Blockchain-Netzwerks gesendet. In Block 708 empfängt der Blockchain-Server den Datensatz. Anhand des Datensatzes identifiziert der Blockchain-Server das in der zu verwendenden Programmmodul, welches in der Blockchain gespeichert ist. In Block 710 wird das Programmmodul durch den Blockchain-Server unter Verwendung des empfangenen Datensatzes ausgeführt. In Block 712 wird die Signatur des Datensatzes geprüft. Beispielsweise ist in der Blockchain der öffentliche kryptographische Schlüssel des Fahrzeugcomputersystems hinterlegt. Nach Ausführungsformen ist das Fahrzeugcomputersystem nur berechtigt Zustandsdaten in die Blockchain einzutragen, wenn es hierfür gültig registriert wurde. Beispielsweise wird geprüft, ob der öffentliche kryptographische Schlüssel des Fahrzeugcomputers für das Programmmodul gültig in der Blockchain hinterlegt sein, d.h. ob der entsprechende öffentliche kryptographische Schlüssel zusammen mit einer Kennung des Programmmoduls und einer Signatur des Providers des Programmmoduls in einem Block der Blockchain gespeichert ist. Alternativ kann der entsprechende öffentliche kryptographische Schlüssel mit einer Signatur gespeichert sein, welche auf durch eine in der Blockchain gespeicherte Kette von Signaturen auf eine Signatur des Providers des Programmmoduls zurückgeführt werden kann. Nach Ausführungsformen kann die Blockchain auch Zertifikate umfassen, welche entsprechende öffentliche kryptographische Schlüssel zum Prüfen von Signaturen umfassen und deren Authentizität belegen. Nach Ausführungsformen wird die Authentizität entsprechender Zertifikat beispielswiese durch eine von der Blockchain bereitgestellte PKI belegt.
-
Ergibt die Prüfung, dass die Signatur des in die Blockchain einzutragenden Datensatzes gültig ist, erfolgt in Block 714 ein eintragen des Datensatzes mit den Zustandsdaten des Fahrzeugs durch den Blockchain-Server. Nach Ausführungsformen umfasst der Eintrag einen Zeitstemple. Nachausführungsformen ist bezeichnet der zeitstemple den Zeitpunkt der Messung der den Zustandsdaten zugrundeliegenden Messwerten, den Zeitpunkt des Erstellens des Datensatzes und/oder den Zeitpunkt der Eintragung in die Blockchain.
-
Die 4 wurde hier unter Bezugnahme auf das Fahrzeugcomputersystem beschrieben. In analoger Weise können auch Einträge von Zustandsdaten und Fahrzeugspezifikationen von anderen Computersystemen erfolgen, wie etwa einem Providercomputersystem, einem Computersystem einer Werkstatt, einem Computersystem eines Fahrzeugherstellers und/oder dem Computersystem eines Fahrzeugbesitzers. Nach Ausführungsformen ist Voraussetzung hierfür, dass die entsprechenden Computersysteme zu solchen Einträgen berechtigt sind. Eine entsprechende Berechtigung kann wie im Fall Fahrzeugcomputersystem durch signierte Hinterlegung eines dem Computersystem zugeordneten öffentlichen kryptographischen Schlüssel erfolgen.
-
5 zeigt eine zweite Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain. Wie in Schritt 700 der 2 werden auch in Schritt 800 der 3 Zustandsdaten empfangen. In Schritt 802 wird geprüft, ob ein vordefiniertes Kriterium zum Erstellen eines Datensatzes mit den empfangenen Zustandsdaten und Eintragen des entsprechenden Datensatzes in die Blockchain erfüllt ist. Ist das Kriterium erfüllt, so wird das Verfahren in Block 804 mit dem Erstellen eines Datensatzes fortgesetzt, welcher die aktuellen Zustandsdaten umfasst. Ist das Kriterium nicht erfüllt, so wird das Verfahren in Block 800 fortgesetzt bis das Kriterium erfüllt wird. Bei dem Kriterium kann es sich beispielsweise um ein Zeitkriterium handeln. Ist eine vordefinierte Zeitspanne abgelaufen, erfolgt ein Eintrag in der Blockchain. Die aktuellen Zustandsdaten umfassen dabei beispielsweise entweder die zuletzt erfassten Zustandsdaten oder alle in dem Zeitintervall seit der letzten Erstellung eines Datensatzes empfangenen Daten. Als Kriterium für ein Erstellen eines Datensatzes kann beispielsweise auch die Beendigung einer Fahrt dienen, wobei eine Fahrt beispielsweise mit dem Starten der Zündung des Fahrzeugs beginnt und mit dem Ausschalten der Zündung endet. Handelt es sich bei den Zustandsdaten um Zustandsdaten, bei welchen nur der aktuellste Wert jeweils relevant ist, wie beispielsweise bei dem Kilometerstand des Fahrzeugs, so wird nach Ausführungsformen nur der zuletzt erfasste und damit aktuellste Messwert in den Datensatz aufgenommen. Handelt es bei den Zustandsdaten um Zustandsdaten, bei welchen alle erfassten Werte relevant sind, wie beispielsweise bei Fehlermeldungen, so werden nach Ausführungsformen alle im relevanten Zeitintervall erfassten Zustandsdaten in den Datensatz aufgenommen. Ferner kann des Kriterium beispielsweise ein Über- oder Unterschreiten eines Schwel- lenwerts durch einen erfassten Messwert sein. Beispielsweise werden relevante Zustandsdaten, wie etwa ein aktueller Kilometerstand, jeweils bei Erreichen eines bestimmten Kilometerstands eingetragen. Beispielsweise erfolgt eine Eintragung all 100 km, 500 km, 1.000 km, 2.000 km, 5.000 km oder 10.000 km. Die weiteren Schritte 804 bis 816 sind analog zu den Schritten 702 bis 714 der 4.
-
6 zeigt eine dritte Ausführungsform eines exemplarischen Verfahrens zum Protokollieren von Zustandsdaten eines Fahrzeugs in einer Blockchain. In Block 900 wird von dem Provider Computersystem ein Programmmodul erstellt. Die Authentizität des Programmmoduls wird beispielsweise durch eine Signatur mit einem dem Provider zugeordneten privaten kryptographischen Schlüssel belegt. Die Authentizität der Signatur kann beispielsweise durch einen zugehörigen öffentlichen kryptographischen Schlüssel gegebenenfalls in Kombination mit einem entsprechenden Zertifikat nachgewiesen werden. In Block 902 wird das Programmmodul in die Blockchain eingetragen. Nach Ausführungsformen darf beispielsweise nur ein bestimmter Provider oder nur eine begrenzte Anzahl an Providern Programmmodule in die Blockchain eintragen. Das Programmmodul ist beispielsweise noch keinem bestimmten Fahrzeug zugeordnet. Vielmehr umfasst das Programmmodul Programinstruktionen, welche bestimmte Datentypen und Teilnehmertypen des Protokollierungsverfahrens definieren, wie etwa Zustandsdaten und Fahrzeugspezifikationen, einen Provider des Programmmoduls, ein Fahrzeug, einen Hersteller des Fahrzeugs, einen Besitzer des Fahrzeugs, eine Werkstatt. Nach Ausführungsformen ist das Programmmodul initial einer Adresse des Providers zugeordnet, welche beispielsweise einen dem Provider zugeordneten öffentlichen Schlüssel umfasst.
-
In Block 904 erfolgt eine Transaktion des Programmmoduls von der Adresse des Providers an eine Adresse des Fahrzeugherstellers. Beispielsweise umfasst die dem Fahrzeughersteller zugeordnete Adresse einen öffentlichen kryptographischen Schlüssel des Fahrzeugherstellers. Zusätzlich zur Transaktion des Programmmoduls an die Adresse des Fahrzeugherstellers wird die Berechtigung des Fahrzeugherstellers zum Personalisieren des Programmmoduls für ein bestimmtes Fahrzeug freigeschaltet. Die Freischaltung kann beispielsweise durch einen entsprechenden Funktionsaufruf des Programmmoduls durch den Provider oder durch eine Eingabe eines Passworts von Seiten des Fahrzeugherstellers. Das entsprechende Passwort wird dem Fahrzeughersteller beispielsweise durch den Provider zur Verfügung gestellt. Bei dem Passwort handelt es sich beispielsweise um eine Einmalpasswort, wie etwa eine TAN. Das Passwort wird dem Fahrzeughersteller von dem Provider beispielsweise über eine kryptographisch gesicherte Verbindung zwischen einem Computersystem des Fahrzeugherstellers und einem Computersystem des Providers zur übermittelt. Beispielsweise handelt es sich bei der kryptographisch gesicherten Verbindung verschlüsselte Ende-zu-Ende-Verbindung. Unter einer „verschlüsselten Ende-zu-Ende-Verbindung“ bzw. einem „verschlüsselten Ende-zu-Ende-Übertragungskanal“ wird hier eine Verbindung zwischen einem Sender und einem Empfänger mit einer Ende-zu-Ende-Verschlüsslung verstanden, bei der zu übertragende Daten vom Sender verschlüsselt und erst vom Empfänger wieder entschlüsselt werden. Die Verschlüsselung übertragener Daten erfolgt somit über alle Übertragungsstationen hinweg, sodass Zwischenstationen aufgrund der Verschlüsslung keine Kenntnis vom Inhalt der übertragenen Daten erlagen können. Die Verbindung wird durch die Verschlüsselung kryptografisch abgesichert, um ein Ausspähen und/oder eine Manipulation der Übertragung zu verhindern, wobei hierzu ein sogenanntes Secure-Messaging-Verfahren eingesetzt werden kann. Eine Ende-zu-Ende-Verschlüsslung beruht beispielsweise auf zwei symmetrischen kryptographischen Schlüsseln, wobei ein erster der symmetrischen Schlüssel zum Verschlüsseln von Nachrichten und ein zweite der symmetrischen Schlüssel zum Authentifizieren des Senders der Nachricht dient.
-
Der Schlüssel zum Authentifizieren des Senders der Nachricht kann beispielsweise zum Erstellen eines Nachrichtenauthentifizierungscodes (Message Authentication Code, MAC) dienen. Mittels eines MAC lässt sich Gewissheit über den Ursprung der Nachrichten erhalten und deren Integrität verifizieren. MAC-Algorithmen erfordern zwei Eingabeparameter, erstens die zu schützenden Daten und zweitens einen geheimen Schlüssel. Aus diesen beiden wird ein Nachrichtenauthentifizierungscode in Form einer Prüfsumme berechnet. Der Sender einer Nachricht berechnet für die zu übermittelnden Daten der Nachricht einen MAC und sendet die Nachricht zusammen mit dem MAC an den Empfänger. Der Empfänger berechnet den MAC zu der empfangenen Nachricht mit seinem Schlüssel und vergleicht den berechneten MAC mit dem empfangenen MAC. Aus einer Übereinstimmung beider Werte folgt, dass die Nachricht von einer Partei abgeschickt wurde, welche Zugriff auf den geheimen Schlüssel besitzt und die Nachricht wurde während der Übertragung nicht verändert.
-
In Block 906 wird das Programmmodul von dem Fahrzeughersteller personalisier, d.h. das Programmmodul wird dem Fahrzeug zugeordnet. Hierzu wird beispielsweise ein mit dem privaten kryptographischen Schlüssel des Fahrzeugherstellers signierter Eintrag in der Blockchain erzeugt, welcher einen öffentlichen kryptographischen Schlüssel des Fahrzeugs dem Programmmodul zuordnet. Zudem kann der Eintrag Fahrzeugspezifikationen des Fahrzeugs umfassen, d.h. Attribute des Fahrzeugs.
-
In Block 908 erfolgt eine Transaktion des Programmmoduls von der Adresse des Fahrzeugherstellers an eine Adresse eines Fahrzeugbesitzers, welcher das Fahrzeug von dem Fahrzeughersteller erwirbt. Beispielsweise umfasst die dem Fahrzeugbesitzer zugeordnete Adresse einen öffentlichen kryptographischen Schlüssel des Fahrzeugbesitzers. In Block 910 werden Zustandsdaten des Fahrzeugs unter Verwendung des Programmmoduls beispielsweise durch das Fahrzeugcomputersystem in die Blockchain eingetragen.
-
In Block 912 können nun beispielsweise die Zustandsdaten des Fahrzeugs durch einen Kaufinteressenten geprüft werden. Nach Ausführungsformen werden Zustandsdaten welche nicht öffentlich sind verschlüsselt in die Blockchain eingetragen. Beispielsweise werden entsprechende Zustandsdaten mit einem öffentlichen kryptographischen Schlüssel des eintragenden Computersystems verschlüsselt, so dass diese nur durch das eintragende Computersystem mit dessen privaten kryptographischen Schlüssel entschlüsselt werden können. In Block 914 erfolgt eine Transaktion des Programmmoduls von der Adresse des bisherigen Fahrzeugbesitzers an eine Adresse eines neuen Fahrzeugbesitzers, welcher das Fahrzeug von dem bisherigen Fahrzeugbesitzer erwirbt. Beispielsweise umfasst die dem neuen Fahrzeugbesitzer zugeordnete Adresse einen öffentlichen kryptographischen Schlüssel des neuen Fahrzeugbesitzers. In Block 916 werden weiterhin Zustandsdaten des Fahrzeugs, beispielsweise durch das Fahrzeugcomputersystem, in die Blockchain eingetragen.
-
Bezugszeichenliste
-
- 100
- Fahrzeugcomputersystem
- 102
- Speicher
- 104
- geschützter Speicherbereich
- 106
- privater kryptographischer Schlüssel
- 108
- öffentlicher kryptographischer Schlüssel
- 110
- Zustandsdaten
- 112
- Prozessor
- 114
- Programminstruktionen
- 116
- Sensorschnittstelle
- 118
- Mobilfunkschnittstelle
- 120
- Kommunikationsschnittstelle
- 130
- Sensor
- 131
- Sensorschnittstelle
- 132
- Sensor
- 133
- Sensorschnittstelle
- 134
- Sensor
- 135
- Sensorschnittstelle
- 140
- Elektronikkomponente
- 142
- Sensorschnittstelle
- 144
- Speicher
- 146
- geschützter Speicherbereich
- 148
- privater kryptographischer Schlüssel
- 150
- Kennung
- 152
- öffentlicher kryptographischer Schlüssel
- 154
- Prozessor
- 156
- Programminstruktionen
- 160
- Elektronikkomponente
- 162
- Sensorschnittstelle
- 164
- Speicher
- 166
- geschützter Speicherbereich
- 168
- privater kryptographischer Schlüssel
- 170
- Kennung
- 172
- öffentlicher kryptographischer Schlüssel
- 174
- Prozessor
- 176
- Programminstruktionen
- 180
- Elektronikkomponente
- 182
- Sensorschnittstelle
- 184
- Speicher
- 186
- geschützter Speicherbereich
- 188
- privater kryptographischer Schlüssel
- 190
- Kennung
- 192
- öffentlicher kryptographischer Schlüssel
- 194
- Prozessor
- 196
- Programminstruktionen
- 200
- Blockchain-Server
- 202
- Speicher
- 204
- Blockchain
- 206
- Programmmodul
- 208
- Prozessor
- 210
- Kommunikationsschnittstelle
- 220
- Blockchain-Server
- 222
- Speicher
- 228
- Prozessor
- 230
- Kommunikationsschnittstelle
- 240
- Blockchain-Server
- 242
- Speicher
- 248
- Prozessor
- 250
- Kommunikationsschnittstelle
- 260
- Blockchain-Netzwerk
- 270
- Mobilfunknetzwerk
- 272
- Netzwerk
- 274
- Kommunikationsverbindung
- 276
- Netzwerk
- 300
- Werkstattcomputersystem
- 302
- Speicher
- 304
- geschützter Speicherbereich
- 306
- privater kryptographischer Schlüssel
- 308
- öffentlicher kryptographischer Schlüssel
- 310
- Zustandsdaten
- 312
- Prozessor
- 314
- Programminstruktionen
- 316
- Kommunikationsschnittstelle
- 400
- Providercomputersystem
- 402
- Speicher
- 404
- geschützter Speicherbereich
- 406
- privater kryptographischer Schlüssel
- 408
- öffentlicher kryptographischer Schlüssel
- 412
- Prozessor
- 414
- Programminstruktionen
- 416
- Kommunikationsschnittstelle
- 500
- Herstellercomputersystem
- 502
- Speicher
- 504
- geschützter Speicherbereich
- 506
- privater kryptographischer Schlüssel
- 508
- öffentlicher kryptographischer Schlüssel
- 510
- Fahrzeugdaten
- 512
- Prozessor
- 514
- Programminstruktionen
- 516
- Kommunikationsschnittstelle
- 600
- Besitzercomputersystem
- 602
- Speicher
- 604
- geschützter Speicherbereich
- 606
- privater kryptographischer Schlüssel
- 608
- öffentlicher kryptographischer Schlüssel
- 610
- Zustandsdaten
- 612
- Prozessor
- 614
- Programminstruktionen
- 616
- Kommunikationsschnittstelle
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- David Schwartz et al.: „The Ripple Protocol Consensus Algorithm“, Ripple Labs Inc., 2014 [0021]
- ISO/IEC 7816-8 [0025]