-
HINTERGRUND
-
Die vorliegende Offenlegung bezieht sich allgemein auf elektronische Computersysteme. Genauer gesagt beziehen sich Aspekte dieser Offenlegung auf Systeme, Verfahren und Geräte zur Bereitstellung identischer Computersysteme für mehrere misstrauische Parteien, wobei jede Partei einen sicheren Berechtigungsnachweis für den Zugriff auf das Computersystem und dessen Bereitstellung verwendet.
-
Die Hersteller elektronischer Komponenten und elektronischer Rechensysteme, wie z. B. Prozessoren, elektronische Steuereinheiten (ECUs) und dergleichen, stellen diese Systeme oft mehreren konkurrierenden Parteien zur Verfügung. Diese Systeme erfordern häufig einen sicheren Datenzugriff auf das Gerät, eine sichere Kommunikation zwischen den Geräten, und die Geräte können geschützte Algorithmen, elektronische Daten und Ähnliches enthalten. Daher kann es bei diesen Systemen erforderlich sein, dass geschützte Informationen für jede der konkurrierenden Parteien auf dem System installiert werden, bevor es an jede der Parteien ausgeliefert wird. Dies führt zu dem Problem, dass für jede Partei ein anderes System erstellt werden muss, damit die geschützten Informationen nicht unter den Parteien verteilt und/oder gemeinsam genutzt werden. Die Erstellung individueller Systeme für jeden Kunden führt zu einer Vervielfachung der Teile, was die mit dem System verbundenen Kosten erhöht und die Komplexität der Lieferung und Verteilung steigert. Es wäre wünschenswert, diese Probleme zu überwinden, indem man den Parteien, die sich gegenseitig misstrauen, ein einziges Teil zur Verfügung stellt, das die Sicherheitsdaten der einzelnen Parteien schützt.
-
Die in diesem Abschnitt über den Hintergrund offengelegten Informationen dienen lediglich dem besseren Verständnis des Hintergrunds der Erfindung und können daher Informationen enthalten, die nicht zum Stand der Technik gehören und die einem Fachmann in diesem Land bereits bekannt sind.
-
BESCHREIBUNG
-
Hierin werden verschiedene sichere elektronische Systeme und die zugehörige Steuerlogik zur Bereitstellung sicherer elektronischer Systeme, Verfahren zur Herstellung und zum Betrieb solcher Systeme sowie Kraftfahrzeuge, die mit sicheren elektronischen Systemen an Bord ausgestattet sind, vorgestellt. Als Beispiel und ohne Einschränkung wird ein Computersystem vorgestellt, das gegenseitig misstrauischen Parteien zur Verfügung gestellt werden kann und das die Sicherheitsnachweise jeder Partei schützt, indem es ein Verfahren und eine Vorrichtung für den sicheren Zugriff durch jede Partei und entsprechende Kontrollsysteme ermöglicht.
-
Gemäß einem Aspekt der vorliegenden Offenbarung umfasst ein Verfahren das Speichern eines ersten Kundenschlüssels und eines zweiten Kundenschlüssels in einem Speicher, das Empfangen eines geheimen Schlüssels durch einen Prozessor, das Entschlüsseln des geheimen Schlüssels durch den Prozessor unter Verwendung eines ersten Kundenschlüssels, um einen Hauptschlüssel zu extrahieren, das Bereitstellen einer elektronischen Steuereinheit durch den Prozessor in Reaktion auf den Hauptschlüssel und das Löschen des zweiten Kundenschlüssels durch den Prozessor in Reaktion auf das Bereitstellen der elektronischen Steuereinheit in Reaktion auf den Hauptschlüssel.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung werden der erste Kundenschlüssel und der geheime Schlüssel als Reaktion auf eine eindeutige Kennung der elektronischen Steuereinheit unter Verwendung eines Algorithmus erzeugt, der einem ersten Kunden zugeordnet ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung wird der geheime Schlüssel an einer Controller Area Network-Schnittstelle empfangen.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der zweite Kundenschlüssel einem zweiten Kunden zugeordnet.
-
Gemäß einem weiteren Aspekt der vorliegenden Offenbarung wird eine weitere Bereitstellung der elektronischen Steuereinheit als Reaktion auf eine Bestätigung des Löschens des zweiten Kundenschlüssels durch den Prozessor durchgeführt.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der Prozessor ferner so konfiguriert, dass er die Bereitstellung eines Sicherheitsnachweises zur Verwendung durch die elektronische Steuereinheit in Reaktion auf den Hauptschlüssel ermöglicht.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der Hauptschlüssel ein erster Sicherheitsausweis, der einem ersten Kunden zugeordnet ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung werden der erste Kundenschlüssel und der zweite Kundenschlüssel von einem Lieferanten der elektronischen Steuereinheit als Reaktion auf die eindeutige Kennung der elektronischen Steuereinheit erzeugt und von dem Lieferanten im Speicher gespeichert.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der Prozessor ferner für den Empfang eines Standard-Entsperrungsschlüssels, der einem ersten Kunden zugeordnet ist, betriebsbereit, und wobei der Prozessor ferner für die Änderung des ersten Kundenschlüssels in Reaktion auf den Empfang des Standard-Entsperrungsschlüssels konfiguriert ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung enthält ein sicheres Steuergerät einen Speicher, der zum Speichern eines ersten Schlüssels und erster Daten, die einem ersten Kunden zugeordnet sind, und eines zweiten Schlüssels und zweiter Daten, die einem zweiten Kunden zugeordnet sind, konfiguriert ist, eine Schnittstelle, die einen empfangenen Schlüssel empfängt, und einen Prozessor zum Entschlüsseln des empfangenen Schlüssels als Reaktion auf den ersten Schlüssel, um einen Hauptschlüssel zu erzeugen, zum Bereitstellen einer elektronischen Steuereinheit als Reaktion auf den Hauptschlüssel, zum Löschen des zweiten Schlüssels und der zweiten Daten als Reaktion auf die Bereitstellung der elektronischen Steuereinheit als Reaktion auf den Hauptschlüssel.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung werden der erste Schlüssel und der empfangene Schlüssel als Reaktion auf eine eindeutige Kennung des sicheren Controllers unter Verwendung eines dem ersten Kunden zugeordneten Algorithmus erzeugt.
-
In Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung, wobei die Schnittstelle eine Controller Area Network-Schnittstelle ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung sind die zweiten Daten ein Kontrollalgorithmus, der einem Ökosystem des zweiten Kunden zugeordnet ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der Prozessor ferner in der Lage zu bestätigen, dass die zweiten Daten gelöscht sind, bevor eine weitere Bereitstellung der elektronischen Steuereinheit zugelassen wird.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist der Prozessor ferner so konfiguriert, dass er die Bereitstellung von Sicherheitsberechtigungsnachweisen zur Verwendung durch die sichere Steuereinheit in Reaktion auf den Hauptschlüssel ermöglicht.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung sind die ersten Daten ein erster Sicherheitsnachweis, der einem ersten Kundensystem zugeordnet ist, und die zweiten Daten sind ein zweiter Sicherheitsnachweis, der einem zweiten Kundensystem zugeordnet ist.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung werden der erste Schlüssel und der zweite Schlüssel von einem Lieferanten des sicheren Steuergeräts in Reaktion auf den eindeutigen Identifikator des sicheren Steuergeräts erzeugt und von dem Lieferanten im Speicher gespeichert.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung ist die Schnittstelle ferner so konfiguriert, dass sie einen Standard-Entsperrschlüssel empfängt, der dem ersten Kunden zugeordnet ist, und wobei der Prozessor ferner so konfiguriert ist, dass er den ersten Schlüssel ändert und die ersten Daten, die zweiten Daten und den zweiten Schlüssel in Reaktion auf den Empfang des Standard-Entsperrschlüssels nicht ändert.
-
Gemäß einem weiteren Aspekt der vorliegenden Offenbarung enthält eine elektronische Steuereinheit für ein Fahrzeug einen Speicher, der zum Speichern eines ersten Kundenschlüssels, der einem ersten Kunden zugeordnet ist, eines ersten Bereitstellungsdatums, das dem ersten Kunden zugeordnet ist, eines zweiten Kundenschlüssels, der einem zweiten Kunden zugeordnet ist, und eines zweiten Bereitstellungsdatums, das dem zweiten Kunden zugeordnet ist, konfiguriert ist, eine Netzwerkschnittstelle, die zum Empfangen eines empfangenen Schlüssels konfiguriert ist, eine Netzwerkschnittstelle, die zum Empfangen eines empfangenen Schlüssels konfiguriert ist, und einen Prozessor, der zum Dekodieren des empfangenen Schlüssels konfiguriert ist, um einen Hauptschlüssel zu erzeugen, um die zweiten Bereitstellungsdaten und den zweiten geheimen Schlüssel als Reaktion auf die Erzeugung des Hauptschlüssels zu löschen und um die elektronische Steuereinheit des Fahrzeugs als Reaktion auf den Hauptschlüssel und die ersten Bereitstellungsdaten als Reaktion auf das Löschen der zweiten Bereitstellungsdaten und des zweiten geheimen Schlüssels bereitzustellen.
-
Gemäß einem anderen Aspekt der vorliegenden Offenbarung werden der erste Kundenschlüssel und der empfangene Schlüssel als Reaktion auf eine eindeutige Kennung der elektronischen Steuereinheit des Fahrzeugs unter Verwendung eines dem ersten Kunden zugeordneten Algorithmus erzeugt.
-
Der obige Vorteil und andere Vorteile und Merkmale der vorliegenden Offenbarung werden aus der folgenden detaillierten Beschreibung der bevorzugten Ausführungsformen ersichtlich sein, wenn sie in Verbindung mit den beigefügten Zeichnungen genommen werden.
-
Figurenliste
-
Die oben genannten und andere Merkmale und Vorteile dieser Erfindung und die Art und Weise, sie zu erreichen, werden deutlicher und die Erfindung wird besser verstanden werden durch Bezugnahme auf die folgende Beschreibung von Ausführungsformen der Erfindung in Verbindung mit den beigefügten Zeichnungen genommen.
- 1 zeigt eine beispielhafte Umgebung für die Bereitstellung eines individuell sicheren Systems für mehrere misstrauische Parteien gemäß einer beispielhaften Ausführungsform.
- 2 zeigt ein Blockdiagramm eines Systems zur Bereitstellung eines individuell sicheren Systems für mehrere misstrauische Parteien gemäß einer anderen beispielhaften Ausführungsform.
- 3 zeigt ein Flussdiagramm, das ein Verfahren zur Bereitstellung eines individuell sicheren Systems für mehrere misstrauische Parteien gemäß einer beispielhaften Ausführungsform veranschaulicht.
- 4 zeigt ein Blockdiagramm, das ein anderes System zur Bereitstellung eines individuell sicheren Systems für mehrere misstrauische Parteien gemäß einer anderen beispielhaften Ausführungsform veranschaulicht.
- 5 zeigt ein Flussdiagramm, das ein weiteres Verfahren zur Bereitstellung eines individuell sicheren Systems für mehrere misstrauische Parteien gemäß einer anderen beispielhaften Ausführungsform veranschaulicht.
-
Die hier dargelegten Beispiele veranschaulichen bevorzugte Ausführungsformen der Erfindung, und diese Beispiele sind nicht so auszulegen, dass sie den Umfang der Erfindung in irgendeiner Weise einschränken.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Offenbarung werden hier beschrieben. Es versteht sich jedoch von selbst, dass die offengelegten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Abbildungen sind nicht notwendigerweise maßstabsgetreu; einige Merkmale könnten übertrieben oder verkleinert sein, um Details bestimmter Komponenten zu zeigen. Daher sind spezifische strukturelle und funktionelle Details, die hier offenbart werden, nicht als einschränkend zu verstehen, sondern lediglich repräsentativ. Die verschiedenen Merkmale, die unter Bezugnahme auf eine der Figuren dargestellt und beschrieben sind, können mit Merkmalen kombiniert werden, die in einer oder mehreren anderen Figuren dargestellt sind, um Ausführungsformen zu schaffen, die nicht ausdrücklich dargestellt oder beschrieben sind. Die abgebildeten Merkmalskombinationen stellen repräsentative Ausführungsformen für typische Anwendungen dar. Verschiedene Kombinationen und Modifikationen der Merkmale, die mit den Lehren dieser Offenbarung übereinstimmen, könnten jedoch für bestimmte Anwendungen oder Implementierungen erwünscht sein.
-
In 1 ist eine beispielhafte Umgebung 100 zur Bereitstellung eines individuell gesicherten Systems für mehrere Parteien gemäß einer beispielhaften Ausführungsform dargestellt. Die beispielhafte Umgebung 100 umfasst einen Lieferanten 110, ein Teil 120, einen ersten Kunden 130, einen zweiten Kunden 140 und einen dritten Kunden 150. Die Umgebung 100 umfasst ferner einen ersten Kundenschlüssel 135, einen zweiten Kundenschlüssel 145, einen dritten Kundenschlüssel 155 und einen öffentlichen Schlüssel 125. Das offengelegte System und Verfahren ist so konfiguriert, dass es die Lieferung eines Teils durch einen vertrauenswürdigen Lieferanten 110 an gegenseitig misstrauische Kunden 130, 140, 150 erleichtert, die in der Lage sein müssen, Sicherheitsnachweise für die Verwendung in ihrem Ökosystem auf eine Weise bereitzustellen, die es den anderen Parteien nicht ermöglicht, ihre Sicherheitsnachweise zu kennen oder unangemessen zu verwenden, selbst wenn sie die Bereitstellung beobachten.
-
In dieser beispielhaften Ausführungsform liefert ein vertrauenswürdiger Anbieter 110 dem Teil 120 einen öffentlichen Standardschlüssel 125 und einen eindeutigen geheimen Schlüssel, der für jeden Kunden 130, 140, 150, der das Teil 120 erhält, generiert wird. Das Teil 120 ist so konfiguriert, dass es Software-Updates ablehnt, die dazu führen könnten, dass das Teil 120 von einer Partei so verändert wird, dass es sich im Ökosystem einer anderen Partei bösartig verhält. Das Teil 120 ist so konfiguriert, dass es keine Software-Updates zulässt, bis das Teil für die Verwendung im Ökosystem einer bestimmten Partei konfiguriert wurde, was dazu führt, dass der geheime Schlüssel und alle damit verbundenen Daten aller anderen Parteien gelöscht werden. Der eindeutige geheime Schlüssel stellt sicher, dass jede Partei in der Lage ist, ihre Sicherheitsnachweise vertraulich zu halten, selbst wenn eine andere Partei die Bereitstellung dieser Sicherheitsnachweise beobachtet.
-
Um die Bereitstellung eines individuell sicheren Systems für mehrere Parteien zu erreichen, stellt der Lieferant 110 zunächst jedem der ersten Kunden 130, zweiten Kunden 140 und dritten Kunden 150 Teile 120 zur Verfügung, wobei jedes Teil 120 eine eindeutige ID (UID) hat. Jeder der Kunden hat einen Kundenschlüssel 135, 145, 155, der nur für diesen Kunden geheim ist. Unter Verwendung der UID und der Kundenschlüssel 135, 145, 155 wird für jedes Teil ein geheimer Schlüssel erzeugt. Der geheime Schlüssel jeder Partei wird von der UID unter Verwendung der Kundenschlüssel 135, 145, 155 abgeleitet, wodurch sichergestellt wird, dass jeder Kunde nur seinen eigenen geheimen Schlüssel kennt und nicht die geheimen Schlüssel der anderen Kunden 130, 140, 150.
-
Jeder der Kunden 130, 140, 150, die die Teile 120 erhalten, kann das Teil 120 für die Verwendung in seinem Ökosystem konfigurieren, indem er die UID und seinen Kundenschlüssel 135, 145, 155 verwendet, um den entsprechenden geheimen Schlüssel im Teil zu erzeugen und das Teil mit seinen Sicherheitsdaten zu versehen. Ein anderer Kunde 130, 140, 150, der das Teil erhält, kann das Teil ohne den entsprechenden Kundenschlüssel 135, 145, 155 nicht für die Verwendung im Ökosystem einer anderen Partei konfigurieren. Darüber hinaus können andere Kunden, die die Teile 120 erhalten, auch nicht die Sicherheitsdaten anderer Parteien ermitteln, wenn sie die Konfiguration des Teils beobachten, da die Sicherheitsdaten mit dem Kundenschlüssel 135, 145, 155 der Partei verschlüsselt sind, der den anderen Parteien nicht bekannt ist. Sobald auf das Teil 120 mit einem bestimmten Kundenschlüssel 135, 145, 155 zugegriffen wird, werden die Informationen über andere Kunden gelöscht, um zu verhindern, dass eine Partei die Sicherheitsdaten einer anderen Partei verwendet, nachdem sie die Kontrolle über das Teil übernommen hat. Dies wird dadurch erreicht, dass eine Softwareaktualisierung erst dann zugelassen wird, wenn alle anderen Kundenschlüssel 135, 145, 155 gelöscht sind. In einer beispielhaften Ausführungsform befindet sich jeder der Kunden 130, 140, 150 in einer anderen Region, wobei es für jede Region einen eigenen Kundenschlüssel 135, 145, 155 gibt.
-
Jedes Teil 120 wird außerdem mit einem öffentlichen Schlüssel 125 für jede Partei geliefert, die das Teil 120 erhält. Da das Teil 120 keine Software-Updates zulässt, bis es für die Verwendung durch einen bestimmten Kunden konfiguriert wurde, werden die öffentlichen Standard-Root-Schlüssel 125 für den Übergang zum öffentlichen Produktions-Root-Schlüssel des Kunden verwendet, dürfen aber nicht für Software-Updates verwendet werden. Bei der Bereitstellung des öffentlichen Produktions-Root-Schlüssels werden alle geheimen Schlüssel der anderen Parteien gelöscht, bevor der öffentliche Produktions-Root-Schlüssel für die Änderung der Software verwendet werden kann. Dadurch wird verhindert, dass eine andere Partei die Software des Teils ändern und den geheimen Schlüssel eines anderen Kunden verwenden kann, um die im Ökosystem dieses Kunden verwendeten Sicherheitsanmeldeinformationen zu ermitteln, oder in der Lage ist, Schadsoftware auf ein Teil 120 aufzuspielen, das über gültige Sicherheitsanmeldeinformationen für das Ökosystem eines anderen Kunden verfügt.
-
2 zeigt ein System 200 zur Bereitstellung eines individuell gesicherten Systems für mehrere Parteien gemäß einer beispielhaften Ausführungsform. Das beispielhafte System 200 kann einen Prozessor 210, einen Speicher 220 und eine Schnittstelle 230 umfassen. In dieser beispielhaften Ausführungsform kann das System 200 ein Teil sein, z. B. ein elektronisches Steuergerät (ECU) für Kraftfahrzeuge, das von einem Anbieter an eine Reihe unabhängiger Kunden geliefert wird, wobei jeder Kunde eine einzigartige Konfiguration oder Bereitstellung des Teils benötigt oder eigene Software auf dem System 200 vorinstalliert hat. Diese vorkonfigurierte individuelle Kundensoftware kann geistiges Eigentum des Kunden enthalten, und es ist daher wünschenswert, den Zugriff auf die individuelle Kundensoftware nur auf autorisierte Parteien zu beschränken. In diesem Beispiel kann ein Kundenschlüssel ein Bereitstellungsschlüssel oder ähnliches sein, der verwendet wird, um einen geheimen Schlüssel als Antwort auf einen Hauptschlüssel und den Bereitstellungsschlüssel zu erzeugen.
-
In diesem Beispiel ist der Speicher 220 so konfiguriert, dass er mehrere Sätze von Kundendaten speichert. Diese Kundendaten können Software-Algorithmen, System- oder Teilebereitstellungsdaten und/oder andere sensible Informationen enthalten. Im Beispiel eines Steuergeräts kann das Teil 200 eine speziell entwickelte Software enthalten, um die Steuerfunktionen von Fahrzeugsystemen wie Antriebsstrang, Klimakontrollsystem, Infotainmentsystem, Karosseriesysteme, Fahrwerkssysteme und andere auszuführen. Darüber hinaus kann der Speicher 220 Sicherheitsnachweise enthalten, wie z. B. einen Kundenschlüssel zur Erleichterung der Bereitstellung eines Hauptschlüssels im System 200. In dieser beispielhaften Ausführungsform kann der Speicher 220 einen Kundenschlüssel enthalten, der für jeden Kunden eindeutig ist, wobei der Kundenschlüssel als Reaktion auf eine Teil-UID abgeleitet wird. Jeder Kundenschlüssel wird von der UID abgeleitet, wobei ein anderer geheimer Prozess oder Algorithmus verwendet wird, der nur dem Lieferanten und dem vorgesehenen Kunden bekannt ist. Darüber hinaus kann der Speicher 220 einen öffentlichen Standard-Stammschlüssel für jede Partei enthalten, die das Teil erhält. Der öffentliche Standard-Root-Schlüssel kann für den Übergang zum geheimen Schlüssel des Kunden verwendet werden, darf aber nicht für Software-Updates verwendet werden.
-
Die Schnittstelle 230 kann so konfiguriert sein, dass sie Daten zwischen dem Prozessor 210 und einem externen System empfängt und überträgt. In einer beispielhaften Ausführungsform kann die Schnittstelle 230 einen geheimen Schlüssel von einem Kunden empfangen, der den Zugriff auf das Teil zur Bereitstellung und/oder Konfiguration durch den Kunden ermöglichen soll. In einer beispielhaften Ausführungsform ist der geheime Schlüssel ein Hauptschlüssel, der als Antwort auf den Kundenschlüssel kodiert ist. Die Schnittstelle 230 kann eine Netzwerkschnittstelle sein, z. B. ein CAN-Bus (Controller Area Network), ein Ethernet-Anschluss, ein USB-Anschluss (Universal Serial Bus) oder eine drahtlose Netzwerkschnittstelle, z. B. eine Antenne oder ähnliches. Darüber hinaus kann die Schnittstelle 230 Programmierdaten oder Programmaktualisierungsdaten zur Durchführung eines Betriebsalgorithmus zur Steuerung externer Systeme empfangen. Die Schnittstelle 230 kann ferner Betriebsdaten und/oder Fehlercodes vom Prozessor 210 zur Verbindung mit externen Diagnosesystemen empfangen, beispielsweise über eine On-Board-Diagnosesystem-Schnittstelle (OBD-II) oder ähnliches.
-
Der Prozessor 210 ist so konfiguriert, dass er Daten von der Schnittstelle 230 empfängt. Als Reaktion auf die empfangenen Daten kann der Prozessor 210 feststellen, ob es sich bei den empfangenen Daten um einen geheimen Schlüssel oder einen öffentlichen Standardschlüssel handelt. Wenn es sich bei den Daten um einen öffentlichen Standardschlüssel handelt, kann der Prozessor 210 dann Anweisungen für die Umstellung des Teils auf einen geheimen Kundenschlüssel erhalten. Der Prozessor 210 darf jedoch keine Daten oder Software auf dem Teil als Reaktion auf einen öffentlichen Standardschlüssel ändern, um die Offenlegung privater Kundenalgorithmen oder -daten und/oder die Installation von Schadsoftware auf dem System zu vermeiden. In einem Beispiel handelt es sich bei den empfangenen Daten um einen Hauptschlüssel, der mit einem geheimen Kundenschlüssel codiert ist. Der Prozessor 210 ist so konfiguriert, dass er den geheimen Schlüssel unter Verwendung eines gespeicherten Kundenschlüssels entschlüsselt, um einen Hauptschlüssel zu extrahieren. Der Prozessor 210 ist dann so konfiguriert, dass er das Gerät unter Verwendung des Hauptschlüssels bereitstellt. Der Prozessor 210 löscht dann alle mit anderen Kunden verbundenen Daten aus dem Speicher 220. Sobald die anderen Kundendaten gelöscht sind, kann der Prozessor 210 die verbleibenden Daten im Speicher konfigurieren und/oder gespeicherte Algorithmen ausführen, die dem Kunden zugeordnet sind, und zwar als Reaktion auf zusätzliche Anweisungen, die an der Schnittstelle empfangen werden.
-
Wenn der geheime Schlüssel vom Prozessor 210 unter Verwendung des Kundenschlüssels entschlüsselt wird, um den Hauptschlüssel zu extrahieren, kann der Prozessor 210 das Teil zunächst bereitstellen, indem er den Hauptschlüssel im Teil bereitstellt und alle geheimen Schlüssel der anderen Parteien löscht, bevor er zulässt, dass der öffentliche Stammschlüssel zur Änderung der Software verwendet wird. Dadurch wird verhindert, dass eine Partei die Software des Teils ändern und den geheimen Schlüssel einer anderen Partei verwenden kann, um die im Ökosystem dieser Partei verwendeten Sicherheitsanmeldeinformationen zu ermitteln, oder in der Lage ist, Schadsoftware auf einem Teil zu installieren, das über gültige Sicherheitsanmeldeinformationen für das Ökosystem einer anderen Partei verfügt. Der Kunde kann den geheimen Schlüssel mit einem für diesen Kunden einzigartigen Schlüsselgenerierungsalgorithmus und einer UID des Teils erzeugen. Der geheime Schlüssel kann eine alphanumerische Ziffernfolge sein.
-
3 zeigt ein Flussdiagramm, das ein Verfahren 300 zur Bereitstellung eines individuell sicheren Systems für mehrere Parteien gemäß einer beispielhaften Ausführungsform illustriert. Das beispielhafte Verfahren ist so konfiguriert, dass es einen geheimen Schlüssel empfängt, der von einem Kunden als Reaktion auf eine UID des Teils und einen dem Teil zugeordneten Hauptschlüssel erzeugt wurde, den geheimen Schlüssel dekodiert, um den Hauptschlüssel zu extrahieren, das Teil mit dem Hauptschlüssel bereitstellt, im Teil gespeicherte Informationen, die nicht dem Kunden zugeordnet sind, als Reaktion auf die Bereitstellung des Teils mit dem dekodierten Hauptschlüssel löscht und als Reaktion auf die Löschung der Informationen Zugang zu den Bereitstellungskontrollen des Teils gewährt. Die Daten können ferner einen öffentlichen Standard-Stammschlüssel für jeden potenziellen Kunden enthalten.
-
Das Verfahren dient zunächst dem Empfang von Daten 310 von einem Hersteller des Teils und der Speicherung der Daten in einem Speicher. Die Daten können geschützte oder vertrauliche Informationen für jeden der potenziellen Kunden des Teils enthalten. Die Daten können vom Kunden an den Hersteller geliefert werden, bevor sie dem Teil zur Verfügung gestellt werden. Darüber hinaus können die Daten einen geheimen Schlüssel für jeden der potenziellen Kunden enthalten, wobei der geheime Schlüssel vom Hersteller als Reaktion auf einen Algorithmus und eine UID des Teils und einen diesem Teil zugeordneten Hauptschlüssel erzeugt wird. Jeder der geheimen Schlüssel wird dann im Speicher abgelegt. Ein öffentlicher Standardschlüssel kann ebenfalls in den Daten enthalten sein und ebenfalls im Speicher abgelegt werden. Der öffentliche Standard-Stammschlüssel kann verwendet werden, um das Teil auf den geheimen Schlüssel eines Kunden umzustellen, darf aber nicht für Software-Updates verwendet werden, um eine Änderung der Software des Teils zu verhindern, oder um einen geheimen Schlüssel eines anderen Kunden zu ermitteln und/oder zu verwenden, um die im Ökosystem dieses Kunden verwendeten Sicherheitsanmeldeinformationen zu bestimmen, oder um Malware auf einem Teil zu verwenden, das gültige Sicherheitsanmeldeinformationen für das Ökosystem eines anderen Kunden hat.
-
Als nächstes empfängt das Verfahren 315 einen geheimen Schlüssel über die Schnittstelle. Der geheime Schlüssel kann eine alphanumerische Zeichenfolge sein. Das Verfahren bestimmt dann 320, ob der Schlüssel ein geheimer Kundenschlüssel ist. Die Feststellung, dass es sich bei dem Schlüssel um einen geheimen Schlüssel handelt, kann anhand des Formats des Schlüssels, als Reaktion auf andere mit dem Schlüssel empfangene Daten, wie z. B. einen Datenkopf oder ähnliches, oder durch Vergleich des Schlüssels mit gespeicherten geheimen Schlüsseln erfolgen. Darüber hinaus kann ein mit dem geheimen Schlüssel oder als Teil des geheimen Schlüssels empfangener Bereitstellungsdatensatz einen Parameter enthalten, der den Kunden oder eine Region angibt, in der das Teil konfiguriert wird, so dass das Teil bestimmen kann, welcher der gespeicherten Kundenschlüssel mit den empfangenen geheimen Schlüsseln verbunden ist. Wird festgestellt, dass der empfangene Schlüssel ein geheimer Schlüssel ist, dekodiert das Verfahren den geheimen Schlüssel unter Verwendung eines in einem Speicher gespeicherten Kundenschlüssels. 325. Wenn der geheime Schlüssel nicht mit einem im Speicher gespeicherten geheimen Schlüssel übereinstimmt, wird der Zugriff verweigert 335 und das Verfahren kehrt zum Warten auf zusätzliche Daten 310 zurück.
-
Wird der geheime Schlüssel mit einem Kundenschlüssel dekodiert, bestimmt das Verfahren als nächstes 330, ob der dekodierte geheime Schlüssel einen gültigen Hauptschlüssel ergibt. Ist der dekodierte geheime Schlüssel kein gültiger Hauptschlüssel, verweigert das Verfahren 335 den Zugriff auf das Teil. Wenn der dekodierte geheime Schlüssel ein gültiger Hauptschlüssel ist, ist das Verfahren so konfiguriert, dass es 337 das Teil mit dem Hauptschlüssel versieht und 340 alle mit anderen Kunden verbundenen Daten löscht, die im Speicher oder im Teil gespeichert sind. Daten, die mit dem Kunden verbunden sind, der den geheimen Schlüssel übermittelt, werden nicht gelöscht. Nachdem die anderen Kundendaten gelöscht wurden, ermöglicht das Verfahren 345 dem zugelassenen Kunden den Zugriff auf das Teil. Der zugelassene Kunde kann dann das Teil neu konfigurieren oder es in ein Kundensystem integrieren.
-
Wird der dekodierte geheime Schlüssel nicht als gültiger Hauptschlüssel ermittelt (320), bestimmt das Verfahren als Nächstes (350), ob der empfangene Schlüssel ein öffentlicher Schlüssel ist. Handelt es sich bei dem empfangenen Schlüssel um einen öffentlichen Schlüssel, kann das Verfahren 355 den Zugriff auf das Teil für den Wechsel des Kundenschlüssels oder ähnliches gestatten, nicht aber den Zugriff auf Daten innerhalb des Teils oder das Löschen von Daten und das Aktualisieren, Löschen oder Ändern von Software innerhalb des Teils. Das Verfahren kehrt zurück, um 310 auf den Empfang weiterer Daten zu warten.
-
4 zeigt ein Diagramm einer beispielhaften Ausführungsform eines sicheren Steuergeräts 400 zur Bereitstellung eines individuell sicheren Systems für mehrere Parteien. Die beispielhafte elektronische Steuereinheit 400 kann einen Speicher 410, einen Prozessor 420 und eine Schnittstelle 430 umfassen. Das sichere Steuergerät 400 ist so konfiguriert, dass es einen geheimen Schlüssel von einem Kunden empfängt, der als Reaktion auf einen dem Kunden zugeordneten Algorithmus und eine UID des sicheren Steuergeräts erzeugt wird. In diesem Beispiel ist der geheime Schlüssel ein Hauptschlüssel, der durch den Algorithmus in Reaktion auf die UID kodiert wird. Um dem Kunden einen sicheren Zugang zu gewähren, um das sichere Steuergerät 400 entsprechend dem Ökosystem des Kunden unter Verwendung eines dem Kunden zugeordneten Hauptschlüssels bereitzustellen, ohne die in einem Speicher des sicheren Steuergeräts 400 gespeicherten geschützten Informationen anderer Kunden preiszugeben, ist das sichere Steuergerät 400 so konfiguriert, dass es alle Informationen, die allen anderen Kunden zugeordnet sind, löscht, nachdem ein geheimer Schlüssel von dem Kunden empfangen und validiert wurde.
-
In dieser beispielhaften Ausführungsform ist der Speicher 410 zum Speichern eines ersten Kundenschlüssels und erster Daten, die einem ersten Kunden zugeordnet sind, und eines zweiten Kundenschlüssels und zweiter Daten, die einem zweiten Kunden zugeordnet sind, konfiguriert. Bei den ersten Daten kann es sich beispielsweise um einen ersten Sicherheitsnachweis handeln, der einem ersten Kundensystem zugeordnet ist, und bei den zweiten Daten kann es sich um einen zweiten Sicherheitsnachweis handeln, der einem zweiten Kundensystem zugeordnet ist. Alternativ können die ersten Daten erste Bereitstellungsdaten sein, die mit einem ersten Kunden-Ökosystem verbunden sind, und die zweiten Daten können zweite Bereitstellungsdaten sein, die mit einem zweiten Kunden-Ökosystem verbunden sind. Der erste Kundenschlüssel und der zweite Kundenschlüssel können von einem Lieferanten des sicheren Controllers als Reaktion auf die eindeutige Kennung des sicheren Controllers und einen ersten Algorithmus, der dem ersten Kunden zugeordnet ist, und einen zweiten Algorithmus, der dem zweiten Kunden zugeordnet ist, erzeugt werden. Diese Schlüssel können dann von dem Lieferanten in dem Speicher 410 gespeichert werden. Beispielsweise kann der Schlüssel des ersten Kunden in dem Speicher gespeichert werden, und ein geheimer Schlüssel, der von dem Kunden über die Schnittstelle 430 empfangen wird, kann als Reaktion auf eine eindeutige Kennung des sicheren Steuergeräts 400, einen Hauptschlüssel, der dem ersten Kunden zugeordnet ist, und einen Algorithmus, der dem ersten Kunden zugeordnet ist, erzeugt werden.
-
Die Schnittstelle 430 kann ein Datenport für den Empfang und die Übertragung von Daten an einen Prozessor innerhalb der sicheren Schnittstelle 400 sein. Die Schnittstelle 430 kann eine CAN-Bus-Schnittstelle, ein Ethernet-Anschluss, eine drahtlose Netzwerkschnittstelle oder ein anderer Datenkopplungsanschluss sein. In einer beispielhaften Ausführungsform kann die Schnittstelle 430 so konfiguriert sein, dass sie einen geheimen Schlüssel vom ersten Kunden empfängt, nachdem das sichere Steuergerät vom Lieferanten an den ersten Kunden geliefert worden ist.
-
Das sichere Steuergerät 400 kann ferner einen Prozessor 420 zum Entschlüsseln des geheimen Schlüssels als Reaktion auf den ersten Kundenschlüssel oder den zweiten Kundenschlüssel zum Erzeugen, Entschlüsseln oder Entschlüsseln eines Hauptschlüssels, zum Validieren des Hauptschlüssels, zum Löschen des zweiten Kundenschlüssels und der zweiten Daten als Reaktion auf die Bereitstellung eines elektronischen Steuergeräts als Reaktion auf den Hauptschlüssel umfassen. Der Prozessor 420 kann dann als Reaktion auf die Bereitstellung des elektronischen Steuergeräts und/oder eine zusätzliche Sicherheitsbereitstellung des elektronischen Steuergeräts einen zusätzlichen Zugriff auf die ersten Daten und/oder das elektronische Steuergerät ermöglichen. Der Prozessor 420 kann ferner in der Lage sein, zu bestätigen, dass die zweiten Daten gelöscht sind, bevor er den Zugriff auf die ersten Daten erlaubt. Der Prozessor 420 kann ferner so konfiguriert sein, dass er als Reaktion auf die Bereitstellung des elektronischen Steuergeräts als Reaktion auf den Hauptschlüssel und/oder die Löschung des zweiten Kundenschlüssels und der zweiten Daten die Bereitstellung von Sicherheitsberechtigungsnachweisen zur Verwendung durch das sichere Steuergerät ermöglicht. Die Schnittstelle 430 kann ferner so konfiguriert sein, dass sie einen Standard-Entsperrungsschlüssel empfängt, der dem ersten Kunden zugeordnet ist, und wobei der Prozessor 420 ferner so konfiguriert ist, dass er den ersten Schlüssel ändert und die ersten Daten, die zweiten Daten und den zweiten Schlüssel in Reaktion auf den Empfang des Standard-Entsperrungsschlüssels nicht ändert.
-
In einer beispielhaften Ausführungsform kann das sichere Steuergerät 400 ein Fahrzeugsteuergerät sein, das einen Speicher enthält, der zum Speichern eines ersten Kundenschlüssels, der einem ersten Kunden zugeordnet ist, eines ersten Bereitstellungsdatums, das dem ersten Kunden zugeordnet ist, eines zweiten Kundenschlüssels, der einem zweiten Kunden zugeordnet ist, und eines zweiten Bereitstellungsdatums, das dem zweiten Kunden zugeordnet ist, konfiguriert ist, sowie eine Netzwerkschnittstelle, die zum Empfangen eines empfangenen Schlüssels konfiguriert ist, eine Netzwerkschnittstelle, die zum Empfangen eines empfangenen Schlüssels konfiguriert ist, und einen Prozessor, der zum Decodieren des empfangenen Schlüssels konfiguriert ist, um einen Hauptschlüssel zu erzeugen, um die zweiten Bereitstellungsdaten und den zweiten geheimen Schlüssel als Reaktion auf die Erzeugung des Hauptschlüssels zu löschen und um die elektronische Steuereinheit des Fahrzeugs als Reaktion auf den Hauptschlüssel und die ersten Bereitstellungsdaten als Reaktion auf die Löschung der zweiten Bereitstellungsdaten und des zweiten geheimen Schlüssels bereitzustellen. In einem Beispiel können der erste Kundenschlüssel und der empfangene Schlüssel als Reaktion auf eine eindeutige Kennung des elektronischen Steuergeräts des Fahrzeugs unter Verwendung eines mit dem ersten Kunden verbundenen Algorithmus erzeugt werden.
-
zeigt ein Flussdiagramm, das eine beispielhafte Implementierung eines Verfahrens 500 zur intelligenten drahtlosen Protokolloptimierung veranschaulicht. Das Verfahren dient zunächst dazu, 505 in einem Speicher einen ersten Kundenschlüssel und einen zweiten Kundenschlüssel zu speichern. Der erste Kundenschlüssel und der zweite Kundenschlüssel können von einem Lieferanten eines Geräts unter Verwendung eines Algorithmus oder Prozesses erzeugt werden, der für jeden Kunden einzigartig und für diesen Kunden privat ist, und zwar als Reaktion auf eine UID des Geräts.
-
Das Verfahren ist als nächstes für den Empfang eines geheimen Schlüssels 510 durch einen Prozessor konfiguriert. Der geheime Schlüssel kann über eine Datenschnittstelle, wie z. B. eine Controller Area Network-Schnittstelle, empfangen werden. Der geheime Schlüssel kann vom Kunden als Reaktion auf einen Hauptschlüssel und eine UID eines Geräts, z. B. eines Steuergeräts, unter Verwendung eines für jeden potenziellen Kunden eindeutigen Algorithmus generiert werden. Somit würde ein für jeden Kunden unter Verwendung der Geräte-UID und eines für jeden Kunden eindeutigen Algorithmus erzeugtes Geheimnis eindeutige Sicherheitsschlüssel für jeden Kunden und jedes Gerät erzeugen.
-
Das Verfahren dient als nächstes der Entschlüsselung des geheimen Schlüssels durch den Prozessor unter Verwendung eines ersten Kundenschlüssels, der in einem Speicher innerhalb des Geräts gespeichert ist, um einen Hauptschlüssel zu extrahieren. In dieser beispielhaften Ausführungsform werden der erste geheime Schlüssel und der zweite geheime Schlüssel von einem Lieferanten des Geräts als Reaktion auf die UID des Geräts und einen eindeutigen Algorithmus für jeden Kunden erzeugt und von dem Lieferanten in einem Speicher innerhalb des Geräts gespeichert. Das Verfahren ist als nächstes für die Bereitstellung 530 einer elektronischen Steuereinheit durch den Prozessor in Reaktion auf den Hauptschlüssel konfiguriert. Die Bereitstellung als Reaktion auf den Hauptschlüssel kann die Kommunikation zwischen anderen Komponenten innerhalb des Systems entsprechend dem Ökosystem eines Kunden ermöglichen.
-
In Reaktion auf eine Bereitstellung als Reaktion auf den Hauptschlüssel löscht das Verfahren als Nächstes den zweiten Kundenschlüssel 540 durch den Prozessor als Reaktion auf die Bereitstellung der elektronischen Steuereinheit als Reaktion auf den Hauptschlüssel. In dieser beispielhaften Ausführungsform sind die ersten Bereitstellungsdaten und der erste Kundenschlüssel einem ersten Kunden und die zweiten Bereitstellungsdaten und der zweite Kundenschlüssel einem zweiten Kunden zugeordnet. Alle Daten, die in Verbindung mit einem anderen Kunden als dem ersten Kunden gespeichert sind, können als Reaktion auf die Bereitstellung eines geheimen Schlüssels durch den ersten Kunden, der zu einem gültigen Hauptschlüssel führt, an der Geräteschnittstelle gelöscht werden, um die Vertraulichkeit des geistigen Eigentums des anderen Kunden und die Sicherheit seines Ökosystems zu wahren.
-
Das Verfahren ist als nächstes so konfiguriert, dass der Prozessor das Gerät, z. B. ein Steuergerät, als Reaktion auf die ersten Bereitstellungsdaten und die Löschung des zweiten Kundenschlüssels und der zweiten Bereitstellungsdaten bereitstellt. Der Prozessor kann so konfiguriert sein, dass er die Bereitstellung eines Sicherheitsnachweises zur Verwendung durch das Steuergerät unter Verwendung der ersten Bereitstellungsdaten als Reaktion auf die Decodierung des geheimen Schlüssels zur Erzeugung eines gültigen Hauptschlüssels ermöglicht. In einem Beispiel kann die Bereitstellung des elektronischen Steuergeräts als Reaktion auf die ersten Bereitstellungsdaten in Reaktion auf eine Bestätigung der Löschung des zweiten Kundenschlüssels und der zweiten Bereitstellungsdaten durch den Prozessor erfolgen, um die Vertraulichkeit der anderen zweiten Kundendaten zu gewährleisten.
-
In einer beispielhaften Ausführungsform kann das Verfahren ferner dazu dienen, einen Standardfreischaltschlüssel zu empfangen, der einem ersten Kunden zugeordnet ist, und wobei der Prozessor ferner so konfiguriert ist, dass er den ersten Kundenschlüssel ändert und die ersten Bereitstellungsdaten, die zweiten Bereitstellungsdaten und den zweiten Kundenschlüssel in Reaktion auf den Empfang des Standardfreischaltschlüssels nicht ändert. Darüber hinaus sind die ersten Bereitstellungsdaten ein erster Sicherheitsnachweis, der einem ersten Kundensystem zugeordnet ist, und wobei die zweiten Bereitstellungsdaten ein zweiter Sicherheitsnachweis sind, der einem zweiten Kundensystem zugeordnet ist. Die Sicherheitsnachweise können für die Kommunikation in einem sicheren Netzwerk, wie einem CAN-Bus-Netzwerk oder ähnlichem, verwendet werden.
-
Obwohl in der vorangegangenen detaillierten Beschreibung mindestens eine beispielhafte Ausführungsform vorgestellt wurde, sollte man sich darüber im Klaren sein, dass es eine Vielzahl von Varianten gibt. Es sollte auch gewürdigt werden, dass die beispielhafte Ausführungsform oder die beispielhaften Ausführungsformen nur Beispiele sind und nicht dazu gedacht sind, den Umfang, die Anwendbarkeit oder die Konfiguration der Offenbarung in irgendeiner Weise zu begrenzen. Vielmehr soll die vorstehende detaillierte Beschreibung dem Fachmann einen praktischen Leitfaden für die Umsetzung der beispielhaften Ausführungsform oder der beispielhaften Ausführungsformen an die Hand geben. Es versteht sich von selbst, dass verschiedene Änderungen in der Funktion und Anordnung der Elemente vorgenommen werden können, ohne dass der Umfang der Offenbarung, wie er in den beigefügten Ansprüchen und deren gesetzlichen Entsprechungen dargelegt ist, verlassen wird.