DE102021209973A1 - Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem - Google Patents

Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem Download PDF

Info

Publication number
DE102021209973A1
DE102021209973A1 DE102021209973.4A DE102021209973A DE102021209973A1 DE 102021209973 A1 DE102021209973 A1 DE 102021209973A1 DE 102021209973 A DE102021209973 A DE 102021209973A DE 102021209973 A1 DE102021209973 A1 DE 102021209973A1
Authority
DE
Germany
Prior art keywords
entity
predetermined
message
service
signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021209973.4A
Other languages
English (en)
Inventor
Paulius Duplys
Tobias Gehrmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021209973.4A priority Critical patent/DE102021209973A1/de
Priority to US17/939,262 priority patent/US20230070247A1/en
Priority to CN202211094243.7A priority patent/CN115801230A/zh
Publication of DE102021209973A1 publication Critical patent/DE102021209973A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Ein erster Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs, umfassend Empfangen einer Nachricht und einer Signatur in einer ersten Instanz des dienstorientierten Kommunikationssystems, wobei die Nachricht und die Signatur über das dienstorientierte Kommunikationssystem empfangen werden; Prüfen, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht; und Verifizieren der Nachricht, wenn das Prüfen positiv ausfällt.Ein zweiter Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Erzeugung vorbestimmter Nachrichten in einer ersten Instanz eines dienstorientierten Kommunikationssystems eines Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems, umfassend Teilen eines geheimen Schlüssels mit der zweiten Instanz; Teilen einer Vielzahl von für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten in einer vorbestimmten Ordnung mit der zweiten Instanz; Erzeugen einer Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten und in der vorbestimmten Ordnung zumindest auf Basis des geheimen Schlüssels derart, dass die Signaturen für je eine vorbestimmte Nachricht in der ersten Instanz und der zweiten Instanz übereinstimmen; und Speichern der für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten in der ersten Instanz.Ein dritter Aspekt der vorliegenden Offenbarung betrifft ein dienstorientiertes Kommunikationssystem in einem Fahrzeug, das dafür ausgelegt ist, die Verfahren der vorliegenden Offenbarung auszuführen.

Description

  • Stand der Technik
  • In Fahrzeugen kommen zunehmend dienstorientierte (auch: service-orientierte) Kommunikationssysteme zum Einsatz. Im Gegensatz zu beispielsweise signalbasierten Kommunikationssystemen wie zum Beispiel CAN-Bussystemen, die in einer Entwicklungsphase im Wesentlichen statisch definiert werden, sind dienstorientierte Kommunikationssysteme dafür ausgelegt, im Betrieb des Fahrzeugs dynamisch angepasst und/oder erweitert zu werden. Dabei kann die Interaktion zwischen Instanzen des dienstorientierten Kommunikationssystems wie z.B. elektronische Steuereinheiten des Fahrzeugs (d.h. ECUs) durch Dienste (auch: Services) dynamisch und insbesondere im Betrieb des Fahrzeugs abgebildet werden. Zum Beispiel kann eine Instanz im dienstorientierten Kommunikationssystem einen Dienst veröffentlichen (englisch: publish) und ihn somit anderen Instanzen des dienstorientierten Kommunikationssystems anbieten. Weiterhin kann zum Beispiel eine Instanz im dienstorientierten Kommunikationssystem einen Dienst einer anderen Instanz des dienstorientierten Kommunikationssystems abrufen (englisch: subscribe). Über das Veröffentlichen und/oder Abrufen von Diensten können auch externe Steuergeräte und/oder elektronische Geräte, die nicht zur Hardware des Fahrzeugs gehören, in das dienstorientierte Kommunikationssystem zumindest temporär integriert werden. Ein solches elektronisches Gerät kann insbesondere auch ein Smartphone eines Nutzers des Fahrzeugs sein, der zum Beispiel Musik von seinem Smartphone über die Multimedia-Einrichtung des Fahrzeugs abspielen lassen möchte.
  • SOME/IP (englisch: Scalable service-Oriented MiddlewarE over IP) ist ein Standard für eine IP-basierte dienstorientierte Kommunikation in Fahrzeugen. Diese Middleware (auch: Zwischenanwendung oder Diensteschicht) ist auf den Schichten 5 bis 7 des Standard ISO/OSI Kommunikationsschichtenmodels angeordnet und verwendet entweder TCP oder UDP als zugrunde liegende Transportprotokolle. SOME/IP ermöglicht Anwendungen auf Instanzen des dienstorientierten Kommunikationssystems miteinander zu kommunizieren, ohne Kenntnis davon zu haben, auf welcher spezifischen Instanz die jeweilige Anwendung läuft. SOME/IP ist ein integraler Bestandteil von AUTOSAR seit AUTOSAR Version 4.0.
  • Neben den bereits beschriebenen Funktionalitäten Veröffentlichen und/oder Abrufen von Diensten weist SOME/IP zum Beispiel eine Funktionalität für die Erkennung von Diensten (englisch: service discovery, SOME/IP-SD) auf, die es Instanzen im dienstorientierten Kommunikationssystem erlaubt dynamisch (d.h. zur Laufzeit) Dienste im dienstorientierten Kommunikationssystem zu finden und deren dazugehörige IP-Adressen und Portnummern, über die die Dienste abgerufen werden können, zu erhalten. Darüber hinaus bietet SOME/IP eine Funktionalität für entlegene Prozeduraufrufe (englisch: remote procedure calls, RPCs). In einem entlegenen Prozeduraufruf kann eine Instanz des dienstorientierten Kommunikationssystems eine Funktion auf einer anderen Instanz (d.h. eine entlegene Funktion/Prozedur) derart aufrufen, dass die Funktion auf der anderen Instanz ausgeführt wird und etwaige Rückgabewerte der Funktion über das dienstorientierte Kommunikationssystem zur aufrufenden Instanz des dienstorientierten Kommunikationssystems übermittelt werden. Die Kommunikation bei SOME/IP kann über einen SOME/IP Routing-Manager gesteuert werden.
  • Die zunehmende Komplexität und Interkonnektivität moderner Fahrzeuge führt zu einer immer größer werdenden Angriffsfläche für mögliches Eindringen in die Elektronik des Fahrzeugs und somit insbesondere in das dienstorientierte Kommunikationssystem. Aktuelle oder bekannte Versionen von SOME/IP weisen keine Sicherheitsmechanismen zur Absicherung gegen Eindringen auf.
  • In einem dienstorientierten Kommunikationssystem wie z.B. SOME/IP können insbesondere Nachrichten von einer Instanz des dienstorientierten Kommunikationssystems zu einer anderen Instanz des dienstorientierten Kommunikationssystems gesendet werden. Ein Eindringen in das dienstorientierte Kommunikationssystem kann zum Beispiel dadurch erreicht werden, dass eine über das dienstorientierte Kommunikationssystem gesendete Nachricht bezüglich deren Inhalt und/oder deren Absenders manipuliert wird. Durch eine solche Manipulation kann dann zum Beispiel ein vom Eindringenden beabsichtigter Effekt (z.B. eine Schädigung) provoziert werden.
  • Offenbarung der Erfindung
  • Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs. Das Verfahren umfasst Empfangen einer Nachricht und einer Signatur in einer ersten Instanz des dienstorientierten Kommunikationssystems, wobei die Nachricht und die Signatur über das dienstorientierte Kommunikationssystem empfangen werden. Das Verfahren umfasst weiterhin Prüfen, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht. Das Verfahren umfasst weiterhin Verifizieren der Nachricht, wenn das Prüfen positiv ausfällt.
  • Ein zweiter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in einer ersten Instanz eines dienstorientierten Kommunikationssystems eines Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems. Das Verfahren umfasst Teilen eines geheimen Schlüssels mit der zweiten Instanz. Das Verfahren umfasst weiterhin Teilen einer Vielzahl von für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten in einer vorbestimmten Ordnung mit der zweiten Instanz. Das Verfahren umfasst weiterhin Erzeugen einer Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten und in der vorbestimmten Ordnung zumindest auf Basis des geheimen Schlüssels derart, dass die Signaturen für je eine vorbestimmte Nachricht in der ersten Instanz und der zweiten Instanz übereinstimmen. Das Verfahren umfasst weiterhin Speichern der für die Kommunikation zwischen der ersten Instanz und der zweiten Instanz vorbestimmten Nachrichten und, optional, der dazugehörigen Signaturen in der ersten Instanz.
  • Die vorbestimmte Nachricht und, optional, die der vorbestimmten Nachricht dazugehörige Signatur im Verfahren zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) kann nach dem Verfahren zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz des dienstorientierten Kommunikationssystems des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) in der ersten Instanz gespeichert worden sein.
  • Ein dritter allgemeiner Aspekt der vorliegenden Offenbarung betrifft eine Instanz in einem dienstorientierten Kommunikationssystem in einem Fahrzeug, wobei die Instanz dafür ausgelegt ist, als erste Instanz das computer-implementierte Verfahren zur Verifikation der Nachrichten in dem dienstorientierten Kommunikationssystem des Fahrzeugs nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) und/oder (als erste Instanz) das computer-implementierte Verfahren zur Erzeugung der vorbestimmten Nachrichten und, optional, der dazugehörigen Signaturen in der ersten Instanz des dienstorientierten Kommunikationssystems des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.
  • Ein vierter allgemeiner Aspekt der vorliegenden Offenbarung betrifft zwei Instanzen in einem dienstorientierten Kommunikationssystem, wobei eine Instanz der zwei Instanzen nach dem dritten allgemeinen Aspekt (oder einer Ausführungsform davon) und eine andere Instanz der zwei Instanzen nach dem dritten allgemeinen Aspekt (oder einer Ausführungsform davon) mit der Maßgabe, dass die erste Instanz und die zweite Instanz vertauscht sind, ausgelegt sind.
  • Ein fünfter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein dienstorientiertes Kommunikationssystem in einem Fahrzeug, umfassend eine Instanz nach dem dritten allgemeinen Aspekt (oder einer Ausführungsform davon) und/oder zwei Instanzen nach dem vierten allgemeinen Aspekt (oder einer Ausführungsform davon).
  • Ein sechster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computer-Programm, das dafür ausgelegt ist, das computer-implementierte Verfahren zur Verifikation von Nachrichten in dem dienstorientierten Kommunikationssystem des Fahrzeugs nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) und/oder das computer-implementierte Verfahren zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz des dienstorientierten Kommunikationssystems des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.
  • Ein siebter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-lesbares Medium oder Signal, das das Computer-Programm nach dem sechsten allgemeinen Aspekt speichert und/oder enthält.
  • Ein achter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, das dafür ausgelegt ist, das Computer-Programm nach dem sechsten allgemeinen Aspekt auszuführen.
  • Die in dieser Offenbarung vorgeschlagenen Verfahren sind auf die Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs gerichtet. Die Verifikation einer empfangenen Nachricht kann einen Nachweis für die Authentizität der Nachricht umfassen. In diesem Fall kann ausgeschlossen werden, dass der Absender der empfangenen Nachricht geändert (z.B. böswillig manipuliert) worden ist. Alternativ oder zusätzlich kann die Verifikation der empfangenen Nachricht einen Nachweis für die Integrität der Nachricht umfassen. In diesem Fall kann ausgeschlossen werden, dass der Inhalt der empfangenen Nachricht geändert (z.B. böswillig manipuliert) worden ist. Durch Verifikation der empfangenen Nachricht kann verhindert werden, dass die Nachricht bezüglich deren Absenders und/oder deren Inhalts geändert (z.B. böswillig manipuliert) worden ist. Kann eine empfangene Nachricht nicht verifiziert werden, kann sie zum Beispiel ignoriert werden. Dadurch kann ein durch Manipulation der Nachricht beabsichtigter Effekt wie zum Beispiel eine Schädigung des dienstorientierten Kommunikationssystems und/oder des Fahrzeugs verhindert werden. Dadurch kann die Sicherheit des dienstorientierten Kommunikationssystems, des Fahrzeugs und/oder eines Nutzers des Fahrzeugs erhöht werden.
  • Aktuelle oder bekannte Versionen von SOME/IP weisen keine Sicherheitsmechanismen zur Absicherung gegen Eindringen und/oder Manipulation auf. Die in dieser Offenbarung vorgeschlagenen Verfahren können als Absicherung gegen Eindringen und/oder Manipulation in SOME/IP genutzt werden.
  • Authentizität und/oder Integrität von Nachrichten können durch Signaturen (auch englisch: tokens, hashes) nachgewiesen werden, die zum Beispiel über einen Nachrichtenauthentifizierungscode (englisch: message authentication code, MAC) berechnet werden können. Die Signaturen und/oder deren Erzeugung müssen je nach Sicherheitsanforderung hohen oder höchsten kryptographischen Anforderungen genügen. Zum Beispiel sollen nur legitime Parteien, die über Wissen mindestens eines gemeinsamen Geheimnisses (z.B. eines geheimen Schlüssels), in der Lage sein, die Signaturen zu erzeugen. Weiterhin können zum Beispiel die Signaturen von den jeweiligen dazugehörigen Nachrichten abhängen. Für die Kommunikation auf Basis einer Vielzahl von Nachrichten können (und sollten) weiterhin Vorkehrungen getroffen werden, die eine Mehrfachbenutzung (englisch: replay attack) ein und derselben Signatur für verschiedene Nachrichten nicht zulässt. Dadurch kann ein hohes/höchstes Maß an Sicherheit selbst dann noch erreicht werden, wenn eine Signatur von einer dritten illegitimen Partei abgehört wurde.
  • Kryptographische Berechnungen sind üblicherweise rechenintensiv und auch zeitintensiv. Allerdings kann die Rechenleistung in Computersystemen und insbesondere in eingebetteten Systemen, wie sie häufig in Steuereinheiten (englisch: ECUs) z.B. eines Fahrzeugs zum Einsatz kommen, limitiert und für kryptographische Berechnungen nicht ausreichend sein, insbesondere da solche Computersysteme/eingebettete Systeme auch für eine möglichst geringe Leistungsaufnahme ausgelegt sind, um (abgesehen z.B. von den Produktionskosten) zum Beispiel den Energieverbrauch des Fahrzeugs selbst bei zunehmender Anzahl von Steuereinheiten und/oder von zwischen diesen Steuereinheiten auszutauschenden Nachrichten möglichst gering zu halten. Es scheint daher derzeit schwierig, wenn nicht gar unmöglich zu sein, die Signaturen aller zwischen diesen Steuereinheiten auszutauschenden Nachrichten unmittelbar vor dem Senden zu berechnen und unmittelbar nach dem Empfang über kryptographische Berechnungen zu verifizieren.
  • Die in dieser Offenbarung vorgeschlagenen Verfahren können dieses Problem mittels für die Kommunikation zwischen zwei Instanzen des dienstorientierten Kommunikationssystems vorbestimmter Nachrichten und, optional vorbestimmter (d.h. vorab berechneter) Signaturen (zumindest teilweise, d.h. für einen Teil von Nachrichten im dienstorientierten Kommunikationssystem) lösen. Die Verfahren können somit besonders vorteilhaft für eine bessere Absicherung von dienstorientierten Kommunikationssystemen mit eingeschränkter Rechenkapazität (z.B. wie im Fahrzeug) sein. Die Vorabberechnung von Signaturen kann im Falle des Fahrzeugs zum Beispiel im Rahmen einer (Re)initialisierung vor Fahrtbeginn und/oder bei einem (längeren) Fahrzeughalt erfolgen. Bei Fahrzeugen, die über eine Steckdose geladen werden können, ist zudem auch denkbar, dass die Vorabberechnung der Signaturen während des Ladens erfolgt, wenn die Energie von einer externen Energiequelle bereitgestellt werden kann.
  • Die Einschränkung auf den einen Teil der Nachrichten rührt zunächst daher, dass in der Praxis nicht alle Nachrichten vorab zwischen den beiden Instanzen vereinbart und ausgetauscht werden können. Zum Beispiel kann eine Nachricht sehr wohl einen in der Zeit veränderlichen Inhalt aufweisen, der zum Beispiel von einem in der Zeit veränderlichen Sensorwert gespeist wird. Weiterhin wäre die Vorabberechnung der Signaturen aller Nachrichten (sofern möglich oder aller möglichen Konfigurationen von Nachrichten) ebenfalls zu ressourcen- und zeitintensiv und somit nicht praktikabel. Andererseits kann es in einem dienstorientierten Kommunikationssystem eine Vielzahl von (Standard)nachrichten geben, die keinen in der Zeit veränderlichen Inhalt aufweisen und somit über die in dieser Offenbarung vorgeschlagenen Verfahren abgesichert werden können. Bereits durch Absicherung dieses Teils der Nachrichten kann die Kommunikation in dem dienstorientierten Kommunikationssystem besser abgesichert werden.
  • Figurenliste
    • 1 illustriert schematisch ein computer-implementiertes Verfahren zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs.
    • 2 illustriert schematisch ein computer-implementiertes Verfahren zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in einer ersten Instanz eines dienstorientierten Kommunikationssystems eines Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz des dienstorientierten Kommunikationssystems.
    • 3 illustriert schematisch eine Ausführungsform des computer-implementierten Verfahrens zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs.
    • 4 illustriert schematisch ein dienstorientiertes Kommunikationssystem in einem Fahrzeug.
    • 5a zeigt eine Ausführungsform der Verfahren der vorliegenden Offenbarung.
    • 5b zeigt eine weitere Ausführungsform der Verfahren der vorliegenden Offenbarung.
  • Detaillierte Beschreibung
  • Durch die computer-implementierten Verfahren 100, 200 können Nachrichten in einem dienstorientierten Kommunikationssystem eines Fahrzeugs verifiziert werden. Dadurch kann die Sicherheit erhöht oder die Sicherheit auch bei zunehmend größerer Angriffsfläche im Fahrzeug gewährleistet werden. Die Verfahren 100, 200 können in ihren Ausführungsformen auch auf ein oder eine Vielzahl von technischen Systemen, die nicht notwendigerweise Fahrzeuge sind, aber jeweils mindestens ein dienstorientiertes Kommunikationssystem (z.B. SOME/IP) umfassen, verallgemeinert werden. Zum Beispiel kann ein solches technisches System ein Roboter (z.B. ohne Räder) sein.
  • Das dienstorientierte Kommunikationssystem 300 kann eine Kommunikationsmiddleware SOME/IP sein. Alternativ kann das dienstorientierte Kommunikationssystem 300 eine Kommunikationsmiddleware SOME/IP umfassen.
  • Offenbart wird ein computer-implementiertes Verfahren 100 zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem 300 eines Fahrzeugs. Die Verifikation einer Nachricht kann Authentifizieren der Nachricht (in Abhängigkeit eines Ergebnisses des Prüfens 120) umfassen. Alternativ oder zusätzlich kann die Verifikation der Nachricht eine Prüfung und (in Abhängigkeit des Ergebnisses des Prüfens 120) eine Bestätigung der Integrität der Nachricht umfassen.
  • Das Verfahren 100 umfasst Empfangen 110 einer Nachricht und einer Signatur in einer ersten Instanz 310 des dienstorientierten Kommunikationssystems 300, wobei die Nachricht und die Signatur über das dienstorientierte Kommunikationssystem 300 empfangen 110 werden. Eine Instanz 310, 320 kann zum Beispiel ein Knotenpunkt in dem dienstorientierten Kommunikationssystem 300 sein, welches wiederum ein Netzwerk (von Knotenpunkten) sein kann. Eine Instanz 310, 320 kann zum Beispiel eine Steuereinheit ECU des Fahrzeugs sein. Alternativ oder zusätzlich kann eine Instanz eine logische Softwareeinheit oder eine Schnittstelle sein.
  • Das Verfahren 100 umfasst weiterhin Prüfen 120, ob die Nachricht einer (innerhalb der ersten Instanz 310) vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht.
  • Eine Nachricht (z.B. die empfangene 110 Nachricht und/oder die vorbestimmte Nachricht) kann ein Datum (z.B. eine Bit- oder Bytefolge, eine Zeichenkette) sein. Die Nachricht kann dafür ausgelegt sein, eine Botschaft im dienstorientierten Kommunikationssystem z.B. an eine Instanz (z.B. die erste Instanz 310) des dienstorientierten Kommunikationssystems zu übermitteln. Das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht (und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur) entspricht kann Auslesen mindestens einer vorbestimmten Nachricht (und dazugehöriger Signatur) aus einem Speicher in der ersten Instanz 310 umfassen. Die vorbestimmte Nachricht kann insofern vorbestimmt sein, als sie bereits vorbestimmt ist, bevor die Nachricht gesendet und/oder empfangen 110 wird. Die vorbestimmte Nachricht kann zum Beispiel bereits (in dem Speicher) in der ersten Instanz 310 gespeichert sein, bevor die Nachricht (z.B. von der zweiten Instanz 320) gesendet und/oder von der ersten Instanz 310 empfangen 110 wird. Die vorbestimmte Nachricht kann zum Beispiel insofern vorbestimmt sein, als sie bereits mindestens eine Minute oder mindestens eine Stunde vor dem Senden und/oder Empfangen der Nachricht (in dem Speicher) in der ersten Instanz 310 gespeichert 250 wurde. Die vorbestimmte Nachricht kann zum Beispiel im Verfahren 200 in der ersten Instanz 310 gespeichert 250 worden sein.
  • Eine Signatur (z.B. die empfangene 110 Signatur und/oder die einer vorbestimmten Nachricht dazugehörigen Signatur) kann ein Datum (z.B. eine Bit- oder Bytefolge, eine Zeichenkette) sein, die dafür ausgelegt ist, die Authentizität einer Nachricht zu garantieren. Alternativ oder zusätzlich kann die Signatur dafür ausgelegt sein, die Integrität der Nachricht zu garantieren. Die Berechnung der Signatur kann über einen kryptographischen Algorithmus (z.B. MAC) erfolgen. Die Signatur und/oder deren Erzeugung müssen je nach Sicherheitsanforderung hohen oder höchsten kryptographischen Anforderungen genügen. Zum Beispiel sollen nur legitime Parteien, die über Wissen mindestens eines gemeinsamen Geheimnisses (z.B. eines geheimen Schlüssels s), in der Lage sein, die Signatur zu erzeugen. Eine Signatur kann im Englischen als token und/oder hash bezeichnet werden.
  • Das Verfahren 100 umfasst weiterhin Verifizieren 130 der Nachricht, wenn das Prüfen 120 positiv ausfällt. Nach dem Verifizieren 130 der Nachricht kann die vorbestimmte Nachricht und die dazugehörige vorbestimmte Signatur z.B. aus dem Speicher in der ersten Instanz 310 gelöscht werden. Dadurch kann in bestimmten Fällen, wenn zum Beispiel die Signatur nur von einem geheimen Schlüssel s abhängt, die Sicherheit erhöht werden, weil eine Mehrfachbenutzung/Replay-Attacke bei abgegriffener Signatur schwieriger oder unmöglich wird.
  • Das Verfahren 100 kann Nicht-Verifizieren 140 der Nachricht umfassen, wenn das Prüfen 120 negativ ausfällt. In der Praxis können nicht alle Nachrichten, die über das dienstorientierte Kommunikationssystem gesendet werden sollen, im Voraus ausgetauscht werden. Somit können nicht alle Nachrichten nach dem Verfahren 100 verifiziert werden. Das Nicht-Verifizieren 140 bedeutet, dass die Nachricht nicht im Rahmen der in dieser Offenbarung vorgeschlagenen Verfahren 100, 200 verifiziert werden kann. Gegebenenfalls kann allerdings ein weiteres in dieser Offenbarung nicht vorgeschlagenes Verifizierungsverfahren zum Einsatz kommen. Bei einer nicht-verifizierten 140 Nachricht kann mindestens eine Maßnahme (z.B. eine Warnung, ein Abbruch/Neustart der aktuellen Routine,...) eingeleitet werden, um die erste Instanz 310, das dienstorientierte Kommunikationssystem, das Fahrzeug und/oder dessen Nutzer zu schützen.
  • Das Verfahren 100 ist schematisch in 1 (und in 3) dargestellt. Wie in 5a-b dargestellt können die Schritte 120, 130/140 zum Beispiel in einem Verifiziermodul V in der ersten Instanz 310 (E1) erfolgen.
  • Die Nachricht und die Signatur können von einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 an die erste Instanz 310 (z.B. über den Routing-Manager RM des dienstorientierten Kommunikationssystems 300) gesendet werden. Alternativ kann der ersten Instanz 310 vorgetäuscht werden, dass die Nachricht und die Signatur von der zweiten Instanz 320 ausgeht (d.h. ausginge). Das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, kann umfassen, zu prüfen, ob die Nachricht einer für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachricht und die Signatur einer dieser vorbestimmten Nachricht dazugehörigen Signatur entspricht.
  • Die erste Instanz 310 kann (z.B. in dem Speicher der ersten Instanz 310) eine Vielzahl von für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten und, optional, jeweils dazugehöriger Signaturen umfassen. Diese Vielzahl kann zum Beispiel eine Vielzahl von Paaren umfassen, wobei je ein Paar aus einer vorbestimmten Nachricht und einer dazugehörigen vorbestimmten Signatur bestehen kann. Die Vielzahl kann z.B. >=1, >=2, >=5, >=10, >=20, >=50, >=100, >=200, >=500, >=1e3, >=1e4 vorbestimmte Nachrichten und, optional, jeweils dazugehöriger Signaturen umfassen. Das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, kann dann umfassen, zu prüfen, ob die Nachricht mit einer vorbestimmten Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten übereinstimmt und die Signatur mit der dieser vorbestimmten Nachricht der Vielzahl der vorbestimmten Nachrichten dazugehörigen Signatur übereinstimmt. Das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, kann Auslesen 121 der vorbestimmten Nachricht und, optional, der dazugehörigen (vorbestimmten) Signatur aus einem Speicher z.B. in der ersten Instanz 310 umfassen. Alternativ oder zusätzlich kann das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, Auslesen 122 der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten und, optional, der dazugehörigen (vorbestimmten) Signaturen umfassen. Das Auslesen 122 kann im Wesentlichen parallel zum Prüfen 120 erfolgen und dann auf das Auslesen eines Teils der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten (zumindest zeitweilig) beschränkt werden, wenn beim Prüfen 120 eine vorbestimmte Nachricht gefunden wurde, die der empfangenen 110 Nachricht entspricht. Sodann kann die dazugehörige Signatur bestimmt oder ebenfalls ausgelesen werden und geprüft 120 werden, ob die dazugehörige Signatur der empfangenen 110 Signatur entspricht. Stimmen diese überein, kann verifiziert 130 werden. Anderenfalls kann das Auslesen weiterer vorbestimmter Nachrichten der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten sowie das Prüfen 120 fortgesetzt werden.
  • Die der vorbestimmten Nachricht dazugehörige Signatur kann vorbestimmt und z.B. bereits in dem Speicher der ersten Instanz 310 gespeichert sein. Ist die Signatur vorbestimmt, muss sich nur noch für das Prüfen 120 ausgelesen werden. Dieses Auslesen kann deutlich weniger rechenintensiv und somit schneller erfolgen als ein Berechnen 123 der Signatur. Das aufwendigere Berechnen 123 der Signatur kann bereits vorab, d.h. zu einem früheren Zeitpunkt z.B. bei (Re)initialisierung beim Fahrzeugstart, erfolgen.
  • Alternativ kann das Verfahren 100 Berechnen 123 der der vorbestimmten Nachricht dazugehörigen Signatur umfassen. Zum Beispiel kann wie in 1 und 3 dargestellt das Prüfen 120, ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, das Berechnen 123 der der vorbestimmten Nachricht dazugehörigen Signatur umfassen. Das Berechnen 123 kann nach derselben Berechnungsvorschrift (in 5a-b mit H bezeichnet) wie im computer-implementiertes Verfahren 200 zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in einer ersten Instanz 310 eines dienstorientierten Kommunikationssystems 300 eines Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 vor dem oder beim Prüfen 120 (englisch: „on the fly“) erfolgen.
  • Im Falle der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann die jeweils zu einer vorbestimmten Nachricht dazugehörige Signatur vorbestimmt und z.B. bereits in dem Speicher der ersten Instanz 310 gespeichert sein. Alternativ kann das Verfahren 100 Berechnen der der jeweiligen vorbestimmten Nachricht dazugehörigen Signatur oder Berechnen mindestens einer einer vorbestimmten Nachricht (z.B. derjenigen, die mit der empfangenen 110 Nachricht übereinstimmt) der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten dazugehörigen Signatur umfassen. Dabei kann ebenfalls die Berechnungsvorschrift aus dem Verfahren 200 angewandt werden.
  • Offenbart wird weiterhin ein computer-implementiertes Verfahren 200 zur Erzeugung (oder Vereinbarung) vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in einer ersten Instanz 310 eines dienstorientierten Kommunikationssystems 300 eines Fahrzeugs zur verifizierbaren und insbesondere authentifizierbaren Kommunikation mit einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 (zu einem späteren Zeitpunkt). Es müssen nicht notwendigerweise alle Nachrichten als vorbestimmte Nachrichten vereinbart werden. Stattdessen kann eine Auswahl von Nachrichten, insbesondere diejenigen, die keinen in der Zeit veränderlichen Inhalt aufweisen, als vorbestimmte Nachrichten vereinbart werden. Die zukünftige Kommunikation muss dadurch nicht eingeschränkt werden. Zum Beispiel können Nachrichten mit in der Zeit veränderlichem Inhalt ohne Signatur und somit ohne Verifizierung versendet und empfangen werden.
  • Das Verfahren 200 umfasst Teilen 210 eines geheimen Schlüssels s mit der zweiten Instanz 320. Der Schlüssel s ist zum Beispiel insofern geheim, als (idealerweise) nur die erste Instanz 310 und die zweite Instanz 320 und sonst keiner den geheimen Schlüssel s kennen. Der Schlüssel kann eine Bit- oder Bytefolge (z.B. eine Zeichenkette) sein. Der Schritt 210 kann im Verfahren 200 obsolet sein, wenn das Teilen 210 des geheimen Schlüssels bereits außerhalb des Verfahrens 200 z.B. bei der Integration der ersten und zweiten Instanz in das dienstorientierte Kommunikationssystem 300 (z.B. gemäß Spezifikation des (Fahrzeug)herstellers/Systemintegrators) erfolgt ist.
  • Das Verfahren 200 umfasst weiterhin Teilen 230 einer Vielzahl von für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten in einer vorbestimmten Ordnung mit der zweiten Instanz 320. Die Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann z.B. >=1, >=2, >=5, >=10, >=20, >=50, >=100, >=200, >=500, >=1e3, >=1e4 vorbestimmte Nachrichten umfassen. Die vorbestimmte Ordnung kann unter Umständen entbehrlich sein zum Beispiel dann, wenn die Signaturen jeweils nur von dem geheimen Schlüssel s und der jeweiligen Nachricht abhängen. Die zu teilenden 230 Nachrichten können insofern vorbestimmt sein, als die zum Zeitpunkt unmittelbar vor Schritt 230 bereits vorhanden sind.
  • Das Verfahren 200 umfasst weiterhin Erzeugen 240 einer Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten und in der vorbestimmten Ordnung zumindest auf Basis des geheimen Schlüssels s derart, dass die Signaturen für je eine vorbestimmte Nachricht in der ersten Instanz 310 und der zweiten Instanz 320 übereinstimmen. Schritt 240 (d.h. dieselbe Berechnungsvorschrift) kann auch in der zweiten Instanz 320 angewandt werden.
  • Die Berechnungsvorschrift (in 5a-b mit H bezeichnet) für das Erzeugen 240 kann zum Beispiel vorsehen, dass die Signaturen zu den vorbestimmten Nachrichten in beiden Instanzen 310, 320 in derselben deterministischen Weise und/oder auf Basis desselben Inputs in beiden Instanzen 310, 320 berechnet werden. Alternativ kann das Erzeugen 240 nur in einer Instanz (z.B. 310) erfolgen und anschließend die vorbestimmten Nachrichten und die dazugehörigen Signaturen über einen kryptographisch sicheren Kanal ausgetauscht werden. In diesem Fall können die Schritte 210, 230 im Verfahren 200 obsolet sein. Alternativ kann Schritt 240 wegfallen, sofern ein für die erste Instanz 310 und die zweite Instanz 320 gemeinsamer Erzeugungsalgorithmus geteilt/vereinbart wird, der Schritt 240 für mindestens eine vorbestimmte Nachricht (oder für die vorbestimmten Nachrichten der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten in der vorbestimmten Ordnung) ausführt. Vermöge eines solchen Erzeugungsalgorithmus können dann zum Beispiel dazugehörige Signaturen im Verfahren 100 beim Prüfen 120 bei Bedarf („on-the-fly“) erzeugt werden.
  • Das Verfahren 200 umfasst weiterhin Speichern 250 der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten (z.B. in dem Speicher) in der ersten Instanz 310. Das Speichern der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann ebenfalls (z.B. in einem Speicher) in der zweiten Instanz 320 erfolgen. Das Speichern 250 kann (vorteilhaft) Speichern der zu den gespeicherten Nachrichten dazugehörigen Signaturen (z.B. in dem Speicher) in der ersten Instanz 310 umfassen. Die zu den gespeicherten Nachrichten dazugehörigen Signaturen können ebenfalls (z.B. in dem Speicher) in der zweiten Instanz 320 gespeichert werden. Die dazugehörigen Signaturen müssen allerdings nicht vorab gespeichert werden. Stattdessen können sie auch (kurz) vor dem Senden bzw. (kurz) vor dem Verifizieren über den Erzeugungsalgorithmus berechnet werden. Das Verfahren 200 ist schematisch in 2 (und in 3) dargestellt.
  • Alternativ oder zusätzlich kann das Verfahren 200 Teilen 220 eines initialen Zeitwerts mit der zweiten Instanz 320 umfassen, aus dem im Verlauf des Erzeugens 240 ein konstanter oder sich verändernder, aber gemeinsamer Zeitwert t (dargestellt in 5a) jeweils in der ersten Instanz 310 und in der zweiten Instanz 320 ermittelt werden kann. Der konstante (in der ersten Instanz 310 und zweiten Instanz 320) gemeinsame Zeitwert kann z.B. der initiale Zeitwert sein. Der initiale Zeitwert kann zum Beispiel ein Zeitstempel sein. Auch der gemeinsame Zeitwert t kann ein Zeitstempel sein. Alternativ kann der initiale Zeitwert zum Beispiel ein Zählerstand sein. Auch der gemeinsame Zeitwert t kann ein Zählerstand sein (dargestellt als cnti in 5b für i=1,...,n). Der Zählerstand kann zum Beispiel diskret sein und mit der Zeit ansteigen (abgesehen von einem Überlauf z.B. mit Rückfall auf 0 bei fester Bittiefe). Zum Beispiel können sich die erste Instanz 310 und die zweite Instanz 320 auf einen gemeinsamen initialen Zeitwert sowie auf eine Logik einigen, wie der Zeitwert sich in Korrelation zur Zeit entwickelt. Die Entwicklung kann im Falle eines Zeitstempels zum Beispiel durch je eine Uhr in der ersten Instanz 310 und in der zweiten Instanz 320 (d.h. durch synchronisierte Uhren) gegeben sein. Im Falle eines Zählerstands kann die Entwicklung z.B. durch Regeln, wann und wie der Zählerstand zu inkrementieren ist, gegeben sein. Zum Beispiel kann der Zählerstand je für eine Nachricht erzeugter 240 Signatur um eins erhöht werden.
  • Das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann dann weiterhin zumindest auf Basis des jeweils im Verlauf des Erzeugens 240 konstanten oder sich verändernden, aber gemeinsamen Zeitwerts t erfolgen. Dadurch kann die Gefahr einer Mehrfachbenutzung/Replay-Attacke bei einer abgehörten Signatur deutlich und/oder zumindest für größere Zeiten (z.B. >1 Tag oder >1 Zündzyklus) reduziert und somit die Sicherheit des dienstorientierten Kommunikationssystems erhöht werden. Das Teilen 220 des initialen Zeitwerts kann z.B. vor oder nach Schritt 210 (oder auch gleichzeitig), vor oder nach Schritt 230 (oder auch gleichzeitig) und vor dem Schritt 240 erfolgen.
  • Alternativ oder zusätzlich kann das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten weiterhin zumindest auf Basis der jeweiligen vorbestimmten Nachricht erfolgen. Das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten muss aber nicht (zumindest) auf Basis der jeweiligen vorbestimmten Nachricht erfolgen. Durch die Abhängigkeit der Signatur von der jeweiligen Nachricht kann (zusätzlich zur Authentizität der Nachricht) die Integrität der Nachricht garantiert werden.
  • 5a illustriert eine Ausführungsform des Verfahrens 200 mit für die Kommunikation zwischen der ersten Instanz 310 (E1) und zweiten Instanz 320 (E2) vorbestimmten Nachrichten m1,...,mn. Je vorbestimmter Nachricht mi (i=1,..,n) kann sowohl in E1 als auch in E2 eine dazugehörige Signatur H(mi,t,s) auf Basis des gemeinsamen Schlüssels s, des konstanten gemeinsamen Zeitwerts t und der jeweiligen vorbestimmten Nachricht mi nach der (gemeinsamen) Berechnungsvorschrift H für das Erzeugen 240 berechnet werden. 5a illustriert weiterhin das Verfahren 100, wobei E1 eine Nachricht mi und eine Signatur H(mi, t, s) von E2 empfängt 110. Das Prüfen 120, ob die empfangene 110 Nachricht einer vorbestimmten Nachricht und die empfangene Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, erfolgt hier in einem Verifiziermodul V in E1. Das liefert entweder ein positives oder ein negatives Ergebnis.
  • Das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann weiterhin zumindest auf Basis einer Service-ID und/oder einer Client-ID (z.B. auch je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten.) erfolgen. Die Service-ID kann entweder die erste Instanz 310 oder die zweite Instanz 320 eindeutig kennzeichnen. Die Client-ID kann diejenige Instanz von der ersten Instanz 310 und der zweiten Instanz 320 eindeutig kennzeichnen, die nicht (bereits) durch die Service-ID eindeutig gekennzeichnet ist.
  • Die erste Instanz 310 kann zum Beispiel als Server im dienstorientierten Kommunikationssystem 300 fungieren, d.h. einen Service anbieten. Für diesen Service ist die Service-ID durch eine eindeutige Kennung der ersten Instanz 310 gegeben. Die zweite Instanz 320 kann zum Beispiel als Abnehmer (englisch: Client) den von der ersten Instanz 310 angebotenen Service abonnieren. Die Client-ID für dieses Abonnement (englisch: subscription) ist dann durch eine eindeutige Kennung der zweiten Instanz 320 gegeben. Jede Instanz kann mehrere Services anbieten und somit verschiedene Service-IDs aufweisen, die jeweils diese Instanz eindeutig kennzeichnen. Alternativ oder zusätzlich kann jede Instanz mehrere Services abonnieren und somit verschiedene Client-IDs aufweisen, die jeweils diese Instanz eindeutig kennzeichnen. Der Server kann Nachrichten an einen Abnehmer /Client senden. Alternativ oder zusätzlich kann der Client Nachrichten an den Server senden.
  • 5b illustriert eine Ausführungsform des Verfahrens 200, wobei eine Anzahl n von Nachrichten für die Kommunikation zwischen der ersten Instanz 310 (E1) und der zweiten Instanz 320 (E2) geteilt 230 wird. Jede der n zu erzeugenden 240 Signaturen H(sid, cid, cnti, s), i=1,...,n kann auf Basis des gemeinsamen Schlüssels s, des konstanten gemeinsamen Zeitwerts t, der hier zum Beispiel durch einen im Verlauf des Erzeugens 240 sich ändernden Zählerstand cnti (i=1,...,n) gegeben ist, und zum Beispiel einer Service-ID sid und einer Client-ID cid nach der (gemeinsamen) Berechnungsvorschrift H für das Erzeugen 240 berechnet werden. 5b illustriert weiterhin das Verfahren 100, wobei E1 eine Nachricht mi und eine dazugehörige Signatur H(sid, cid, cnti, s) von E2 empfängt 110. Das Prüfen 120, ob die empfangene 110 Nachricht einer vorbestimmten Nachricht und die empfangene Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, erfolgt hier in einem Verifiziermodul V in E1. Das liefert entweder ein positives oder ein negatives Ergebnis. Die zu einer Nachricht dazugehörige Signatur kann sich hier aus der vorbestimmten Ordnung vorbestimmter Nachrichten m1,...,mn ergeben.
  • Alternativ oder zusätzlich kann das Verfahren 200 Teilen 221 eines Startwerts r mit der zweiten Instanz 320 umfassen. Der Startwert r, auch englisch: (initial) seed, kann eine Bit- oder Bytefolge (z.B. eine Zeichenkette) sein. Er kann, muss aber nicht geheim sein. Schritt 221 kann z.B. nach oder vor Schritt 210 (oder gleichzeitig), nach oder vor Schritt 220 (sofern vorhanden, oder gleichzeitig), nach oder vor Schritt 230 (oder gleichzeitig) und vor Schritt 240 erfolgen.
  • Das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten kann dann Erzeugen 241 einer ersten Signatur für eine gemäß der vorbestimmten Ordnung erste vorbestimmte Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten weiterhin zumindest auf Basis des Startwerts r umfassen. Weiterhin kann dann das Erzeugen 240 der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten (in sukzessiven Wiederholungen) Erzeugen 242 jeder weiteren Signatur für eine gemäß der vorbestimmten Ordnung weitere vorbestimmte Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten weiterhin zumindest auf Basis der jeweils zuletzt erzeugten 241, 242 Signatur umfassen. Durch die sukzessiven Wiederholungen des Erzeugens 242 kann eine Signatur- Kette erzeugt werden, bei der abgesehen von der ersten erzeugten 241 Signatur h1 = H (s,..., r) jede weitere erzeugte 242 Signatur hi = H(s,...,hi-1) für i = 2,...,n von der unmittelbar zuvor erzeugten 241, 242 Signatur abhängt. Dadurch kann eine Mehrfachbenutzung/Replay-Attacke bei abgehörter Signatur (mit fast vollständiger Sicherheit) ausgeschlossen sein. Durch die Signatur-Kette kann das dienstorientierte Kommunikationssystem 300 somit noch besser abgesichert werden.
  • Die vorbestimmte Nachricht und, optional, die der vorbestimmten Nachricht dazugehörige Signatur im Verfahren 100 kann nach dem Verfahren 200 zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz 310 des dienstorientierten Kommunikationssystems 300 des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 in der ersten Instanz 310 gespeichert 250 werden/worden sein. Die Verknüpfung der Verfahren 100, 200 ist schematisch in 3 dargestellt.
  • Die Vielzahl der für die Kommunikation zwischen der ersten Instanz 310 und der zweiten Instanz 320 vorbestimmten Nachrichten und, optional, der jeweils dazugehörigen vorbestimmten Signaturen im Verfahren 100 kann nach dem Verfahren 200 zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz 310 des dienstorientierten Kommunikationssystems 300 des Fahrzeugs zur verifizierbaren Kommunikation mit der zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 in der ersten Instanz 310 gespeichert 250 werden/worden sein.
  • Offenbart wird weiterhin eine Instanz 310 in einem dienstorientierten Kommunikationssystem 300 in einem Fahrzeug, wobei die Instanz 310 (und gegebenenfalls das dienstorientierte Kommunikationssystem 300) dafür ausgelegt sein kann, als erste Instanz das computer-implementierte Verfahren 100 zur Verifikation der Nachrichten in dem dienstorientierten Kommunikationssystem 300 des Fahrzeugs auszuführen. Alternativ oder zusätzlich kann die Instanz 310 (und gegebenenfalls das dienstorientierte Kommunikationssystem 300) dafür ausgelegt sein, als erste Instanz das computer-implementierte Verfahren 200 zur Erzeugung der vorbestimmten Nachrichten und, optional, der dazugehörigen Signaturen in der ersten Instanz 310 des dienstorientierten Kommunikationssystems 300 des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 auszuführen. Das dienstorientierte Kommunikationssystem 300 kann zum Beispiel dafür ausgelegt sein, zusätzlich zu einer Nachricht eine Signatur (sofern gewünscht) vom Sender zum Empfänger zu übermitteln. Zum Beispiel kann dazu bei SOME/IP der Routing-Manager angepasst werden.
  • Offenbart werden weiterhin zwei Instanzen 310, 320 in einem dienstorientierten Kommunikationssystem 300, wobei eine Instanz 310 der zwei Instanzen 310, 320 dafür ausgelegt ist, als erste Instanz 310 zu fungieren, und eine andere Instanz 320 der zwei Instanzen 310, 320 dafür ausgelegt ist, als zweite Instanz 320 zu fungieren.
  • Offenbart wird weiterhin ein dienstorientiertes Kommunikationssystem 300 in einem Fahrzeug, umfassend eine Instanz 310. Alternativ oder zusätzlich wird ein dienstorientiertes Kommunikationssystem 300 in einem Fahrzeug offenbart, das zwei Instanzen 310, 320 umfasst, von denen eine als erste Instanz 310 und eine andere als zweite Instanz 320 fungiert. Ein solches dienstorientiertes Kommunikationssystem 300 ist schematisch in 4 illustriert.
  • Offenbart wird weiterhin ein Computer-Programm, das dafür ausgelegt ist, das computer-implementierte Verfahren 100 zur Verifikation von Nachrichten in dem dienstorientierten Kommunikationssystem 300 des Fahrzeugs auszuführen. Alternativ oder zusätzlich kann das Computer-Programm (oder ein weiteres Computer-Programm) dafür ausgelegt sein, das computer-implementierte Verfahren 200 zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz 310 des dienstorientierten Kommunikationssystems 300 des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz 320 des dienstorientierten Kommunikationssystems 300 auszuführen. Das Computer-Programm (und/oder das weitere Computer-Programm) kann z.B. in interpretierbarer oder in kompilierter Form vorliegen. Es kann (auch in Teilen) zur Ausführung z.B. als Bit- oder Byte-Folge in den RAM eines Steuergeräts oder Computer geladen werden.
  • Offenbart wird weiterhin ein computer-lesbares Medium oder Signal, das das Computer-Programm (und/oder das weitere Computer-Programm) speichert und/oder enthält. Das Medium kann z.B. eines von RAM, ROM, EPROM, HDD, SDD, ... umfassen, auf/in dem das Signal gespeichert wird.
  • Offenbart wird weiterhin ein Computersystem, das dafür ausgelegt ist, das Computer-Programm (und/oder das weitere Computer-Programm) auszuführen. Das Computer-System kann eine Instanz 310, 320 des dienstorientierten Kommunikationssystems 300 oder zwei Instanzen 310, 320 des dienstorientierten Kommunikationssystems 300 umfassen. Das Computersystem kann insbesondere mindestens einen Prozessor und mindestens einen Arbeitsspeicher (z.B. RAM, ...) umfassen. Weiterhin kann das Computersystem einen Speicher (z.B. HDD, SDD, ...) umfassen.

Claims (15)

  1. Computer-implementiertes Verfahren (100) zur Verifikation von Nachrichten in einem dienstorientierten Kommunikationssystem (300) eines Fahrzeugs, umfassend: - Empfangen (110) einer Nachricht und einer Signatur in einer ersten Instanz (310) des dienstorientierten Kommunikationssystems (300), wobei die Nachricht und die Signatur über das dienstorientierte Kommunikationssystem (300) empfangen (110) werden; - Prüfen (120), ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht; - Verifizieren (130) der Nachricht, wenn das Prüfen (120) positiv ausfällt.
  2. Verfahren (100) nach Anspruch 1, umfassend: - Nicht-Verifizieren (140) der Nachricht, wenn das Prüfen (120) negativ ausfällt.
  3. Verfahren (100) nach Anspruch 1 oder 2, wobei: - die Nachricht und die Signatur von einer zweiten Instanz (320) des dienstorientierten Kommunikationssystems (300) an die erste Instanz (310) gesendet werden; oder - der ersten Instanz (310) vorgetäuscht wird, dass die Nachricht und die Signatur von der zweiten Instanz (320) ausgeht; wobei das Prüfen (120), ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, umfasst, zu prüfen, ob die Nachricht einer für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachricht und die Signatur einer dieser vorbestimmten Nachricht dazugehörigen Signatur entspricht.
  4. Verfahren (100) nach Anspruch 3, wobei die erste Instanz (310) eine Vielzahl von für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten und, optional, jeweils dazugehöriger Signaturen umfasst, und wobei das Prüfen (120), ob die Nachricht einer vorbestimmten Nachricht und die Signatur einer der vorbestimmten Nachricht dazugehörigen Signatur entspricht, umfasst, zu prüfen, ob die Nachricht mit einer vorbestimmten Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten übereinstimmt und die Signatur mit der dieser vorbestimmten Nachricht der Vielzahl der vorbestimmten Nachrichten dazugehörigen Signatur übereinstimmt.
  5. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die der vorbestimmten Nachricht dazugehörige Signatur vorbestimmt ist oder das Verfahren (100) umfasst: - Berechnen (123) der der vorbestimmten Nachricht dazugehörigen Signatur.
  6. Computer-implementiertes Verfahren (200) zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in einer ersten Instanz (310) eines dienstorientierten Kommunikationssystems (300) eines Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz (320) des dienstorientierten Kommunikationssystems (300), umfassend: - Teilen (210) eines geheimen Schlüssels (s) mit der zweiten Instanz (320); - Teilen (230) einer Vielzahl von für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten in einer vorbestimmten Ordnung mit der zweiten Instanz (320); - Erzeugen (240) einer Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten und in der vorbestimmten Ordnung zumindest auf Basis des geheimen Schlüssels (s) derart, dass die Signaturen für je eine vorbestimmte Nachricht in der ersten Instanz (310) und der zweiten Instanz (320) übereinstimmen; - Speichern (250) der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten und, optional, der dazugehörigen Signaturen in der ersten Instanz (310).
  7. Verfahren (200) nach Anspruch 6, umfassend: - Teilen (220) eines initialen Zeitwerts mit der zweiten Instanz (320), aus dem im Verlauf des Erzeugens (240) ein konstanter oder sich verändernder, aber gemeinsamer Zeitwert (t) jeweils in der ersten Instanz (310) und in der zweiten Instanz (320) ermittelt wird, optional, wobei der initiale Zeitwert ein Zeitstempel oder ein Zählerstand ist; und wobei das Erzeugen (240) der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten weiterhin zumindest auf Basis des jeweils im Verlauf des Erzeugens (240) konstanten oder sich verändernden, aber gemeinsamen Zeitwerts (t) erfolgt.
  8. Verfahren (200) nach Anspruch 6 oder 7, wobei das Erzeugen (240) der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten weiterhin zumindest auf Basis der jeweiligen vorbestimmten Nachricht erfolgt.
  9. Verfahren (200) nach einem der Ansprüche 6 bis 8, wobei das Erzeugen (240) der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten weiterhin zumindest auf Basis einer Service-ID und/oder einer Client-ID erfolgt, wobei die Service-ID entweder die erste Instanz (310) oder die zweite Instanz (320) eindeutig kennzeichnet und die Client-ID diejenige Instanz von der ersten Instanz (310) und der zweiten Instanz (320) eindeutig kennzeichnet, die nicht durch die Service-ID eindeutig gekennzeichnet ist.
  10. Verfahren (200) nach einem der Ansprüche 6 bis 9, umfassend: - Teilen (221) eines Startwerts (r) mit der zweiten Instanz (320); und wobei das Erzeugen (240) der Signatur je vorbestimmter Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten umfasst: - Erzeugen (241) einer ersten Signatur für eine gemäß der vorbestimmten Ordnung erste vorbestimmte Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten weiterhin zumindest auf Basis des Startwerts (r); und - Erzeugen (242) jeder weiteren Signatur für eine gemäß der vorbestimmten Ordnung weitere vorbestimmte Nachricht der Vielzahl der für die Kommunikation zwischen der ersten Instanz (310) und der zweiten Instanz (320) vorbestimmten Nachrichten weiterhin zumindest auf Basis der jeweils zuletzt erzeugten (241, 242) Signatur.
  11. Verfahren (100) nach einem der Ansprüche 1 bis 5, wobei die vorbestimmte Nachricht und, optional, die der vorbestimmten Nachricht dazugehörige Signatur nach dem Verfahren (200) zur Erzeugung vorbestimmter Nachrichten und, optional, dazugehöriger Signaturen in der ersten Instanz (310) des dienstorientierten Kommunikationssystems (300) des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz (320) des dienstorientierten Kommunikationssystems (300) nach einem der Ansprüche 6 bis 10 in der ersten Instanz (310) gespeichert (250) worden sind.
  12. Verfahren (100, 200) nach einem der vorhergehenden Ansprüche, wobei das dienstorientierte Kommunikationssystem (300) eine Kommunikationsmiddleware SOME/IP ist oder umfasst.
  13. Instanz (310) in einem dienstorientierten Kommunikationssystem (300) in einem Fahrzeug, wobei die Instanz (310) dafür ausgelegt ist, als erste Instanz: - das computer-implementierte Verfahren (100) zur Verifikation der Nachrichten in dem dienstorientierten Kommunikationssystem (300) des Fahrzeugs nach einem der Ansprüche 1 bis 5 oder 11 bis 12; und/oder - das computer-implementierte Verfahren (200) zur Erzeugung der vorbestimmten Nachrichten und, optional, der dazugehörigen Signaturen in der ersten Instanz (310) des dienstorientierten Kommunikationssystems (300) des Fahrzeugs zur verifizierbaren Kommunikation mit einer zweiten Instanz (320) des dienstorientierten Kommunikationssystems (300) nach einem der Ansprüche 6 bis 10 oder 12; auszuführen.
  14. Zwei Instanzen (310, 320) in einem dienstorientierten Kommunikationssystem (300), wobei: - eine Instanz (310) der zwei Instanzen (310, 320) nach Anspruch 13; und - eine andere Instanz (320) der zwei Instanzen (310, 320) nach Anspruch 13 mit der Maßgabe, dass die erste Instanz und die zweite Instanz vertauscht sind; ausgelegt sind.
  15. Dienstorientiertes Kommunikationssystem (300) in einem Fahrzeug, umfassend eine Instanz (310) nach Anspruch 13 und/oder zwei Instanzen (310, 320) nach Anspruch 14.
DE102021209973.4A 2021-09-09 2021-09-09 Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem Pending DE102021209973A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102021209973.4A DE102021209973A1 (de) 2021-09-09 2021-09-09 Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem
US17/939,262 US20230070247A1 (en) 2021-09-09 2022-09-07 Resource-efficient verification of messages in a service-oriented communication system
CN202211094243.7A CN115801230A (zh) 2021-09-09 2022-09-08 在面向业务的通信系统中资源有效的消息验证

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021209973.4A DE102021209973A1 (de) 2021-09-09 2021-09-09 Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem

Publications (1)

Publication Number Publication Date
DE102021209973A1 true DE102021209973A1 (de) 2023-03-23

Family

ID=85383597

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021209973.4A Pending DE102021209973A1 (de) 2021-09-09 2021-09-09 Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem

Country Status (3)

Country Link
US (1) US20230070247A1 (de)
CN (1) CN115801230A (de)
DE (1) DE102021209973A1 (de)

Also Published As

Publication number Publication date
US20230070247A1 (en) 2023-03-09
CN115801230A (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
EP2421221B1 (de) Verfahren und Architekur zur Sicherung von Echtzeitdaten
WO2018188967A1 (de) Verfahren und vorrichtung zum rechnergestützten testen einer blockkette
DE102010042539A1 (de) Datensender mit einer sicheren, aber effizienten Signatur
EP2899714A1 (de) Gesichertes Bereitstellen eines Schlüssels
DE102013203415A1 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
DE102020121533A1 (de) Vertrauenswürdige authentifizierung von automotiven mikrocon-trollern
DE112017007971T5 (de) Digitales signierungsverfahren, zugehörige einrichtung und zugehöriges system
WO2019063256A1 (de) System, insbesondere authentizitätssystem
DE102014214823A1 (de) Bestimmung einer Verzögerung
DE102016205122A1 (de) Verfahren zum Austausch von Nachrichten zwischen sicherheitsrelevanten Vorrichtungen
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
DE102021209973A1 (de) Ressourcen-effiziente verifikation von nachrichten in einem dienstorientierten kommunikationssystem
WO2020193136A1 (de) Intrusionserkennung bei computersystemen
DE102015011920A1 (de) Verfahren zur Überprüfung der Datenintegrität einer C2C Übertragung
DE102016225436A1 (de) Sensor zum Erfassen von Messwerten, Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zur Verarbeitung von Messwerten eines Sensors
EP3671599A1 (de) Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
DE102020000336B4 (de) Verfahren zur Authentifizierung einer Gerätekomponente
WO2020043430A1 (de) Einrichtung und verfahren zum bereitstellen einer orakel-transaktion in einem verteilten datenbanksystem
EP4115310B1 (de) Verfahren und vorrichtung zur erkennung von schädlichen diensten in einem netz
EP3617976A1 (de) Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
EP3903440B1 (de) Verfahren zum betreiben von im zähler-modus betriebenen schlüsselstromgeneratoren zur sicheren datenübertragung, schlüsselstromgenerator mit zähler-modus-betrieb zur sicheren datenübertragung und computer-programm-produkt zur schlüsselstromerzeugung
DE112016001047B4 (de) System und Vorrichtung zum Verifizieren der Integrität eines Systems von seinen Komponenten
EP3371733A1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
WO2023169926A1 (de) Nachvollziehbares anfordern eines zertifikats durch eine registrierungsstelle
EP3907959A1 (de) Geschützter datenexport aus einem verteilten datenbanksystem