DE102019117229A1 - Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht - Google Patents

Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht Download PDF

Info

Publication number
DE102019117229A1
DE102019117229A1 DE102019117229.2A DE102019117229A DE102019117229A1 DE 102019117229 A1 DE102019117229 A1 DE 102019117229A1 DE 102019117229 A DE102019117229 A DE 102019117229A DE 102019117229 A1 DE102019117229 A1 DE 102019117229A1
Authority
DE
Germany
Prior art keywords
register
processor
message
communication device
authentication code
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
DE102019117229.2A
Other languages
English (en)
Inventor
Andreas Graefe
Laurent HEIDT
Albrecht Mayer
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102019117229.2A priority Critical patent/DE102019117229A1/de
Priority to JP2020109370A priority patent/JP6997260B2/ja
Priority to US16/913,043 priority patent/US11424932B2/en
Publication of DE102019117229A1 publication Critical patent/DE102019117229A1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Small-Scale Networks (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen wird eine Kommunikationsvorrichtung beschrieben, die einen Empfänger, der konfiguriert ist, eine Nachricht, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält, zu empfangen, ein erstes Register zum Speichern eines empfangenen Nachrichtenauthentifizierungscodes und ein zweites Register zum Speichern eines berechneten Nachrichtenauthentifizierungscodes, einen ersten Prozessor, der konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren und den Nachrichtenauthentifizierungscode in dem ersten Register zu speichern, einen zweiten Prozessor, der konfiguriert ist, einen Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten zu berechnen und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register zu speichern, eine Vergleichsschaltung, die konfiguriert ist, die Inhalte des ersten Registers und des zweiten Registers zu vergleichen und ein Vergleichsergebnis bereitzustellen, und eine Zugangssteuerungsschaltungsanordung, die konfiguriert ist, den Zugriff durch den zweiten Prozessor auf das erste Register zu verhindern und den Zugriff durch den ersten Prozessor auf das erste Register zu ermöglichen und den Zugriff durch den ersten Prozessor auf das zweite Register zu verhindern und den Zugriff durch den zweiten Prozessor auf das zweite Register zu ermöglichen, umfasst.

Description

  • Die vorliegende Offenbarung bezieht sich auf Kommunikationsvorrichtungen und -verfahren zum Authentifizieren einer Nachricht.
  • In vielen Anwendungen sind Nachrichten, die zwischen Kommunikationsvorrichtungen über eine Kommunikationsverbindung, z. B. ein Kommunikationsnetz wie z. B. ein (Computer-) Busnetz ausgetauscht werden, geschützt, so dass ein Empfänger einer solchen Nachricht überprüfen kann, ob sie authentisch ist, z. B. ob sie von dem behaupteten Sender kam. Das ist insbesondere in sicherheitskritischen [engl.: safety-critical] und sicherheitskritischen [engl.: security-critical] Anwendungen wichtig, wie z. B. in einem Fahrzeug, in dem Slave-Module eines Fahrzeugbussystems für spezielle Steueraufgaben (z. B. Steuerung der Kraftmaschine oder Steuerung der Bremse) vorgesehen sind. Eine Art, eine Nachricht zu schützen, sind Authentifizierungscodes wie z. B. der MAC (Nachrichtenauthentifizierungscode, „Message Authentication Code“).
  • In einer auf dem MAC basierenden Herangehensweise vergleicht ein Empfänger typischerweise einen empfangenen MAC mit einem berechneten MAC, den er selbst berechnet hat. Die Berechnung des berechneten MAC basiert auf einem kryptographischen Schlüssel, der gegen Angriffe geschützt sein muss. Das bedeutet, dass die MAC-Berechnung typischerweise auf gesicherte [engl.: secure] Weise ausgeführt werden sollte. Andererseits sollte der MAC-Vergleich, d. h. der Vergleich des berechneten MAC mit dem empfangenen MAC, typischerweise auf eine sichere [engl.: safe] Weise ausgeführt werden, d. h. Nachrichten sollten nicht fälschlicherweise akzeptiert oder verworfen werden.
  • Um zu vermeiden, dass das Erfüllen der Sicherungs- und Sicherheitsanforderungen zu einem übermäßigen Verbrauch von Fläche und Energie führen, sind effiziente Herangehensweisen für auf Nachrichtenauthentifizierungscode basierende Authentifizierungsschemas wünschenswert.
  • Gemäß verschiedenen Ausführungsformen wird eine Kommunikationsvorrichtung bereitgestellt, die einen Empfänger, der konfiguriert ist, eine Nachricht, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält, zu empfangen, ein erstes Register zum Speichern eines empfangenen Nachrichtenauthentifizierungscodes, ein zweites Register zum Speichern eines berechneten Nachrichtenauthentifizierungscodes, einen ersten Prozessor, der konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren und den Nachrichtenauthentifizierungscode in dem ersten Register zu speichern, und einen zweiten Prozessor, der konfiguriert ist, einen Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten (und beispielsweise einem geheimen Schlüssel) zu berechnen und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register zu speichern, eine Vergleichsschaltung, die konfiguriert ist, die Inhalte des ersten Registers und des zweiten Registers zu vergleichen und ein Vergleichsergebnis bereitzustellen, und eine Zugangssteuerungsschaltungsanordung, die konfiguriert ist, den Zugriff durch den zweiten Prozessor auf das erste Register zu verhindern und den Zugriff durch den ersten Prozessor auf das erste Register zu ermöglichen und den Zugriff durch den ersten Prozessor auf das zweite Register zu verhindern und den Zugriff durch den zweiten Prozessor auf das zweite Register zu ermöglichen, enthält.
  • Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Authentifizieren einer Nachricht gemäß den vorstehenden Kommunikationsvorrichtungen bereitgestellt.
  • In den Zeichnungen beziehen sich gleiche Bezugszeichen durchgehend in allen unterschiedlichen Ansichten allgemein auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgerecht, vielmehr liegt der Schwerpunkt auf der Darstellung der Prinzipien der Erfindung im Allgemeinen. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben; es zeigen:
    • 1 ein Kommunikationsnetz für ein Fahrzeug;
    • 2 ein Ablaufdiagramm, das eine durch einen Empfänger ausgeführte Nachrichtenauthentifizierung darstellt;
    • 3 Komponenten eines Empfängers gemäß einer Ausführungsform;
    • 4 ein Beispiel eines Hardware-MAC-Komparators gemäß einer Ausführungsform;
    • 5 ein Beispiel eines Hardware-MAC-Komparators gemäß einer weiteren Ausführungsform;
    • 6 eine Kommunikationsvorrichtung gemäß einer Ausführungsform; und
    • 7 ein Ablaufdiagramm, das ein Verfahren zum Authentifizieren einer Nachricht gemäß einer Ausführungsform darstellt.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die durch Darstellung spezifische Einzelheiten und Aspekte dieser Offenbarung, in denen die Erfindung in die Praxis umgesetzt werden kann, zeigen. Andere Aspekte können genutzt werden, und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne von dem Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung sind nicht notwendigerweise gegenseitig ausschließend, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert sein können, um neue Aspekte zu bilden.
  • In modernen Fahrzeugen können verschiedene Bussysteme zum Kommunizieren von Informationen zwischen verschiedenen Komponenten verwendet werden. Beispiele sind das CAN („Controller Area Network“), Flexray und das LIN („Local Interconnect Network“), das auch als LIN-Bus bezeichnet ist. Ein typisches Gebiet für die Anwendung eines solchen Bussystems ist das Vernetzen einer Fahrzeugtür, eines Sitzes, Klimatisierungsklappen oder der verschiedenen Lichtquellen eines Innenbeleuchtungssystems.
  • 1 zeigt ein Kommunikationsnetz 100 für ein Fahrzeug.
  • Das Kommunikationsnetz 100 ist durch einen Bus-Master gebildet, der in diesem Beispiel durch eine zentrale Steuereinheit 101 gebildet ist. Als eine zentrale Steuereinheit in einem Fahrzeug und ein oder mehrerer Slave(s), in diesem Beispiel, mehrere Knoten 102. Die zentrale Steuereinheit 101 und die Knoten 102 sind über einen Bus 103 in Reihe verbunden.
  • Die zentrale Steuereinheit 101 besitzt (als ein Bus-Master) Informationen zum Planen der Übertragung zwischen der zentralen Steuereinheit 101 und den Knoten (Slaves) 102. Ein Knoten 102 sendet Daten, sobald er durch die zentrale Steuereinheit 101 dazu aufgefordert wird. Zu diesem Zweck sendet die zentrale Steuereinheit 101 einen Nachrichtenkopf, der mit einer spezifischen Adresse identifiziert wird. In Reaktion darauf stellt der Knoten 102 die zu sendenden Daten für den Bus 103 bereit. Jeder Knoten besitzt eine eindeutige Adresse, über die er durch die zentrale Steuereinheit 101 gesteuert werden kann.
  • Es wird darauf hingewiesen, dass Ausführungsformen der Erfindung nicht auf den vorstehenden Fall einer strengen Master-Slave-Kommunikation, die nur dafür vorgesehen ist, als mögliche Ausführungsform zu dienen, beschränkt sind. Ausführungsformen sind auf irgendwelche Typen der Kommunikation mit Nachrichten anwendbar.
  • Die Module (d. h. die zentrale Steuereinheit 101 und die Knoten 102) weisen jeweils einen Sender/Empfänger auf, der die Daten, die gesendet werden sollen (z. B. von einer Mikrosteuereinheit des Moduls) in 12V-Signale umsetzt, die dann über den Bus 103 gesendet werden, um zu einem weiteren Modul übertragen zu werden. In dem Fall einer Anwendung in einer Tür oder einem Sitz eines Fahrzeugs können diese verschiedene Knoten (Slaves) 102 sein, die über den Bus kommunizieren.
  • In dem Fall einer Klimatisierung oder (Innenraum-) Beleuchtung sind die Slaves 102 normalerweise gleich. Beispielsweise kann das Kommunikationsnetz 100 mehrere gleiche Slaves 102 enthalten, die jeweils eine Klimaklappe steuern und jeweils ihre/n eigene/n (Mikro-) Steuereinheit, Stromversorgung und LIN-Sender/Empfänger aufweisen. Beispielsweise enthält in dem Fall der Innenbeleuchtung das Kommunikationsnetz 100 mehrere gleiche Slaves 102, wobei jeder Slave 102 eine gedruckte Schaltung aufweist, die eine LED, eine Stromversorgung, eine Mikrosteuereinheit und einen LIN-Sender/Empfänger enthält. In beiden Anwendungen, Klimatisierung und Beleuchtung, kann eine Vielzahl solcher gleicher Module verwendet werden, beispielsweise mehr als 30.
  • In einem Kommunikationsnetz, wie es in 1 gezeigt ist, ist typischerweise vorgesehen, dass die beteiligten Module die Authentizität eingehender Nachrichten überprüfen. Das ist besonders wichtig, falls ein Modul sicherheitsbezogene Aufgaben hat, z. B. die Steuerung der Bremse des Fahrzeugs.
  • 2 zeigt ein Ablaufdiagramm 200, das eine durch einen Empfänger ausgeführte Nachrichtenauthentifizierung darstellt.
  • Der Empfänger kann einer Komponente eines Fahrzeugs entsprechen, die eine Nachricht von einer weiteren Komponente des Fahrzeugs empfängt, z. B. zu dem Master 101 oder zu einem der Slaves 102.
  • Die Nachricht enthält Daten 201 und einen MAC 202, der durch den Sender der Nachricht basierend auf einem Algorithmus zum Berechnen eines MAC berechnet wurde, z. B. einen HMAC (Keyed-Hash Message Authentication Code).
  • Basierend auf demselben MAC-Algorithmus berechnet der Empfänger in 203 einen MAC basierend auf den empfangenen Daten 201 und einem kryptographischen Schlüssel 204 und vergleicht, in 205, den berechneten MAC mit dem empfangenen MAC 202. Falls der berechnete MAC mit dem empfangenen MAC übereinstimmt, betrachtet der Empfänger die Nachricht als erfolgreich authentifiziert und verarbeitet die Nachricht weiter (führt z. B. Operationen gemäß den Daten 201 aus). Falls der berechnete MAC nicht mit dem empfangenen übereinstimmt, ist die Authentifizierung fehlgeschlagen, und der Empfänger verwirft beispielsweise die Nachricht.
  • Somit berechnet der Empfänger, um die Integrität und Authentizität einer empfangenen Nachricht zu überprüfen, den Nachrichtenauthentifizierungscode (MAC) aus den empfangenen Daten 201 (und optional zusätzlichen Daten, z. B. Frischewerten, Zeitstempeln usw.) und vergleicht dann den berechneten MAC mit dem empfangenen MAC 202, der zusammen mit der Nachricht gesendet wurde. In Automobilanwendungen muss dieser MAC-Vergleich harte Sicherheitsanforderungen erfüllen, um zu verhindern, dass eine nicht authentische Nachricht fälschlicherweise als authentisch bezeichnet wird.
  • Aus Sicherungsgründen (z. B. gesicherte Handhabung von Schlüsseln) wird der MAC typischerweise auf der Empfängerseite durch eine CPU (Zentraleinheit, allgemein ein Prozessor) innerhalb einer gesicherten Domäne wie z. B. eines HSM (Hardware-Sicherungsmodul, „Hardware Security Module“) berechnet. Aufgrund von Einschränkungen für die Fläche und den Energieverbrauch kann eine solche CPU eine CPU sein, die nicht sicher ist. In diesem Fall kann der MAC-Vergleich durch Software unter Verwendung dieser gesicherten CPU nicht sicher ausgeführt werden. Andererseits ist es, um zu vermeiden, dass Schad-Software des/der ungesicherten CPU(s) Nachrichten fälschen könnte, typischerweise nicht erlaubt, dass sowohl der Schlüssel, der zum Berechnen des MAC verwendet wird, als auch der berechnete MAC selbst die gesicherte Domäne verlassen. Somit ist es normalerweise nicht wünschenswert, dass die MAC-Berechnung und der MAC-Vergleich durch eine sichere CPU, die nicht gesichert ist, ausgeführt werden.
  • Gemäß verschiedenen Ausführungsformen wird, um zu eine gesicherte MAC-Berechnung und einen sicheren MAC-Vergleich ohne übermäßigen Flächen- und Energieverbrauch zu ermöglichen, ein Hardware-Modul eingeführt, das den Vergleich von zwei MAC-Werten auf sichere Weise ausführt und das mit mehreren Prozessoren (z. B. CPUs in einer elektronischen Steuereinheit (ECU) eines Fahrzeugs), die eine sichere CPU und eine gesicherte CPU enthalten können und die auf das Hardware-Modul zugreifen können, verbunden ist (z. B. über einen Bus).
  • 3 zeigt Komponenten eines Empfängers 300 gemäß einer Ausführungsform.
  • Der Empfänger 300 enthält eine sichere (jedoch nicht gesicherte) CPU 301 und eine gesicherte (jedoch nicht sichere) CPU 302, die mit einem Computer-Bus 304 verbunden sind. Es wird darauf hingewiesen, dass mehrere sichere (jedoch nicht gesicherte) CPUs 301 und möglicherweise auch mehrere gesicherte (jedoch nicht sichere) CPUs 302 vorhanden sein können. Wenn im Folgenden auf eine einzige CPU Bezug genommen ist, kann das auch für mehrere CPUs gelten.
  • Die CPU 301 kann als sichere CPU durch Ausführen ihrer Operationen auf redundante Weise implementiert oder betrieben werden. Beispielsweise kann sie einen Lockstep-Mechanismus implementieren, der zwei Verarbeitungskerne enthält, die einander hinsichtlich der Hardware und des ausgeführten Codes gleich sind und die in einer Lockstep-Konfiguration angeordnet sind.
  • Die CPUs 301, 302 können Software (d. h. Programmcode) ausführen und Operationen gemäß der ausgeführten Software ausführen. Beispielsweise kümmert sich die sichere CPU 301 um Kommunikationsaufgaben, z. B. gemäß dem CAN-Bus oder Ethernet-Kommunikation, insbesondere den Empfang von Nachrichten, Extraktion von Nachrichtendaten und MACs aus den empfangenen Nachrichten und, falls eine empfangene Nachricht erfolgreich authentifiziert ist, weitere Verarbeitung der empfangenen Nachricht (z. B. Ausführen von Steueroperationen in einem Fahrzeug gemäß der empfangenen Nachricht). Die gesicherte CPU 302 kann beispielsweise den MAC für eine empfangene Nachricht berechnen, d. h. den MAC, der mit dem empfangenen MAC, der in der empfangenen Nachricht enthalten ist, zum Authentifizieren der Nachricht verglichen werden soll.
  • Die sichere CPU 301 kann konfiguriert sein, aus einer Nachricht extrahierte Daten zu der sicheren CPU 302 weiterzuleiten, um zu ermöglichen, dass sie den MAC berechnet. Die sichere CPU 301 kann ferner die aktuelle MAC-Größe, d. h. die Länge des MAC, der verglichen werden soll, zu der gesicherten CPU 302 senden.
  • Ferner enthält der Empfänger 300 einen Hardware-Komparator 303, der ebenfalls mit dem Computer-Bus 304 verbunden ist und auf den die CPUs 301, 302 zugreifen können.
  • 4 zeigt ein Beispiel eines Hardware-MAC-Komparators 400 gemäß einer Ausführungsform.
  • Der MAC-Komparator 400 besteht aus einer gesicherten Domäne 401 und einer sicheren Domäne 402, die jeweils spezielle für Software zugängliche Register beinhalten: ein erstes Register 403, ein zweites Register 404, ein drittes Register 405 und ein viertes Register 406.
  • Der Zugriff auf diese Register 403-406 wird durch ein Zugriffsrechtemanagement gesteuert, das durch Zugriffsrechtemanagementschaltungen 407, 408 implementiert ist. Das Zugriffsrechtemanagement stellt sicher, dass nur die gesicherte CPU 302 auf die Register 405, 406 in der gesicherten Domäne 402 zugreifen kann, während die sichere jedoch nicht gesicherte CPU 301 auf die Register 403, 404 in der nicht gesicherten (jedoch sicheren) Domäne 401 zugreifen kann.
  • Die gesicherte Domäne 402 beinhaltet das dritte Register 405, in dem der berechnete MAC-Wert gespeichert ist. Weil die Größe des empfangenen MAC-Werts für unterschiedliche Nachrichten variieren kann, ist die Größe des MAC ebenfalls in der gesicherten Domäne 402 gespeichert, und zwar in dem sechsten Register 406. Das sechste Register 406 befindet sich innerhalb der gesicherten Domäne 402, um zu verhindern, dass Schadcode, der auf der sicheren jedoch nicht gesicherten CPU 301 ausgeführt wird, die Authentifizierungsprüfung durch Reduzieren der MAC-Größe schwächt.
  • Die sichere Domäne 401 beinhaltet das zweite Register 404 zum Speichern des empfangenen MAC einer empfangenen Nachricht und das erste Register 403, in dem das Vergleichsergebnis des Vergleichs zwischen einem berechneten MAC (gespeichert in dem dritten Register 405) und einem empfangenen MAC (gespeichert in dem zweiten Register 404) durch eine Vergleichsschaltung 409. Das erste Register 403, d. h. das Vergleichsergebnisregister, zeigt ein „Fehlschlag“-Vergleichsergebnis, wenn es zurückgesetzt oder gelöscht wird.
  • Gemäß einer Ausführungsform ist die Vergleichsschaltung 409 als eine Hardware-Schaltung implementiert, die beispielsweise ein bitweises XOR des empfangenen MAC-Werts und des berechneten MAC-Werts (durch mehrere XOR-Gatter) ausführen kann, gefolgt von einem OR-Baum (d. h. einem Baum aus OR-Gattern), durch den bestimmt wird, ob irgendeines der XOR-Ergebnisse 1 ist (was einen Fehlschlag des Vergleichs (und der Authentifizierung) angibt) oder alle null sind (was ein Bestehen des Vergleichs (und der Authentifizierung) angibt).
  • Die Vergleichsschaltung 409 kann die aktuelle MAC-Größe berücksichtigen. Beispielsweise kann die Vergleichsschaltung 409 die verglichenen Bits des empfangenen MAC-Werts und des berechneten MAC-Werts 405 auf eine Anzahl von Bits begrenzen, die durch die aktuelle MAC-Größe gegeben ist, durch filternde XOR-Gatter, z. B. durch Maskieren des Ergebnisses von XOR-Gattern, die dem OR-Baum zugeführt werden, die nicht den Bits entsprechen, die verglichen werden sollen. Das Maskieren eines Ergebnisses kann durch eine einfache Schaltung (z. B. ein Gatter) ausgeführt werden, abhängig davon, wie die aktuelle MAC-Größe repräsentiert ist.
  • Der Hardware-Komparator 400 kann auf sichere Weise implementiert sein. Beispielsweise kann er mehrere Vergleichsschaltungen (von denen z. B. jede XORs, einen OR-Baum und Maskierungsschaltungen enthält, wie vorstehend beschrieben) beinhalten, und es ist eine Schaltung vorhanden, die konfiguriert ist, die Ergebnisse aller Vergleichsschaltungen zu vergleichen und ein Fehlersignal auszugeben, falls die Ergebnisse nicht übereinstimmen. Eine weitere Möglichkeit ist, z. B. im Fall von drei oder mehr Vergleichsschaltungen, dass eine Hardware-Schaltung bereitgestellt ist, die konfiguriert ist, das in 403 gespeicherte Vergleichsergebnis durch eine Mehrheitsentscheidung der Vergleichsergebnisse zu bestimmen, z. B. durch Auswählen des Ergebnisses, das durch die meisten der Vergleichsschaltungen angegeben ist.
  • Somit werden beide MAC-Werte (berechnet und empfangen) in den Hardware-Komparator 400 zusammen mit der Größe der MACs (des vierten Registers 406) eingegeben. Das Ergebnis (Übereinstimmung/keine Übereinstimmung, d. h. Erfolg/Fehlschlag) wird in das Komparatorergebnisregister 403 übertragen. Außerdem kann die Größe des Vergleichs in dem Ergebnisregister 403 gespeichert werden (wie durch die Linie 410 angegeben ist). Auf diese Weise kann die sichere CPU 301 durch Auslesen des Ergebnisregisters 403 beispielsweise validieren, dass der Größenwert nicht durch einen Fehler in der (nicht sicheren) gesicherten CPU 302 gestört wurde.
  • 5 zeigt ein Beispiel eines Hardware-MAC-Komparators 500 gemäß einer weiteren Ausführungsform.
  • Ähnlich dem MAC-Komparator 400 von 4 besteht der MAC-Komparator 500 aus einer gesicherten Domäne 502 und einer sicheren Domäne 501, von denen jede für Software zugängliche Register beinhaltet, nämlich ein erstes Register 503, ein zweites Register 504, ein drittes Register 505 und ein viertes Register 506, wobei der Zugriff auf diese durch Zugriffsrechtemanagementschaltungen 507, 508 gesteuert wird. Ferner enthält der MAC-Komparator 500, wie der MAC-Komparator 400, eine Vergleichsschaltung 509, die z. B. durch mehrere XOR-Gatter, die mit einem OR-Baum gekoppelt sind, implementiert ist, wie im Kontext von 4 beschrieben ist.
  • Im Gegensatz zu dem MAC-Komparator 500 befindet sich in dem MAC-Komparator 500 das vierte Register 506 in der sicheren Domäne 501 anstatt in der gesicherten Domäne 502 (d. h. die aktuelle MAC-Größe ist durch die sichere Domäne des Gesamtsystems (d. h. des Empfängers 300) definiert, z. B. durch die erste CPU 301). Ferner enthält die gesicherte Domäne 502 ein fünftes Register 510, das eine kleinste MAC-Größe speichert. Die zweite Zugriffsrechtemanagementschaltung 508 schränkt den Zugriff auf das fünfte Register 510 auf die gesicherte CPU 302 ein (d. h. die gesicherte Domäne des Gesamtsystems definiert eine kleinste Größe für den aktuellen MAC-Vergleich).
  • Der MAC-Komparator 500 enthält eine Größenvergleichsschaltung 511 in der sicheren Domäne 501, die konfiguriert ist, die aktuelle MAC-Größe (die in dem vierten Register 506 gespeichert ist) mit der kleinsten MAC-Größe (die in den fünften Register 511 gespeichert ist) zu vergleichen und, abhängig von dem Ergebnis des Größenvergleichs der aktuellen MAC-Größe mit der kleinsten MAC-Größe, das MAC-Vergleichsergebnis, das durch die MAC-Vergleichsschaltung 509 ausgegeben und in dem ersten Register 502 gespeichert wird, zu ändern.
  • Insbesondere stellt die Größenvergleichsschaltung 511 das MAC-Vergleichsergebnis auf Fehlschlag ein, falls die aktuelle MAC-Größe (konfiguriert durch die sichere Domäne) kleiner ist als die kleinste Größe (definiert durch die gesicherte Domäne). Somit kann vermieden werden, dass ein Angreifer den MAC-Komparator 500 mit kurzen MACs „füttert“ und nachfolgend gültige Teilworte eines längeren MAC ausspioniert.
  • Gemäß verschiedenen Ausführungsformen können, um höhere Sicherheitsanforderungen zu erfüllen, zusätzliche Mechanismen enthalten sein, beispielsweise das Rücksetzen des Komparatorergebnisregisters 403, 503 immer dann, wenn ein schreibender Zugriff auf das Register 404, 504 für empfangene MAC stattfindet.
  • Zusammengefasst ist gemäß verschiedenen Ausführungsformen eine Kommunikationsvorrichtung wie in 6 dargestellt bereitgestellt.
  • 6 zeigt eine Kommunikationsvorrichtung 600 gemäß einer Ausführungsform.
  • Die Kommunikationsvorrichtung 600 enthält einen Empfänger 601, der konfiguriert ist, eine Nachricht 602, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält, zu empfangen.
  • Die Kommunikationsvorrichtung 600 enthält ferner ein erstes Register 603 zum Speichern des empfangenen Nachrichtenauthentifizierungscodes und ein zweites Register 604 zum Speichern eines berechneten Nachrichtenauthentifizierungscodes.
  • Ferner enthält die Kommunikationsvorrichtung 600 einen ersten Prozessor 605, der konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren und den Nachrichtenauthentifizierungscode in dem ersten Register 603 zu speichern, und einen zweiten Prozessor 606, der konfiguriert ist, einen Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten (und beispielsweise einem geheimen Schlüssel) zu berechnen und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register 604 zu speichern.
  • Die Kommunikationsvorrichtung 600 enthält ferner eine Vergleichsschaltung 607, die konfiguriert ist, die Inhalte des ersten Registers 603 und des zweiten Registers 604 zu vergleichen und ein Vergleichsergebnis 608 bereitzustellen (z. B. für den ersten Prozessor, für eine weitere Komponente der Kommunikationsvorrichtung 600, z. B. einen weiteren Prozessor).
  • Zusätzlich enthält die Kommunikationsvorrichtung 600 eine Zugangssteuerungsschaltungsanordnung 609, die konfiguriert, den Zugriff durch den zweiten Prozessor 606 auf das erste Register 603 zu verhindern und den Zugriff durch den ersten Prozessor 605 auf das erste Register zu 603 zu ermöglichen und den Zugriff durch den ersten Prozessor 605 auf das zweite Register 604 zu verhindern und den Zugriff durch den zweiten Prozessor 606 auf das zweite Register 604 zu ermöglichen.
  • Gemäß verschiedenen Ausführungsformen ist, mit anderen Worten, eine Kommunikationsvorrichtung, z. B. ein Hardware-Komparator der Kommunikationsvorrichtung, der eine Vergleichsschaltung enthält, mit einem Register zum Speichern eines empfangenen Nachrichtenauthentifizierungscodes und einem Register zum Speichern eines berechneten Authentifizierungscodes die durch zwei unterschiedliche Prozessoren bereitgestellt sind, ausgestattet. Die Vergleichsschaltung vergleicht die Inhalte der Register und stellt basierend auf dem Vergleich ein Vergleichsergebnis bereit. Beispielsweise ist das Vergleichsergebnis negativ, falls Inhalte des ersten Registers und des zweiten Registers nicht übereinstimmen, und ist positiv, falls die Inhalte des ersten Registers und des zweiten Registers übereinstimmen.
  • Das erste Register und der erste Prozessor können so betrachtet werden, dass sie zu einer sicheren Domäne der Kommunikationsvorrichtung gehören, und das zweite Register und der zweite Prozessor können so betrachtet werden, dass sie zu einer gesicherten Domäne der Kommunikationsvorrichtung gehören. Insbesondere kann der erste Prozessor ein sicherer Prozessor sein, der z. B. mit Sicherheitsmechanismen wie z. B. redundanter Berechnung oder Ausführung von Software ausgestattet ist, und der zweite Prozessor kann ein gesicherter Prozessor sein. Beispielsweise kann der zweite Prozessor nur Software ausführen, die in einem gesicherten Speicher gespeichert ist, d. h. er kann nicht für Software zugänglich sein, die nicht Teil der gesicherten Domäne ist. Somit ist zu sehen, dass die Herangehensweise von 5 eine Kombination aus einer sicheren Domäne und einer gesicherten Domäne (insbesondere in dem Hardware-Komparator) beinhaltet, was eine sichere Nachrichtenauthentifizierung ermöglicht, ohne vertrauliche Informationen wie einen Schlüssel (den der zweite Prozessor zur Berechnung des Nachrichtenauthentifizierungscodes verwendet) oder den berechneten Nachrichtenauthentifizierungscode zu offenbaren. Auf die sichere Domäne (wie z. B. das erste Register) kann durch den ersten Prozessor, jedoch nicht den zweiten Prozessor zugegriffen werden (um die Sicherheit zu schützen), und auf die gesicherte Domäne (wie z. B. das zweite Register) kann durch den zweiten Prozessor jedoch nicht den ersten Prozessor zugegriffen werden (um die Sicherung zu schützen). Im Allgemeinen darf auf die sichere Domäne nicht durch den gesicherten Prozessor zugegriffen werden (um die Sicherheit zu schützen), und auf die gesicherte Domäne darf nicht durch den sicheren Prozessor zugegriffen werden (um die Sicherung zu schützen). Der MAC-Vergleich wird auf sichere Weise (z. B. unter Verwendung einiger Redundanzmechanismen) ausgeführt.
  • Das ermöglicht das Verwenden irgendeines gewünschten Krypto-Algorithmus durch sein Ausführen auf dem zweiten (gesicherten) Prozessor, während immer noch ein effizienter und sicherer Vergleich vorhanden ist. Das ermöglicht insbesondere eine zukunftssichere Architektur (Krypto-Agility).
  • Gemäß verschiedenen Ausführungsformen wird der berechnete Nachrichtenauthentifizierungscode in der gesicherten Domäne gespeichert, um zu verhindern, dass eine Schad-Software auf dem sicheren Prozessor Nachrichten fälscht. Beispielsweise falls der sichere Prozessor Zugriff zu einem Register hätte, das den berechneten Nachrichtenauthentifizierungscode speichert, könnte irgendeine Schad-Software auf diesem Prozessor eine falsche/schädliche Nachricht erzeugen und sie zu der gesicherten Domäne zur Verifizierung senden. Dann könnte sie den MAC-Wert, der durch den gesicherten Prozessor berechnet wurde, laden und die Nachricht zu anderen Empfängern aussenden und somit aufgrund des falschen/schädlichen Inhalts der Nachricht potentiellen Schaden verursachen. Da der MAC-Wert durch den gesicherten Prozessor unter Verwendung des geheimen Schlüssels berechnet wurde, passt der MAC-Wert zu der gefälschten Nachricht. Deshalb ist ein Empfänger der gefälschten Nachricht nicht imstande, ihre Unrichtigkeit zu detektieren.
  • Die Prozessoren können separate Hardware-Vorrichtungen sein, z. B. durch unterschiedliche Chips implementiert, und können beispielsweise durch einen Computer-Bus verbunden sein. Die Prozessoren können jedoch auch auf demselben Chip implementiert sein und nichtsdestotrotz separate Verarbeitungsvorrichtungen sein, z. B. mit separaten jeweiligen Registern (die nur für einen jedoch nicht den anderen Prozessor zugänglich sind), separaten ALUs (Arithmetiklogikeinheiten), separaten Anweisungs-Caches usw. Der Code für die beiden Prozessoren kann in separaten Speicherbereichen gespeichert sein.
  • Der zweite Prozessor kann die Nachrichtendaten von dem ersten Prozessor oder direkt von dem Empfänger empfangen.
  • Es wird darauf hingewiesen, dass dann, wenn auf einen empfangenen Nachrichtenauthentifizierungscode oder einen berechneten Nachrichtenauthentifizierungscode Bezug genommen ist, das als ein empfangenes/r Nachrichtenauthentifizierungscodewort oder -wert (oder wenigstens als ein Codewort oder Wert, das/der als solches empfangen ist - möglicherweise ist das empfangene Wort kein gültiges Codewort) bzw. als ein berechnetes/r Nachrichtenauthentifizierungscodewort oder -wert zu verstehen ist.
  • Die Vergleichsschaltung kann mit dem ersten Register und dem zweiten Register direkt gekoppelt sein, um die Inhalte des ersten Registers und des zweiten Registers für den Vergleich direkt auszulesen. Beispielsweise kann die Vergleichsschaltung eine Signalleitung (oder mehrere Signalleitungen) zu jedem aus dem ersten Register und dem zweiten Register aufweisen. Direktes Koppeln und direktes Auslesen können beispielsweise so verstanden werden, dass die Verbindung zwischen dem ersten Register und dem zweiten Register und der Vergleichsschaltung (z. B. dem OR-Baum, wie vorstehend beschrieben) keine weiteren Register enthält.
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren wie in 7 dargestellt ausgeführt.
  • 7 zeigt ein Ablaufdiagramm 700, das ein Verfahren zum Authentifizieren einer Nachricht darstellt, z. B. durch eine empfangende Kommunikationsvorrichtung ausgeführt.
  • In 701 wird eine Nachricht, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält, empfangen.
  • In 702 wird der Nachrichtenauthentifizierungscode aus der Nachricht mit Hilfe eines ersten Prozessors extrahiert, und der Nachrichtenauthentifizierungscode wird in einem ersten Register eines Hardware-Komparators gespeichert.
  • In 703 wird ein Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten mit Hilfe eines zweiten Prozessors berechnet, und der berechnete Nachrichtenauthentifizierungscode wird in einem zweiten Register des Hardware-Komparators gespeichert.
  • In 704 werden die Inhalte des ersten Registers und des zweiten Registers verglichen, und ein Vergleichsergebnis wird mit Hilfe des Hardware-Komparators bereitgestellt.
  • Das Verfahren enthält ferner, dass der Zugriff durch den zweiten Prozessor auf das erste Register verhindert wird, der Zugriff durch den ersten Prozessor auf das erste Register ermöglicht wird, der Zugriff durch den ersten Prozessor auf das zweite Register verhindert wird und der Zugriff durch den zweiten Prozessor auf das zweite Register ermöglicht wird.
  • Verschiedene Beispiele sind im Folgenden beschrieben:
    • Beispiel 1 ist eine Kommunikationsvorrichtung, wie sie in 6 dargestellt ist.
    • Beispiel 2 ist die Kommunikationsvorrichtung von Beispiel 1, wobei der erste Prozessor konfiguriert ist, die Nachrichtendaten aus der Nachricht zu extrahieren und die Nachrichtendaten für den zweiten Prozessor bereitzustellen.
    • Beispiel 3 ist die Kommunikationsvorrichtung von Beispiel 1 oder 2, wobei der zweite Prozessor exklusiven Zugriff auf das zweite Register besitzt.
    • Beispiel 4 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 3, wobei der erste Prozessor exklusiven Zugriff auf das erste Register besitzt.
    • Beispiel 5 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 4, wobei der erste Prozessor konfiguriert ist, das Vergleichsergebnis zu verarbeiten.
    • Beispiel 6 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 5, wobei der erste Prozessor konfiguriert ist, die Nachricht als gültige Nachricht zu akzeptieren, falls das Vergleichsergebnis positiv ist.
    • Beispiel 7 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 6, die einen Hardware-Komparator enthält, der das erste Register, das zweite Register und die Vergleichsschaltung enthält.
    • Beispiel 8 ist die Kommunikationsvorrichtung von Beispiel 7, wobei der erste Prozessor und der zweite Prozessor mit dem Hardware-Komparator mit Hilfe eines Busses gekoppelt sind.
    • Beispiel 9 ist die Kommunikationsvorrichtung von Beispiel 7 oder 8, wobei der Hardware-Komparator ein Ergebnisregister enthält und konfiguriert ist, das Vergleichsergebnis in dem Ergebnisregister zu speichern.
    • Beispiel 10 ist die Kommunikationsvorrichtung eines der Beispiele 7 bis 9, wobei die Zugangssteuerungsschaltungsanordnung konfiguriert ist, den Zugriff durch den ersten Prozessor auf das Ergebnisregister zu ermöglichen.
    • Beispiel 11 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 10, wobei der erste Prozessor ein sicherer Prozessor ist.
    • Beispiel 12 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 11, wobei der erste Prozessor einen Redundanzmechanismus zum Sicherstellen der Sicherheit implementiert.
    • Beispiel 13 ist die Kommunikationsvorrichtung von Beispiel 12, wobei der Redundanzmechanismus ein Mechanismus ist, der nicht durch den zweiten Prozessor implementiert ist.
    • Beispiel 14 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 13, wobei der zweite Prozessor ein gesicherter Prozessor ist.
    • Beispiel 15 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 14, die ein Hardware-Sicherungsmodul enthält, das den zweiten Prozessor enthält.
    • Beispiel 16 ist die Kommunikationsvorrichtung von Beispiel 15, wobei der erste Prozessor außerhalb des Hardware-Sicherungsmoduls angeordnet ist.
    • Beispiel 17 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 16, die einen Zähler enthält, der konfiguriert ist, eine Anzahl von Vergleichen mit negativem Vergleichsergebnis zu zählen und ein Alarmsignal zu erzeugen, wenn die Anzahl einen vorbestimmten Wert übersteigt.
    • Beispiel 18 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 17, wobei die Vergleichsschaltung konfiguriert ist, nach dem Vergleichen der Inhalte des ersten Registers und des zweiten Registers auf eine Aktualisierung der Inhalte sowohl des ersten Registers als auch des zweiten Registers zu warten, bevor sie die Inhalte des ersten Registers und des zweiten Registers erneut vergleicht.
    • Beispiel 19 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 18, wobei der erste Prozessor konfiguriert ist, ein erstes Computerprogramm auszuführen, und konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren, den Nachrichtenauthentifizierungscode in dem ersten Speicherbereich zu speichern und das Vergleichsergebnis in Übereinstimmung mit dem ersten Computerprogramm zu verarbeiten.
    • Beispiel 20 ist die Kommunikationsvorrichtung eines der Beispiele 1 bis 19, wobei der zweite Prozessor konfiguriert ist, ein zweites Computerprogramm auszuführen, und konfiguriert ist, den Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten zu berechnen und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register in Übereinstimmung mit dem zweiten Computerprogramm zu speichern.
    • Beispiel 21 ist ein Verfahren zum Authentifizieren einer Nachricht, wie in 7 dargestellt ist.
    • Beispiel 22 ist das Verfahren von Beispiel 21, das enthält, dass der erste Prozessor die Nachrichtendaten aus der Nachricht extrahiert und die Nachrichtendaten für den zweiten Prozessor bereitstellt.
    • Beispiel 23 ist das Verfahren von Beispiel 21 oder 22, wobei der zweite Prozessor exklusiven Zugriff auf das zweite Register besitzt.
    • Beispiel 24 ist das Verfahren eines der Beispiele 21 bis 23, wobei der erste Prozessor exklusiven Zugriff auf das erste Register besitzt.
    • Beispiel 25 ist das Verfahren eines der Beispiele 21 bis 24, das enthält, dass der erste Prozessor das Vergleichsergebnis verarbeitet.
    • Beispiel 26 ist das Verfahren eines der Beispiele 21 bis 25, das enthält, dass der erste Prozessor die Nachricht als eine gültige Nachricht akzeptiert, falls das Vergleichsergebnis positiv ist.
    • Beispiel 27 ist das Verfahren eines der Beispiele 21 bis 26, das enthält, dass Hardware-Komparator, der das erste Register und das zweite Register enthält, den Vergleich ausführt.
    • Beispiel 28 ist das Verfahren von Beispiel 27, wobei der erste Prozessor und der zweite Prozessor mit dem Hardware-Komparator mit Hilfe eines Busses gekoppelt sind.
    • Beispiel 29 ist das Verfahren von Beispiel 27 oder 28, wobei der Hardware-Komparator ein Ergebnisregister enthält und das Vergleichsergebnis in dem Ergebnisregister speichert.
    • Beispiel 30 ist das Verfahren eines der Beispiele 27 bis 29, das das Ermöglichen des Zugriffs durch den ersten Prozessor auf das Ergebnisregister enthält.
    • Beispiel 31 ist das Verfahren eines der Beispiele 21 bis 30, wobei der erste Prozessor ein sicherer Prozessor ist.
    • Beispiel 32 ist das Verfahren eines der Beispiele 21 bis 31, wobei der erste Prozessor einen Redundanzmechanismus zum Sicherstellen der Sicherheit implementiert.
    • Beispiel 33 ist das Verfahren von Beispiel 32, wobei der Redundanzmechanismus ein Mechanismus ist, der nicht durch den zweiten Prozessor implementiert ist.
    • Beispiel 34 ist das Verfahren eines der Beispiele 21 bis 33, wobei der zweite Prozessor ein gesicherter Prozessor ist.
    • Beispiel 35 ist das Verfahren eines der Beispiele 21 bis 34, wobei der zweite Prozessor Teil eines Hardware-Sicherungsmoduls ist.
    • Beispiel 36 ist das Verfahren von Beispiel 35, wobei der erste Prozessor außerhalb des Hardware-Sicherungsmoduls angeordnet ist.
    • Beispiel 37 ist das Verfahren eines der Beispiele 21 bis 36, das das Zählen einer Anzahl von Vergleichen mit negativem Vergleichsergebnis und Erzeugen eines Alarmsignals, wenn die Anzahl einen vorbestimmten Wert übersteigt, enthält.
    • Beispiel 38 ist das Verfahren eines der Beispiele 21 bis 37, das nach dem Vergleichen der Inhalte des ersten Registers und des zweiten Registers Warten auf eine Aktualisierung der Inhalte sowohl des ersten Registers als auch des zweiten Registers vor dem erneuten Vergleichen der Inhalte des ersten Registers und des zweiten Registers enthält.
    • Beispiel 39 ist das Verfahren eines der Beispiele 21 bis 38, wobei der erste Prozessor ein erstes Computerprogramm ausführt und den Nachrichtenauthentifizierungscode aus der Nachricht extrahiert, den Nachrichtenauthentifizierungscode in dem ersten Speicherbereich speichert und das Vergleichsergebnis in Übereinstimmung mit dem ersten Computerprogramm verarbeitet.
    • Beispiel 40 ist das Verfahren eines der Beispiele 21 bis 39, wobei der zweite Prozessor ein zweites Computerprogramm ausführt und den Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten berechnet und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register in Übereinstimmung mit dem zweiten Computerprogramm speichert.
  • Obwohl spezifische Ausführungsformen hier dargestellt und beschrieben worden sind, ist durch normale Fachleute zu erkennen, dass die spezifischen gezeigten und beschriebenen Ausführungsformen durch eine Vielzahl alternativer und/oder äquivalenter Implementierungen ersetzt werden können, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Die Anwendung ist dafür vorgesehen, alle Anpassungen oder Variationen der hier diskutierten spezifischen Ausführungsformen abzudecken. Deshalb ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und deren Äquivalente eingeschränkt ist.
  • Bezugszeichenliste
  • 100
    Kommunikationsnetz
    101
    zentrale Steuereinheit
    102
    Knoten
    103
    Computerbus
    200
    Ablaufdiagramm
    201
    empfangene Daten
    202
    empfangener MAC
    203
    MAC-Berechnung
    204
    kryptographischer Schlüssel
    205
    MAC-Vergleich
    300
    Empfänger
    301
    sichere CPU
    302
    gesicherte CPU
    303
    Hardware-MAC-Komparator
    304
    Computerbus
    400
    Hardware-MAC-Komparator
    401
    sichere Domäne
    402
    gesicherte Domäne
    403-406
    Register
    407, 408
    Zugriffsrechtemanagementschaltungen
    409
    MAC-Vergleichsschaltung
    410
    Größe der MAC-Werte / Anzahl zu vergleichender Bits
    500
    Hardware-MAC-Komparator
    501
    sichere Domäne
    502
    gesicherte Domäne
    503-506
    Register
    507, 508
    Zugriffsrechtemanagementschaltungen
    509
    MAC-Vergleichsschaltung
    510
    Register
    511
    Größenvergleichsschaltung
    600
    Kommunikationsvorrichtung
    601
    Empfänger
    602
    Nachricht
    603,604
    Register
    605, 606
    Prozessoren
    607
    Vergleichsschaltung
    608
    Vergleichsergebnis
    609
    Zugangssteuerungsschaltungsanordnung
    700
    Ablaufdiagramm
    701-704
    Verarbeitungsoperationen

Claims (20)

  1. Kommunikationsvorrichtung, die Folgendes umfasst: einen Empfänger, der konfiguriert ist, eine Nachricht, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält, zu empfangen; ein erstes Register zum Speichern eines empfangenen Nachrichtena uthentifizierungscod es; ein zweites Register zum Speichern eines berechneten Nachrichtenauthentifizierungscodes; einen ersten Prozessor, der konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren und den Nachrichtenauthentifizierungscode in dem ersten Register zu speichern; einen zweiten Prozessor, der konfiguriert ist, einen Nachrichtenauthentifizierungscode basierend auf den Nachrichtendaten zu berechnen und den berechneten Nachrichtenauthentifizierungscode in dem zweiten Register zu speichern; eine Vergleichsschaltung, die konfiguriert ist, die Inhalte des ersten Registers und des zweiten Registers zu vergleichen und ein Vergleichsergebnis bereitzustellen; und eine Zugangssteuerungsschaltungsanordnung, die konfiguriert, den Zugriff durch den zweiten Prozessor auf das erste Register zu verhindern und den Zugriff durch den ersten Prozessor auf das erste Register zu ermöglichen und den Zugriff durch den ersten Prozessor auf das zweite Register zu verhindern und den Zugriff durch den zweiten Prozessor auf das zweite Register zu ermöglichen.
  2. Kommunikationsvorrichtung nach Anspruch 1, wobei der erste Prozessor konfiguriert ist, die Nachrichtendaten aus der Nachricht zu extrahieren und die Nachrichtendaten für den zweiten Prozessor bereitzustellen.
  3. Kommunikationsvorrichtung nach Anspruch 1 oder 2, wobei der zweite Prozessor exklusiven Zugriff auf das zweite Register besitzt.
  4. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 3, wobei der erste Prozessor exklusiven Zugriff auf das erste Register besitzt.
  5. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 4, wobei der erste Prozessor konfiguriert ist, das Vergleichsergebnis zu verarbeiten.
  6. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 5, wobei der erste Prozessor konfiguriert ist, die Nachricht als gültige Nachricht zu akzeptieren, falls das Vergleichsergebnis positiv ist.
  7. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 6, die einen Hardware-Komparator umfasst, der das erste Register, das zweite Register und die Vergleichsschaltung umfasst.
  8. Kommunikationsvorrichtung nach Anspruch 7, wobei der erste Prozessor und der zweite Prozessor mit dem Hardware-Komparator mit Hilfe eines Busses gekoppelt sind.
  9. Kommunikationsvorrichtung nach Anspruch 7 oder 8, wobei der Hardware-Komparator ein Ergebnisregister umfasst und konfiguriert ist, das Vergleichsergebnis in dem Ergebnisregister zu speichern.
  10. Kommunikationsvorrichtung nach einem der Ansprüche 7 bis 9, wobei die Zugangssteuerungsschaltungsanordnung konfiguriert ist, den Zugriff durch den ersten Prozessor auf das Ergebnisregister zu ermöglichen.
  11. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 10, wobei der erste Prozessor ein sicherer Prozessor ist.
  12. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 11, wobei der erste Prozessor einen Redundanzmechanismus zum Sicherstellen der Sicherheit implementiert.
  13. Kommunikationsvorrichtung nach Anspruch 12, wobei der Redundanzmechanismus ein Mechanismus ist, der nicht durch den zweiten Prozessor implementiert ist.
  14. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 13, wobei der zweite Prozessor ein gesicherter Prozessor ist.
  15. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 14, die ein Hardware-Sicherungsmodul umfasst, das den zweiten Prozessor umfasst.
  16. Kommunikationsvorrichtung nach Anspruch 15, wobei der erste Prozessor außerhalb des Hardware-Sicherungsmoduls angeordnet ist.
  17. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 16, die einen Zähler umfasst, der konfiguriert ist, eine Anzahl von Vergleichen mit negativem Vergleichsergebnis zu zählen und ein Alarmsignal zu erzeugen, wenn die Anzahl einen vorbestimmten Wert übersteigt.
  18. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 17, wobei die Vergleichsschaltung konfiguriert ist, nach dem Vergleichen der Inhalte des ersten Registers und des zweiten Registers auf eine Aktualisierung der Inhalte sowohl des ersten Registers als auch des zweiten Registers zu warten, bevor sie die Inhalte des ersten Registers und des zweiten Registers erneut vergleicht.
  19. Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 18, wobei der erste Prozessor konfiguriert ist, ein erstes Computerprogramm auszuführen, und konfiguriert ist, den Nachrichtenauthentifizierungscode aus der Nachricht zu extrahieren, den Nachrichtenauthentifizierungscode in dem ersten Speicherbereich zu speichern und das Vergleichsergebnis in Übereinstimmung mit dem ersten Computerprogramm zu verarbeiten.
  20. Verfahren zum Authentifizieren einer Nachricht, das Folgendes umfasst: Empfangen einer Nachricht, die Nachrichtendaten und einen Nachrichtenauthentifizierungscode enthält; Extrahieren des Nachrichtenauthentifizierungscodes aus der Nachricht mit Hilfe eines ersten Prozessors und Speichern des Nachrichtenauthentifizierungscodes in einem ersten Register; Berechnen eines Nachrichtenauthentifizierungscodes basierend auf den Nachrichtendaten mit Hilfe eines zweiten Prozessors und Speichern des berechneten Nachrichtenauthentifizierungscodes in einem zweiten Register; Vergleichen der Inhalte des ersten Registers und des zweiten Registers und Bereitstellen eines Vergleichsergebnisses; und Verhindern des Zugriffs durch den zweiten Prozessor auf das erste Register; und Ermöglichen des Zugriffs durch den ersten Prozessor auf das erste Register; Verhindern des Zugriffs durch den ersten Prozessor auf das zweite Register; und Ermöglichen des Zugriffs durch den zweiten Prozessor auf das zweite Register.
DE102019117229.2A 2019-06-26 2019-06-26 Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht Pending DE102019117229A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102019117229.2A DE102019117229A1 (de) 2019-06-26 2019-06-26 Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht
JP2020109370A JP6997260B2 (ja) 2019-06-26 2020-06-25 通信装置およびメッセージを認証するための方法
US16/913,043 US11424932B2 (en) 2019-06-26 2020-06-26 Communication device and method for authenticating a message

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019117229.2A DE102019117229A1 (de) 2019-06-26 2019-06-26 Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht

Publications (1)

Publication Number Publication Date
DE102019117229A1 true DE102019117229A1 (de) 2020-12-31

Family

ID=73747634

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019117229.2A Pending DE102019117229A1 (de) 2019-06-26 2019-06-26 Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht

Country Status (3)

Country Link
US (1) US11424932B2 (de)
JP (1) JP6997260B2 (de)
DE (1) DE102019117229A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230289301A1 (en) * 2019-11-07 2023-09-14 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11343097B2 (en) * 2020-06-02 2022-05-24 Bank Of America Corporation Dynamic segmentation of network traffic by use of pre-shared keys

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080376A1 (en) * 2014-09-11 2016-03-17 Infineon Technologies Ag Method and device for checking an identifier
DE102015115295A1 (de) * 2014-09-11 2016-03-17 Infineon Technologies Ag Verfahren und vorrichtung zur verarbeitung von daten
US20170310684A1 (en) * 2016-04-20 2017-10-26 Robert Bosch Gmbh Method and device for avoiding manipulation of a data transmission

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208633B2 (en) * 2008-11-24 2012-06-26 Pitney Bowes Inc. Method and system for securing communications in a metering device
WO2015016627A1 (ko) * 2013-07-31 2015-02-05 삼성전자 주식회사 동일한 네트워크 상의 복수개의 ap 장치 중 하나의 ap 장치와 단말기를 연결하는 방법 및 장치
JP6190404B2 (ja) * 2014-06-05 2017-08-30 Kddi株式会社 受信ノード、メッセージ受信方法およびコンピュータプログラム
JP6420176B2 (ja) 2015-02-26 2018-11-07 ルネサスエレクトロニクス株式会社 通信システムおよび通信装置
JP7018864B2 (ja) 2018-10-15 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080376A1 (en) * 2014-09-11 2016-03-17 Infineon Technologies Ag Method and device for checking an identifier
DE102015115295A1 (de) * 2014-09-11 2016-03-17 Infineon Technologies Ag Verfahren und vorrichtung zur verarbeitung von daten
US20170310684A1 (en) * 2016-04-20 2017-10-26 Robert Bosch Gmbh Method and device for avoiding manipulation of a data transmission

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230289301A1 (en) * 2019-11-07 2023-09-14 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems

Also Published As

Publication number Publication date
JP2021005382A (ja) 2021-01-14
US11424932B2 (en) 2022-08-23
JP6997260B2 (ja) 2022-01-17
US20200412543A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
EP3278529B1 (de) Angriffserkennungsverfahren, angriffserkennungsvorrichtung und bussystem für ein kraftfahrzeug
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE3048365C2 (de)
DE112019000485T5 (de) System und verfahren zum bereitstellen der sicherheit für einfahrzeuginternes netzwerk
DE112017000394T5 (de) Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion
EP2981926B1 (de) Datenspeichervorrichtung zum geschützten datenaustausch zwischen verschiedenen sicherheitszonen
DE102014116111A1 (de) Vorrichtung und Verfahren zur Durchsetzung von Sicherheits-Tagging eingebettteter Netzwerkkommunikationen
DE102016206630A1 (de) Verfahren und Vorrichtung zur Vermeidung von Manipulation einer Datenübertragung
DE102018116676A1 (de) Fahrzeugnetzwerk mit Implementierung einer XCP-Protokoll-Richtlinie und Verfahren
DE102018114739A1 (de) Betriebsprotokoll und -verfahren des Fahrzeugnetzwerks
DE102019117229A1 (de) Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht
DE102016106871A1 (de) Steuervorrichtung und Verfahren zum Sichern von Daten
DE102021117437A1 (de) Sichere und geschützte Kommunikationsnetzwerknachrichtenverarbeitung
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
EP3695337B1 (de) Verfahren und bestätigungsvorrichtung zur integritätsbestätigung eines systems
DE102012105093A1 (de) Sicherer Datenspeicher für Fahrzeugnetzwerke
WO2001061961A2 (de) Verfahren zur authentizitätssicherung von hard- und software in einem vernetzten system
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
DE102020125262A1 (de) Warnsystem für Controller Area Networks
EP3688951B1 (de) Verfahren zum erfassen eines angriffs auf ein steuergerät eines fahrzeugs
DE602004011965T2 (de) Verfahren und schaltung zum identifizieren und/oder verifizieren von hardware und/oder software eines geräts und eines mit dem gerät arbeitenden datenträgers
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE102022109866A1 (de) System für eine verbesserte sicherheits- und schutzprüfung
DE102013108073B4 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
DE102005061999B4 (de) Online-Banking-Verfahren zum sicheren, elektronischen Übertragen von Daten von einer ersten Datenverarbeitungseinrichtung an eine zweite Datenverarbeitungseinrichtung

Legal Events

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