-
Die vorliegende Erfindung betrifft ein Verfahren zur Generierung eines Geheimnisses in einem Netzwerk mit mindestens zwei an ein Übertragungsmedium angeschlossenen Teilnehmern sowie einen Teilnehmer und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Von der Anmelderin wurde in der nachveröffentlichten
DE 10 2015 207 220 A1 ein Verfahren zur Generierung eines Geheimnisses oder Schlüssels in einem Netzwerk vorgestellt, welches sich einer Überlagerung von Signalen zweier Teilnehmer auf einem gemeinsamen Übertragungsmedium bedient. Hierbei weist das Netzwerk mindestens einen ersten und einen zweiten Teilnehmer und einen Übertragungskanal zwischen mindestens dem ersten und dem zweiten Teilnehmer auf. Der erste und der zweite Teilnehmer können jeweils mindestens einen ersten Wert und einen zweiten Wert auf den Übertragungskanal geben. Der erste Teilnehmer bzw. der zweite Teilnehmer veranlassen eine erste Teilnehmerwertfolge bzw. eine zweite Teilnehmerwertfolge zur zueinander weitgehend synchronen Übertragung auf den Übertragungskanal. Auf Basis von Informationen über die erste Teilnehmerwertfolge bzw. die zweite Teilnehmerwertfolge sowie auf Basis einer aus einer Überlagerung der ersten Teilnehmerwertfolge mit der zweiten Teilnehmerwertfolge auf dem Übertragungskanal resultierenden Überlagerungswertfolge generieren der erste Teilnehmer bzw. der zweite Teilnehmer ein gemeinsames Geheimnis oder einen gemeinsamen kryptographischen Schlüssel.
-
Ein solches Verfahren eignet sich besonders gut für Kommunikationssysteme, die eine Übertragung dominanter und rezessiver Bits bzw. entsprechend dominanter und rezessiver Signale vorsehen, wobei sich ein dominantes Signal bzw. Bit eines Teilnehmers des Netzwerks gegen rezessive Signale bzw. Bits durchsetzt. Ein Beispiel hierfür ist CAN (Controller Area Network), bei welchem der Zugriff auf diesen Bus mithilfe einer bitweisen Bus-Arbitrierung erfolgt, die nach dieser Übertragungsmethode mit dominanten und rezessiven Bits arbeitet. Weitere Beispiele sind TTCAN, CAN FD, LIN sowie I2C. Diese Übertragungsverfahren sind seit langem etabliert und können mittels erprobter und standardisierter Netzwerkschnittstellen-Bausteine, wie z.B. sog. Netzwerk-Controller, einfach implementiert werden. Für die direkte physikalische Busankopplung ist üblicherweise ein Transceiver-Baustein (auch als Bustreiber bzw. Medium Attachment Unit (MAU) bezeichnet) verantwortlich. Für eine übliche Netzwerkanbindung einer Recheneinheit (z.B. Mikrocontroller) werden somit ein Netzwerkschnittstellen-Baustein, der auch integrierter Bestandteil der Recheneinheit sein kann, zur Erzeugung der logischen Signale und ein mit diesem datenübertragend verbundener Transceiver-Baustein zur Erzeugung der physikalischen Signale verwendet.
-
Problematisch ist es jedoch, dass es für einen Teilnehmer nicht ohne weiteres möglich ist, beliebige Signalwertfolgen mittels des Netzwerkschnittstellen-Bausteins auf dem Übertragungsmedium zu erzeugen, da übliche Netzwerkschnittstellen-Bausteine dazu eingerichtet sind, protokollkonforme Signalwertfolgen, z.B. mit Header, Prüfsummen usw. zu erzeugen, und z.B. auch die Bus-Arbitrierung vornehmen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur Generierung eines Geheimnisses in einem Netzwerk mit mindestens zwei an ein Übertragungsmedium angeschlossenen Teilnehmern sowie ein Teilnehmer und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Um es vorteilhafterweise für einen Teilnehmer möglich zu machen, für die Geheimnisgenerierung beliebige Signalwertfolgen auf dem Übertragungsmedium zu erzeugen, wird vorgeschlagen, die Signalwertfolge(n) im Zuge einer der Geheimnisgenerierung dienenden Netzwerkkommunikation mittels Bit-Banging und nicht mittels eines Netzwerkschnittstellen-Bausteins zu erzeugen. Gegebenenfalls empfangene Signale werden dann ebenfalls mittels Bit-Banging ausgewertet.
-
Unter Bit-Banging versteht man eine Technik, die mittels Software und E/A-Anschlüssen (Eingabe/Ausgabe bzw. Input/Output (I/O-Pins)) eine Hardware-Schnittstelle emuliert, die gewöhnlich mit einem spezifischen Peripherie-Baustein (im vorliegenden Fall also mit dem Netzwerkschnittstellen-Baustein, wie z.B. einem CAN-Controller) realisiert wird. Auf einem PC können sowohl die serielle als auch die parallele Schnittstelle genutzt werden. Bei Mikrocontrollern nutzt man die E/A-Anschlüsse, z.B. fest definierte I/O- oder GPIO-(General Purpose Input/Output; Allzweck-Eingabe/Ausgabe), d.h. wahlfrei als Ein- oder Ausgang konfigurierbare Anschlüsse bzw. Pins.
-
Mit anderen Worten werden im Zuge der der Geheimnisgenerierung dienenden Netzwerkkommunikation die logischen zu versendenden Signale nicht vom Netzwerkschnittstellen-Baustein, sondern von E/A-Anschlüssen an den Transceiver-Baustein zur Erzeugung der physikalischen Signale ausgegeben, und die empfangenen Signale nicht an den Netzwerkschnittstellen-Baustein, sondern ebenfalls an die E/A-Anschlüsse weitergeleitet.
-
Mit der Erfindung ist es somit möglich, zwischen zwei verschiedenen Teilnehmern eines Netzwerks ein gemeinsames Geheimnis zu etablieren, welches insbesondere zur Generierung eines symmetrischen kryptographischen Schlüssels herangezogen werden kann. Ein solches gemeinsames Geheimnis kann aber grundsätzlich auch zu anderen Zwecken als für kryptographische Schlüssel im engeren Sinne genutzt werden, z.B. als One-Time-Pad.
-
Besonders vorteilhaft kann das Verfahren in einem Netzwerk eingesetzt werden, in dem es einen dominanten Wert (physikalisch: ein dominantes Signal) gibt, der sich durchsetzt, wenn nur ein Teilnehmer ihn auf dem Übertragungsmedium anlegt, und einen rezessiven Wert (physikalisch: ein rezessives Signal), der auf dem Übertragungsmedium nur resultiert, wenn beide bzw. alle Teilnehmer einen rezessiven Wert übertragen. Aufgrund der hiermit klar vorgegebenen Überlagerungsregeln können die Teilnehmer eines solchen Netzwerks aus resultierenden Überlagerungswertfolgen besonders einfach Informationen zur Geheimnisgenerierung ableiten.
-
Alternativ kann die Übertragung eines rezessiven Wertes von mindestens einem der Teilnehmer auch dadurch ersetzt werden, dass an dieser Stelle der Wertfolge bzw. als einer der mindestens zwei möglichen Werte gar nichts übertragen wird.
-
Vorzugsweise wird die im Zuge der der Geheimnisgenerierung dienenden Netzwerkkommunikation zu übertragende Signalwertfolge von der Recheneinheit (z.B. Mikrocontroller) des Teilnehmers generiert und an einem oder mehreren als Ausgang konfigurierten E/A-Anschlüssen, insbesondere Allzweck-E/A-Anschlüsse, als logische Signalwertfolge an den Transceiver-Baustein zur Erzeugung einer physikalischen Signalwertfolge ausgegeben. Eine im Zuge der der Geheimnisgenerierung dienenden Netzwerkkommunikation empfangene physikalische Signalwertfolge wird daneben von dem Transceiver-Baustein empfangen und als logische Signalwertfolge an einen oder mehrere als Eingang konfigurierte E/A-Anschlüsse, insbesondere Allzweck-E/A-Anschlüsse, ausgegeben. Bei der empfangenen Signalwertfolge handelt es sich insbesondere um eine aus einer Überlagerung der ersten Teilnehmerwertfolge und einer zweiten Teilnehmerwertfolge auf dem Übertragungskanal resultierende Überlagerungswertfolge. Die jeweilige Anzahl der Pins ergibt sich aus dem verwendeten Netzwerkprotokoll. Beispielsweise reichen für CAN jeweils ein Eingang und ein Ausgang, was besonders einfach zu implementieren ist.
-
Zweckmäßigerweise wird nach Abschluss der Geheimnisgenerierung und für die normale bzw. nicht der Geheimnisgenerierung dienende Netzwerkkommunikation wieder der Netzwerkschnittstellen-Baustein zur Erzeugung der zu versendenden und zur Auswertung der empfangenen logischen Signale verwendet. Wie erwähnt, kann dieser als separater Baustein ausgebildet oder Bestandteil der Recheneinheit des Teilnehmers sein.
-
Die Umschaltung zwischen der Verwendung des Netzwerkschnittstellen-Bausteins und der Verwendung von E/A-Anschlüssen zur Erzeugung und Auswertung der logischen Signale wird insbesondere von der Recheneinheit und/oder dem Netzwerk-Transceiver durchgeführt. Sie kann nach Maßgabe einer Ablaufsteuerung oder nach Maßgabe einer externen Triggerung, z.B. durch Empfang einer entsprechenden Umschaltnachricht, erfolgen.
-
Die Erfindung ist besonders gut in einem CAN-, TTCAN- oder CAN-FD-Bussystem umzusetzen. Hier wird ein rezessiver Signalpegel durch einen dominanten Signalpegel verdrängt. Die Überlagerung von Werten bzw. Signalen der Teilnehmer folgt damit festgelegten Regeln, welche die Teilnehmer zur Ableitung von Informationen aus dem überlagerten Wert bzw. Signal und dem von ihnen übertragenen Wert bzw. Signal nutzen können. Auch andere Kommunikationssysteme wie LIN und I2C sind für einen Einsatz dieser Verfahren gut geeignet.
-
Alternativ kann das Verfahren aber zum Beispiel auch in einem Netzwerk mit Amplitudenumtastung, z.B. On-Off-Keying, eingesetzt werden. Hier ist ebenfalls die Überlagerung festgelegt, indem den Teilnehmern als Signale "Übertragung" und "keine Übertragung" zur Auswahl stehen und das Überlagerungssignal dem Signal "Übertragung" entspricht, wenn einer oder beide der Teilnehmer übertragen, und dem Signal "keine Übertragung" entspricht, wenn beide Teilnehmer nicht übertragen.
-
Vorzugsweise wird ein Verfahren zur Generierung eines Geheimnisses basierend auf einer Überlagerung von dominanten und rezessiven Signalen, beispielsweise gemäß der
DE 10 2015 207 220 A1 eingesetzt, wobei das Netzwerk mindestens einen ersten und einen zweiten Teilnehmer und einen Übertragungskanal zwischen mindestens dem ersten und dem zweiten Teilnehmer aufweist. Der erste und der zweite Teilnehmer können jeweils mindestens einen ersten Wert und einen zweiten Wert auf den Übertragungskanal geben. Der erste Teilnehmer bzw. der zweite Teilnehmer veranlassen eine erste Teilnehmerwertfolge bzw. eine zweite Teilnehmerwertfolge zur zueinander weitgehend synchronen Übertragung auf den Übertragungskanal. Auf Basis von Informationen über die erste Teilnehmerwertfolge bzw. die zweite Teilnehmerwertfolge sowie auf Basis einer aus einer Überlagerung der ersten Teilnehmerwertfolge mit der zweiten Teilnehmerwertfolge auf dem Übertragungskanal resultierenden Überlagerungswertfolge generieren der erste Teilnehmer bzw. der zweite Teilnehmer ein gemeinsames Geheimnis.
-
Um eine Überlagerungswertfolge zu erhalten, muss die Übertragung von Werten überschneidende Zeiträume haben (d.h. im Sinne dieser Anmeldung weitgehend synchron sein), so dass eine Überlagerung der einzelnen Signale einer Signalfolge auf dem Übertragungsmedium erfolgt, insbesondere so, dass sich das Signal entsprechend dem n-ten logischen Wert bzw. Bit des ersten Teilnehmers mit dem Signal entsprechend dem n-ten logischen Wert bzw. Bit des zweiten Teilnehmers zumindest teilweise überlagert. Diese Überlagerung sollte jeweils ausreichend lange sein dafür, dass die Teilnehmer die Überlagerung erfassen bzw. den entsprechenden Überlagerungswert ermitteln können.
-
Der Überlagerungswert kann dabei durch Arbitrierungsmechanismen oder durch physikalische Signalüberlagerung bestimmt sein. Mit Arbitrierungsmechanismus ist beispielsweise der Fall gemeint, dass ein Teilnehmer einen rezessiven Pegel angelegt hat, aber auf dem Bus einen dominanten Pegel detektiert und somit die weitere Übertragung unterlässt.
-
Aus der resultierenden Wertfolge der Überlagerung (d.h. Überlagerungswertfolge) und der eigenen Wertfolge (d.h. Teilnehmerwertfolge) können die Teilnehmer dann einen Schlüssel generieren, der einem außenstehenden Angreifer gegenüber geheim ist. Grund dafür ist, dass der außenstehende Angreifer, der beispielsweise die auf dem gemeinsam genutzten Übertragungsmedium anliegenden effektiven Gesamtsignale abhören kann, nur die Überlagerung der Wertfolgen sieht, aber nicht die Informationen über die einzelnen Wertfolgen der Teilnehmer hat. Damit verfügen die Teilnehmer über mehr Informationen, die sie gegenüber dem Angreifer zur Generierung eines geheimen Schlüssels nutzen können.
-
Eine Weiterbildung des Verfahren zur Geheimnisgenerierung zwischen den Teilnehmern basierend auf einer Überlagerung von dominanten und rezessiven Signalen sieht vor, dass die erste Teilnehmerwertfolge und die zweite Teilnehmerwertfolge jeweils eine erste Teilwertfolge und eine zweite Teilwertfolge aufweisen, wobei die zweite Teilwertfolge aus der ersten Teilwertfolge durch Invertieren hervorgeht, d.h. indem erste Werte zu zweiten Werten getauscht werden und zweite Werte zu ersten Werten getauscht werden. Die erste Teilwertfolge und die zweite Teilwertfolge können nacheinander übertragen werden. Alternativ wird ein bevorzugtes Verfahren vorgeschlagen, bei dem die Werte der ersten und der zweiten Teilwertfolge besonders sortiert zu einer Teilnehmerwertfolge zusammengesetzt werden, wobei bereits wenigstens ein Wert der zweiten Teilwertfolge übertragen wird, bevor alle Werte der ersten Teilwertfolge übertragen wurden. Dies ermöglicht, bereits während des Sendens der Teilnehmerwertfolge und Empfangens der Überlagerungswertfolge mit dem Auswerten und Geheimnis- bzw. Schlüsselgenerieren zu beginnen. Die Lösung wird weiterhin unabhängig von Puffer- bzw. Cachespeichergrößen, da nicht komplette Teilwertfolgen gespeichert werden müssen, bevor mit der Auswertung und Geheimnisgenerierung begonnen werden kann.
-
Eine erfindungsgemäßer Teilnehmer, z.B. ein Steuergerät, ein Sensor oder ein Aktor, insbesondere eines Kraftfahrzeugs, einer Industrieanlage, eines Heimautomationsnetzes usw., ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn eine ausführende Recheneinheit noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt einen mit einem CAN-Bus verbundenen Teilnehmer in einer Konfiguration für eine normale Netzwerkkommunikation.
-
2 zeigt den Teilnehmer aus 1 in einer Konfiguration zur Generierung eines Geheimnisses oder Schlüssels.
-
Ausführungsform(en) der Erfindung
-
Unter Bezugnahme auf die 1 und 2 wird im Folgenden eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens beschrieben. Dabei ist in den Figuren ein mit einem hier als CAN-Bus 1 ausgebildeten Netzwerk verbundener Teilnehmer 100, zum Beispiel ein Steuergerät, ein Sensor oder ein Aktor, insbesondere in einem Kraftfahrzeug, dargestellt.
-
Bei dem dargestellten CAN-Bus handelt es sich um einen Zweidraht-Bus mit zwei Leitungen CAN-H (High) und CAN-L (Low). Ein CAN-Bus mit nur einer Leitung ist auch möglich.
-
Der Teilnehmer 100 ist mit dem CAN-Bus 1 physikalisch über einen Transceiver bzw. eine Medium-Attachment-Unit (MAU) 50 verbunden. Der Teilnehmer 100 verfügt weiterhin über eine zentrale Recheneinheit, beispielsweise einen Mikroprozessor (µP) 10, einen E/A-Baustein (I/O) 20, der insbesondere eine gewisse Anzahl von als Allzweck-E/A-Anschlüsse (GPIO) ausgebildeten E/A-Anschlüssen bereitstellt, sowie über einen hier als CAN-Controller (CAN) 30 ausgebildeten Netzwerkschnittstellen-Baustein. Die Elemente 10, 20, 30 und 40 können auch Bestandteil eines Mikrocontrollers sein, was in 1 durch eine gestrichelte Linie angedeutet ist.
-
Um nun gemäß einer bevorzugten Ausführungsform der Erfindung wahlweise die logischen Signale von dem CAN-Controller 30 oder dem E/A-Baustein 20 an den Transceiver 50 ausgeben zu lassen, ist hier beispielsweise ein Multiplexer-Baustein (MUX) 40 vorgesehen, der die dafür notwendigen elektrischen Verbindungen bereitstellt. Ein Multiplexer-Baustein 40 ist üblicherweise Bestandteil eines Mikrocontrollers, um die Anzahl der physikalischen Pins gering zu halten. Dazu wird die Logik hinter dem physikalischen Pin innerhalb des Mikrocontrollers 'gemultiplexed'. So ist es bspw. per Konfiguration entsprechender Register möglich, µC-intern an einen bestimmten Pin wahlweise den CAN-Controller 30 oder GPIO zu verschalten. µC-extern ist der Transceiver 50 angeschlossen, der dann per interner Konfiguration wahlweise mittels E/A-Baustein oder mittels CAN-Controller angesteuert wird.
-
Dabei ist in 1 eine Konfiguration gezeigt, bei der logische Signale von dem E/A-Baustein 20 ausgegeben und über den Multiplexer-Baustein 40 an den Transceiver 50 übermittelt werden, welcher die physikalische Netzwerkkommunikation ausführt. Ebenso werden die vom Transceiver 50 empfangenen Signale über den Multiplexer-Baustein 40 an den E/A-Baustein 20 übertragen.
-
In 2 ist die alternative Situation dargestellt, bei der die logischen Signale vom CAN-Controller 30 ausgegeben und über den Multiplexer-Baustein 40 an den Transceiver 50 übertragen werden. Ebenso werden die vom Transceiver 50 empfangenen Signale über den Multiplexer-Baustein 40 an den CAN-Controller 30 übertragen.
-
Mit anderen Worten ist in 2 die Situation für die normale Netzwerkkommunikation dargestellt, d.h. die Netzwerkkommunikation wird über den CAN-Controller 30 und den Transceiver 50 abgewickelt. Hingegen ist in 1 die Situation für die Geheimnisgenerierung dargestellt, wobei es der Recheneinheit 100 möglich ist, beliebige Signalwertfolgen, welche insbesondere nicht einem CAN-Standard entsprechende Pakete darstellen müssen, zur Geheimnisgenerierung auf den CAN-Bus zu geben, wobei die Netzwerkkommunikation in diesem Fall von dem E/A-Baustein 20 (welcher die auszugebenden logischen Signale vom Mikroprozessor 10 erhält) und dem Transceiver 50 ausgeführt wird.
-
Eine Umschaltung zwischen beiden Konfigurationen kann insbesondere vom Mikroprozessor 10 veranlasst werden, was durch den entsprechenden Pfeil in der Figur angedeutet wird. Alternativ oder zusätzlich kann vorgesehen sein, dass eine Umschaltung durch Empfang einer speziellen Umschaltnachricht ausgelöst wird, was in der Figur durch den vom Transceiver 50 ausgehenden Pfeil angedeutet wird.
-
Die Erfindung erlaubt die Ausgabe beliebiger Teilnehmerwertfolgen auf Netzwerkmedien, obwohl dies die herkömmlichen Netzwerkschnittstellen-Bausteine nicht zulassen.
-
Für einen herkömmlichen Sendevorgang schreibt die zentrale Recheneinheit die Nutzdaten (insbesondere den Identifier; die Festlegung, ob dieser Frame ein Daten- oder Remote-Transmission Request-Frame ist; die Angabe, wie viele Datenbytes gesendet werden sollen und die auszusendenden Datenbytes) in den Sende-Datenpuffer des CAN-Controllers, der diese dann für die Übertragung auf dem Bus vorbereitet und den kompletten Frame zum Transceiver-Baustein überträgt, der für die direkte Busankopplung verantwortlich ist. Das heißt, der CAN-Controller entlastet die zentrale Recheneinheit von allen Datenübertragungsarbeiten, da er die Zusammenstellung der Botschaft, die Berechnung der CRC-Summe, den Zugriff auf den Bus (die Busarbitrierung), das Aussenden des Frames und die Fehlerüberprüfung selbstständig übernimmt.
-
Wenn nun eine Geheimnisgenerierung stattfinden soll (z.B. ausgelöst durch Empfang einer entsprechenden Umschaltnachricht), wird während der Laufzeit die Verbindung von dem CAN-Controller zum Transceiver-Baustein unterbrochen und dieser mittels E/A direkt angesteuert. Nach Abschluss der Geheimnisgenerierung kann dann wieder auf den CAN-Controller zurückgeschaltet werden.
-
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 Patentliteratur
-
- DE 102015207220 A1 [0002, 0017]