-
Die vorliegende Erfindung betrifft ein Verfahren zur Authentifizierung übermittelter Daten, ein System zu dessen Durchführung, sowie eine Recheneinheit und eine Dateneinheit.
-
Hintergrund der Erfindung
-
Um Messdaten von Sensoren an Steuergeräte zu übermitteln, können unidirektionale Schnittstellen eingesetzt werden. Ein Beispiel hierfür ist SENT (SENT: Single Edge Nibble Transmission). SENT ist eine unidirektionale, asynchrone, serielle Spannungsschnittstelle, die drei Leiter für Signalspannung, Versorgungsspannung und Masse verwendet.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur Authentifizierung übermittelter Daten, ein System zu dessen Durchführung, sowie eine Recheneinheit und eine Dateneinheit mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung bedient sich der Maßnahme, seitens der Recheneinheit die Versorgungspannung unter Verwendung wenigstens zweier Spannungsbereiche, die von der Dateneinheit unterschieden werden können, zu modulieren, so dass eine Referenz-Sitzungskennung kodiert werden kann, und seitens der Dateneinheit die Versorgungsspannung zu demodulieren, so dass die Sitzungskennung dekodiert werden kann. Die dekodierte Sitzungskennung wird seitens der Dateneinheit zusammen mit zu übermittelnden Daten verschlüsselt und als verschlüsselte Nachricht über die unidirektionale Schnittstelle zur Recheneinheit übermittelt, welche die Nachricht entschlüsselt und die dekodierte Sitzungskennung mit der Referenz-Sitzungskennung vergleicht, um eine (potentielle) Manipulationen zu erkennen. Durch Verwendung der Versorgungsspannung kann die Übermittlung der Sitzungskennung entgegen der eigentlichen Kommunikationsrichtung der unidirektionalen Schnittstelle ermöglicht werden, wobei durch die Verwendung der Sitzungskennung zusammen mit der Verschlüsselung die Herkunft der Daten bzw. deren Authentizität sichergestellt werden kann. Z. B. können sogenannte Replayangriffe erkannt werden.
-
Eine erfindungsgemäße Recheneinheit ist über eine unidirektionale Schnittstelle mit einer Dateneinheit verbindbar und dazu eingerichtet, eine Versorgungsspannung über die Schnittstelle bereitzustellen, die in einem Nennspannungsbereich und in zumindest einem von einem Unterspannungsbereich und einem Überspannungsbereich einstellbar ist; wobei die Recheneinheit weiter dazu eingerichtet ist, die Versorgungsspannung entsprechend einer Referenz-Sitzungskennung zeitlich zu variieren, so dass eine Bereichsabfolge gebildet wird, in der die Versorgungsspannung wechselweise einen Pegel in wenigstens zweien des Nennspannungsbereichs, des Unterspannungsbereichs und des Überspannungsbereichs annimmt, wobei die Bereichsabfolge die Referenz-Sitzungskennung kodiert; eine über die Schnittstelle empfangene Nachricht zu entschlüsseln, um übermittelte Daten und eine dekodierte Sitzungskennung zu erhalten; die dekodierte Sitzungskennung mit der Referenz-Sitzungskennung zu vergleichen, um zu bestimmen, ob diese innerhalb einer vorgegebenen Toleranz übereinstimmen; und, wenn die dekodierte Sitzungskennung nicht innerhalb der Toleranz mit der Referenz-Sitzungskennung übereinstimmt, eine potentielle Manipulation zu erkennen.
-
Bei der Recheneinheit kann es sich z.B. um ein Steuergerät in einem Fahrzeug handeln, wobei die Daten, z.B. Sensordaten, durch das Steuergerät für die Steuerung des Fahrzeugs verwendet werden sollen.
-
Eine erfindungsgemäße Dateneinheit ist über eine unidirektionale Schnittstelle mit einer erfindungsgemäßen Recheneinheit verbindbar und dazu eingerichtet, die Versorgungsspannung über die Schnittstelle zu erhalten und zu erkennen, ob die Versorgungsspannung im Nennspannungsbereich, im Unterspannungsbereich oder im Überspannungsbereich liegt; die Bereichsabfolge zu dekodieren, um sie dekodierte Sitzungskennung zu bestimmen; zu übermittelnde Daten zusammen mit der dekodierten Sitzungskennung zu verschlüsseln, um die Nachricht zu bestimmen; und die Nachricht über die Schnittstelle zu übermitteln.
-
Als Dateneinheit wird eine Einheit angesehen, die Daten an die Recheneinheit übermittelt; d.h. eine Datenquelle. Bei der Dateneinheit kann es sich z.B. um einen Sensor handeln bzw. die Dateneinheit umfasst ein Sensorelement, wobei die Daten vom Sensor/Sensorelement erfasste Messwerte sind.
-
In einer Ausgestaltung weist die Schnittstelle einen Signalleiter für eine Signalspannung und einen Versorgungsleiter für die Versorgungsspannung auf. Z.B. kann die unidirektionale Schnittstelle SAE J2716 entsprechen.
-
Die Referenz-Sitzungskennung kann durch die Recheneinheit bestimmt werden, insbesondere in zufälliger Weise, etwa mittels eines Zufallszahlengenerators. Die Referenz-Sitzungskennung kann aktualisiert werden, d.h. es können aktualisierte Referenz-Sitzungskennungen bestimmt werden, z.B. in bestimmten Zeitabständen oder für jeweilig neue zu übermittelnde Daten. Die Referenz-Sitzungskennung ist typischerweise eine (zufällige) Zeichenfolge bestimmter Länge.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
- 1 zeigt beispielhaft eine Dateneinheit, der über eine unidirektionale Schnittstelle mit einer Recheneinheit verbunden ist.
- 2 zeigt ein Ablaufdiagramm gemäß einer Ausgestaltung der vorliegenden Erfindung.
-
Ausführungsform(en) der Erfindung
-
1 zeigt beispielhaft eine Dateneinheit 6, die über eine unidirektionale Schnittstelle 2 mit einer Recheneinheit 4 verbunden ist. Die Recheneinheit 4 kann z.B. ein Steuergerät in einem Kraftfahrzeug, einer mobilen Arbeitsmaschine oder einer anderen Maschine sein. Die Dateneinheit kann ein Sensor 6 sein, z.B. ein Temperatur- und/oder Drucksensor und/oder sonstiger Sensor. Allgemein kann eine Dateneinheit als Einheit betrachtet werden, die als Datenquelle für die Recheneinheit dient, d.h. die Daten (z.B. Messdaten bzw. Messwerte im Falle eines Sensors) über die unidirektionale Schnittstelle 2 zur Recheneinheit 4 übermittelt. Die Recheneinheit dient beispielsweise zur Weiterverarbeitung übermittelter Daten (im Falle eines Steuergeräts etwa, um eine Steuerungsfunktionalität zu implementieren).
-
Die dargestellte unidirektionale Schnittstelle 2 ist beispielsweise drei-adrig ausgeführt und weist einen Signalleiter 12 für eine Signalspannung, einen Versorgungsleiter 14 für eine Versorgungsspannung und einen Masseleiter 16 für eine Masse auf. Versorgungsspannung und Masse werden von der Recheneinheit 4 bereitgestellt. Die bereitgestellte Versorgungsspannung sollte einer Nennspannung entsprechend, d.h. in einem Nennspannungsbereich zwischen einer unteren und einer oberen Spannungsgrenze liegen. Wenn die Versorgungspannung unter der unteren Spannungsgrenze liegt, entspricht die Versorgungspannung einer Unterspannung, d.h. sie liegt in einem Unterspannungsbereich. Wenn die Versorgungspannung über der oberen Spannungsgrenze liegt, entspricht die Versorgungspannung einer Überspannung, d.h. sie liegt in einem Überspannungsbereich.
-
Die Dateneinheit 4 ist dazu eingerichtet, festzustellen bzw. zu erkennen, ob die Versorgungspannung der Nennspannung, der Unterspannung oder der Überspannung entspricht, d.h., um festzustellen, in welchem der der Spannungsbereiche (Nennspannungsbereich, Unterspannungsbereich, Überspannungsbereich) die Versorgungsspannung liegt.
-
Bei der unidirektionalen Schnittstelle 2 kann es sich insbesondere um eine SENT-Schnittstelle (SENT: Single Edge Nibble Transmission) gemäß SAE J2716 handeln. In SENT werden Daten in Einheiten von Nibble (4 Bit) übertragen. Dabei wird der zeitliche Abstand zwischen zwei aufeinanderfolgenden fallenden Flanken der Signalspannung (z.B. Low-Pegel < 0,5 V, High-Pegel > 4,1 V) erfasst, wobei der zeitliche Abstand in Einheiten sogenannter Ticks bzw. sogenannter Tick-Perioden (z.B. im Bereich von 3µ bis 90µ, je nach Wahl des Senders) erfasst wird.
-
Daten, z.B. Messdaten bzw. Messwerte, können in verschlüsselter und/oder signierter Form übermittelt werden, etwa um deren Manipulation zu verhindern bzw. um zu erkennen, dass von einem Angreifer, der physischen Zugriff auf die Schnittstelle hat, falsche Daten, etwa falsche Messwerte, vorgespielt werden. Zur Verschlüsselung/Signierung (in der Dateneinheit) bzw. Entschlüsselung/Signaturprüfung (in der Recheneinheit) sind geeignete Hardwareeinrichtungen in der Dateneinheit bzw. Recheneinheit vorgesehen, die die jeweilige kryptographische Funktionalität in Hardware implementieren (z.B. eine anwendungsspezifische integrierte Schaltung, Application-Specific Integrated Circuit, ASIC, oder eine im Feld programmierbare Gatter-Anordnung, Field Programmable Gate Array, FPGA) und/oder mittels Ausführen (in jeweiligen Prozessoren oder Prozessorkernen) entsprechender Computerprogramme implementieren.
-
Als kryptographische Verfahren können symmetrische oder asymmetrische kryptographische Verfahren verwendet werden. Entsprechende Schlüssel können in der Dateneinheit bzw. in der Recheneinheit gespeichert sein. Im Falle eines symmetrischen Verfahrens sind beispielsweise der gleiche geheime Schlüssel in der Dateneinheit und in der Recheneinheit gespeichert. Im Falle eines asymmetrischen Verschlüsselungsverfahrens (Public-Key-Verschlüsselungsverfahren) ist beispielsweise der öffentliche Schlüssel in der Dateneinheit und der geheime Schlüssel in der Recheneinheit gespeichert. Im Falle eines asymmetrischen Signaturverfahrens ist beispielsweise der öffentliche Schlüssel in der Recheneinheit und der geheime Schlüssel in der Dateneinheit gespeichert. Als symmetrisches Verschlüsselungsverfahren kann insbesondere AES (Advanced Encryption Standard, deutsch etwa: fortschrittlicher Verschlüsselungsstandard; eine Blockchiffre) verwendet werden; definiert in FIPS PUB 197: Advanced Encryption Standard (AES) bzw. ISO/IEC 18033-3: Block ciphers.
-
2 zeigt ein Ablaufdiagramm gemäß einer Ausgestaltung der vorliegenden Erfindung. Dabei wird von einer Situation entsprechend 1 ausgegangen, d.h. eine Recheneinheit ist über eine unidirektionale Schnittstelle mit einer Dateneinheit verbunden, wobei Daten von der Dateneinheit über die unidirektionale Schnittstelle zur Recheneinheit übermittelt werden, von der Recheneinheit über die unidirektionale Schnittstelle eine Versorgungsspannung für die Dateneinheit bereitgestellt wird und die Dateneinheit dazu eingerichtet ist, zu erkennen, in welchem der Spannungsbereiche die bereitgestellte Versorgungsspannung liegt.
-
In Schritt 100 wird durch die Recheneinheit eine Referenz-Sitzungskennung 105 bzw. erste Sitzungskennung (Sitzungs-Identifikator bzw. Session-ID) erzeugt. Dies kann z.B. durch einen Zufallszahlengenerator erfolgen. Die Länge der Referenz-Sitzungskennung kann z.B. 64 Bit (8 Byte) betragen, wobei ebenso andere Längen denkbar sind, etwa 8 Bit, 16 Bit, 32 Bit, 96 Bit oder 128 Bit.
-
In Schritt 110 moduliert die Recheneinheit den Pegel bzw. die Höhe der Versorgungsspannung entsprechend der Referenz-Sitzungskennung 105, basierend auf einer Kodierung. Dabei wird durch die Recheneinheit die Versorgungsspannung zeitlich variiert, so dass die bereitgestellte Versorgungsspannung wechselweise einen Pegel in wenigstens zweien der drei Spannungsbereiche (Nennspannungsbereich, Unterspannungsbereich, Überspannungsbereich) annimmt. Im dargestellten Beispiel entspricht die Versorgungsspannung etwa abwechselnd der Überspannung (Überspannungsbereich) und der Unterspannung (Unterspannungsbereich), wobei die entsprechenden Spannungsbereiche durch gestrichelte Linien abgegrenzt sind. Ebenso ist denkbar, dass die Versorgungsspannung abwechselnd in anderen der Spannungsbereiche liegt, z.B., dass die Versorgungsspannung abwechselnd der Nennspannung (Nennspannungsbereich) und der Unterspannung (Unterspannungsbereich) entspricht, etwa wenn Überspannungen vermieden werden sollen. Weitergehend ist auch denkbar, dass die Versorgungsspannung abwechselnd einen Pegel in allen drei Spannungsbereichen einnimmt. Die Kodierung weist verschiedenen Symbolen (z.B. Bit, Nibble, Byte), auf denen die Referenz-Sitzungskennung aufgebaut ist, eineindeutig verschiedene Bereichsabfolgen zu, d.h. Folgen bzw. Abfolgen von Zeitabschnitten, in denen sich die Versorgungsspannung jeweils in einem Spannungsbereich befindet bzw. einer Spannung (Nennspannung, Unterspannung, Überspannung) entspricht. Dabei kann die zeitliche Länge, für die Wechselspannung im jeweiligen Spannungsbereich liegt, berücksichtigt werden. Werden zwei Spannungsbereiche für die Modulierung verwendet, könnten beispielsweise, analog zur SENT-Schnittstelle, Nibble durch den zeitlichen Abstand zwischen zwei aufeinanderfolgenden Übergängen zwischen dem höheren und dem unteren der beiden Spannungsbereiche kodiert werden. Neben Bereichsabfolgen, die zur Kodierung der Referenz-Sitzungskennung dienen, können weitere Bereichsabfolgen, z.B. eine Synchronisations-Bereichsabfolge, vorgesehen sein.
-
In Schritt 120 demoduliert bzw. dekodiert die Dateneinheit die Bereichsabfolge der Versorgungsspannung, so dass die Dateneinheit daraus eine dekodierte Sitzungskennung 125 bzw. zweite Sitzungskennung bestimmt, die, falls kein Übermittlungsfehler vorliegt, gleich der Referenz-Sitzungskennung ist. Es erfolgt also eine Übermittlung der Sitzungskennung von der Recheneinheit zur Dateneinheit entgegen der eigentlichen Kommunikationsrichtung der unidirektionalen Schnittstelle.
-
In Schritt 130 erfolgt in der Dateneinheit eine Verschlüsselung unter Verwendung eines Schlüssels 132. Durch die Verschlüsselung wird aus Daten 134, die von der Dateneinheit an die Recheneinheit übermittelt werden sollen, etwa Messdaten, und der zweiten Sitzungskennung unter Verwendung des Schlüssels 132 ein Geheimtext gebildet. Z.B. kann aus den Daten 134 und der dekodierte Sitzungskennung ein Klartext gebildet werden (etwa durch Aneinanderfügen), der unter Verwendung des Schlüssels 132 verschlüsselt wird. Die dekodierte Sitzungskennung 125 ist also Teil des zu verschlüsselnden Klartextes. Wird etwa AES mit einer Blocklänge von 128 Bit als Verschlüsselungsverfahren verwendet, kann eine Sitzungskennung mit 64 Bit auf 128 Bit ergänzt werden, z.B. durch Auffüllen mit Nullen, und der erhaltene Block neben dem Block oder den Blöcken der Daten verschlüsselt werden.
-
Der durch die Verschlüsselung erhaltene Geheimtext wird, als eine Nachricht, in Schritt 140 von der Dateneinheit über die unidirektionale Schnittstelle zur Recheneinheit übermittelt bzw. gesendet, die diesen in Schritt 150 empfängt. Dabei wird der Signalleiter der Schnittstelle verwendet, d.h. ein entsprechendes Spannungssignal durch die Dateneinheit auf diesem erzeugt und durch die die Recheneinheit detektiert.
-
In Schritt 160 wird der Geheimtext bzw. die Nachricht durch die Recheneinheit entschlüsselt, wobei ein dazu in der Recheneinheit gespeicherter Schlüssel 162 verwendet wird. Es wird also der Klartext, d.h. die Daten 164 (z.B. Messdaten) von der Dateneinheit sowie die von der Dateneinheit verschlüsselte dekodierte Sitzungskennung 165, erhalten (falls keine Manipulation vorliegt).
-
In Schritt 170 wird in der Recheneinheit die dekodierte Sitzungskennung 165 (von der Dateneinheit im Geheimtext übermittelt) mit der Referenz-Sitzungskennung 125 (in der Recheneinheit gespeichert) verglichen. Wenn diese übereinstimmen, bzw. zumindest innerhalb einer vorgegebenen Toleranz übereinstimmen, werden die Daten 164 als authentisch angesehen und es kann in Schritt 180 eine Verwendung oder Weiterverarbeitung der Daten erfolgen.
-
Eine Toleranz kann zweckmäßig sein, da die Spannungsversorgung im Gegensatz zur eigentlichen unidirektionalen Schnittstelle nicht für die Datenübertragung bestimmt ist und daher größeren Variationen, etwa im Timing von Pegelübergängen, unterliegen kann. Es kann also der Fall auftreten, dass sich die von der Dateneinheit empfangene dekodierte Sitzungskennung 125 von der von der Recheneinheit übermittelten Referenz-Sitzungskennung 105 unterscheidet. Werden etwa Nibble durch zeitliche Abstände von Pegelübergängen bzw. Bereichsübergängen kodiert, kann eine zeitliche Variation (etwa bei der Versorgungsspannungsbereitstellung in der Recheneinheit, beim Erkennen von Bereichsübergängen in der Dateneinheit, oder durch externe Störungen) dazu führen, dass der Wert eines dekodierten Nibble falsch ist. Ein geeignetes Maß für die Toleranz wäre in diesem Fall z.B. für alle einander entsprechenden Nibble der Referenz-Sitzungskennung und der dekodierten Sitzungskennung jeweils die absolute Abweichung zu bestimmen und diese Abweichungen zu summieren. Wenn die Summe unter einem vorgegebenen Toleranzwert liegt oder gleich diesem ist, wird davon ausgegangen, dass die Referenz-Sitzungskennung und die dekodierte Sitzungskennung (im Rahmen der Toleranz) übereinstimmen. Wenn die Summe über dem Toleranzwert liegt, wird davon ausgegangen, dass die Referenz-Sitzungskennung und die dekodierte Sitzungskennung nicht übereinstimmen.
-
Wenn in Schritt 170 bestimmt wird, dass die Referenz-Sitzungskennung und die dekodierte Sitzungskennung nicht übereinstimmen, wird in Schritt 190 eine potentielle Manipulation erkannt („potentiell“, da im Prinzip auch ein Übermittlungsfehler vorliegen könnte). Entsprechend kann z.B. eine Fehlernachricht erzeugt werden und/oder von einer Verwendung bzw. Weiterverarbeitung der Daten kann abgesehen werden.
-
Durch dieses Vorgehen können sogenannte Replay-Angriffe, bei denen ein Angreifer von der Dateneinheit an die Recheneinheit gesendete Daten aufzeichnet und zu einem späteren Zeitpunkt an die Recheneinheit sendet, erkannt werden.
-
Die in Schritt 100 erzeugte Referenz-Sitzungskennung kann für die Übermittlung genau eines Satzes von Daten (d.h. den nächsten Satz von Daten) gültig sein. Alternativ kann vorgesehen sein, dass die Referenz-Sitzungskennung für einen bestimmten Zeitraum gültig ist, z.B. bis die nächste Referenz-Sitzungskennung erzeugt und zur Dateneinheit übermittelt ist, oder für eine vorbestimmte Zeitspanne.