DE102015105281A1 - Authentifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes - Google Patents

Authentifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes Download PDF

Info

Publication number
DE102015105281A1
DE102015105281A1 DE102015105281.4A DE102015105281A DE102015105281A1 DE 102015105281 A1 DE102015105281 A1 DE 102015105281A1 DE 102015105281 A DE102015105281 A DE 102015105281A DE 102015105281 A1 DE102015105281 A1 DE 102015105281A1
Authority
DE
Germany
Prior art keywords
mac
valid
microprocessor
peripheral device
data
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
DE102015105281.4A
Other languages
English (en)
Inventor
David Nairn
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102015105281A1 publication Critical patent/DE102015105281A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Ein System und ein Verfahren zum Verifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) umfassen, dass an einem Mikroprozessor des Mikrocontrollers ein gültiger MAC unter Verwendung von gültigen Daten erzeugt wird; der gültige MAC zusammen mit den gültigen Daten an ein Peripheriegerät des Mikrocontrollers übertragen wird; eine Authentifizierungsnachricht an dem Mikroprozessor von dem Peripheriegerät in Ansprechen auf das Übertragen des gültigen MAC empfangen wird; an dem Mikroprozessor ein ungültiger MAC erzeugt wird, der durch Ändern eines oder mehrerer Bits des gültigen MAC erzeugt wird; der ungültige MAC zusammen mit den gültigen Daten in Ansprechen auf die Authentifizierungsnachricht an das Peripheriegerät übertragen wird; und eine zweite Authentifizierungsnachricht in Ansprechen auf das Übertragen des ungültigen MAC von dem Peripheriegerät an dem Mikroprozessor empfangen wird:

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich auf das Authentifizieren von Daten unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) und spezieller auf das Authentifizieren von Daten an einen Mikrocontroller, die zwischen einem Mikroprozessor des Mikrocontrollers und einem Peripheriegerät, das durch den Mikroprozessor verwendet wird, übertragen werden.
  • HINTERGRUND
  • Mikrocontroller werden bei einer großen Vielzahl von Anwendungen verwendet, um eine automatisierte Steuerung über verschiedene Funktionen auszuführen. Die Mikrocontroller fungieren als kleine Computer unter Verwendung eines oder mehrerer integrierter Schaltkreise. Im Allgemeinen können die Mikrocontroller ein oder mehrere Mikrocontrollerelemente umfassen, wie beispielsweise Mikroprozessoren, Speichereinrichtungen, Busse oder Peripheriegeräteinrichtungen. Unter Verwendung dieser Elemente können die Mikrocontroller die Funktion von mechanischen, elektrischen oder elektromechanischen Einrichtungen anweisen. Bei einem Beispiel kann das Karosseriesteuermodul eines Fahrzeugs unter Verwendung eines Mikrocontrollers realisiert sein.
  • Um korrekt zu funktionieren, sind die Mikrocontrollerelemente auf die Daten angewiesen, die sie austauschen. Manchmal werden die Daten, die zwischen den Mikrocontrollerelementen ausgetauscht werden, jedoch beschädigt und somit unzuverlässig. Es wäre hilfreich, ein Merkmal an einen Mikrocontroller zu realisieren, das detektieren würde, wenn ein Peripheriegerät des Mikrocontrollers ungültige Daten bereitstellt, und wobei eine direkte interne Sicht des Peripheriegerätprozesses (entwurfsgemäß) absichtlich nicht möglich ist.
  • ZUSAMMENFASSUNG
  • Gemäß einer Ausführungsform der Erfindung wird ein Verfahren zum Verifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) bereitgestellt. Das Verfahren umfasst, dass an einem Mikroprozessor des Mikrocontrollers ein gültiger Nachrichtenauthentifizierungscode (MAC) unter Verwendung von gültigen Daten erzeugt wird; der gültige MAC zusammen mit den gültigen Daten an ein Peripheriegerät des Mikrocontrollers übertragen wird; eine Authentifizierungsnachricht an dem Mikroprozessor von dem Peripheriegerät in Ansprechen auf das Übertragen des gültigen MAC empfangen wird; an dem Mikroprozessor ein ungültiger MAC erzeugt wird, der durch Ändern eines oder mehrerer Bits des gültigen MAC erzeugt wird; der ungültige MAC zusammen mit den gültigen Daten in Ansprechen auf die Authentifizierungsnachricht an das Peripheriegerät übertragen wird; und eine zweite Authentifizierungsnachricht in Ansprechen auf das Übertragen des ungültigen MAC von dem Peripheriegerät an dem Mikroprozessor empfangen wird.
  • Gemäß einer Ausführungsform der Erfindung wird ein System zum Verifizieren von Daten an einen Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) bereitgestellt. Das System umfasst einen Mikroprozessor und ein Peripheriegerät des Mikrocontrollers, die kommunikativ über einen Bus verbunden sind, wobei der Mikroprozessor einen gültigen Nachrichtenauthentifizierungscode (MAC), der unter Verwendung von gültigen Daten erzeugt wurde, zusammen mit den gültigen Daten an das Peripheriegerät überträgt; eine Authentifizierungsnachricht von dem Peripheriegerät in Ansprechen auf das Übertragen des gültigen MAC empfängt; einen ungültigen MAC zusammen mit den gültigen Daten an das Peripheriegerät überträgt; und eine zweite Authentifizierungsnachricht in Ansprechen auf das Übertragen des ungültigen MAC von dem Peripheriegerät empfängt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Hierin nachfolgend werden eine oder mehrere Ausführungsformen der Erfindung in Verbindung mit den beigefügten Zeichnungen beschrieben, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen, und wobei:
  • 1 ein Blockdiagramm, das eine Ausführungsform eines Kommunikationssystems zeigt, das das hierin offenbarte Verfahren verwenden kann, ist;
  • 2 ein Flussdiagramm eines Verfahrens zum Verifizieren von Daten an einen Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) ist; und
  • 3 ein Blockdiagramm ist, das eine Ausführungsform eines Systems zum Verifizieren von Daten an einen Mikrocontroller unter Verwendung von MACs zeigt.
  • DETAILLIERTE BESCHREIBUNG DER DARGESTELLTEN AUSFÜHRUNGSFORM(EN)
  • Das System und das Verfahren, die nachstehend beschrieben werden, verwenden Nachrichtenauthentifizierungscodes (MACs von message authentication codes) in einem Mikrocontroller, um zu ermitteln, ob übermittelte Daten gültig sind. Mikrocontroller umfassen oftmals Mikrocontrollerelemente, die vor der Degradierung von Daten schützen. Die Mikrocontroller können jedoch andere Mikroprozessorelemente umfassen, die diese Verifikationsmerkmale nicht umfassen. Beispielsweise kann der Mikroprozessor, der durch den Mikrocontroller verwendet wird, einen Mehrkernentwurf und/oder Fehlerkorrekturcodes (ECC von error correction codes) realisieren, die Daten, die in dem Mikrocontroller gespeichert sind/erzeugt werden/verarbeitet werden, grundsätzlich verifizieren können. Der Mikroprozessor kann jedoch mit einer Peripheriegeräteinrichtung kommunizieren, die ihren eigenen Mikroprozessor verwendet, der keine Verifikationsmerkmale aufweist. Somit kann der Mikrocontroller verifizieren, ob sein Peripheriegerät, das für eine MAC-Verifikation verantwortlich ist, korrekt funktioniert, indem MACs ausgetauscht werden, die gesteuert werden.
  • MACs können verwendet werden, um Daten oder Nachrichten zu authentifizieren, die zwischen zwei elektronischen Einrichtungen übermittelt werden, wie beispielsweise dem Mikroprozessor und der Peripheriegeräteinrichtung. Um sicherzustellen, dass die Daten, die von einem Peripheriegerät an den Mikroprozessor übertragen werden, zuverlässig sind, kann ein MAC durch den Mikroprozessor erzeugt werden, wobei ein MAC-Algorithmus verwendet wird, welcher eine Funktion der zu sendenden Daten und eines geheimen Schlüssels ist. Beispielhafte MAC-Algorithmen umfassen HMAC, einen hashfunktionsbasierten Nachrichtenauthentifizierungsalgorithmus, und CMAC, einen blockverschlüsselungsbasierten Nachrichtenauthentifizierungsalgorithmus.
  • Bei einer Verwendung zum Authentifizieren von Kommunikationen zwischen dem Mikroprozessor und dem Peripheriegerät kann der erzeugte MAC zusammen mit den Daten, die verwendet werden, um diesen MAC zu erzeugen, an das Peripheriegerät gesendet werden. Das Peripheriegerät weist seine eigene Kopie des geheimen Schlüssels und des MAC-Algorithmus auf, was das Peripheriegerät verwenden kann, um einen Vergleichs-MAC unter Verwendung der empfangenen Daten, seiner eigenen Kopie des geheimen Schlüssels und des MAC-Algorithmus zu berechnen. Wenn der Vergleichs-MAC, der durch das Peripheriegerät berechnet wurde, mit dem MAC übereinstimmt, der ihm gesendet wurde, kann das Peripheriegerät ermitteln, dass die Daten zuverlässig sind, und eine ”Ja”-Antwort ausgeben, die dies bestätigt. Im Gegensatz dazu kann eine ”Nein”-Antwort ausgegeben werden, wenn der durch die empfangende ECU berechnete Vergleichs-MAC nicht mit dem empfangenen MAC übereinstimmt. In diesem Sinne gibt das Peripheriegerät eine binäre Antwort ”Ja” oder ”Nein” bezüglich dessen aus, ob der Vergleichs-MAC mit dem empfangenen MAC übereinstimmt. Der Prozess des Ermittelns, ob der MAC einer Nachricht korrekt ist, und des Ausgebens einer binären ”JA”- oder ”Nein”-Antwort kann als MAC-Verifikation bezeichnet werden.
  • Um zu verifizieren, dass die interne Verarbeitung des Peripheriegeräts fehlerfrei ist, kann der Mikroprozessor die Peripheriegeräteinrichtung unter Verwendung von gültigen oder bekannten Daten, eines gültigen MAC, der unter Verwendung der gültigen Daten, eines MAC-Algorithmus und des geheimen Schlüssels berechnet wurde, und eines ungültigen MAC, der von dem gültigen MAC abgeleitet wurde, abfragen. Der Mikroprozessor kann den gültigen MAC mit den gültigen Daten, die verwendet werden, um den gültigen MAC zu erzeugen, an das Peripheriegerät senden. Das Peripheriegerät kann seinen eigenen Mikroprozessor, den MAC-Algorithmus und den geheimen Schlüssel verwenden, um den Vergleichs-MAC zu berechnen und zu ermitteln, ob der Vergleichs-MAC mit dem gültigen MAC übereinstimmt. Das Peripheriegerät sollte ein binäres ”Ja” ausgeben, wenn der gültige MAC mit dem Vergleichs-MAC übereinstimmt. Manchmal gibt das Peripheriegerät jedoch ungeachtet dessen, ob der durch das Peripheriegerät berechnete MAC mit dem empfangenen MAC übereinstimmt, ein binäres ”Ja” aus. In diesen Fällen kann das Peripheriegerät, das den binären Ausgang ausgibt, der ”Ja” darstellt, nicht dazu in der Lage sein, sich selbst zurückzusetzen und gibt es ungeachtet der Gültigkeit des empfangenen MACs ein ”Ja” aus. Wenn dies auftritt, kann der Mikroprozessor des Mikrocontrollers nicht mehr sicher sein, dass die Daten, die er von dem Peripheriegerät empfängt, gültig sind.
  • Der Mikroprozessor kann einen ungültigen MAC erzeugen und den ungültigen MAC mit den gültigen Daten, die verwendet werden, um den gültigen MAC zu erzeugen, an die Peripheriegeräteinrichtung übertragen. Der ungültige MAC kann erzeugt werden, indem ein oder mehrere Bits des gültigen MAC geändert werden. Beispielsweise kann der Mikroprozessor in Bezug auf einen 128-Bit-MAC das 128. Bit eines gültigen MAC von einer binären ”Null” in eine binäre ”Eins” ändern, wodurch ein ungültiger MAC erzeugt wird. Der ungültige MAC kann dann zusammen mit den gültigen Daten, die verwendet werden, um den gültigen MAC zu erzeugen, an die Peripheriegeräteinrichtung gesendet werden. Die Peripheriegeräteinrichtung sollte unter Verwendung der gültigen Daten einen Vergleichs-MAC berechnen, ihn mit dem empfangenen ungültigen MAC vergleichen und ein binäres ”Nein” bezüglich des MAC ausgeben. Wie oben erwähnt kann jedoch, wenn das Peripheriegerät ein binäres ”Ja” ausgibt, der Mikroprozessor des Mikrocontrollers ermitteln, dass die Peripheriegeräteinrichtung MACs, die sie empfängt, nicht korrekt verifiziert. Das System und das Verfahren, die nachstehend beschrieben werden, umfassen eine Realisierung an einem Fahrzeug. Es sei jedoch angemerkt, dass Realisierungen in anderen Umgebungen außerhalb eines Fahrzeugs möglich sind.
  • Kommunikationssystem –
  • Bezug nehmend auf 1 ist eine Betriebsumgebung gezeigt, die ein Mobilfahrzeugkommunikationssystem 10 umfasst und die verwendet werden kann, um das hierin offenbarte Verfahren zu realisieren. Das Kommunikationssystem 10 umfasst allgemein ein Fahrzeug 12, ein oder mehrere drahtlose Trägersysteme 14, ein Bodenkommunikationsnetz 16, einen Computer 18 und ein Call Center 20. Es ist zu verstehen, dass das offenbarte Verfahren mit jeder Anzahl von verschiedenen Systemen verwendet werden kann und nicht speziell auf die hier gezeigte Betriebsumgebung beschränkt ist. Auch sind die Architektur, die Konstruktion, der Aufbau und der Betrieb des Systems 10 sowie seine einzelnen Komponenten in der Technik allgemein bekannt. Somit liefern die folgenden Absätze lediglich einen kurzen Überblick über solch ein Kommunikationssystem 10; andere Systeme, die hier nicht gezeigt sind, könnten jedoch auch das offenbarte Verfahren einsetzen.
  • Das Fahrzeug 12 ist bei der dargestellten Ausführungsform als ein Personenkraftwagen gezeigt, es sei jedoch angemerkt, dass auch jedes andere Fahrzeug verwendet werden kann, das Motorräder, Lastwagen, Geländewagen (SUVs von sports utility vehicles), Wohnmobile (RVs von recreational vehicles), Schiffe, Luftfahrzeuge etc. umfasst. Ein Teil der Fahrzeugelektronik 28 ist in 1 allgemein gezeigt und umfasst eine Telematikeinheit 30, ein Mikrofon 32, einen oder mehrere Druckknöpfe oder andere Steuereingabeeinrichtungen 34, ein Audiosystem 36, eine visuelle Anzeige 38 und ein GPS-Modul 40 sowie eine Anzahl von Fahrzeugsystemmodulen (VSMs von vehicle system modules) 42. Einige dieser Einrichtungen können direkt mit der Telematikeinheit verbunden sein, wie beispielsweise das Mikrofon 32 und der Druckknopf/die Druckknöpfe 34, wohingegen andere indirekt unter Verwendung einer oder mehrerer Netzverbindungen, wie beispielsweise eines Kommunikationsbusses 44 oder eines Unterhaltungsbusses 46, verbunden sind. Beispiele geeigneter Netzverbindungen umfassen ein Controller Area Network (CAN), einen Media Oriented System Transfer (MOST), ein Local Interconnection Network (LIN), ein Local Area Network (LAN) und andere geeignete Verbindungen, wie beispielsweise Ethernet oder andere, die den bekannten ISO-, SAE- und IEEE-Standards und -Spezifikationen entsprechen, nur um einige zu nennen.
  • Die Telematikeinheit 30 kann eine OEM-Einrichtung (eingebettet) oder eine Nachrüsteinrichtung sein, die in dem Fahrzeug eingebaut ist und die eine drahtlose Sprach- und/oder Datenübermittlung über das drahtlose Trägersystem 14 und über einen drahtlosen Netzbetrieb ermöglicht. Dies ermöglicht dem Fahrzeug, mit dem Call Center 20, anderen telematikfähigen Fahrzeugen oder einer anderen Entität oder Einrichtung zu kommunizieren. Die Telematikeinheit verwendet vorzugsweise Funkübertragungen, um einen Kommunikationskanal (einen Sprachkanal und/oder einen Datenkanal) mit dem drahtlosen Trägersystem 14 herzustellen, sodass Sprach- und/oder Datenübertragungen über den Kanal gesendet und empfangen werden können. Durch Bereitstellen von sowohl einer Sprach- als auch einer Datenübermittlung ermöglicht die Telematikeinheit 30 dem Fahrzeug, eine Anzahl von verschiedenen Diensten anzubieten, die jene umfassen, die mit Navigation, Telefonie, Notfallunterstützung, Diagnose, Infotainment etc. in Beziehung stehen. Die Daten können entweder über eine Datenverbindung, wie beispielsweise über eine Paketdatenübertragung über einen Datenkanal, oder über einen Sprachkanal unter Verwendung von in der Technik bekannten Techniken gesendet werden. Für kombinierte Dienste, die sowohl eine Sprachkommunikation (z. B. mit einem menschlichen Berater oder einer Sprachausgabeeinheit an dem Call Center 20) als auch eine Datenkommunikation (z. B. um GPS-Ortsdaten oder Fahrzeugdiagnosedaten für das Call Center 20 bereitzustellen) umfassen, kann das System einen einzelnen Anruf über einen Sprachkanal verwenden und nach Bedarf zwischen einer Sprach- und einer Datenübertragung über den Sprachkanal umschalten, und dies kann unter Verwendung von Fachleuten bekannten Techniken erfolgen.
  • Gemäß einer Ausführungsform verwendet die Telematikeinheit 30 eine zellulare Kommunikation gemäß entweder GSM- oder CDMA-Standards und umfasst sie somit einen standardisierten zellularen Chipsatz 50 für Sprachübermittlungen wie Freisprechanrufe, ein Drahtlosmodem für eine Datenübertragung, eine elektronische Verarbeitungseinrichtung 52, eine oder mehrere digitale Speichereinrichtungen 54 und eine Dualantenne 56. Es sei angemerkt, dass das Modem entweder durch eine Software realisiert sein kann, die in der Telematikeinheit gespeichert ist und durch den Prozessor 52 ausgeführt wird, oder dass es eine separate Hardwarekomponente sein kann, die sich in der Telematikeinheit 30 oder außerhalb dieser befindet. Das Modem kann unter Verwendung jeder Anzahl von verschiedenen Standards oder Protokollen arbeiten, wie beispielsweise EVDO, CDMA, GPRS und EDGE. Ein drahtloser Netzbetrieb zwischen dem Fahrzeug und anderen vernetzten Einrichtungen kann auch unter Verwendung der Telematikeinheit 30 ausgeführt werden. Zu diesem Zweck kann die Telematikeinheit 30 ausgestaltet sein, um gemäß einem oder mehreren drahtlosen Protokollen, wie beispielsweise einem beliebigen der IEEE 802.11-Protokolle, WiMAX oder Bluetooth, drahtlos zu kommunizieren. Bei einer Verwendung für eine paketvermittelte Datenübermittlung, wie beispielsweise TCP/IP, kann die Telematikeinheit mit einer statischen IP-Adresse konfiguriert sein oder kann sie aufgebaut sein, um automatisch eine zugeordnete IP-Adresse von einer anderen Einrichtung an dem Netzwerk, wie beispielsweise einem Router, oder von einem Netzadressenserver zu empfangen.
  • Der Prozessor 52 kann jeder Typ von Einrichtung sein, der elektronische Anweisungen verarbeiten kann, und kann Mikroprozessoren, Mikrocontroller, Host-Prozessoren, Controller, Fahrzeugkommunikationsprozessoren und anwendungsspezifische integrierte Schaltkreise (ASICs von application specific integrated circuits) umfassen. Er kann ein dedizierter Prozessor sein, der nur für die Telematikeinheit 30 verwendet wird, oder er kann von anderen Fahrzeugsystemen gemeinsam genutzt werden. Der Prozessor 52 führt verschiedene Typen von digital gespeicherten Anweisungen aus, wie beispielsweise Software- oder Firmwareprogramme, die in dem Speicher 54 gespeichert sind und der Telematikeinheit ermöglichen, eine große Vielzahl von Diensten bereitzustellen. Beispielsweise kann der Prozessor 52 Programme ausführen oder Daten verarbeiten, um mindestens einen Teil des hierin erläuterten Verfahrens auszuführen.
  • Die Telematikeinheit 30 kann verwendet werden, um einen vielseitigen Bereich von Fahrzeugdiensten bereitzustellen, die eine drahtlose Übermittlung zu und/oder von dem Fahrzeug umfassen. Solche Dienste umfassen: Turn-by-Turn-Anweisungen und andere navigationsbezogene Dienste, die in Verbindung mit dem GPS-basierten Fahrzeugnavigationsmodul 40 bereitgestellt werden; eine Airbag-Einsatzbenachrichtigung und andere Notfall- oder Pannenhilfedienste, die in Verbindung mit einem oder mehreren Kollisionssensorschnittstellenmodulen bereitgestellt werden, wie beispielsweise einem Karosseriesteuermodul (nicht gezeigt); eine Diagnoseberichterstattung unter Verwendung eines oder mehrerer Diagnosemodule; und Infotainment-bezogene Dienste, bei denen Musik, Webseiten, Filme, Fernsehprogramme, Videospiele und/oder andere Informationen durch ein Infotainment-Modul (nicht gezeigt) heruntergeladen werden und für eine sofortige oder spätere Wiedergabe gespeichert werden. Die oben aufgelisteten Dienste sind keineswegs eine vollständige Liste aller Fähigkeiten der Telematikeinheit 30, sondern sind lediglich eine Aufzählung einiger der Dienste, die die Telematikeinheit anbieten kann. Ferner sei angemerkt, dass mindestens einige der zuvor genannten Module in Form von Softwareanweisungen realisiert sein könnten, die innerhalb oder außerhalb der Telematikeinheit 30 gespeichert sind, dass sie Hardwarekomponenten sein könnten, die sich innerhalb oder außerhalb der Telematikeinheit 30 befinden, oder dass sie miteinander oder mit anderen Systemen, die sich in dem Fahrzeug befinden, integriert sein könnten und/oder von diesen gemeinsam genutzt werden könnten, nur um einige Möglichkeiten zu nennen. In dem Fall, dass die Module als VSMs 42 realisiert sind, die außerhalb der Telematikeinheit 30 angeordnet sind, könnten sie den Fahrzeugbus 44 verwenden, um Daten und Befehle mit der Telematikeinheit auszutauschen.
  • Das GPS-Modul 40 empfängt Funksignale von einer Konstellation 60 von GPS-Satelliten. Aus diesen Signalen kann das Modul 40 die Fahrzeugposition ermitteln, die verwendet wird, um dem Fahrer des Fahrzeugs Navigations- und andere positionsbezogene Dienste bereitzustellen. Eine Navigationsinformation kann an der Anzeige 38 (oder an einer anderen Anzeige innerhalb des Fahrzeugs) dargestellt werden oder kann verbal dargestellt werden, wie es bei einem Bereitstellen einer Turn-by-Turn-Navigation der Fall ist. Die Navigationsdienste können unter Verwendung eines dedizierten fahrzeuginternen Navigationsmoduls (das Teil des GPS-Moduls 40 sein kann) bereitgestellt werden, oder es können einige oder alle Navigationsdienste über die Telematikeinheit 30 ausgeführt werden, wobei die Positionsinformation zu Zwecken des Bereitstellens von Navigationskarten, Kartenanmerkungen (Punkte von Interesse, Restaurants etc.), Routenberechnungen und dergleichen für das Fahrzeug an einen entfernten Ort gesendet wird. Die Positionsinformation kann dem Call Center 20 oder einem anderen entfernten Computersystem, wie beispielsweise einem Computer 18, zu anderen Zwecken, wie beispielsweise einer Flottenverwaltung, bereitgestellt werden. Es können auch neue oder aktualisierte Kartendaten von dem Call Center 20 über die Telematikeinheit 30 auf das GPS-Modul 40 heruntergeladen werden.
  • Abgesehen von dem Audiosystem 36 und dem GPS-Modul 40 kann das Fahrzeug 12 andere Fahrzeugsystemmodule (VSMs) 42 in Form von elektronischen Hardwarekomponenten umfassen, die an dem Fahrzeug angeordnet sind und typischerweise einen Eingang von einem oder mehreren Sensoren empfangen und den erfassten Eingang verwenden, um Diagnose-, Überwachungs-, Steuerungs-, Berichterstattungs- und/oder andere Funktionen durchzuführen. Jedes der VSMs 42 ist vorzugsweise durch den Kommunikationsbus 44 mit den anderen VSMs sowie mit der Telematikeinheit 30 verbunden und kann programmiert sein, um Fahrzeugsystem- und -teilsystemdiagnosetests auszuführen. Beispielsweise kann ein VSM 42 ein Motorsteuermodul (ECM von engine control module) sein, das verschiedene Aspekte des Motorbetriebs steuert, wie beispielsweise Kraftstoffzündung und Zündzeitpunkt, kann ein anderes VSM 42 ein Antriebsstrangsteuermodul sein, das den Betrieb einer oder mehrerer Komponenten des Fahrzeugantriebsstrangs reguliert, und kann ein anderes VSM 42 ein Karosseriesteuermodul sein, das verschiedene elektrische Komponenten überwacht, die sich an dem Fahrzeug befinden, wie beispielsweise die Zentralverriegelung und die Scheinwerfer des Fahrzeugs. Gemäß einer Ausführungsform ist das Motorsteuermodul mit fahrzeugeigenen Diagnosemerkmalen (OBD-Merkmalen von on-board diagnostic features) ausgestattet, die eine Vielzahl von Echtzeitdaten bereitstellen, wie beispielsweise die, die von verschiedenen Sensoren einschließlich Fahrzeugemissionssensoren empfangen werden und eine standardisierte Reihe von Diagnosefehlercodes (DTCs von diagnostic trouble codes) bereitstellen, die einem Ingenieur ermöglichen, Fehlfunktionen in dem Fahrzeug schnell zu identifizieren und zu beheben. Fachleute werden erkennen, dass die oben erwähnten VSMs nur Beispiele einiger der Module sind, die in dem Fahrzeug 12 verwendet werden können, da auch zahlreiche andere möglich sind.
  • Die Fahrzeugelektronik 28 umfasst auch eine Anzahl von Fahrzeugbenutzerschnittstellen, die Fahrzeuginsassen ein Mittel zum Bereitstellen und/oder Empfangen einer Information bereitstellen und das Mikrofon 32, den Druckknopf/Druckknöpfe 34, das Audiosystem 36 und die visuelle Anzeige 38 umfassen. Wie hierin verwendet umfasst der Begriff ”Fahrzeugbenutzerschnittstelle” breit jede geeignete Form von elektronischer Einrichtung, die sowohl Hardware- als auch Softwarekomponenten umfasst und sich an dem Fahrzeug befindet und einem Fahrzeugbenutzer ermöglicht, mit einer oder über eine Komponente des Fahrzeugs zu kommunizieren. Das Mikrofon 32 stellt einen Audioeingang für die Telematikeinheit bereit, um dem Fahrer oder einem anderen Insassen zu ermöglichen, Sprachbefehle bereitzustellen und über das drahtlose Trägersystem 14 Freisprechanrufe auszuführen. Zu diesem Zweck kann es mit einer fahrzeugeigenen automatisierten Sprachverarbeitungseinheit verbunden sein, die eine in der Technik bekannte Mensch-Maschine-Schnittstellentechnologie (HMI-Technologie von human-machine interface technology) verwendet. Der Druckknopf/die Druckknöpfe 34 ermöglicht/ermöglichen eine manuelle Benutzereingabe in die Telematikeinheit 30, um drahtlose Telefonanrufe zu initiieren und andere Daten, eine Antwort oder einen Steuereingang bereitzustellen. Es können separate Druckknöpfe verwendet werden, um im Gegensatz zu regulären Dienstunterstützungsanrufen an das Call Center 20 Notrufe zu initiieren. Das Audiosystem 36 stellt einen Audioausgang für einen Fahrzeuginsassen bereit und kann ein dediziertes, unabhängiges System oder ein Teil des primären Fahrzeugaudiosystems sein. Gemäß der bestimmten hier gezeigten Ausführungsform ist das Audiosystem 36 funktional mit sowohl dem Fahrzeugbus 44 als auch dem Unterhaltungsbus 46 gekoppelt und kann es eine AM-, FM- und Satellitenradio-, CD-, DVD- und eine andere Multimediafunktionalität bereitstellen. Diese Funktionalität kann in Verbindung mit oder unabhängig von dem oben beschriebenen Infotainment-Modul bereitgestellt werden. Die visuelle Anzeige 38 ist vorzugsweise eine Graphikanzeige, wie beispielsweise ein Touchscreen an dem Armaturenbrett, oder eine Head-Up-Anzeige, die an der Windschutzscheibe reflektiert wird, und kann verwendet werden, um eine Vielzahl von Eingabe- und Ausgabefunktionen bereitzustellen. Es können auch verschiedene andere Fahrzeugbenutzerschnittstellen verwendet werden, da die Schnittstellen von 1 nur ein Beispiel einer bestimmten Realisierung sind.
  • Das drahtlose Trägersystem 14 ist vorzugsweise ein Mobiltelefonsystem, das mehrere Mobilfunkmasten 70 (nur einer gezeigt), eine oder mehrere Mobilfunkvermittlungsstellen (MSCs von mobile switching centers) 72 sowie beliebige andere Netzkomponenten umfasst, die erforderlich sind, um das drahtlose Trägersystem 14 mit dem Bodennetz 16 zu verbinden. Jeder Mobilfunkmast 70 umfasst sendende und empfangende Antennen und eine Basisstation, wobei die Basisstationen von unterschiedlichen Mobilfunkmasten entweder direkt oder über ein Zwischengerät, wie beispielsweise einen Basisstationscontroller, mit der MSC 72 verbunden sind. Das zellulare System 14 kann jede geeignete Kommunikationstechnologie realisieren, die beispielsweise analoge Technologien, wie beispielsweise AMPS, oder die neueren digitalen Technologien, wie beispielsweise CDMA (z. B. CDMA2000) oder GSM/GPRS, umfasst. Fachleute werden erkennen, dass verschiedene Mobilfunkmast/Basisstation/MSC-Anordnungen möglich sind und mit dem drahtlosen System 14 verwendet werden könnten. Beispielsweise könnten die Basisstation und der Mobilfunkmast zusammen an dem gleichen Ort angeordnet sein, oder sie könnten entfernt voneinander angeordnet sein, könnte jede Basisstation für einen einzelnen Mobilfunkmast verantwortlich sein oder könnte eine einzelne Basisstation verschiedene Mobilfunkmasten bedienen und könnten verschiedene Basisstationen mit einer einzelnen MSC gekoppelt sein, nur um einige der möglichen Anordnungen zu nennen.
  • Abgesehen von einem Verwenden des drahtlosen Trägersystems 14 kann ein anderes drahtloses Trägersystem in Form einer Satellitenkommunikation verwendet werden, um eine unidirektionale oder bidirektionale Kommunikation mit dem Fahrzeug bereitzustellen. Dies kann unter Verwendung eines oder mehrerer Kommunikationssatelliten 62 und einer Uplink-Übertragungsstation 64 erfolgen. Eine unidirektionale Kommunikation kann beispielsweise Satellitenfunkdienste umfassen, bei denen Programminhalt (Nachrichten, Musik, etc.) durch die Übertragungsstation 64 empfangen wird, für ein Hochladen verpackt wird und dann an den Satelliten 62 gesendet wird, der die Programme an Teilnehmer ausstrahlt. Eine bidirektionale Kommunikation kann beispielsweise Satellitentelefoniedienste umfassen, die den Satelliten 62 verwenden, um Telefonverkehr zwischen dem Fahrzeug 12 und der Station 64 weiterzuleiten. Bei einer Verwendung kann diese Satellitentelefonie entweder zusätzlich zu dem drahtlosen Trägersystem 14 oder anstatt dieses eingesetzt werden.
  • Das Bodennetz 16 kann ein herkömmliches bodenbasiertes Telekommunikationsnetz sein, das mit einem oder mehreren Festnetztelefonen verbunden ist und das drahtlose Trägersystem 14 mit dem Call Center 20 verbindet. Beispielsweise kann das Bodennetz 16 ein Fernsprechnetz (PSTN von public switched telephone network) umfassen, wie beispielsweise jenes, das verwendet wird, um eine Festnetztelefonie, paketvermittelte Datenübermittlungen und die Internetinfrastruktur bereitzustellen. Ein oder mehrere Segmente des Bodennetzes 16 könnten durch die Verwendung eines standardisierten drahtgebundenen Netzes, eines Faser- oder anderen optischen Netzes, eines Kabelnetzes, von Hochspannungsleitungen, anderen drahtlosen Netzen, wie beispielsweise Wireless Local Area Networks (WLANs), oder Netzen, die einen drahtlosen Breitbandzugriff (BWA von broadband wireless access) bereitstellen, oder jeder Kombination hiervon realisiert sein. Ferner muss das Call Center 20 nicht über das Bodennetz 16 verbunden sein, sondern könnte es ein Drahtlostelefoniegerät umfassen, sodass es direkt mit einem drahtlosen Netz, wie beispielsweise dem drahtlosen Trägersystem 14, kommunizieren kann.
  • Der Computer 18 kann einer einer Anzahl von Computern sein, auf die über ein privates oder öffentliches Netz, wie beispielsweise das Internet, zugegriffen werden kann. Jeder solche Computer 18 kann für einen oder mehrere Zwecke, wie beispielsweise einen Web-Server, verwendet werden, auf den durch das Fahrzeug über die Telematikeinheit 30 und den drahtlosen Träger 14 zugegriffen werden kann. Andere derartige Computer 18, auf die zugegriffen werden kann, können beispielsweise umfassen: einen Computer einer Dienstzentrale, an dem Diagnoseinformationen und andere Fahrzeugdaten von dem Fahrzeug über die Telematikeinheit 30 hochgeladen werden können; einen Client-Computer, der durch den Fahrzeughalter oder einen anderen Teilnehmer zu Zwecken wie beispielsweise Zugreifen auf oder Empfangen von Fahrzeugdaten oder Einstellen oder Konfigurieren von Teilnehmervorlieben oder Steuern von Fahrzeugfunktionen verwendet wird; oder einen dritten Speicher, für den oder von dem Fahrzeugdaten oder andere Informationen geliefert werden, entweder durch Kommunizieren mit dem Fahrzeug 12 oder dem Call Center 20 oder beiden. Ein Computer 18 kann auch zum Bereitstellen einer Internetkonnektivität, wie beispielsweise von DNS-Diensten, oder als ein Netzadressenserver, der DHCP oder ein anderes geeignetes Protokoll verwendet, um dem Fahrzeug 12 eine IP-Adresse zuzuordnen, verwendet werden.
  • Das Call Center 20 ist entworfen, um der Fahrzeugelektronik 28 eine Anzahl von verschiedenen System-Backend-Funktionen bereitzustellen und umfasst gemäß der hier gezeigten beispielhaften Ausführungsform allgemein eine(n) oder mehrere Schalter 80, Server 82, Datenbanken 84, menschliche Berater 86 sowie ein automatisiertes Sprachausgabesystem (VRS von voice response system) 88, die alle in der Technik bekannt sind. Diese verschiedenen Call Center-Komponenten sind vorzugsweise über ein drahtgebundenes oder drahtloses lokales Netz 90 miteinander gekoppelt. Der Schalter 80, der ein Telekommunikationsanlagenschalter (PBX-Schalter von private branch exchange switch) sein kann, leitet eingehende Signale derart weiter, dass Sprachübertragungen für gewöhnlich entweder durch ein normales Telefon an den menschlichen Berater 86 oder unter Verwendung von VoIP an das automatisierte Sprachausgabesystem 88 gesendet werden. Das Telefon des menschlichen Beraters kann auch VoIP verwenden, wie es durch die gestrichelte Linie in 1 gezeigt ist. VoIP und andere Datenübermittlungen über den Schalter 80 werden über ein Modem (nicht gezeigt) realisiert, das zwischen dem Schalter 80 und dem Netz 90 verbunden ist. Die Datenübertragungen werden über das Modem an den Server 82 und/oder die Datenbank 84 weitergeleitet. Die Datenbank 84 kann eine Kontoinformation, wie beispielsweise eine Teilnehmerauthentifizierungsinformation, Fahrzeugidentifikatoren, Profilaufzeichnungen, Verhaltensmuster und andere entsprechende Teilnehmerinformationen, speichern. Datenübertragungen können auch durch drahtlose Systeme, wie beispielsweise 802.11x, GPRS und dergleichen, ausgeführt werden. Obwohl die gezeigte Ausführungsform als in Verbindung mit einem mit Personal besetzten Call Center 20 unter Verwendung des menschlichen Beraters 86 verwendet beschrieben wurde, sei angemerkt, dass das Call Center stattdessen das VRS 88 als einen automatisierten Berater verwenden kann oder eine Kombination aus dem VRS 88 und dem menschlichen Berater 86 verwendet werden kann.
  • Verfahren –
  • Nun auf 2 Bezug nehmend ist ein Verfahren 200 zum Verifizieren von Daten an einen Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs) gezeigt. Das Verfahren 200 beginnt in Schritt 210 durch Erzeugen eines gültigen MAC, der unter Verwendung von gültigen Daten erzeugt wurde, an einen Mikroprozessor des Mikrocontrollers. Sowohl der gültige MAC als auch die gültigen Daten können dann an ein Peripheriegerät des Mikrocontrollers übertragen werden. Der Mikroprozessor des Mikrocontrollers kann auch als ”Host-Mikroprozessor” bezeichnet werden, um eine Verwechslung mit dem Mikroprozessor/den Mikroprozessoren, der/die durch das Peripheriegerät verwendet wird/werden, zu vermeiden. Wie oben erwähnt gibt es Unterschiede zwischen dem Host-Mikroprozessor und dem Mikroprozessor, der durch das Peripheriegerät verwendet wird. Beispielsweise kann der Host-Mikroprozessor ein höher entwickelter integrierter Schaltkreis sein, der Mehrkernprozessoren und einen Fehlerkorrekturcode (ECC) einsetzt, um sicherzustellen, dass verarbeitete Daten keinen Fehler aufweisen. Im Gegensatz dazu kann/können der Mikroprozessor/die Mikroprozessoren des Peripheriegeräts möglicherweise keine Mehrkernprozessoren oder keinen ECC verwenden, wodurch der Fehlerschutz, der in dem Host-Mikroprozessor zu finden ist, nicht vorhanden ist.
  • Der gültige MAC kann aus Daten erzeugt werden, die dem Host-Mikroprozessor als gültig bekannt sind. Gültige Daten können eine bekannte Folge von Daten sein, die an dem Mikroprozessor gespeichert ist. Die bekannte Folge von Daten kann dann mit dem geheimen Schlüssel und einem MAC-Algorithmus an dem Mikroprozessor verwendet werden, um einen gültigen MAC abzuleiten. Es ist jedoch auch möglich, sowohl die gültigen Daten als auch einen zuvor abgeleiteten gültigen MAC an dem Mikroprozessor zu speichern, so dass auf den gültigen MAC zugegriffen werden und er gesendet werden kann, ohne ihn für jede Übertragung abzuleiten. Nach dem Zugreifen auf den oder Erzeugen des gültigen MAC kann der Mikroprozessor dann den gültigen MAC und die gültigen Daten an das Peripheriegerät übertragen.
  • Der gültige MAC kann auch andere Anweisungen umfassen. Beispielsweise kann der gültige MAC durch den Host-Mikroprozessor trunkiert werden und einen Trunkierungswert umfassen, der das Peripheriegerät anweist, einen Vergleichs-MAC zu erzeugen und nur die durch den Trunkierungswert spezifizierten Bits zu vergleichen. Bei einem Beispiel könnte der gültige MAC normalerweise 128 Bits umfassen. Aufgrund von Größenbeschränkungen kann der gültige MAC jedoch auf 30 Bits trunkiert werden und einen Trunkierungswert (in diesem Fall 30 Bits) umfassen, der die die Größe des gültigen MAC reflektiert. Das Verfahren 200 fährt mit Schritt 220 fort.
  • In Schritt 220 wird eine Authentifizierungsnachricht in Ansprechen auf das Übertragen des gültigen MAC von dem Peripheriegerät an dem Host-Mikroprozessor empfangen. Sobald das Peripheriegerät den gültigen MAC und die gültigen Daten empfangen hat, kann es einen Vergleichs-MAC erzeugen. Der Vergleichs-MAC kann unter Verwendung eines Mikroprozessors an dem Peripheriegerät erzeugt werden, das die gültigen Daten mit einer Kopie des geheimen Schlüssels, der an dem Peripheriegerät geführt wird, in einen Authentifizierungs-MAC eingibt. Das Peripheriegerät kann dann ermitteln, ob der Vergleichs-MAC, den es erzeugt hat, mit dem gültigen MAC übereinstimmt. Der Vergleichs-MAC und der gültige MAC sollten übereinstimmen, und das Peripheriegerät kann ein logisches ”Ja” als Authentifizierungsnachricht, die dieses Ergebnis angibt, ausgeben. Die Authentifizierungsnachricht kann dann über einen Bus an den Host-Mikroprozessor übertragen werden. Das Verfahren 200 fährt mit Schritt 230 fort.
  • In Schritt 230 erzeugt der Host-Mikroprozessor einen ungültigen MAC und überträgt er ihn zusammen mit den gültigen Daten in Ansprechen auf die Authentifizierungsnachricht an das Peripheriegerät. Der Host-Mikroprozessor kann dann verifizieren, dass das Peripheriegerät ein logisches ”Nein” ausgeben kann, was angibt, dass der ungültige MAC inkorrekt ist. Der ungültige MAC kann durch Modifizieren eines oder mehrerer Bits des gültigen MAC erzeugt werden. Beispielsweise kann der Host-Mikroprozessor in einem System, das 128-Bit-MACs verwendet, den ungültigen MAC erzeugen, indem das 128. Bit des gültigen MAC geändert wird (von einer logischen ”0” in eine ”1” oder umgekehrt). Dies kann dabei helfen, zu identifizieren, ob das Peripheriegerät jedes Bit der MACs, die es empfängt, liest oder nicht. Es kann auch dabei helfen, zu identifizieren, wann das Peripheriegerät ungeachtet der Daten oder des MAC, die oder den es empfängt, ein logisches ”Ja” ausgibt. Und wie der gültige MAC kann er an dem Mikroprozessor gespeichert werden, so dass sein ”Erzeugen” umfasst, dass auf ihn an einem gespeicherten Ort zugegriffen wird.
  • Der ungültige MAC kann auch als trunkierter MAC erzeugt werden. Bei einem erläuternden Beispiel können der gültige und/oder der ungültige MAC, anstatt des 128-Bit-MAC, einen Trunkierungswert umfassen, der die Anzahl von Bits eines gekürzten gültigen MAC oder ungültigen MAC darstellt. Wenn trunkierte MACs verwendet werden, kann der gültige MAC auf eine kürzere Länge (z. B. 30 Bits anstatt 128 Bits) trunkiert werden und wird der Trunkierungswert auf den Wert gesetzt, der die kürzere Länge darstellt. Wenn der ungültige MAC aus dem gültigen MAC erzeugt wird, kann das 30. Bit eines trunkierten gültigen MAC geändert werden und zusammen mit dem auf 30 gesetzten Trunkierungswert an das Peripheriegerät gesendet werden. Wenn der trunkierte ungültige MAC durch das Peripheriegerät empfangen wird, kann es den Trunkierungswert lesen und ermitteln, dass es einen Vergleichs-MAC erzeugen sollte, der bei diesem Beispiel 30 Bits lang ist. Das Peripheriegerät kann auch angewiesen werden, die höchstwertigen Bits oder die niedrigstwertigen Bits zu verwenden. Das Verfahren 200 fährt mit Schritt 240 fort.
  • In Schritt 240 wird eine zweite Authentifizierungsnachricht in Ansprechen auf das Übertragen des ungültigen MAC von dem Peripheriegerät an dem Host-Mikroprozessor empfangen. Wenn das Peripheriegerät normal arbeitet, sollte es beim Vergleichen des ungültigen MAC mit dem Vergleichs-MAC, den es unter Verwendung der gültigen Daten und des geheimen Schlüssels aus dem MAC-Algorithmus erzeugt, ein logisches ”Nein” ausgeben. Das Peripheriegerät kann, wenn es korrekt arbeitet, den ungültigen MAC und die gültigen Daten empfangen, unter Verwendung der gültigen Daten einen Vergleichs-MAC erzeugen und den ungültigen MAC mit dem Vergleichs-MAC, der unter Verwendung der gültigen Daten erzeugt wird, vergleichen. Das Peripheriegerät wird ermitteln, dass das 128. Bit nicht übereinstimmt, und ein logisches ”Nein” ausgeben. Wenn der Host-Mikroprozessor das logische ”Nein” von dem Peripheriegerät empfängt, kann der Mikroprozessor ermitteln, dass das Peripheriegerät MACs korrekt authentifiziert. Wenn der Host-Mikroprozessor jedoch ein logisches ”Ja” von dem Peripheriegerät empfängt, kann der Mikroprozessor ermitteln, dass eine Fehlfunktion an dem Peripheriegerät vorliegt. Wie oben erläutert könnte das Peripheriegerät nicht dazu in der Lage sein, das logische Ergebnis zurückzusetzen, das es beim Vergleichen der empfangenen MACs mit Vergleichs-MACs ausgibt, oder könnte das Peripheriegerät nicht jedes Bit der empfangenen MACs verarbeiten. Bei einer Realisierung kann dies bewirken, dass der Mikrocontroller in Ansprechen auf das Empfangen eines logischen ”Ja” einen oder mehrere Warncodes erzeugt und diese an einen Ort außerhalb des Mikrocontrollers übermittelt, wie beispielsweise das VSM 42, das Diagnosefehlercodes (DTCs) an eine Fahrzeugtelematikeinheit 30 sendet.
  • Der Host-Mikroprozessor kann bei einem Versuch, zu identifizieren, welches Bit des Vergleichs-MAC nicht mit dem ungültigen MAC übereinstimmt, zusätzliche ungültige MACs in Ansprechen auf die zweite Authentifizierungsnachricht an das Peripheriegerät senden. Dies kann erfolgen, indem ein oder mehrere ungültige MACs durch Ändern unterschiedlicher Bits des gültigen MAC konstruiert werden. Die ungültigen MACs können dann gesendet werden, bis ein logisches ”Nein” durch das Peripheriegerät ausgegeben wird. Beispielsweise sendete der Host-Mikroprozessor unter Verwendung des obigen Beispiels eines ungültigen MAC mit 128 Bit einen ersten ungültigen MAC durch Ändern des 128. Bit. Der Host-Mikroprozessor kann einen zusätzlichen ungültigen MAC erzeugen, der das 128. Bit in einen gültigen Wert umkehrt und dann das 127. Bit ungültig macht. Der zusätzliche ungültige MAC kann dann an das Peripheriegerät gesendet werden, und es kann eine logische Antwort empfangen werden. Es ist möglich, diesen Prozess für die verbleibenden 126 Bits zu wiederholen, um zu ermitteln, ob sich der logische Ausgang von dem Peripheriegerät bei irgendeinem der Bits ändert. Dann endet das Verfahren 200.
  • Nun auf 3 Bezug nehmend ist ein System 300 zum Verifizieren von Daten an einen Mikrocontroller unter Verwendung von MACs gezeigt. Das System 300 wird in Bezug auf einen Mikrocontroller beschrieben, der durch das oben in Bezug auf 1 beschriebene Fahrzeugsystemmodul VSM 42 verkörpert ist. Es sei jedoch angemerkt, dass das System 300 auf Mikrocontroller angewandt werden kann, die in sich nicht auf ein Fahrzeug beziehenden Umgebungen verwendet werden. Das VSM 42 umfasst einen Host-Mikroprozessor 302, der über einen Bus 306 mit einem Peripheriegerät 304 gekoppelt ist. Bei dieser Realisierung verwendet der Host-Mikroprozessor 302 einen Dualkernprozessor und einen Fehlerkorrekturcode (ECC). Ferner umfasst der Host-Mikroprozessor 302 eine Host-Speichereinrichtung 308, die Daten in Form von von einem Computer lesbaren Anweisungen, einen oder mehrere geheime Schlüssel, einen oder mehrere MAC-Algorithmen, gültige MACs und/oder ungültige MACs speichern kann. Der Bus 306 koppelt den Host-Mikroprozessor 302 kommunikativ mit dem Peripheriegerät 304, das einen Peripheriegerätmikroprozessor 310, eine Peripheriegerätschnittstelle 312 und eine Peripheriegerätspeichereinrichtung 314, die verwendet werden kann, um geheime Schlüssel und MAC-Algorithmen zu speichern, umfasst. Ein Beispiel des durch das VSM 42 verwendeten Mikrocontrollers wird von Freescale Technology als Modell Nr. MPC 560xB verkauft.
  • Es ist zu verstehen, dass das Vorstehende eine Beschreibung einer oder mehrerer Ausführungsformen der Erfindung ist. Die Erfindung ist nicht auf die hierin offenbarte(n) bestimmte(n) Ausführungsform(en) beschränkt, sondern ist lediglich durch die nachstehenden Ansprüche definiert. Ferner betreffen die in der vorstehenden Beschreibung enthaltenen Aussagen bestimmte Ausführungsformen und sollen sie nicht als Einschränkungen des Schutzumfangs der Erfindung oder der Definition der in den Ansprüchen verwendeten Begriffe betrachtet werden, außer, wenn ein Begriff oder eine Phrase oben ausdrücklich definiert ist. Verschiedene andere Ausführungsformen und verschiedene Änderungen und Abwandlungen der offenbarten Ausführungsform(en) werden für Fachleute ersichtlich. Alle solchen anderen Ausführungsformen, Änderungen und Abwandlungen sollen als innerhalb des Schutzumfangs der beigefügten Ansprüche liegend betrachtet werden.
  • Wie in dieser Beschreibung und den Ansprüchen verwendet, sollen die Begriffe ”z. B.”, ”zum Beispiel”, ”beispielsweise”, ”wie beispielsweise” und ”wie” und die Verben ”umfassen”, ”aufweisen”, ”einschließen” und ihre anderen Verbformen, wenn sie in Verbindung mit einer Auflistung einer oder mehrerer Komponenten oder anderer Elemente verwendet werden, jeweils als ein offenes Ende aufweisend betrachtet werden, was bedeutet, dass die Auflistung nicht als andere, zusätzliche Komponenten oder Elemente ausschließend betrachtet werden soll. Andere Begriffe sollen unter Verwendung ihrer breitesten vernünftigen Bedeutung betrachtet werden, wenn sie nicht in einem Kontext verwendet werden, der eine andere Interpretation erfordert.

Claims (10)

  1. Verfahren zum Verifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs), das die Schritte umfasst, dass: (a) an einem Mikroprozessor des Mikrocontrollers ein gültiger Nachrichtenauthentifizierungscode (MAC) unter Verwendung von gültigen Daten erzeugt wird; (b) der gültige MAC zusammen mit den gültigen Daten an ein Peripheriegerät des Mikrocontrollers übertragen wird; (c) eine Authentifizierungsnachricht von dem Peripheriegerät in Ansprechen auf das Übertragen des gültigen MAC an dem Mikroprozessor empfangen wird; (d) an dem Mikroprozessor ein ungültiger MAC erzeugt wird, der durch Ändern eines oder mehrerer Bits des gültigen MAC erzeugt wird; (e) der ungültige MAC zusammen mit den gültigen Daten in Ansprechen auf die Authentifizierungsnachricht an das Peripheriegerät übertragen wird; und (f) in Ansprechen auf das Übertragen des ungültigen MAC an dem Mikroprozessor eine zweite Authentifizierungsnachricht von dem Peripheriegerät empfangen wird.
  2. Verfahren nach Anspruch 1, das ferner den Schritt umfasst, dass der gültige MAC an dem Mikroprozessor gespeichert wird.
  3. Verfahren nach Anspruch 1, das ferner den Schritt umfasst, dass die gültigen Daten an dem Mikroprozessor gespeichert werden.
  4. Verfahren nach Anspruch 1, das ferner den Schritt umfasst, dass ein Vergleichs-MAC an dem Peripheriegerät erzeugt wird.
  5. Verfahren nach Anspruch 1, das ferner den Schritt umfasst, dass der gültige MAC trunkiert wird.
  6. System zum Verifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes (MACs), umfassend: einen Mikroprozessor und ein Peripheriegerät des Mikrocontrollers, die kommunikativ über einen Bus verbunden sind, wobei der Mikroprozessor einen gültigen Nachrichtenauthentifizierungscode (MAC), der unter Verwendung von gültigen Daten erzeugt wurde, zusammen mit den gültigen Daten an das Peripheriegerät überträgt; eine Authentifizierungsnachricht in Ansprechen auf das Übertragen des gültigen MAC von dem Peripheriegerät empfängt; einen ungültigen MAC zusammen mit den gültigen Daten an das Peripheriegerät überträgt; und in Ansprechen auf das Übertragen des ungültigen MAC eine zweite Authentifizierungsnachricht von dem Peripheriegerät empfängt.
  7. System nach Anspruch 6, wobei der gültige MAC an dem Mikroprozessor gespeichert ist.
  8. System nach Anspruch 6, wobei die gültigen Daten an dem Mikroprozessor gespeichert sind.
  9. System nach Anspruch 6, wobei der Mikroprozessor ferner einen Mehrkernprozessor umfasst.
  10. System nach Anspruch 6, wobei der Mikrocontroller in einem Fahrzeug eingebaut ist.
DE102015105281.4A 2014-04-15 2015-04-08 Authentifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes Pending DE102015105281A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/253,454 2014-04-15
US14/253,454 US9438581B2 (en) 2014-04-15 2014-04-15 Authenticating data at a microcontroller using message authentication codes

Publications (1)

Publication Number Publication Date
DE102015105281A1 true DE102015105281A1 (de) 2015-10-15

Family

ID=54193365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015105281.4A Pending DE102015105281A1 (de) 2014-04-15 2015-04-08 Authentifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes

Country Status (3)

Country Link
US (1) US9438581B2 (de)
CN (1) CN105005539B (de)
DE (1) DE102015105281A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6126980B2 (ja) * 2013-12-12 2017-05-10 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム
US9825975B2 (en) * 2015-08-18 2017-11-21 The Boeing Company Aeronautical message monitor
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10802902B2 (en) * 2018-10-23 2020-10-13 GM Global Technology Operations LLC Notification of controller fault using message authentication code
US10812479B2 (en) 2018-12-05 2020-10-20 Fiserv, Inc. Authenticating a user via multiple biometric inputs
US11804962B2 (en) 2021-04-29 2023-10-31 GM Global Technology Operations LLC System and method for establishing an in-vehicle cryptographic manager
US20230297663A1 (en) * 2022-03-17 2023-09-21 GM Global Technology Operations LLC Soft part authentication for electronic control unit

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4531826A (en) * 1982-04-30 1985-07-30 Danyl Corporation Event counter and access controller
EP1495578B1 (de) * 2002-04-17 2019-03-06 Panasonic Intellectual Property Management Co., Ltd. System und vorrichtung zur ein/ausgabe von informationen und zur schlüsselverwaltung
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
CN102027767B (zh) * 2008-05-16 2015-05-13 日本电气株式会社 通信装置、通信方法以及通信控制程序
CN101699421B (zh) * 2009-10-28 2012-01-04 华为终端有限公司 串口共享的方法和服务端
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US8226340B1 (en) * 2011-08-24 2012-07-24 Radisys Corporation Framework for access control without barring location area code
DE102013203357B4 (de) * 2012-03-01 2022-01-20 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Verfahren zum herstellen einer kommunikation zwischen einrichtungen in einem fahrzeug

Also Published As

Publication number Publication date
US20150295910A1 (en) 2015-10-15
US9438581B2 (en) 2016-09-06
CN105005539A (zh) 2015-10-28
CN105005539B (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
DE102016101327B4 (de) Verfahren zum Reagieren auf einen nicht autorisierten elektronischen Zugriff auf ein Fahrzeug
DE102015103550A1 (de) Sichern von elektronischen steuereinheiten unter verwendung von nachrichtenauthentifizierungscodes
DE102015100606B4 (de) Verfahren zum verwalten von drahtlosen nahbereichsverbindungen zwischen einer primären drahtlosen einrichtung und mehreren sekundären drahtlosen einrichtungen
DE102009015055B4 (de) Fahrzeugverlangsamungssteuerung über eine drahtlose Nahbereichskommunikation
DE102013203357B4 (de) Verfahren zum herstellen einer kommunikation zwischen einrichtungen in einem fahrzeug
DE102012205128B4 (de) Verfahren zum Verwenden eines Smartphones als Telematikvorrichtungsschnittstelle
DE102015105281A1 (de) Authentifizieren von Daten an einem Mikrocontroller unter Verwendung von Nachrichtenauthentifizierungscodes
DE102018100153B4 (de) Verfahren und system zur fernbetätigten änderung von informationen für eine geräteaktivierungsübertragung
DE102016103032B4 (de) Kommunikationsindentifikation zwischen tragbaren elektronischen Einrichtungen und einem Kraftfahrzeug
DE102015101044B4 (de) Fahrzeugtelematik-Suchratensteuerung
DE102014118306A1 (de) Verarbeitung sicherer SMS-Nachrichten
DE102017123399A1 (de) Das feststellen, ob eine fahrzeugsystemaktualisierung in einem fahrzeug installiert werden soll
DE102015116445A1 (de) Verteilen geheimer Schlüssel zum Verwalten eines Zugriffs auf ECUs
DE102009015053A1 (de) System und Verfahren zum Übermitteln von Fahrzeugdiagnosedaten
DE102015102826B4 (de) Passwortverschlüsselung zum steuern von zugriff auf elektronische steuereinheiten
DE102016103725A1 (de) Aufrechterhalten einer Spiegelsitzung zwischen einem Fahrzeug und einer mobilen Einrichtung
DE102012222435B4 (de) Verfahren zum Übertragen und Authentifizieren von SMS-Nachrichten, die zwischen einem Fahrzeug und einer zentralen Einrichtung gesendet werden
DE102018123488A1 (de) Strahlenbündelung basierend auf lokalisierungsmodulinformationen
DE102017109091A1 (de) Dynamische statusaktualisierungsaufforderung
DE102015104581B4 (de) Verfahren zum Senden einer oder mehrerer sicherer Kurznachrichtendienstnachrichten
DE102019111576A1 (de) System und verfahren zur übertragung von in der warteschlange befindlichen over-the-air-software-updates
DE102017200020A1 (de) Steuern der auswahl der wlan-subskription eines aicc mit multiplen mobilgeräteprofilen
DE102018111813A1 (de) Aktualisieren der fahrzeuguhr
DE102015106319B4 (de) Verfahren zum Betreiben einer Fahrzeug-Multitainment-Einheit zur Aktualisierung mit Inhalt von einer mobilen Einrichtung
DE102014118085A1 (de) Auslösen von Anrufen zu einer PSAP aus der Ferne

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication