DE102021202444A1 - Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul - Google Patents

Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul Download PDF

Info

Publication number
DE102021202444A1
DE102021202444A1 DE102021202444.0A DE102021202444A DE102021202444A1 DE 102021202444 A1 DE102021202444 A1 DE 102021202444A1 DE 102021202444 A DE102021202444 A DE 102021202444A DE 102021202444 A1 DE102021202444 A1 DE 102021202444A1
Authority
DE
Germany
Prior art keywords
configuration
module
value
security module
stored
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
DE102021202444.0A
Other languages
English (en)
Inventor
Jamshid Shokrollahi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021202444.0A priority Critical patent/DE102021202444A1/de
Publication of DE102021202444A1 publication Critical patent/DE102021202444A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

Die Erfindung betrifft ein Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul (4), das eine Konfiguration einer Recheneinheit (6) mittels eines im Konfigurationsregister (16) gespeicherten Konfigurationswerts charakterisiert, umfassend Senden (130) einer Anforderung, das Konfigurationsregister zu aktualisieren, durch ein Sicherheitsmodul (8) der Recheneinheit an das vertrauenswürdige Modul; Übermitteln (150) eines oder mehrerer Konfigurationsmesswerte von dem Sicherheitsmodul an das vertrauenswürdige Modul unter Verwendung eines kryptographischen Nachrichtenauthentifizierungsverfahrens; wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte bestätigt wird, Aktualisieren (180) des Konfigurationsregisters durch das vertrauenswürdige Modul unter Verwendung des einen oder der mehreren Konfigurationsmesswerte; und, wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte nicht bestätigt wird, Unterlassen (170) einer Änderung des Konfigurationsregisters durch das vertrauenswürdige Modul. Die Erfindung betrifft weiterhin ein Verfahren zur Freigabe eines Geheimwerts.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul, ein Verfahren zur Freigabe eines Geheimwerts durch ein vertrauenswürdiges Modul sowie ein Rechensystem zu deren Durchführung.
  • Hintergrund der Erfindung
  • Steuergeräte von Kraftfahrzeugen können mit einem Sicherheitsmodul, einem sogenannten Hardware-Sicherheits-Modul (HSM), ausgestattet sein, das Funktionen bereitstellt, um die Funktion des Steuergeräts, insbesondere die Ausführung von Anwendungsprogrammen bzw. Computerprogrammen durch das Steuergerät, kryptographisch abzusichern. Beispielsweise kann die Authentizität von Anwendungsprogrammen vor ihrer Ausführung geprüft werden, oder das HSM kann Verschlüsselungen und/oder Entschlüsselungen von Daten durchführen, etwa von Daten, die vom Steuergerät an eine andere Recheneinheit gesendet werden oder von einer anderen Recheneinheit empfangen werden. Typischerweise ist das HSM zusammen mit einem Hauptprozessor des Steuergeräts in einem Mikrochip integriert, um eine hohe Verarbeitungsgeschwindigkeit zu gewährleisten. Ein HSM kann eine mittlere Absicherung des Steuergeräts leisten, für die Speicherung und Verwaltung von Daten und Kennworten mit höheren Sicherheitsanforderungen, z.B. Daten/Kennworte, die auch außerhalb der Maschine, in die das Steuergerät integriert ist, verwendet werden, etwa Zugangsdaten zu einem entfernten Computersystem, kann ein HSM nicht ausreichend sein.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul, ein Verfahren zur Freigabe eines Geheimwerts durch ein vertrauenswürdiges Modul sowie ein Rechensystem zu deren Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Erfindung bedient sich der Maßnahme, die Aktualisierung eines Konfigurationsregisters eines vertrauenswürdigen Moduls, das (d.h. das Konfigurationsregister) die Konfiguration bzw. den Zustand einer Recheneinheit mittels eines darin gespeicherten Konfigurationswerts charakterisiert, nur durch die Recheneinheit bzw. ein darin umfasstes Sicherheitsmodul gesendete Konfigurationsmesswerte zuzulassen, wobei die Authentizität übermittelter Konfigurationsmesswerte und damit die Identität der Recheneinheit bzw. des Sicherheitsmoduls durch die Verwendung eines Nachrichtenauthentifizierungsverfahrens sichergestellt wird. Durch das vertrauenswürdige Modul gespeicherte Geheimwerte können dann in Abhängigkeit vom aktualisierten Konfigurationswert zum Lesen oder zur kryptographischen Verarbeitung (z.B. Entschlüsselung oder Signieren) freigegeben werden. Da die Identität der Recheneinheit sichergestellt wird, erfolgt auch die Geheimwert-Freigabe nur an die berechtigte Recheneinheit. Ein Angriff, bei dem etwa ein Angreifer Konfigurationsmesswerte bei der Übertragung von der Recheneinheit zum vertrauenswürdigen Modul aufzeichnet und diesem später vorspielt, um Zugriff auf Geheimwerte zu erhalten, kann verhindert werden.
  • Im Einzelnen umfasst das Verfahren ein Senden einer Anforderung, das Konfigurationsregister zu aktualisieren, durch ein Sicherheitsmodul der Recheneinheit an das vertrauenswürdige Modul; ein Übermitteln eines oder mehrerer Konfigurationsmesswerte von dem Sicherheitsmodul an das vertrauenswürdige Modul unter Verwendung eines kryptographischen Nachrichtenauthentifizierungsverfahrens; wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte bestätigt wird, ein Aktualisieren des Konfigurationsregisters durch das vertrauenswürdige Modul unter Verwendung des einen oder der mehreren Konfigurationsmesswerte; und, wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte nicht bestätigt wird, ein Unterlassen einer Änderung des Konfigurationsregisters durch das vertrauenswürdige Modul.
  • Das Sicherheitsmodul ist dazu eingerichtet, kryptographische Funktionen, etwa Verschlüsselungen, Entschlüsselungen, Berechnung von Hashwerten, Berechnung von Nachrichtenauthentifizierungscodes, durchzuführen. Weiterhin kann das Sicherheitsmodul dazu eingerichtet sein, Speicherabschnitte eines Speichers der Recheneinheit auf ihre Authentizität zu prüfen und/oder die Ausführung von Anwendungsprogrammen durch die Recheneinheit freizugeben oder zu unterbinden.
  • Das vertrauenswürdige Modul ist als Hardwaremodul realisiert, das insbesondere getrennt von der Recheneinheit, d.h. nicht auf dem gleichen Mikrochip, angeordnet sein kann. Das vertrauenswürdige Modul stellt sozusagen eine Zustandsmaschine dar, die in Hardware gegossen oder in Firmware programmiert ist. Das vertrauenswürdige Modul kann als sog. „Trusted Platform Modul“ (TPM) angesehen werden (siehe dazu etwa die TPM 2.0 Spezifikation:
    • https://trustedcomputinggroup.org/trusted-com puti ng-group- tpm-2 -0-library-specification-approved-isoiec-international-standard-date-published-june-29-2015/). Ein TPM ist ein manipulationssicherer (tamper resistant) Chip, wie er beispielsweis in vielen Computern eingebaut ist. Der Konfigurationsregister im TPM werden als sogenannte „Platform Configuration Register“ (PCR) bezeichnet und werden für die Prüfung der Integrität der Software im angebundenen Mikroprozessor benutzt. Während des Bootens wird der Mikroprozessor den Hashwert ausgeführter Software berechnen und an das TPM schicken. Das TPM verkettet die Hashwerte und speichert sie in PCR. Anschließend entscheidet das TPM anhand der PCR-Werte, ob der Zugriff auf geheime Schlüssel freigegeben wird oder nicht. Das vertrauenswürdige Modul kann insbesondere die ‚TPM 2.0‘-Spezifikation erfüllen, wobei das vertrauenswürdige Modul zusätzlich (d.h. zusätzlich zur reinen ‚TPM 2.0‘-Spezifikation) dazu eingerichtet ist, ein erfindungsgemäßes Verfahren durchzuführen. Insofern kann das erfindungsgemäße Verfahren als Erweiterung zur TPM 2.0 Spezifikation oder einer ähnlichen „Trusted Platform Spezifikation“ implementiert werden.
  • Das Nachrichtenauthentifizierungsverfahren erlaubt, die Identität des Absenders zu bestätigen, d.h. festzustellen, ob die Nachricht von der dem vertrauenswürdigen Modul zugeordneten Recheneinheit bzw. deren Sicherheitsmodul stammt. Weiterhin kann durch das Nachrichtenauthentifizierungsverfahren die Integrität der Nachricht geprüft werden, d.h. festgestellt werden, ob die vom Absender (Sicherheitsmodul) gesendete Nachricht unverändert beim Empfänger (vertrauenswürdiges Modul) eingetroffen ist. MAC-Algorithmen (engl.: Message Authentication Code, MAC) sind dem Fachmann an sich bekannt. Bevorzugt ist vorgesehen, einen Keyed-Hash-Message Authentication Code (HMAC; für eine mögliche Implementierung vgl. etwa NIST Standard FIPS 198 oder RFC 2104) und/oder einen Cipher-based-Message Authentication Code (CMAC; für eine mögliche Implementierung vgl. etwa NIST Special Publication 800-38B) zu verwenden.
  • Konfigurationsmesswerte stellen im Allgemeinen Messungen bzw. Bestimmungen von Eigenschaften der Recheneinheit dar, d.h. welchen Zustand bzw. welche Konfiguration diese zu bestimmten Zeitpunkten aufweist. Dies wird insbesondere durch auf der Recheneinheit ausgeführte Anwendungsprogramme bestimmt, so dass die Konfigurationswerte insbesondere über den Programmcode der Anwendungsprogramme berechnete Hashwerte oder Nachrichtenauthentifizierungscodes sein können. Eine Manipulation des Programmcodes der Anwendungsprogramme führt entsprechend zu geänderten Hashwerten bzw. Nachrichtenauthentifizierungscodes und damit zu geänderten Konfigurationsmesswerten, erlaubt also zu erkennen, dass sich die Recheneinheit in einer manipulierten Konfiguration befindet, wenn diese Anwendungsprogramme ausgeführt werden.
  • Bevorzugt umfasst das Verfahren, bei einem Start des vertrauenswürdigen Moduls, ein Schreiben eines vorbestimmten Anfangs-Konfigurationswerts in das Konfigurationsregister. Durch diese Initialisierung wird ein wohldefinierter Zustand des Konfigurationsregisters erreicht, ausgehend von dem die Aktualisierung zu Konfigurationswerten führt, die mit entsprechenden Referenz-Konfigurationswerten verglichen werden können.
  • Weiterhin ist das Nachrichtenauthentifizierungsverfahren bevorzugt dazu eingerichtet, beim Übermitteln die Aktualität des einen oder der mehreren Konfigurationsmesswerte zu gewährleisten. „Aktualität“ bzw. „Freshness“ bezeichnet in der Kryptographie die Eigenschaft, dass sichergestellt bzw. geprüft werden kann, ob aktuelle Werte übermittelt werden. Damit kann erkannt werden, wenn ein Angreifer von ihm aufgezeichnete Werte (also alte bzw. nicht aktuelle Werte) erneut an das vertrauenswürdige Modul überträgt bzw. diesem vorspielt (sogenannter Replay-Angriff). Entsprechende Nachrichtenauthentifizierungsverfahren verwenden dazu eine sogenannte Nonce, d.h. eine einmalig verwendete Zahlen- und/oder Zeichenkombination, die während des Nachrichtenauthentifizierungsverfahrens mit übertragen wird. Eine Nonce kann z.B. eine Zufallszahl, der Wert eines Zählers, eine Uhrzeit, ein Zeitstempel, oder ähnliches sein.
  • Vorzugsweise verwenden im Nachrichtenauthentifizierungsverfahren das Sicherheitsmodul einen durch das Sicherheitsmodul gespeicherten Sicherheitsmodul-Aktualisierungsschlüssel und das vertrauenswürdige Modul einen durch das vertrauenswürdige Modul gespeicherten Aktualisierungsschlüssel. Weiter bevorzugt umfasst das Nachrichtenauthentifizierungsverfahren ein Senden eines Aufforderungswerts durch das vertrauenswürdige Modul an das Sicherheitsmodul; ein Bilden einer Nachricht aus dem einen oder den mehreren Konfigurationsmesswerten und dem Aufforderungswert durch das Sicherheitsmodul und ein Bestimmen eines Nachrichtenauthentifizierungscodes für die Nachricht durch das Sicherheitsmodul unter Verwendung des durch das Sicherheitsmodul gespeicherten Sicherheitsmodul-Aktualisierungsschlüssels; ein Senden der Nachricht zusammen mit dem Nachrichtenauthentifizierungscode durch das Sicherheitsmodul an das vertrauenswürdige Modul; ein Prüfen der Authentizität der zusammen mit dem Nachrichtenauthentifizierungscode empfangenen Nachricht durch das vertrauenswürdige Modul unter Verwendung des im vertrauenswürdigen Modul gespeicherten Aktualisierungsschlüssels, wobei die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte bestätigt wird, wenn diese Prüfung erfolgreich ist. Damit die Authentizität bestätigt werden kann, muss der Sicherheitsmodul-Aktualisierungsschlüssel gleich dem Aktualisierungsschlüssel des vertrauenswürdigen Moduls sein, so dass die Identität des Sicherheitsmoduls (bzw. der Recheneinheit) bestätigt werden kann. Der Aufforderungswert stellt eine Nonce dar, die die Aktualität gewährleistet.
  • Das Prüfen umfasst insbesondere ein Berechnen (durch das vertrauenswürdige Modul) eines Nachrichtenauthentifizierungscodes (MAC) aus der empfangenen Nachricht unter Verwendung des im vertrauenswürdigen Modul gespeicherten geheimen Aktualisierungsschlüssels und ein Vergleichen des berechneten MAC mit dem empfangenen MAC. Die Prüfung ist erfolgreich, wenn der berechnete MAC gleich dem empfangenen MAC ist. Sind diese beiden MAC nicht gleich, ist die Prüfung nicht erfolgreich und die Authentizität der Übermittlung des Konfigurationsmesswerts wird nicht bestätigt. Die Prüfung kann auch einen Vergleich des gesendeten Aufforderungswerts mit dem empfangenen Aufforderungswert umfassen.
  • Weiter bevorzugt umfasst das Verfahren ein Erzeugen des Aktualisierungsschlüssels als geheimen kryptographischen Schlüssel; und ein Speichern des Aktualisierungsschlüssels im vertrauenswürdigen Modul und Speichern des Aktualisierungsschlüssels als Sicherheitsmodul-Aktualisierungsschlüssel im Sicherheitsmodul. Durch diese Schritte werden das vertrauenswürdige Modul und das Sicherheitsmodul (und damit die Recheneinheit) einander zugeordnet. Diese Schritte werden vorzugsweise einmalig, vor Verwendung des vertrauenswürdigen Moduls und des Sicherheitsmoduls, durchgeführt. Der Ausdruck „geheimer kryptographischer Schlüssel“ soll sich hier darauf beziehen, dass der Schlüssel eindeutig ist (bzw. im Rahmen des Erzeugungsverfahrens mit hoher Wahrscheinlichkeit eindeutig ist) und zur Verwendung in kryptographischen Verfahren, insbesondere im Nachrichtenauthentifizierungsverfahren, geeignet ist, also z.B. eine geeignete Länge aufweist. Der Aktualisierungsschlüssel ist insofern geheim, als er außerhalb des vertrauenswürdigen Moduls und dem ihm zugeordneten Sicherheitsmodul nicht allgemein bekannt ist. Im Speziellen kann die schlüsselerzeugende Stelle, z.B. der Hersteller eines Rechensystems, das das vertrauenswürdige Modul und das Sicherheitsmodul umfasst, kann ebenso in Kenntnis des Schlüssels sein, sollte diesen allerdings geheimhalten. Im vertrauenswürdigen Modul wird der Aktualisierungsschlüssel vorzugsweise in unveränderlicher gespeichert, z.B. direkt bei der Herstellung in Hardware implementiert oder in einem einmalig programmierbaren Speicher (engl.: one time programmable, OTP).
  • Bevorzugt umfasst das Aktualisieren des Konfigurationsregisters ein Berechnen eines aktualisierten Konfigurationswerts als Hashwert aus dem im Konfigurationsregister gespeicherten Konfigurationswert und dem einen oder den mehreren Konfigurationsmesswerten, wobei, wenn ein Konfigurationsmesswert übermittelt wurde, der aktualisierte Konfigurationswert als Hashwert aus dem gespeicherten Konfigurationswert und dem einen Konfigurationsmesswert berechnet wird, und/oder, wenn mehrere Konfigurationsmesswerte übermittelt wurden, der aktualisierte Konfigurationswert entsprechend einer Reihenfolge der mehreren Konfigurationsmesswerte rekursiv als Hashwert aus dem gespeicherten Konfigurationswert und den mehreren Konfigurationsmesswerten berechnet wird; und ein Schreiben des aktualisierten Konfigurationswerts in das Konfigurationsregister.
  • Im Fall der rekursiven Konfigurationswert-Bildung wird zunächst ein erster Hashwert aus dem gespeicherten Konfigurationswert und dem in der Reihenfolge ersten Konfigurationsmesswert gebildet, dann ein zweiter Hashwert aus dem gebildeten ersten Hashwert und dem in der Reihenfolge zweiten Konfigurationsmesswert gebildet, und so weiter, bis abschließend der aktualisierte Konfigurationswert als Hashwert aus dem (N-1)-ten Hashwert und dem in der Reihenfolge letzten (N-ten) Konfigurationsmesswert berechnet wird (unter Annahme, dass die Reihenfolge N Konfigurationsmesswerte umfasst). Es wird also jeweils ein Hashwert aus dem vorherigen Hashwert und dem in der Reihenfolge jeweiligen Konfigurationsmesswert gebildet, wobei der anfängliche (0-te) Hashwert der gespeicherte Konfigurationswert ist und der letzte (N-te) Hashwert der aktualisierte Konfigurationswert ist. Durch diese Vorgehensweise erfolgt die Aktualisierung des Konfigurationsregisters in konsistenter Weise, unabhängig davon, wie viele Konfigurationsmesswerte jeweils übermittelt werden. Mehrere Konfigurationsmesswerte können also in beliebigen Gruppierungen entsprechend dem Verfahren übertragen werden und führen unabhängig von den Gruppierungen immer zum gleichen letztendlichen Konfigurationswert im Konfigurationsregister. Damit wird eine gewisse Flexibilität bei der Übermittlung der Konfigurationsmesswerte und der entsprechenden Aktualisierung des Konfigurationsregisters erreicht, so dass eine Anpassung an die aktuell verfügbaren Ressourcen des Sicherheitsmoduls und/oder des vertrauenswürdigen Moduls ermöglicht wird. Im Prinzip kann die Bestimmung des aktualisierten Konfigurationswerts im Fall, dass nur ein einzelner Konfigurationsmesswert übermittelt wurde, als Spezialfall der rekursiven Bestimmung des aktualisierten Konfigurationswerts im Fall, dass mehrere Konfigurationsmesswerte übermittelt wurden, gesehen werden.
  • Als Hashfunktion zur Berechnung kann dabei eine kryptographische Hashfunktion verwendet werden. Insbesondere ist eine solche kryptographische Hashfunktion kollisionsresistent, es ist also praktisch nicht möglich, zwei verschiedene Eingabewerte zu finden, die den gleichen Hashwert ergeben. Dies führt dazu, dass verschiedene Konfigurationsmesswerte, die bei der Aktualisierung des Konfigurationsregisters verwendet werden, zu verschiedenen aktualisierten Konfigurationswerten führen, so dass der aktualisierte Konfigurationswert die Konfigurationsmesswerte und damit die Recheneinheit bzw. deren Konfiguration eindeutig charakterisiert. Geeignete Hashfunktionen sind z.B. Hashfunktionen gemäß SHA-1 oder SHA-2, d.h. SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 und SHA-512/256, die etwa aus dem Dokument FIPS PUB 180-4 (http://dx.doi.org/10.6028/NIST.FIPS.180-4) des NIST (National Institute of Standards and Technology) oder auch aus RFC 6234 bekannt sind.
  • Bevorzugt umfasst das Verfahren ein Bilden des einen oder der mehreren Konfigurationsmesswerte durch das Sicherheitsmodul. Dabei können der eine oder die mehreren Konfigurationsmesswerte insbesondere als Hashwerte oder Nachrichtenauthentifizierungscodes (MAC) von Speicherabschnitten (genauer von in den Speicherabschnitten gespeicherten Daten) eines Speichers der Recheneinheit berechnet werden. Als Hashfunktion zur Berechnung von Hashwerten bzw. als MAC-Algorithmus zur Berechnung von Nachrichtenauthentifizierungscodes kann beispielsweise eines der vorstehend genannten Verfahren verwendet werden.
  • Weiter bevorzugt werden der eine oder die mehreren Konfigurationsmesswerte basierend auf Daten, die in einem oder mehreren Speicherabschnitten eines Speichers der Recheneinheit gespeichert sind, bestimmt; wobei noch weiter bevorzugt der eine oder die mehreren Konfigurationsmesswerte jeweils als Nachrichtenauthentifizierungscode für die Daten eines Speicherabschnitts des einen oder der mehreren Speicherabschnitte bestimmt werden. Die Konfiguration der Recheneinheit ist maßgeblich durch die darin ausgeführte Software bestimmt. Entsprechende Anwendungsprogramme sind in Abschnitten des Speichers gespeichert, so dass die Analyse der Speicherabschnitte eine Aussage über die Konfiguration der Recheneinheit erlaubt.
  • Nachrichtenauthentifizierungscodes, kurz als MAC (engl.: Message Authentication Code) bezeichnet, erlauben die Prüfung der Authentizität einer Nachricht bzw. von Daten, hier der in den Speicherabschnitten gespeicherten Daten. Dabei verwendet ein MAC-Algorithmus als Paar von Eingaben einerseits die zu prüfenden Daten und andererseits einen geheimen Schlüssel und berechnet aus diesem Paar eine als MAC bezeichnete Prüfsumme (Hashwert) für die Daten. Wurden die Daten geändert, so kann dies durch Vergleich mit einem früher berechneten Referenz-MAC festgestellt werden. In der hier vorliegenden Anwendung kann also durch das Sicherheitsmodul festgestellt werden, ob der Inhalt eines zu prüfenden Speicherabschnitts unverändert (authentisch) ist oder geändert (kompromittiert) wurde. Wenn letzteres der Fall ist, muss davon ausgegangen, dass in dem Speicherabschnitt gespeicherte Programme oder Daten manipuliert wurden.
  • Vorzugsweise werden der eine oder die mehreren Konfigurationsmesswerte nach dem Bilden durch das Sicherheitsmodul gespeichert und das Senden der Anforderung, das Konfigurationsregister zu aktualisieren, durch das Sicherheitsmodul erfolgt in einem zeitlichen Abstand zum Bilden des einen oder der mehreren Konfigurationsmesswerte. Dies ist vorteilhaft, da die Rechenleistung des Sicherheitsmoduls zunächst dazu verwendet werden kann, die Konfigurationsmesswerte zu bilden, um einen schnellen Start der Recheneinheit zu gewährleisten, bei dem Konfigurationsmesswerte mit entsprechenden Referenzwerten verglichen werden, bevor die Ausführung von Anwendungsprogrammen, auf die sich die Konfigurationsmesswerte beziehen, erlaubt wird.
  • Ein erfindungsgemäßes Verfahren zur Freigabe eines Geheimwerts mittels eines vertrauenswürdigen Moduls an eine Recheneinheit mit einem Sicherheitsmodul, wobei der Geheimwert im vertrauenswürdigen Modul gespeichert ist, umfasst ein Durchführen eines Verfahrens gemäß der vorstehenden Aspekte; ein Vergleichen, durch das vertrauenswürdige Modul, des im Konfigurationsregister gespeicherten Konfigurationswerts mit einem Referenz-Konfigurationswert durch das vertrauenswürdige Modul; wenn der gespeicherte Konfigurationswert gleich dem Referenz-Konfigurationswert ist, ein Freigeben, durch das vertrauenswürdige Modul, des Geheimwerts an das Sicherheitsmodul. Durch diese Vorgehensweise wird sichergestellt, dass der Geheimwert nur an die Recheneinheit freigegeben wird, die dem vertrauenswürdigen Modul zugeordnet ist, was durch die Verwendung des Nachrichtenauthentifizierungscodes erreicht wird, wobei der Vergleich mit dem Referenz-Konfigurationswert dafür sorgt, dass sich die Recheneinheit in der richtigen Konfiguration befindet, also nicht etwa manipulierte Anwendungsprogramme ausführt.
  • Der Begriff „Geheimwert“ (bzw. Schlüsselwert bzw. Datenwert) wird hier verwendet, um einen Wert zu bezeichnen, für den ein hohes Schutzbedürfnis besteht. Dies können Kennwörter, Anmeldedaten, geheime Schlüssel oder Ähnliches sein, insbesondere solche, die auch außerhalb der Umgebung, die durch die Recheneinheit gesteuert wird, verwendet werden sollen (etwa außerhalb eines Kraftfahrzeugs). Für diese Geheimwerte muss also sichergestellt sein, dass sie nur durch eine bestimmte Recheneinheit, die sich in einer bestimmten Konfiguration befindet, verwendet werden.
  • Bevorzugt umfasst das Verfahren zur Freigabe eines Geheimwerts ein Senden, durch das Sicherheitsmodul, einer Bereitstellungsanfrage für den Geheimwert an das vertrauenswürdige Modul, wobei bevorzugt der Schritt des Vergleichens nach einem Empfangen der Bereitstellungsanfrage durch das vertrauenswürdige Modul durchgeführt wird; und, wenn der Geheimwert freigegeben wurde, ein Übermitteln des Geheimwerts an das Sicherheitsmodul.
  • Ein erfindungsgemäßes Rechensystem, z.B. ein Steuergerät eines (Kraft- )Fahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Das Rechensystem umfasst ein vertrauenswürdiges Modul und eine Recheneinheit mit einem Sicherheitsmodul. Das Sicherheitsmodul ist vorzugsweise eine Hardware-Sicherheits-Modul (HSM), also als Hardware implementiert.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Figurenliste
    • 1 zeigt ein Rechensystem mit einem vertrauenswürdigen Modul und einer ein Sicherheitsmodul umfassenden Recheneinheit, das zur Implementierung der Erfindung verwendet werden kann; und
    • 2 zeigt ein Ablaufdiagramm entsprechend einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens.
  • Ausführungsform(en) der Erfindung
  • 1 stellt ein Rechensystem 2, z.B. ein Steuergerät eines Fahrzeugs, dar, das zur Implementierung der Erfindung verwendet werden kann. Das Rechensystem umfasst ein vertrauenswürdiges Modul 4 und eine Recheneinheit 6. Die Recheneinheit umfasst ein Sicherheitsmodul 8, einen Hauptprozessor 10 und einen nicht-flüchtigen Speicher 12.
  • Das vertrauenswürdige Modul 2 weist einen Rechenkern 14 auf, dessen Funktion bei Herstellung einmalig programmiert wurde oder der als Konfigurationsmaschine implementiert ist. Im vertrauenswürdigen Modul 2 sind Register vorgesehen, auf die im Allgemeinen lediglich das vertrauenswürdige Modul 2 selbst Zugriff hat. Dies sind wenigstens ein Konfigurationsregister 16, wenigstens ein Schlüsselregister 18, wenigstens ein Referenz-Konfigurationsregister 20, wenigstens ein Geheimwertregister 22.
  • Im wenigstens einen Konfigurationsregister 16 wird wenigstens ein Konfigurationswert gespeichert, der die Konfiguration der Recheneinheit charakterisiert und der entsprechend dem erfindungsgemäßen Verfahren aktualisiert wird.
  • Der für die Aktualisierung benötigte wenigstens eine (geheime) Aktualisierungsschlüssel ist im wenigstens einen Schlüsselregister 18 gespeichert.
  • Im wenigstens einen Geheimwertregister 22 ist wenigstens ein Geheimwert gespeichert. Der Zugriff auf den wenigstens einen Geheimwert bzw. auf das wenigstens eine Geheimwertregister unterliegt der Kontrolle des vertrauenswürdigen Moduls, wobei ein Zugriff nur freigegeben wird, wenn der aktuell im wenigstens einen Konfigurationsregister 16 gespeicherte wenigstens eine Konfigurationswert gleich einem im wenigstens einen Referenz-Konfigurationsregister 20 gespeicherten wenigstens einen Referenz-Konfigurationswert ist.
  • Im Rahmen dieser Beschreibung wird zur Vereinfachung die Erfindung mit Bezug auf ein Konfigurationsregister, einen Konfigurationswert, ein Schlüsselregister, einen Aktualisierungsschlüssel, ein Referenz-Konfigurationsregister, einen Referenz-Konfigurationswert, ein Geheimwertregister und einen Geheimwert erläutert. Dies soll den Fall, das mehrere Register, die mehrere entsprechende Werte speichern, nicht ausschließen. Das erfindungsgemäße Verfahren wird in gleicher Weise bei mehreren Registern und mehreren darin gespeicherten Werten angewandt, wobei zwangsläufig die Anwendung im Fall mehrerer Register bzw. Werte die Anwendung auf einzelne der Register bzw. Werte einschließt.
  • Der Hauptprozessor 10 der Recheneinheit 6 dient dazu, Anwendungsprogramme (d.h. Computerprogramme) auszuführen, die die eigentliche Funktion der Recheneinheit implementieren, z.B. eine Steuerungsfunktion eines Steuergeräts. Die Anwendungsprogramme sind in einem Programm-Speicherbereich 24 des nichtflüchtigen Speichers gespeichert, auf den der Hauptprozessor über eine Verbindung 26 zugreifen kann.
  • Das Sicherheitsmodul 8 implementiert Sicherheitsfunktionen der Recheneinheit. Das Sicherheitsmodul 8 ist dazu eingerichtet, kryptographische Funktionen, etwa Verschlüsselungen, Entschlüsselungen, Berechnung von Hashwerten, Berechnung von Nachrichtenauthentifizierungscodes (MAC), durchzuführen. Dazu benötigte Schlüssel, MACs, u.Ä. sind in einem Sicherheitsmodul-Speicherbereich 28 des nicht-flüchtigen Speichers 12 gespeichert, auf den nur das Sicherheitsmodul 8 über eine Verbindung 30 Zugriff hat. Das Sicherheitsmodul 8 hat außerdem zumindest Lese-Zugriff auf den Programm-Speicherbereich 24 (vermöge einer Verbindung 32). Das Sicherheitsmodul 8 ist bevorzugt als Hardwaremodul, d.h. als Hardware-Sicherheits-Modul (HSM), ausgeführt. Auch eine Ausführung als Softwaremodul, das in abgesicherter Weise im Hauptprozessor ausgeführt wird, ist denkbar.
  • Das Sicherheitsmodul 8 ist weiterhin mit dem Hauptprozessor 10 über eine Verbindung 34 zum Datenaustauch verbunden. Über diese Verbindung kann das Sicherheitsmodul dem Hauptprozessor einerseits kryptographische Funktionen zur Verfügung stellen, etwa wenn ein im Hauptprozessor ausgeführtes Anwendungsprogramm eine Nachricht verschlüsseln möchte. Andererseits ist das Sicherheitsmodul 8 dazu eingerichtet, die Ausführung von Anwendungsprogrammen im Hauptprozessor 10 freizugeben bzw. zu unterbinden. Dazu prüft das Sicherheitsmodul 8 Speicherabschnitte des Programm-Speicherbereichs 24, in denen Anwendungsprogramme gespeichert sind, auf ihre Authentizität, d.h. das Sicherheitsmodul prüft, ob die in den Speicherabschnitten gespeicherten Daten gegenüber einem ursprünglichen, nicht manipulierten Referenzzustand unverändert sind. Wenn die Daten des Speicherabschnitts, in dem ein Anwendungsprogramm gespeichert ist, gegenüber dem Referenzzustand unverändert sind, wird die Ausführung des Anwendungsprogramms freigegeben; anderenfalls wird die Ausführung unterbunden.
  • Für die Authentizitätsprüfung der Speicherabschnitte können Nachrichtenauthentifizierungscodes (MAC), die als Hashwerte über die in jeweiligen Speicherabschnitten gespeicherten Daten angesehen werden können, verwendet werden. Dabei wird ein MAC, d.h. ein Ist-MAC, für einen Speicherabschnitt berechnet und mit einem entsprechenden Referenz-MAC, der im Sicherheitsmodul-Speicherbereich gespeichert ist, verglichen. Wenn der Ist-MAC gleich dem Referenz-MAC ist, wird davon ausgegangen, dass die Daten im Speicherabschnitt unverändert sind und die Ausführung darin gespeicherter Anwendungsprogramme erlaubt.
  • Die Recheneinheit 6 kann weitere, nicht dargestellte Elemente umfassen, z.B. einen Arbeitsspeicher (engl.: „random access memory“, RAM) für den Hauptprozessor und/oder einen Arbeitsspeicher für das Sicherheitsmodul, Schnittstellen zum Datenaustausch mit anderen Recheneinheiten und/oder einem externen Speicher oder Steuer-Schnittstellen zur Steuerung von Vorrichtungen, die durch die Recheneinheit gesteuert werden. Einige oder alle der Elemente der Recheneinheit 6 können miteinander integriert sein, insbesondere ganz oder teilweise in einem einzelnen Mikrochip realisiert sein. Bevorzugt sind zumindest der Hauptprozessor und das Sicherheitsmodul in einem Mikrochip bzw. Mikrocontroller integriert.
  • Weiterhin ist eine Verbindung 36 zur Datenkommunikation zwischen dem vertrauenswürdigen Modul 4 und der Recheneinheit 6 bzw. zwischen dem vertrauenswürdigen Modul 4 und dem Sicherheitsmodul 8 vorgesehen. Diese Verbindung wird zur Durchführung des erfindungsgemäßen Verfahrens verwendet.
  • 2 zeigt ein Ablaufdiagramm entsprechend einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens. Hierbei sind links in der Figur im vertrauenswürdigen Modul durchgeführte Schritte gezeigt und rechts in der Figur in der Recheneinheit bzw. im Sicherheitsmodul durchgeführte Schritt gezeigt. Mit Start 100 eines Rechensystems, das das vertrauenswürdige Modul und die Recheneinheit umfasst, findet in Schritt 110 im vertrauenswürdigen Modul eine Initialisierung des Konfigurationsregisters statt. Dabei wird ein vorbestimmter Anfangs-Konfigurationswert in das Konfigurationsregister geschrieben. Das Konfigurationsregister befindet sich danach also in einem wohldefinierten Zustand, d.h. es ist der bekannte, vorbestimmte Anfangs-Konfigurationswert darin gespeichert.
  • Ebenso wird mit Start 100 die Recheneinheit gestartet bzw. gebootet. In Schritt 120 werden durch das Sicherheitsmodul Hashwerte bzw. MACs für Speicherabschnitte des Programmspeichers der Recheneinheit berechnet (wie oben beschrieben) und durch das Sicherheitsmodul gespeichert, z.B. im Sicherheitsmodul-Speicherbereich. Die Hashwerte bzw. MACs charakterisieren die in der Recheneinheit, d.h. im Hauptprozessor, in bestimmten Phasen ausgeführten Anwendungsprogramme. Sie stellen gewissermaßen eine Messung der Konfiguration bzw. des Zustands der Recheneinheit dar und werden daher als „Konfigurationsmesswerte“ bezeichnet. Die Konfigurationsmesswerte können beispielsweise in einem Array in einer bestimmten Reihenfolge, die etwa durch die Berechnungsreihenfolge der Konfigurationsmesswerte gegeben ist, gespeichert werden. Die Berechnungsreihenfolge ist wiederum durch die Startsequenz der Recheneinheit bestimmt, gemäß derer während der Startphase der Recheneinheit Anwendungsprogramme zur Ausführung geladen werden.
  • In Schritt 130 sendet das Sicherheitsmodul Aktualisierungsanforderung, d.h. eine Anforderung, das Konfigurationsregister zu aktualisieren, an das vertrauenswürdige Modul. In Schritt 140 bestimmt das vertrauenswürdige Modul in Reaktion auf die Aktualisierungsanforderung einen Aufforderungswert (Nonce), der als Zeitstempel, Sequenznummer oder Zufallszahl bestimmt werden kann, und sendet diesen Aufforderungswert an das Sicherheitsmodul.
  • In Schritt 150 bildet das Sicherheitsmodul aus einem oder mehreren der gespeicherten Konfigurationsmesswerte und dem empfangenen Aufforderungswert eine Nachricht (etwa durch Aneinanderfügen der Konfigurationsmesswerte und des Aufforderungswerts: Nachricht = Konfigurationsmesswerte || Aufforderungswert), berechnet für diese Nachricht ein Nachrichtenauthentifizierungscode und sendet die Nachricht zusammen mit dem berechneten Nachrichtenauthentifizierungscode an das vertrauenswürdige Modul. Zur Berechnung des MAC wird ein durch das Sicherheitsmodul gespeicherter geheimer Sicherheitsmodul-Aktualisierungsschlüssel verwendet.
  • In Schritt 160 empfängt das vertrauenswürdige Modul die Nachricht und den MAC und prüft die Nachricht auf ihre Authentizität, d.h. prüft, ob die Nachricht tatsächlich von der Recheneinheit kommt. Dazu berechnet das vertrauenswürdige Modul ebenfalls einen MAC für die empfangene Nachricht, wobei ein durch das vertrauenswürdige Modul gespeicherter geheimer Aktualisierungsschlüssel verwendet wird. Der berechnete MAC wird durch das vertrauenswürdige Modul mit dem empfangenen MAC verglichen, wobei die Authentizität der empfangenen Nachricht bestätigt wird, wenn der berechnete MAC gleich dem empfangenen MAC ist, und andernfalls die Authentizität der empfangenen Nachricht nicht bestätigt wird. Bei dieser Prüfung kann zusätzlich der in der empfangenen Nachricht enthaltene Aufforderungswert mit dem in Schritt 140 gesendeten Aufforderungswert verglichen werden, die bei zur Bestätigung der Authentizität gleich sein sollten. Die Verwendung eines Aufforderungswerts dient der Erkennung sogenannter Replay-Angriffe.
  • Voraussetzung dafür, dass diese Authentifizierung erfolgreich ist, ist, dass der durch das Sicherheitsmodul gespeicherte Sicherheitsmodul-Aktualisierungsschlüssel gleich dem im vertrauenswürdigen Modul gespeicherten Aktualisierungsschlüssel ist. Bei Herstellung des Rechensystems oder in einer sicheren Umgebung wird dazu der geheime Aktualisierungsschlüssel sowohl in dem vertrauenswürdigen Modul als auch im Sicherheitsmodul der Recheneinheit gespeichert. Der Aktualisierungsschlüssel ist spezifisch für das Rechensystem. D.h. verschiedene Rechensysteme weisen verschiedene Aktualisierungsschlüssel auf. Der Aktualisierungsschlüssel des Rechensystems ist also nur dem vertrauenswürdigen Modul und dem Sicherheitsmodul, die einander zugeordnet sind, bekannt.
  • Bei der Authentifizierung in Schritt 160 wird insbesondere festgestellt, ob die Nachricht von dem Sicherheitsmodul stammt, das dem vertrauenswürdigen Modul zugeordnet ist. Es wird also die Identität des Sicherheitsmoduls und damit der Recheneinheit geprüft. So kann sichergestellt werden, dass nur Konfigurationsmesswerte von der „richtigen“, d.h. berechtigten, Recheneinheit zur Aktualisierung des Konfigurationsregisters verwendet werden.
  • Wenn die Authentizität der übermittelten Nachricht nicht bestätigt wird, unterbleibt in Schritt 170 eine Aktualisierung des Konfigurationsregisters, dieses bleibt also unverändert. Die übermittelten Konfigurationsmesswerte werden vom vertrauenswürdigen Modul verworfen.
  • Wenn andererseits die Authentizität der übermittelten Nachricht bestätigt wird, erfolgt in Schritt 170 eine Aktualisierung des Konfigurationsregisters unter Verwendung des einen oder der mehreren in der Nachricht übermittelten Konfigurationsmesswerte. Dazu wird der gespeicherte Konfigurationswert aus dem Konfigurationsregister gelesen und ein aktualisierter Konfigurationswert als ein Hashwert aus dem gespeicherten bzw. gelesenen Konfigurationswert und einem oder mehreren Konfigurationsmesswerten gebildet, wobei bei mehreren Konfigurationsmesswerten auch rekursiv vorgegangen werden kann. Der gebildete Hashwert bzw. aktualisierte Konfigurationswert wird im Konfigurationsregister gespeichert (der frühere Konfigurationswert wird überschrieben).
  • Letztendlich führt dies dazu, dass der im Konfigurationsregister gespeicherte Konfigurationswert den Zustand bzw. die Konfiguration der Recheneinheit samt darin ausgeführten Anwendungsprogrammen charakterisiert. Ob oder nicht die Recheneinheit bzw. deren Sicherheitsmodul auf im vertrauenswürdigen Modul gespeicherte Geheimwerte zugreifen darf, kann anhand des Konfigurationswerts entschieden werden, d.h. der Zugriff wird nur dann erlaubt, wenn der gespeicherte Konfigurationswert einen bestimmten Wert (Referenz-Konfigurationswert) aufweist, wenn also feststeht, dass sich die mittels des Nachrichtenauthentifizierungsverfahrens eindeutig identifizierte Recheneinheit in einem bestimmten Zustand bzw. in einer bestimmten Konfiguration befindet.
  • Hierzu wird in Schritt 200 der im Konfigurationsregister aktuell gespeicherte Konfigurationswert (also gegebenenfalls der Konfigurationswert nach der Aktualisierung) mit einem Referenz-Konfigurationswert verglichen. Dies erfolgt optional nach einer entsprechenden Anfrage 190 des Sicherheitsmoduls bzw. der Recheneinheit, auf den Geheimwert zugreifen zu wollen bzw. diesen verwenden zu wollen (d.h. ein Anwendungsprogramm benötigt den Geheimwert bei der Ausführung). Wenn der gespeicherte Konfigurationswert nicht gleich dem Referenz-Konfigurationswert ist, verweigert das vertrauenswürdige Modul den Zugriff auf den Geheimwert in Schritt 210.
  • Wenn andererseits der gespeicherte Konfigurationswert gleich dem Referenz-Konfigurationswert ist, erlaubt das vertrauenswürdige Modul den Zugriff auf den Geheimwert in Schritt 220. Der Geheimwert kann dann dem Sicherheitsmodul bereitgestellt werden und durch dieses in Schritt 230 verwendet werden. Die Bereitstellung des Geheimwerts erfolgt vorzugsweise kryptographisch abgesichert, d.h. in verschlüsselter Form.

Claims (12)

  1. Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul (4), das eine Konfiguration einer Recheneinheit (6) mittels eines im Konfigurationsregister (16) gespeicherten Konfigurationswerts charakterisiert, umfassend Senden (130) einer Anforderung, das Konfigurationsregister (16) zu aktualisieren, durch ein Sicherheitsmodul (8) der Recheneinheit an das vertrauenswürdige Modul (4); Übermitteln (150) eines oder mehrerer Konfigurationsmesswerte von dem Sicherheitsmodul (8) an das vertrauenswürdige Modul (4) unter Verwendung eines kryptographischen Nachrichtenauthentifizierungsverfahrens; wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte bestätigt wird, Aktualisieren (180) des Konfigurationsregisters (16) durch das vertrauenswürdige Modul (4) unter Verwendung des einen oder der mehreren Konfigurationsmesswerte; und, wenn die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte nicht bestätigt wird, Unterlassen (170) einer Änderung des Konfigurationsregisters durch das vertrauenswürdige Modul (4).
  2. Verfahren nach Anspruch 1, umfassend, bei einem Start des vertrauenswürdigen Moduls (4), Schreiben (110) eines vorbestimmten Anfangs-Konfigurationswerts in das Konfigurationsregister (16).
  3. Verfahren nach einem der vorstehenden Ansprüche, wobei das Nachrichtenauthentifizierungsverfahren dazu eingerichtet ist, beim Übermitteln die Aktualität des einen oder der mehreren Konfigurationsmesswerte zu gewährleisten.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei im Nachrichtenauthentifizierungsverfahren das Sicherheitsmodul (4) einen durch das Sicherheitsmodul gespeicherten Sicherheitsmodul-Aktualisierungsschlüssel verwendet und das vertrauenswürdige Modul (8) einen durch das vertrauenswürdige Modul gespeicherten Aktualisierungsschlüssel verwendet; wobei das Nachrichtenauthentifizierungsverfahren bevorzugt umfasst: Senden (140) eines Aufforderungswerts durch das vertrauenswürdige Modul (4) an das Sicherheitsmodul (8); Bilden einer Nachricht aus dem einen oder den mehreren Konfigurationsmesswerten und dem Aufforderungswert durch das Sicherheitsmodul (8) und Bestimmen eines Nachrichtenauthentifizierungscodes für die Nachricht durch das Sicherheitsmodul unter Verwendung des durch das Sicherheitsmodul gespeicherten Sicherheitsmodul-Aktualisierungsschlüssels; Senden (150) der Nachricht zusammen mit dem Nachrichtenauthentifizierungscode durch das Sicherheitsmodul (8) an das vertrauenswürdige Modul (4); Prüfen (160) der Authentizität der zusammen mit dem Nachrichtenauthentifizierungscode empfangenen Nachricht durch das vertrauenswürdige Modul (4) unter Verwendung des im vertrauenswürdigen Modul gespeicherten Aktualisierungsschlüssels, wobei die Authentizität der Übermittlung des einen oder der mehreren Konfigurationsmesswerte bestätigt wird, wenn diese Prüfung erfolgreich ist.
  5. Verfahren nach Anspruch 4, umfassend, Erzeugen des Aktualisierungsschlüssels als geheimen kryptographischen Schlüssel; und, Speichern des Aktualisierungsschlüssels im vertrauenswürdigen Modul (4) und Speichern des Aktualisierungsschlüssels als Sicherheitsmodul-Aktualisierungsschlüssel im Sicherheitsmodul (8).
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei das Aktualisieren des Konfigurationsregisters umfasst: Berechnen eines aktualisierten Konfigurationswerts als Hashwert aus dem im Konfigurationsregister (16) gespeicherten Konfigurationswert und dem einen oder den mehreren Konfigurationsmesswerten, wobei, wenn ein Konfigurationsmesswert übermittelt wurde, der aktualisierte Konfigurationswert als Hashwert aus dem gespeicherten Konfigurationswert und dem einen Konfigurationsmesswert berechnet wird, und/oder, wenn mehrere Konfigurationsmesswerte übermittelt wurden, der aktualisierte Konfigurationswert entsprechend einer Reihenfolge der mehreren Konfigurationsmesswerte rekursiv als Hashwert aus dem gespeicherten Konfigurationswert und den mehreren Konfigurationsmesswerten berechnet wird; und Schreiben des aktualisierten Konfigurationswerts in das Konfigurationsregister (16).
  7. Verfahren nach einem der vorstehenden Ansprüche, umfassend Bilden (120) des einen oder der mehreren Konfigurationsmesswerte durch das Sicherheitsmodul (8).
  8. Verfahren nach Anspruch 7, wobei der eine oder die mehreren Konfigurationsmesswerte basierend auf Daten, die in einem oder mehreren Speicherabschnitten (24) eines Speichers (12) der Recheneinheit (6) gespeichert sind, bestimmt werden; wobei bevorzugt der eine oder die mehreren Konfigurationsmesswerte jeweils als Nachrichtenauthentifizierungscode für die Daten eines Speicherabschnitts des einen oder der mehreren Speicherabschnitten bestimmt werden.
  9. Verfahren nach einem der Ansprüche 7 oder 8, wobei der eine oder die mehreren Konfigurationsmesswerte nach dem Bilden (120) durch das Sicherheitsmodul (8) gespeichert werden und das Senden der Anforderung, das Konfigurationsregister zu aktualisieren, durch das Sicherheitsmodul in einem zeitlichen Abstand zum Bilden des einen oder der mehreren Konfigurationsmesswerte erfolgt.
  10. Verfahren zur Freigabe eines Geheimwerts durch ein vertrauenswürdiges Modul (4) an eine Recheneinheit (6) mit einem Sicherheitsmodul (8), wobei das Geheimwert im vertrauenswürdigen Modul gespeichert ist; umfassend Durchführen des Verfahrens nach einem der Ansprüche 7 bis 9; Vergleichen (200), durch das vertrauenswürdige Modul, des im Konfigurationsregister gespeicherten Konfigurationswerts mit einem Referenz-Konfigurationswert durch das vertrauenswürdige Modul (4); wenn der gespeicherte Konfigurationswert gleich dem Referenz-Konfigurationswert ist, Freigeben (220), durch das vertrauenswürdige Modul (4), des Geheimwerts an das Sicherheitsmodul (8).
  11. Verfahren nach Anspruch 10, umfassend, Senden (190), durch das Sicherheitsmodul (8), einer Bereitstellungsanfrage für das Geheimwert an das vertrauenswürdige Modul (4), wobei bevorzugt der Schritt des Vergleichens nach einem Empfangen der Bereitstellungsanfrage durch das vertrauenswürdige Modul durchgeführt wird; und, wenn der Geheimwert freigegeben wurde, Übermitteln (220) des Geheimwerts an das Sicherheitsmodul (8).
  12. Rechensystem (2), das dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen, umfassend ein vertrauenswürdiges Modul (4) und eine Recheneinheit (6) mit einem Sicherheitsmodul (8).
DE102021202444.0A 2021-03-12 2021-03-12 Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul Pending DE102021202444A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021202444.0A DE102021202444A1 (de) 2021-03-12 2021-03-12 Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021202444.0A DE102021202444A1 (de) 2021-03-12 2021-03-12 Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul

Publications (1)

Publication Number Publication Date
DE102021202444A1 true DE102021202444A1 (de) 2022-09-15

Family

ID=83005367

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021202444.0A Pending DE102021202444A1 (de) 2021-03-12 2021-03-12 Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul

Country Status (1)

Country Link
DE (1) DE102021202444A1 (de)

Similar Documents

Publication Publication Date Title
DE60126968T2 (de) System zum schutz von dynamischen und statischen daten gegen unerlaubten manipulationen
EP1128242B1 (de) Signaturverfahren
DE102015209116A1 (de) Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
DE10392528T5 (de) Microcode-Patch-Authentifizierung
EP2899714A1 (de) Gesichertes Bereitstellen eines Schlüssels
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112015002927B4 (de) Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage
DE10318031A1 (de) Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
DE102016224537A1 (de) Masterblockchain
DE112005001666T5 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE102013203415A1 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
DE102015202935A1 (de) Verfahren zum Manipulationsschutz
EP2567501B1 (de) Verfahren zum kryptographischen schutz einer applikation
DE112005001654T5 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
EP3337085B1 (de) Nachladen kryptographischer programminstruktionen
EP2442251B9 (de) Individuelle Aktualisierung von Computerprogrammen
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
DE102014204252A1 (de) Sicherheitssystem mit Zugriffskontrolle
DE102021202444A1 (de) Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul
DE10316951A1 (de) Verfahren zur Überprüfung der Datenintegrität von Software in Steuergeräten
DE102015225651A1 (de) Verfahren und Vorrichtung zum Übertragen einer Software
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
EP3525414A1 (de) Verfahren zur verschlüsselten übertragung von daten auf einer kryptographisch geschützten, unverschlüsselten kommunikationsverbindung
WO2007090712A1 (de) Verfahren zum manipulationsschutz eines steuergeräts sowie gegen manipulationen geschütztes steuergerät