Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR VERIFYING A GROUP KEY
Document Type and Number:
WIPO Patent Application WO/2017/063998
Kind Code:
A1
Abstract:
Method for verifying a group key, characterised by the following features: – a first node (A) and a second node (B) are each assigned an explicit ID, – the first node (A) sends a message to the second node (B) and – on the basis of the message, the first node (A) or the second node (B) indicates to the other node (B, A) whether a first key generated by the first node (A) matches a second key generated by the second node (B).

Inventors:
LOTHSPEICH TIMO (DE)
HORST CHRISTIAN (DE)
MUELLER ANDREAS (DE)
SCHWEPP THORSTEN (DE)
Application Number:
PCT/EP2016/074211
Publication Date:
April 20, 2017
Filing Date:
October 10, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
H04L9/08
Foreign References:
EP2424184A12012-02-29
US20080123851A12008-05-29
DE102013218212A12015-03-12
Other References:
"Chapter 12: Key Establishment Protocols ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525012, ISBN: 978-0-8493-8523-0, Retrieved from the Internet
Download PDF:
Claims:
Ansprüche

1. Verfahren (15, 25) zum Verifizieren eines Gruppenschlüssels durch einen

ersten Knoten (A) und einen zweiten Knoten (B),

gekennzeichnet durch folgende Merkmale:

- dem ersten Knoten (A) und dem zweiten Knoten (B) wird jeweils eine eindeutige ID zugewiesen,

- der erste Knoten (A) sendet eine Nachricht an den zweiten Knoten (B) und

- aufgrund der Nachricht zeigt der erste Knoten (A) oder der zweite Knoten (B) dem jeweils anderen Knoten (B, A) an, ob ein von dem ersten Knoten (A) erzeugter erster Schlüssel mit einem von dem zweiten Knoten (B) erzeugten zweiten Schlüssel übereinstimmt.

2. Verfahren (15, 25) nach Anspruch 1,

gekennzeichnet durch folgende Merkmale:

- der erste Knoten (A) errechnet aus dem ersten Schlüssel mittels einer vorgegebenen mathematischen Funktion, insbesondere einer kryptologischen Hashfunktion, einen ersten Funktionswert,

- die Nachricht umfasst den ersten Funktionswert,

- der zweite Knoten (B) errechnet aus dem zweiten Schlüssel mittels der Funktion einen zweiten Funktionswert und

- der zweite Knoten (B) vergleicht den ersten Funktionswert mit dem zweiten Funktionswert. Verfahren (15,25) nach Anspruch 1,

gekennzeichnet durch folgende Merkmale:

- der erste Knoten (A) erzeugt eine Bitfolge,

- die Nachricht umfasst die Bitfolge,

- der zweite Knoten (B) errechnet aus der Bitfolge und dem zweiten

Schlüssel mittels einer vorgegebenen mathematischen Funktion einen ersten Funktionswert,

- der zweite Knoten (B) schickt den ersten Funktionswert an den

ersten Knoten (A),

- der erste Knoten (A) errechnet aus der Bitfolge und dem ersten

Schlüssel mittels der Funktion einen zweiten Funktionswert und

- der erste Knoten (A) vergleicht den ersten Funktionswert mit dem

zweiten Funktionswert.

Verfahren (15, 25) nach einem der Ansprüche 1 bis 3,

gekennzeichnet durch folgende Merkmale:

- der erste Knoten (A) errechnet für die Nachricht mit dem ersten

Schlüssel einen ersten Nachrichtenauthentifizierungscode,

- der erste Knoten (A) ergänzt die Nachricht vor dem Senden um den ersten Nachrichtenauthentifizierungscode,

- der zweite Knoten (B) errechnet für die empfangene Nachricht mit dem zweiten Schlüssel einen zweiten Nachrichtenauthentifizierungscode und

- der zweite Knoten (B) vergleicht den ersten

Nachrichtenauthentifizierungscode mit dem zweiten

Nachrichtenauthentifizierungscode.

Verfahren (10, 30) zum Verifizieren eines Gruppenschlüssels durch zumindest einen ersten Knoten (A), einen zweiten Knoten (B) und einen dritten Knoten (C), gekennzeichnet durch folgende Merkmale:

- der erste Knoten (A) und der zweite Knoten (B) verifizieren (15) nach einem der Ansprüche 1 bis 4 den Gruppenschlüssel und - der erste Knoten (A) und der dritte Knoten (C) verifizieren (15) nach einem der Ansprüche 1 bis 4 den Gruppenschlüssel.

Verfahren (30) nach Anspruch 5,

gekennzeichnet durch folgende Merkmale:

- das Senden erfolgt im Wesentlichen zeitgleich über eine

Mehrpunktverbindung, insbesondere Multicast oder Broadcast.

Verfahren (20) zum Verifizieren eines Gruppenschlüssels durch zumindest einen ersten Knoten (A), einen zweiten Knoten (B) und einen dritten Knoten (C), gekennzeichnet durch folgende Merkmale:

- der erste Knoten (A) und der zweite Knoten (B) verifizieren (25) nach einem der Ansprüche 1 bis 4 den Gruppenschlüssel und

- der zweite Knoten (B) und der dritte Knoten (C) verifizieren (25) nach einem der Ansprüche 1 bis 4 den Gruppenschlüssel.

Computerprogramm, welches eingerichtet ist, das Verfahren (10, 15, 20, 25, 30) nach einem der Ansprüche 1 bis 7 auszuführen.

Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.

Vorrichtung (A - D), die eingerichtet ist, das Verfahren (10, 15, 20, 25, 30) nach einem der Ansprüche 1 bis 7 auszuführen.

Description:
Beschreibung

Titel

Verfahren und Vorrichtung zum Verifizieren eines Gruppenschlüssels

Die vorliegende Erfindung betrifft Verfahren zum Verifizieren eines

Gruppenschlüssels. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium. Dabei kommunizieren die beteiligten Knoten oder Teilnehmer über ein gemeinsam genutztes Übertragungsmedium. Hierbei werden logische Bitfolgen - bzw. allgemeiner: Wertfolgen - durch entsprechende Übertragungsverfahren als Signale bzw. Signalfolgen physikalisch übertragen. Das zugrundeliegende Kommunikationssystem kann z. B. ein CAN-Bus sein.

Dieser sieht eine Übertragung dominanter und rezessiver Bits bzw. entsprechend dominanter und rezessiver Signale vor, wobei sich ein dominantes Signal bzw. Bit eines Teilnehmers des Netzwerks gegen rezessive Signale bzw. Bits durchsetzt. Ein Zustand entsprechend dem rezessiven Signal stellt sich auf dem Übertragungsmedium nur ein, wenn alle beteiligten Teilnehmer ein rezessives

Signal zur Übertragung vorsehen bzw. wenn alle gleichzeitig sendenden

Teilnehmer einen rezessiven Signalpegel übertragen.

Stand der Technik

Eine sichere Kommunikation zwischen verschiedenen Geräten wird in einer zunehmend vernetzten Welt immer wichtiger und stellt in vielen

Anwendungsbereichen eine wesentliche Voraussetzung für die Akzeptanz und somit auch den wirtschaftlichen Erfolg der entsprechenden Anwendungen dar. Dies umfasst - je nach Anwendung - verschiedene Schutzziele, wie

beispielsweise die Wahrung der Vertraulichkeit der zu übertragenden Daten, die gegenseitige Authentifizierung der beteiligten Knoten oder die Sicherstellung der Datenintegrität.

Zur Erreichung dieser Schutzziele kommen üblicherweise geeignete

kryptographische Verfahren zum Einsatz, die man generell in zwei verschiedene Kategorien unterteilen kann: zum einen symmetrische Verfahren, bei denen Sender und Empfänger über denselben kryptographischen Schlüssel verfügen, zum anderen asymmetrische Verfahren, bei denen der Sender die zu

übertragenden Daten mit dem öffentlichen - d. h. auch einem potenziellen Angreifer möglicherweise bekannten - Schlüssel des Empfängers verschlüsselt, die Entschlüsselung aber nur mit dem zugehörigen privaten Schlüssel erfolgen kann, der idealerweise nur dem Empfänger bekannt ist.

Asymmetrische Verfahren haben unter anderem den Nachteil, dass sie in der Regel eine sehr hohe Rechenkomplexität aufweisen. Damit sind sie nur bedingt für ressourcenbeschränkte Knoten wie z. B. Sensoren, Aktuatoren o. ä. geeignet, die üblicherweise nur über eine relativ geringe Rechenleistung sowie geringen Speicher verfügen und energieeffizient arbeiten sollen, beispielsweise aufgrund von Batteriebetrieb oder dem Einsatz des sogenannten„Energy Harvesting". Darüber hinaus steht oftmals nur eine begrenzte Bandbreite zur

Datenübertragung zur Verfügung, was den Austausch von asymmetrischen Schlüsseln mit Längen von 2048 Bit oder noch mehr unattraktiv macht.

Bei symmetrischen Verfahren hingegen muss gewährleistet sein, dass sowohl Empfänger als auch Sender über den gleichen Schlüssel verfügen. Das zugehörige Schlüsselmanagement stellt dabei generell eine sehr anspruchsvolle Aufgabe dar. Im Bereich des Mobilfunks werden Schlüssel beispielsweise mit Hilfe von SIM-Karten in ein Mobiltelefon eingebracht und das zugehörige Netz kann dann der eindeutigen Kennung einer SIM-Karte den entsprechenden Schlüssel zuordnen. Im Fall eines drahtlosen lokalen Netzwerks (wireless local area network, WLAN) hingegen erfolgt üblicherweise eine manuelle Eingabe der zu verwendenden Schlüssel - in der Regel durch die Eingabe eines

Passwortes - bei der Einrichtung des Netzwerkes. Ein solches

Schlüsselmanagement wird allerdings schnell sehr aufwändig und impraktikabel, wenn man eine sehr große Anzahl von Knoten hat, beispielsweise in einem Sensornetzwerk oder anderen Maschine-zu-Maschine-

Kommunikationssystemen, z. B. CAN-basierten Fahrzeugnetzwerken. Darüber hinaus ist eine Änderung der zu verwendenden Schlüssel - etwa im Rahmen einer regelmäßigen Neuberechnung oder„Auffrischung" (re-keying) - oftmals überhaupt nicht bzw. nur mit sehr großem Aufwand möglich.

DE 10 2012 215326 AI beschreibt ein Verfahren zur Erzeugung eines kryptografischen Schlüssels in einem Netzwerk mit einem ersten

Netzwerkelement, einem zweiten Netzwerkelement und einem Netzwerkknoten, wobei das erste Netzwerkelement über einen ersten Übertragungskanal und das zweite Netzwerkelement über einen zweiten Übertragungskanal mit dem

Netzwerkknoten kommunizieren kann. Das Verfahren umfasst aufseiten des ersten Netzwerkelements einen Schritt des Bestimmens einer ersten

Kanalinformation bezüglich des ersten Übertragungskanals basierend auf einem von dem Netzwerkknoten ausgesendeten ersten Pilotsignal und einen Schritt des Ermitteins des symmetrischen kryptografischen Schlüssels unter Verwendung der ersten Kanalinformation und einer Information über eine kombinierte

Kanalinformation, wobei die kombinierte Kanalinformation eine seitens des Netzwerkknotens basierend auf einem von dem ersten Netzwerkelement zu dem Netzwerknoten übertragenen zweiten Pilotsignal und einem von dem zweiten Netzwerkelement zu dem Netzwerknoten übertragenen dritten Pilotsignal bestimmte Kombination von Übertragungscharakteristiken des ersten und des zweiten Übertragungskanals repräsentiert.

Zudem können basierend auf diesem Verfahren auch so genannte

Gruppenschlüssel zwischen mehr als zwei Kommunikationsteilnehmern etabliert werden. Ein symmetrischer Schlüssel zwischen zwei

Kommunikationsteilnehmern - dessen Generierung oben exemplarisch beschrieben ist - kann dabei auch als ein Spezialfall eines Gruppenschlüssels mit einer Gruppengröße von zwei Teilnehmern aufgefasst werden.

Dementsprechend wird im Weiteren oftmals nur noch der Begriff

„Gruppenschlüssel" verwendet, was aber eben den Fall eines Schlüsselpaars beinhaltet. Offenbarung der Erfindung

Die Erfindung stellt mehrere Verfahren zum Verifizieren eines

Gruppenschlüssels, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium gemäß den unabhängigen Ansprüchen bereit.

Der vorgeschlagene Ansatz fußt dabei auf folgender Erkenntnis: Erzeugen Steuergeräte unter Verwendung eines geeigneten Verfahrens ihre geheimen Schlüssel selbst, z. B. in der Werkstatt nach Austausch eines defekten

Steuergerätes, so kann es sinnvoll sein, vor der Verwendung dieser Schlüssel - z. B. zur Verschlüsselung oder Authentifizierung von Nachrichten - sicherzustellen, dass die erzeugten Gruppen-Schlüssel bei allen Teilnehmern der entsprechenden Gruppe auch tatsächlich identisch, d. h. symmetrisch, sind. In der Praxis gibt es prinzipiell immer eine Restwahrscheinlichkeit, dass dies nicht der Fall ist, bspw. aufgrund von Rauschen oder sonstigen Störungen auf dem Kommunikationsmedium oder in den Kommunikationsteilnehmern.

Ein Vorzug dieser Lösung liegt darin, dass mit dem beschriebenen Verfahren sichergestellt wird, dass alle Knoten des Netzwerks über den gemeinsamen Gruppenschlüssel kommunizieren können. Damit wird vor Beginn des aktiven Betriebs sichergestellt, dass die verwendeten kryptographischen Verfahren ordnungsgemäß eingesetzt werden können und es zu keinen unerwünschten Effekten kommt, z. B. weil ein Teilnehmer einer Gruppe die Nachricht eines anderen Teilnehmers derselben Gruppe nicht entschlüsseln oder authentifizieren kann.

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen

Anspruch angegebenen Grundgedankens möglich. Kurze Beschreibung der Zeichnungen

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:

Figur 1 eine sternförmige sequentielle paarweise Verifikation.

Figur 2 eine ringförmige sequentielle paarweise Verifikation.

Figur 3 eine gleichzeitige (one-shot) Verifikation.

Ausführungsformen der Erfindung

Die Verfahren machen es wünschenswert, dass jeder Knoten eine individuelle ID besitzt, anhand derer er eindeutig identifizierbar ist. Eine solche ID kann beispielsweise jedem Knoten vor der Einbringung in das Netzwerk zugewiesen werden.

Mögliche Ansätze zur Verifikation, dass zwei Teilnehmer - z. B. ein

erster Knoten A und ein zweiter Knoten B - denselben Schlüssel besitzen, können wie folgt geartet sein:

In einer ersten Ausführungsform berechnet der erste Knoten A eine Funktion / seines Schlüssels K A und sendet den entsprechenden Wert f(K A ) an den zweiten Knoten B. Der zweite Knoten B berechnet dieselbe Funktion mit seinem Schlüssel K B , d. h. f(K B ), und vergleicht beide Werte. In einer vorteilhaften Ausprägung handelt es sich bei der Funktion bspw. um eine kryptographische Hash-Funktion.

In einer zweiten Ausführungsform schickt der erste Knoten A eine Nachricht mit einem zum Beispiel als Bitfolge (bit string) kodierten Wert W an den

zweiten Knoten B. Der zweite Knoten B nimmt W sowie seinen Schlüssel K B als Eingangswert für eine Funktion /, d. h. er ermittelt f(W,M B ), und schickt den entsprechenden Wert zurück an den ersten Knoten A, der denselben Wert ermitteln kann.

In einer dritten Ausführungsform schickt der erste Knoten A eine Nachricht an den zweiten Knoten B, die um einen geeigneten

Nachrichtenauthentifizierungscode (message authentication code) basierend auf dem Schlüssel K A ergänzt wird. Berechnet der zweite Knoten B für die empfangene Nachricht mit seinem Schlüssel K B denselben

Nachrichtenauthentifizierungscode, so kann er von folgender Beziehung ausgehen:

Unabhängig davon, wie der erste Knoten A und/oder der zweite Knoten B feststellen, ob ihre Schlüssel K A und K B identisch sind, gilt: Stimmen diese nicht überein, so wird dies dem anderen Knoten B, A auf geeignete Art und Weise angezeigt, z. B. durch Senden oder Nicht-Senden einer geeigneten Nachricht. Stimmen beide Werte überein, so kann dies ebenfalls auf geeignete Art und Weise angezeigt werden, z. B. ebenso durch Senden oder Nicht-Senden einer geeigneten Nachricht.

Basierend auf diesen Möglichkeiten zur Verifikation, ob die Schlüssel von zwei Teilnehmern - dem ersten Knoten A und dem zweiten Knoten B - identisch sind, sind nun folgende Varianten zur Verifikation der Gleichheit der Schlüssel einer größeren Gruppe von Teilnehmern vorstellbar:

Eine vierte Ausführungsform 10 für eine Gruppe mit vier Teilnehmern - einem ersten Knoten A, einem zweiten Knoten B, einem dritten Knoten C sowie einem vierten Knoten D - ist in Figur 1 beispielhaft dargestellt. Ein beliebiger, gemäß einer Konfiguration oder gemäß eines definierten Verfahrens bestimmter erster Knoten A übernimmt hier die Master- Funktion und verifiziert der Reihe nach, dass alle anderen Teilnehmer B, C, D der Gruppe A, B, C, D denselben Schlüssel haben wie er selbst, d. h. er wendet sukzessive eines oder mehrere der oben beschriebenen Verfahren zur Verifikation der Gleichheit paarweiser Schlüssel an. Er prüft (Bezugszeichen 15) also in einem ersten Schritt 11 zunächst, dass der erste Knoten A und der zweite Knoten B denselben Schlüssel haben, dann in einem zweiten Schritt 12, dass der erste Knoten A und der dritte Knoten C denselben Schlüssel haben und schließlich in einem dritten Schritt 13, dass der erste Knoten A und der vierte Knoten D denselben Schlüssel haben. Ist dieser Test 15 in allen Fällen 11, 12, 13 erfolgreich, so ist

gewährleistet, dass alle Teilnehmer A, B, C, D der Gruppe über denselben Schlüssel verfügen, also z. B. auch der zweite Knoten B und der dritte Knoten C.

Die Umschaltung auf den neuen Gruppenschlüssel wird dann vorzugsweise durch den ersten Knoten A initiiert.

Im Fall von CAN-Netzwerken verwendet jeder Knoten A, B, C, D für die

Schlüsselverifikation vorzugsweise einen speziellen CAN-Identifier.

Alternativ zu der beschriebenen sternförmigen paarweisen Verifikation 10 ist gemäß einer fünften Ausführungsform auch eine ringförmige Verifikation vorstellbar. Ein konkretes Beispiel 20 ist in Figur 2 dargestellt. Dabei wird angenommen, dass die Knoten A, B, C, D einer Gruppe - z. B. durch explizite Konfiguration - eine logische Reihenfolge aufweisen bzw. dass jeder

Knoten A, B, C, D seinen logischen Nachfolger B, C, D, A kennt, um eine logische Ringstruktur A-B-C-D aufzubauen. Ein beliebiger, gemäß einer

Konfiguration oder gemäß eines definierten Verfahrens bestimmter

erster Knoten A startet den Verifikationsablauf 20, indem er in einem ersten Schritt 21 zunächst verifiziert (Bezugszeichen 25), dass sein logischer

Nachfolger - z. B. der zweite Knoten B - und er denselben Schlüssel besitzen. Hierfür kommen wieder die zu Beginn beschriebenen Möglichkeiten in Betracht. Ist diese Verifikation 25 erfolgreich, so macht der zweite Knoten B in einem zweiten Schritt 22 dasselbe mit seinem logischen Nachfolger - z. B. dem dritten Knoten C - und dieser in einem dritten Schritt 23 mit dem vierten

Knoten D. Optional führt der letzte logische Knoten D in dieser Kette dann in einem vierten Schritt 24 auch nochmals eine paarweise Verifikation 25 mit dem ersten Knoten A durch, um den Ring A-B-C-D zu schließen. Die Umschaltung auf den neuen Gruppenschlüssel wird dann vorzugsweise durch den ersten Knoten A oder alternativ den letzten Knoten D der logischen Reihenfolge A-B-C-D initiiert. Zusätzlich kann die Umschaltung auch implizit durch die erfolgreiche paarweise Verifikation des Schlüssels zwischen dem letzten Teilnehmer D der logischen Reihenfolge A-B-C-D und Knoten A angestoßen werden.

Um sicherzustellen, dass die Botschaft über alle Knoten A, B, C, D des

Rings A-B-C-D gelaufen ist, kann ein Aufforderung-Antwort- Verfahren (challenge-response) verwendet werden, wobei der Wert der

Aufforderung - d. h. der übertragenen Bitfolge - im Datenfeld der Botschaft nach jeder erfolgreichen Verifikation um 1 oder einen anderen wohldefinierten Wert erhöht oder verringert wird.

In einer sechsten Ausführungsform sendet (Bezugszeichen 33) ein beliebiger, gemäß einer Konfiguration oder gemäß eines definierten Verfahrens bestimmter erster Knoten A in einem ersten Schritt 31 eine Multicast- oder Broadcast-

Nachricht M = fiK , die vom Schlüssel K A des ersten Knotens A abhängt, an alle anderen Knoten B, C, D. Ein konkretes Beispiel 30 ist in Figur 3 dargestellt. Beispielsweise könnte es sich bei M um einen beliebigen Wert handeln, der um einen mit Κ λ berechneten Nachrichtenauthentifizierungscode erweitert wird. Alternativ könnte M aber auch ein bekannter Wert sein, der mit Hilfe des

Schlüssels K A verschlüsselt wird. Da alle anderen Knoten B, C, D diese

Nachricht empfangen können, prüft daraufhin jeder dieser Knoten B, C, D, ob die Nachricht M stimmig ist unter folgender Annahme:

Falls M also einen Nachrichtenauthentifizierungscode beinhaltet, prüft jeder

Knoten B, C, D, ob er unter Verwendung von K B , K c bzw. K 0 denselben

Nachrichtenauthentifizierungscode berechnen würde. Das Ergebnis dieser Prüfung wird durch die Knoten B, C, D dann je nach Ausgang positiv oder negativ gegenüber Knoten A bestätigt (Bezugszeichen 34). Eine solche

Bestätigung 34 kann durch Senden bzw. Nichtsenden einer bestimmten Nachricht erfolgen. Die beteiligten Knoten B, C, D können dabei synchron, d. h. gleichzeitig, oder sequentiell, d. h. gemäß einer bestimmten Reihenfolge, ihre Nachricht an den ersten Knoten A senden. Senden alle Knoten B, C, D gleichzeitig eine Nachricht an den ersten Knoten A zurück, so ist eine von allen Sendern B, C, D und dem Empfänger A akzeptierte Nachricht nur dann möglich, wenn alle Knoten B, C, D dieselbe Nachricht schicken. Hat nur ein Knoten A, B, C, D eine unterschiedliche Nachricht, so würde er selbst oder einer der anderen sendenden Knoten A, B, C, D dies detektieren können, da das effektive Bit auf dem Medium dann nicht mit dem selbst gesendeten Bit übereinstimmt. In diesem Fall könnte eine geeignete Fehlerprozedur gestartet werden.

In diesem Beispiel 30 senden alle Knoten A, B, C, D in einem zweiten Schritt 32 eine geeignete Nachricht 34 nach der Verifikation des Schlüssels zurück an den ersten Knoten A.

Die Umschaltung auf den neuen Gruppenschlüssel wird vorzugsweise wieder durch den ersten Knoten A oder alternativ den letzten Knoten D der logischen Reihenfolge A-B-C-D initiiert.

Diese Verfahren 10, 15, 20, 25, 30 können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise einem Steuergerät implementiert sein.