DE102020216030A1 - Verfahren zum abgesicherten Start einer Recheneinheit - Google Patents

Verfahren zum abgesicherten Start einer Recheneinheit Download PDF

Info

Publication number
DE102020216030A1
DE102020216030A1 DE102020216030.9A DE102020216030A DE102020216030A1 DE 102020216030 A1 DE102020216030 A1 DE 102020216030A1 DE 102020216030 A DE102020216030 A DE 102020216030A DE 102020216030 A1 DE102020216030 A1 DE 102020216030A1
Authority
DE
Germany
Prior art keywords
program
mac
host
hsm
memory
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
DE102020216030.9A
Other languages
English (en)
Inventor
Franz Nottensteiner
Matthias Schreiber
Peter Poinstingl
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 DE102020216030.9A priority Critical patent/DE102020216030A1/de
Priority to CN202111539771.4A priority patent/CN114637996A/zh
Publication of DE102020216030A1 publication Critical patent/DE102020216030A1/de
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum abgesicherten Start einer Recheneinheit (1), wobei durch ein HSM (4) ein Bootspeicherbereich (22a) gelesen wird, ein Ist-Boot-MAC bestimmt wird und der Ist-Boot-MAC mit einem Referenz-Boot-MAC verglichen wird. Durch einen Host (2) wird, wenn der Ist-Boot-MAC gleich dem Referenz-Boot-MAC ist, ein in dem Bootspeicherbereich gespeichertes Bootprogram ausgeführt, wobei durch das HSM ein oder mehrere Schlüssel in wenigstens ein Kryptomodul (6) geladen werden, wobei durch den Host ein oder mehrere Programmspeicherbereiche (22c) gelesen und an das wenigstens eine Kryptomodul übertragen werden. Durch das wenigstens eine Kryptomodul wird jeweils ein Ist-Programm-MAC für den einen oder die mehreren Programmspeicherbereiche unter Verwendung des einen oder der mehreren Schlüssel bestimmt, wobei durch das HSM der jeweils eine Ist-Programm-MAC mit einem entsprechenden Referenz-Programm-MAC verglichen wird. Durch den Host werden ein oder mehrere Anwendungsprogramme, die in dem einen oder den mehreren Programmspeicherbereichen gespeichert sind, ausgeführt und durch das HSM wird die Ausführung eines Anwendungsprogramms unterbunden, wenn beim Vergleichen festgestellt wird, dass für einen Programmspeicherbereich, in dem dieses Anwendungsprogramm gespeichert ist, der Ist-Programm-MAC nicht gleich dem Referenz-Programm-MAC ist.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum abgesicherten Start einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Stand der Technik
  • In Maschinen und Fahrzeugen werden programmierbare Steuergeräte eingesetzt, um diese oder auch Komponenten davon, zu steuern. Beispielsweise kann ein Kraftfahrzeug Steuergeräte zur Motorsteuerung, für das Bremssystem usw. enthalten. Die Steuergeräte umfassen einen Prozessor mit einem oder, typischerweise, mit mehreren Prozessor-Kernen (vereinfacht auch als Host bzw. Hostsystem bezeichnet), der in einem Speicher gespeicherte Programme ausführt, um die Funktionen des Steuergeräts zu erzielen.
  • Aus Sicherheitsgründen kann vorgesehen sein, dass die Authentizität von Programmen durch das Steuergerät geprüft wird, um zu verhindern, dass ein manipuliertes Programm ausgeführt wird. Die Prüfung kann von einem sogenannten Hardware-Sicherheits-Modul, HSM, durchgeführt werden, das Funktionalitäten bereitstellt, um vom Steuergerät ausgeführte Programme und Kommunikation vor Manipulation abzusichern. Das HSM verwendet dazu Signaturen, die mittels kryptologischer Funktionen und (geheimer) Schlüssel berechnet werden. Nach Einschalten des Steuergeräts muss zunächst das Ladeprogramm des Hosts, das insbesondere mindestens ein Anwendungsprogramm lädt, auf seine Authentizität überprüft werden. Diese Prüfung der Authentizität des Ladeprogramms und von Anwendungsprogrammen durch das HSM verlängert die Startphase des Steuergeräts. Die Dauer der Startphase kann zusätzlich dadurch negativ beeinflusst werden, dass das HSM nur mit geringer Bandbreite an den Speicher, in dem das Ladeprogramm und Anwendungsprogramme gespeichert sind, angebunden ist und dass das Steuergerät zunächst durch das Ladeprogramm initialisiert werden muss und während eines anfänglichen Zeitraums mit einer verminderten Taktfrequenz läuft, die erst im Rahmen dieser Initialisierung erhöht wird.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum abgesicherten Start einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen 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, lediglich den Bootspeicherbereich des Hosts direkt mit dem Hardware-Sicherheit-Modul (HSM) auf Authentizität zu prüfen. Weitere Programmspeicherbereiche des Hosts werden nach Ausführung des Bootprogramms indirekt unter Verwendung von Kryptomodulen geprüft, wobei die Programmspeicherbereiche durch den Host in die Kryptomodule geladen werden. Dies ist vorteilhaft, da der Host typischerweise mit hoher Bandbreite an den Hostspeicher angebunden ist, während das HSM nur mit relativ geringer Bandbreite darauf zugreifen kann.
  • Spezifischer betrifft das Verfahren zum abgesicherten Start eine Recheneinheit, die einen Host, einen Hostspeicher, ein Hardware-Sicherheits-Modul, HSM, einen HSM-Speicher und wenigstens ein Kryptomodul aufweist, wobei das HSM und das wenigstens eine Kryptomodul dazu eingerichtet sind, Nachrichtenauthentifizierungscodes, MAC, zu bestimmen.
  • Der Host weist hierbei einen Prozessor mit einem oder bevorzugt mehreren Hostkernen auf und ist dazu eingerichtet, im Hostspeicher gespeicherte Programme (Bootprogramm, Anwendungsprogramme, Prüfprogramme) auszuführen.
  • Das HSM, auf das der Host ebenso wie auf den HSM-Speicher nicht zugreifen kann, weist zumindest einen HSM-Kern auf, in dem im HSM-Speicher gespeicherte Programme (HSM-Programme) ausgeführt werden können. Das HSM dient als Vertrauensanker der Recheneinheit und verwaltet insbesondere im HSM-Speicher gespeicherte geheime Schlüssel und Referenz-Nachrichtenauthentifizierungscodes (MAC). Weiter ist das HSM bzw. sind HSM-Programme dazu eingerichtet, kryptographische Funktionen bereitzustellen, insbesondere Algorithmen zur Berechnung von MACs, aber beispielsweise auch zur Verschlüsselung und Entschlüsselung von Daten.
  • Das Kryptomodul bzw. Kryptographie-Modul ist ein Hardwarebeschleuniger-Modul für kryptographische Funktionen, hier insbesondere das Berechnen von Nachrichtenauthentifizierungscodes (aber möglicherweise auch z.B. Verschlüsseln, Entschlüsseln,), d.h. es ist dazu eingerichtet kryptographische Funktionen auf zum Kryptomodul übertragene Daten anzuwenden. Erfindungsgemäß erfolgt die Berechnung bzw. Bestimmung von Ist-Programm-MACs durch das Kryptomodul. Da das Kryptomodul als Hardware implementiert ist, weist es eine hohe Geschwindigkeit und auch einen vorhersehbaren Zeitbedarf für die Durchführung einer kryptographische Funktion auf. Schlüssel werden vom HSM in das Kryptomodul geladen, das die Schlüssel beim Anwenden kryptographischer Funktionen auf vom Host zum Kryptomodul übertragene Daten verwendet. Die (geheimen) Schlüssel bleiben dem Host unbekannt.
  • Der Hostspeicher und der HSM-Speicher sind jeweils ein nichtflüchtiger Speicher, etwa Flash-Speicher, der z.B. mit dem Host, dem Kryptomodul und dem HSM in einem Chip integriert sein kann, eine SSD (Solid State Drive), oder auch eine Festplatte, die z.B. extern angebunden sein kann. Hostspeicher und HSM-Speicher können getrennte Bereiche in einem einzelnen Speicherelement sein oder sich auch in voneinander getrennten Speicherelementen befinden. Hostspeicher und HSM-Speicher können jeweils mehrere Speicherelemente umfassen. Der Host kann auf den HSM-Speicher bevorzugt nicht zugreifen.
  • 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 Speicherbereichen des Hostspeichers 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 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 HSM festgestellt werden, ob der Inhalt eines zu prüfenden Speicherbereichs unverändert (authentisch) ist oder geändert (kompromittiert) wurde. Wenn letzteres der Fall ist, muss davon ausgegangen, dass in dem Speicherbereich gespeicherte Programme oder Daten manipuliert wurden. MAC-Algorithmen 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.
  • Es wird zunächst durch das HSM ein Bootspeicherbereich im Hostspeicher gelesen, ein Ist-Boot-MAC für den Boot-Speicherbereich bestimmt und der Ist-Boot-MAC mit einem im HSM-Speicher gespeicherten Referenz-Boot-MAC verglichen. Anschließend wird durch den Host, wenn der Ist-Boot-MAC gleich dem Referenz-Boot-MAC ist, ein in dem Bootspeicherbereich gespeichertes Bootprogram ausgeführt. Dies kann als Authentizitätsprüfung des Bootprogramms angesehen werden. Das Bootprogramm bzw. Ladeprogramm führt grundlegende Initialsierungen der Recheneinheit durch, insbesondere kann es z.B. eine Betriebsfrequenz der Recheneinheit einstellen. Weitergehend ruft das Bootprogramm Anwendungsprogramme auf, die erfindungsgemäß der nachfolgenden Authentizitätsprüfung unterliegen.
  • Durch das HSM werden ein oder mehrere im HSM-Speicher gespeicherte Schlüssel in das wenigstens eine Kryptomodul geladen. Durch den Host werden ein oder mehrere Programmspeicherbereiche im Hostspeicher gelesen und an das wenigstens eine Kryptomodul übertragen. Das wenigstens eine Kryptomodul bestimmt jeweils einen Ist-Programm-MAC für den einen oder die mehreren Programmspeicherbereiche unter Verwendung des einen oder der mehreren Schlüssel. Durch das HSM wird der jeweils eine Ist-Programm-MAC mit einem entsprechenden im HSM-Speicher gespeicherten Referenz-Programm-MAC verglichen. Durch den Host werden ein oder mehrere Anwendungsprogramme, die in dem einen oder den mehreren Programmspeicherbereichen gespeichert sind, ausgeführt, wobei durch das HSM die Ausführung wenigstens eines des einen oder der mehreren Anwendungsprogramme unterbunden wird, wenn beim Vergleichen festgestellt wird, dass für einen Programmspeicherbereich, in dem dieses wenigstens eine Anwendungsprogramm gespeichert ist, der Ist-Programm-MAC nicht gleich dem Referenz-Programm-MAC ist.
  • Die Programmspeicherbereiche können disjunkt zueinander sein und/oder sich zumindest teilweise überlappen. Ebenso kann ein Programmspeicherbereich eine Teilmenge eines anderen Programmspeicherbereichs sein. Vorzugsweise umfasst ein Programmspeicherbereich den gesamten Hostspeicher, vorzugsweise einschließlich des Bootspeicherbereichs und eventueller Prüfspeicherbereiche. Vorzugsweise ist der gesamte (belegter plus unbelegter) Speicherplatz des Hostspeichers abzüglich der Summe der Größe aller Speicherbereiche (Programmspeicherbereiche + Bootspeicherbereich + Prüfspeicherbereiche, wobei eventuelle Überlappungen nur einmal gezählt werden) kleiner als der kleinste Programmspeicherbereich. Dadurch kann erkannt werden, wenn ein manipuliertes Anwendungsprogramm eine Kopie des nicht manipulierten Anwendungsprogramms in einem anderen Speicherbereich behält, die dann immer geprüft wird.
  • Die Bestimmung der MAC (sowohl im HSM als auch in den Kryptomodulen) berücksichtigt vorzugsweise eine Adressinformation der jeweiligen Speicherbereiche.
  • Der Referenz-MAC (Referenz-Boot-MAC, Referenz-Programm-MAC, Referenz-Prüf-MAC) wird in einem abgesicherten Verfahren ermittelt und an die Recheneinheit übermittelt. Z.B. kann bei der Flashprogrammierung des Hostspeichers mittels eines asymmetrischen Verfahrens (z.B. RSA, ECC) die Integrität der programmierten Software sichergestellt werden. Hierbei kann gleichzeitig der Referenz-MAC ermittelt bzw. berechnet werden. Der Referenz-MAC ist also ein MAC, der einem nicht manipulierten Zustand der Software (Bootprogramm, Anwendungsprogramm, Prüfprogramm) entspricht. Der berechnete Referenz-MAC wird dann über eine gesicherte Kommunikationsverbindung an die Recheneinheit, genauer an das HSM bzw. den HSM-Speicher, übermittelt.
  • Bevorzugt wird mit dem Ausführen eines Anwendungsprogramms erst begonnen, nachdem das Bestimmen und Vergleichen des Ist-Programm-MAC eines Programmspeicherbereichs, in dem das Programm gespeichert ist, mit dem entsprechenden Referenz-Programm-MAC erfolgt ist, und wenn dabei vom HSM festgestellt wird, dass der Ist-Programm-MAC gleich dem entsprechenden Referenz-Programm-MAC ist. Auf diese Weise kann kein Anwendungsprogramm ohne vorherige Authentizitätsprüfung gestartet werden. Es wird also eine hohe Sicherheit geboten.
  • Bevorzugt wird durch das HSM die Ausführung wenigstens eines des einen oder der mehreren Anwendungsprogramme unterbrochen, wenn beim Vergleichen festgestellt wird, dass für einen Programmspeicherbereich, in dem dieses wenigstens eine Anwendungsprogramm gespeichert ist, der Ist-Programm-MAC nicht gleich dem entsprechenden Referenz-Programm-MAC ist. Das heißt, ein bereits laufendes Anwendungsprogramm kann unterbrochen werden.
  • Bevorzugt wird durch das HSM wenigstens ein Prüfspeicherbereich im Hostspeicher gelesen, wenigstens ein Ist-Prüf-MAC für den wenigstens einen Prüfspeicherbereich bestimmt und der wenigstens eine Ist-Prüf-MAC mit wenigstens einem entsprechenden im HSM-Speicher gespeicherten Referenz-Prüf-MAC verglichen. Durch den Host wird, wenn der wenigstens eine Ist-Prüf-MAC gleich dem wenigstens eine Referenz-Prüf-MAC ist, ein in dem wenigstens einen Prüfspeicherbereich gespeichertes wenigstens eines Prüfprogramm ausgeführt. Das wenigstens eine Prüfprogramm ist, wenn es im Host ausgeführt wird, dazu eingerichtet, den Schritt des Lesens eines oder mehrerer Programmspeicherbereiche im Hostspeicher und des Übertragens an das wenigstens eine Kryptomodul durch den Host durchzuführen, wobei bevorzugt unterschiedliche Prüfprogramme in unterschiedlichen Hostkernen des Hosts ausgeführt werden, die weiter bevorzugt von einem Hostkern, in dem das Bootprogramm ausgeführt wird, unterschiedlich sind. Die Prüfprogramme implementieren das Laden von Programmspeicherbereichen in das Kryptomodul. Hier ist es möglich, verschiedenen Prüfprogrammen verschiede Programmspeicherbereiche zuzuordnen, so dass die Durchführung des Verfahrens parallelisiert und somit beschleunigt werden kann.
  • Bevorzugt wird durch das HSM wenigstens eine Prüfaufforderung an den Host gesendet, wenigstens einen zu prüfenden Programmspeicherbereich im Hostspeicher bis spätestens zu einem bestimmten Prüfzeitpunkt zu lesen und an das Kryptomodul zu übertragen. Weiter bevorzugt wird die Ausführung von in dem wenigstens einen zu prüfenden Programmspeicherbereich gespeicherten Programmen unterbunden, wenn vom HSM festgestellt wird, dass innerhalb einer bestimmten Zeitspanne nach dem in der wenigstens einen Prüfaufforderung bestimmten Prüfzeitpunkt kein Ist-Programm-MAC für den wenigstens einen zu prüfenden Programmspeicherbereich bestimmt wurde oder dass der Ist-Programm-MAC nicht gleich dem Referenz-Program-MAC ist. Die Zeitspanne berücksichtigt insbesondere die Verarbeitungsdauer durch das Kryptomodul. Gemäß dieser Ausführungsform wird eine Überwachungsfunktionalität implementiert, wobei der Host gegenüber dem HSM innerhalb einer gewissen Zeit beweisen muss, dass die Prüfung der jeweiligen Speicherbereiche erfolgte.
  • Bevorzugt umfassen die Prüfzeitpunkte Zeitpunkte, die in einem vorbestimmten zeitlichen Abstand nach Startzeitpunkten der Ausführung des Bootprogramms und/oder, gegebenenfalls, der Ausführung des wenigstens einen Prüfprogramms und/oder der Ausführung eines Anwendungsprogramms liegen; wobei im Fall, dass der Startzeitpunkt eines Anwendungsprogramms verwendet wird, der wenigstens eine zu prüfende Programmspeicherbereich ein Programmspeicherbereich ist, in dem das Anwendungsprogramm gespeichert ist. Ein vorteilhafter Effekt dieser Ausführung liegt darin, dass bereits ausgeführte Programme, die erst während der Laufzeit unerlaubt geändert wurden, als manipuliert erkannt werden können und unterbrochen werden können.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Die Recheneinheit umfasst einen Host, einen Hostspeicher, ein Hardware-Sicherheits-Modul, HSM, einen HSM-Speicher und wenigstens ein Kryptomodul, wobei das HSM und das wenigstens eine Kryptomodul dazu eingerichtet sind, Nachrichtenauthentifizierungscodes, MAC, zu bestimmen.
  • Bevorzugt umfasst die Recheneinheit mehrere Kryptomodule. Ebenso bevorzugt umfasst der Host mehrere Hostkerne, wobei die Anzahl der Hostkerne größer oder, weiter bevorzugt, gleich der Anzahl der Kryptomodule ist. Diese Maßnahmen ermöglichen es die Authentizitätsprüfung mehrerer Programmspeicherbereiche parallel auszuführen und damit das Verfahren und den Start der Recheneinheit bzw. der Anwendungsprogramme weiter zu beschleunigen.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
  • 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 schematisch den Aufbau einer Recheneinheit gemäß einer Ausführungsform;
    • 2 zeigt ein Ablaufdiagramm des Verfahrens zum abgesicherten Start einer Recheneinheit gemäß einer bevorzugten Ausführungsform.
  • Ausführungsform(en) der Erfindung
  • 1 stellt schematisch den Aufbau einer Recheneinheit 1, z.B. eines Steuergeräts in einem Kraftfahrzeug oder in einer Maschine in einer industriellen Anlage, die zur Implementierung der Erfindung verwendet werden kann, dar. Die Recheneinheit 1 umfasst als Berechnungselemente einen Host 2, ein Hardware-Sicherheits-Modul (HSM) 4 und wenigstens ein Kryptomodul 6. Ebenso sind ein nichtflüchtiger HSM-Speicher 8 und ein nichtflüchtiger Hostspeicher 10 in der Recheneinheit 1 umfasst.
  • Weiterhin kann die Recheneinheit 1 wenigstens eine externe Schnittstelle 12 aufweisen, die mit dem Host verbunden ist. Diese wenigstens eine optionale externe Schnittstelle 12, die eine serielle oder parallele Schnittstelle, z.B. eine Ethernet-Schnittstelle, eine CAN-Busschnittstelle, eine USB-Schnittstelle oder Ähnliches, sein kann, dient zur Kommunikation der Recheneinheit mit externen Geräten; z.B. könnte ein Motor-Steuergerät mit Sensoren oder anderen Steuergeräten über einen CAN-Bus verbunden sein. Einige oder alle dieser Elemente können in einem einzelnen Chip beispielsweise in Form eines Mikrocontrollers integriert sein.
  • Der Host 2 weist einen oder bevorzugt mehrere Rechenkerne 20, als Host-Kerne bezeichnet, auf, in denen Computerprogramme, vereinfacht auch als Programme bezeichnet, ausgeführt werden können. Programme, die die eigentliche Funktion der Recheneinheit, bei einem Motor-Steuergerät z.B. die Steuerung des Motors implementieren, werden im Weiteren als Anwendungsprogramme bzw. Anwendungssoftware bezeichnet. Ebenso ist (wenigstens) ein Bootprogramm bzw. Startprogramm vorgesehen, das bei Ausführung insbesondere eine Initialisierung der Recheneinheit bzw. von Elementen der Recheneinheit vornimmt und anschließend Anwendungsprogramme aufrufen kann. Weiterhin kann wenigstens ein Speicherprüfprogramm bzw. Prüfprogramm zur Ausführung vorgesehen sein, das, wenn ausgeführt, eine Authentizitäts-Prüfung von Speicherbereichen ermöglicht. Ein solches Prüfprogramm kann auch Teil des Bootprogramms sein.
  • Die Programme sind in einem Hostspeicher 10 gespeichert, der mehrere Speicherbereiche aufweist. Beispielhaft sind Speicherbereiche 22a, 22b, 22c benannt. Das Bootprogramm kann etwa in einem Bootspeicherbereich 22a gespeichert sein. Das wenigstens eine Prüfprogramm kann in einem Prüfspeicherbereich 22b gespeichert sein. Anwendungsprogramme können in weiteren Anwendungsspeicherbereichen 22c gespeichert sein. Auch wenn hier der Hostspeicher als einzelnes Speicherelement gezeichnet ist, kann dieser im Allgemeinen mehrere Speicherelemente bzw. Hostspeicherelemente umfassen.
  • Der Hostspeicher 10 ist mit dem Host 2 über eine Datenverbindung 24, z.B. eine serielle oder parallele Verbindung, zum Datenaustausch verbunden, wobei der Host (bzw. dessen Rechenkerne) sowohl Daten aus dem Hostspeicher lesen als auch Daten in den Hostspeicher schreiben kann. Es ist auch möglich, dass der Hostspeicher oder zumindest eines von mehreren Hostspeicherelementen als externer Hostspeicher bzw. externes Hostspeicherelement ausgeführt ist, der bzw. das über die externe Schnittstelle 12 angebunden ist.
  • Das HSM 4, das sicherheitsrelevante Funktionalitäten bereitstellt, umfasst wenigstens einen nicht dargestellten Rechenkern, als HSM-Kern bezeichnet, in dem wenigstens ein im HSM-Speicher 8 gespeichertes Programm, als HSM-Programm bezeichnet, ausgeführt werden kann, das diese Funktionalitäten implementiert. Diese Funktionalitäten können kryptographische Funktionen umfassen, insbesondere die Verschlüsselung und/oder Entschlüsselung von Daten oder das Bestimmen und/oder Prüfen von Nachrichtenauthentifizierungscodes. Das HSM 4 ist mit dem Host über eine Verbindung 26, z.B. eine serielle oder parallele Verbindung, zum Datenaustausch verbunden. Daten können also vom Host zum HSM übertragen werden, das diese z.B. verschlüsselt oder entschlüsselt oder Nachrichtenauthentifizierungscodes prüft. Insbesondere ist das HSM 4 bzw. das von diesem ausgeführte HSM-Programm dazu eingerichtet, die Ausführung von Programmen im Host 2 zu unterbinden, d.h. mit dem Start der Ausführung eines Programms wird solange gewartet, bis eine Erlaubnis vom HSM vorliegt, oder die Ausführung eines bereits laufenden Programms wird beendet.
  • Das HSM 4 ist weiterhin mit dem Hostspeicher 10 über eine Verbindung 28, z.B. eine serielle oder parallele Verbindung, zum Datenaustausch verbunden, wobei hier ein Lesezugriff durch das HSM auf den Hostspeicher möglich ist. Ein Schreibzugriff kann, muss aber nicht implementiert sein. Die Verbindung 28 zwischen HSM und Hostspeicher weist typischerweise eine deutlich geringere Bandbreite, z.B. nur ein Zehntel, auf als die Verbindung 24 zwischen Host und Hostspeicher.
  • Es kann auch eine Verbindung zwischen HSM 4 und der externen Schnittstelle 12 vorgesehen sein (nicht gezeigt), z.B. um ein Update des HSM-Programms, von Schlüsseln und/oder von Nachrichtenauthentifizierungscodes direkt über das HSM zu ermöglichen, d.h. ohne indirekt über den Host Daten zum HSM übertragen.
  • Der HSM-Speicher 8 ist (bevorzugt nur) mit dem HSM 4 mittels einer Verbindung 28, z.B. einer seriellen oder parallelen Verbindung, zum Datenaustausch verbunden, wobei das HSM Daten sowohl aus dem HSM-Speicher lesen als auch in diesen schreiben kann. Bevorzugt besteht keine Verbindung vom HSM-Speicher 8 zum Host 2; ein Lesen oder Ändern sicherheitsrelevanter Daten (Schlüssel, Nachrichtenauthentifizierungscodes, ...), die im HSM-Speicher gespeichert sind, ist also durch den Host nicht möglich.
  • Im HSM-Speicher 8 sind neben dem HSM-Programm insbesondere geheime Schlüssel 32 und Referenz-Nachrichtenauthentifizierungscodes (Referenz-MAC) 34a, 34b gespeichert.
  • Das Kryptomodul 6 bzw. Kryptographie-Modul ist ein Hardwarebeschleuniger-Modul für kryptographische Funktionen (z.B. Verschlüsseln, Entschlüsseln, Berechnen von Nachrichtenauthentifizierungscodes), d.h. es ist dazu eingerichtet kryptographische Funktionen auf zum Kryptomodul übertragene Daten anzuwenden. Dabei verwendete geheime Schlüssel können in einem Schlüsselregister 36 gespeichert werden. Es können mehrere Kryptomodule vorgesehen sein, wobei lediglich eines eingezeichnet ist und weitere, für die die Erläuterungen bezüglich des eingezeichneten ebenso gelten, durch Punkte angedeutet sind.
  • Das Kryptomodul 6 ist insbesondere dazu eingerichtet, Nachrichtenauthentifizierungscodes (MAC) für übertragene Daten unter Verwendung eines im Schlüsselregister 36 gespeicherten Schlüssels zu berechnen bzw. zu bestimmen. Das Ergebnis, d.h. der berechnete MAC, wird vom Kryptomodul 6 in einem Ergebnisregister 38 abgelegt.
  • Das (wenigstens eine) Kryptomodul 6 ist über eine Verbindung 40 mit dem Host 2 verbunden und über eine Verbindung 42 mit dem HSM 4 verbunden. Beide Verbindungen können unabhängig voneinander serielle oder parallele Verbindungen sein.
  • Die Verbindung 40 zwischen Host 2 und Kryptomodul 6 ist dabei vorteilhafterweise so ausgelegt, dass der Host nur Daten, für die ein MAC berechnet werden soll, zum Kryptomodul 6 übertragen kann, aber das Schlüsselregister 36 weder auslesen noch beschreiben kann und das Ergebnisregister 38 nicht beschreiben kann (zusätzlich könnte auch ein Lesezugriff auf das Ergebnisregister unterbunden werden). Sollen auch Verschlüsselung und/oder Entschlüsselung als kryptographische Funktion durch das Kryptomodul durchgeführt werden, kann vorgesehen sein, dass das Kryptomodul 6 ver- bzw. entschlüsselte Daten zum Host überträgt. Auch hier hat allerdings der Host keinen Schreib- und Lesezugriff auf das Schlüsselregister und zumindest keinen Schreibzugriff auf das Ergebnisregister.
  • Die Verbindung 42 zwischen HSM 4 und Kryptomodul 6 ist andererseits so ausgelegt, dass das HSM 4 das Schlüsselregister 40 beschreiben kann, also Schlüssel in dieses schreiben kann, und das Ergebnisregister 42 lesen kann, also berechnete MACs auslesen kann.
  • Durch diese Auslegung der Verbindungen 40, 42 zwischen Kryptomodul 6 und Host 2 bzw. HSM 4 ist sichergestellt, dass der Host bzw. ein darin ausgeführtes, möglicherweise kompromittiertes Programm nicht in den Besitz geheimer Schlüssel gelangen kann oder das Schlüsselregister manipulieren kann.
  • 2 stellt ein Ablaufdiagramm eines Verfahrens zum abgesicherten Start einer Recheneinheit gemäß einer bevorzugten Ausführungsform der Erfindung dar. Unmittelbar nach dem Start oder Reset der Recheneinheit in Schritt 100 wird in Schritt 102 zunächst die Authentizität des Bootprogramms überprüft. Dazu liest das HSM, genauer das im HSM-Kern ausgeführte HSM-Programm, einen Boot-speicherbereich, in dem das Bootprogramm gespeichert ist, aus dem Hostspeicher und berechnet bzw. bestimmt einen Ist-Boot-MAC des gelesenen Bootspeicherbereichs, d.h. wendet einen MAC-Algorithmus auf die im Bootspeicherbereich enthaltenen und aus diesem gelesenen Daten an. Dabei wird ein im HSM-Speicher gespeicherter geheimer Schlüssel verwendet. Der berechnete Ist-Boot-MAC wird durch das HSM mit einem Referenz-Boot-MAC, der im HSM-Speicher gespeichert ist, verglichen.
  • Wenn der Ist-Boot-MAC nicht gleich dem Referenz-Boot-MAC ist, also der Boot-speicherbereich gegenüber einem früheren Referenzzustand verändert ist und somit die Authentizität des Bootprogramms nicht bestätigt wird, wird mit Schritt 103 fortgefahren, in dem geeignete Maßnahmen ergriffen werden, um die Ausführung eines manipulierten Bootprogramms möglichst zu verhindern. Eine mögliche Maßnahme ist, eine Fehlermeldung auszugeben bzw. zu senden (vorzugsweise ist dazu das HSM mit einer externen Schnittstelle verbunden) und die Recheneinheit bevorzugt zu stoppen. Anschließend kann der Fehler analysiert werden und z.B. der Hostspeicher bzw. zumindest der Boot-Speicherbereich neu programmiert werden, oder, falls bei der Fehleranalyse festgestellt wird, dass der Referenz-Boot-MAC falsch war, kann dieser im HSM-Speicher geändert werden. Eine andere mögliche Maßnahme ist, ein Backup-Bootprogramm, das in einem unveränderlichen Speicher gespeichert ist zu starten. Andere mögliche Maßnahmen sind ebenso denkbar.
  • Wenn andererseits der Ist-Boot-MAC gleich dem Referenz-Boot-MAC ist, also der Bootspeicherbereich gegenüber einem früheren Referenzzustand unverändert ist und somit die Authentizität des Bootprogramms bestätigt wird, gibt das HSM dessen Ausführung frei. Entsprechend wird mit Schritt 104 fortgefahren, in dem das Bootprogramm ausgeführt wird. Das Bootprogramm nimmt typischerweise eine Initialisierung der Recheneinheit vor und veranlasst anschließend den Start von Anwendungsprogrammen. Die Initialisierung kann insbesondere das Einstellen einer Betriebsfrequenz der Recheneinheit umfassen, zumeist wird dazu eine Phasenregelschleife (PLL, engl.: Phase Locked Loop) hochgefahren. Vor diesem Einstellen läuft die Recheneinheit beispielsweise nur mit einer relativ geringen Backup-Frequenz.
  • In Schritt 106, der auch parallel zu Schritt 104 (Ausführen des Bootprogramms) durchgeführt werden kann, lädt das HSM geheime Schlüssel in das Schlüsselregister des Kryptomoduls, d.h. das HSM liest die im HSM-Speicher gespeicherten Schlüssel aus dem HSM-Speicher und überträgt bzw. schreibt sie in das Schlüsselregister des Kryptomoduls. Sind mehrere Kryptomodule vorhanden, werden Schlüssel entsprechend auch in diese geladen. Hierbei kann eine Zuordnung bestimmter Schlüssel zu bestimmten Kryptomodulen vorgegeben sein.
  • Im optionalen Schritt 108 prüft das HSM die Authentizität wenigstens eines Prüfprogramms. Dazu liest das HSM wenigstens einen Prüfspeicherbereich, in dem das wenigstens eine Prüfprogramms gespeichert ist, aus dem Hostspeicher und berechnet bzw. bestimmt wenigstens einen Ist-Prüf-MAC des gelesenen wenigstens einen Prüfspeicherbereichs, d.h. wendet einen MAC-Algorithmus auf die in dem wenigstens einen Prüfspeicherbereich enthaltenen und aus diesem gelesenen Daten an. Der berechnete wenigstens eine Ist-Prüf-MAC wird durch das HSM mit wenigstens einem Referenz-Prüf-MAC, der im HSM-Speicher gespeichert ist, verglichen. Es ist möglich, dass ein Prüfspeicherbereich mehrere Prüfprogramme enthält, oder dass sich ein Prüfprogramm über mehrere Prüfspeicherbereiche erstreckt, die Anzahl der Prüfprogramme muss also nicht identisch zur Anzahl der Prüfspeicherbereiche sein.
  • Als Prüfprogramm wird ein Programm bezeichnet, das, wenn es im Host ausgeführt wird, insbesondere Schritt 110 implementiert. Der Schritt 108 ist optional, da ein solches Prüfprogramm bereits im Bootprogramm umfasst sein kann, das bereits in Schritt 102 auf Authentizität geprüft wurde.
  • Wenn beim Vergleich festgestellt wird, dass ein Ist-Prüf-MAC nicht gleich dem entsprechenden Referenz-Prüf-MAC ist, also der entsprechende Prüfspeicherbereich gegenüber einem früheren Referenzzustand verändert ist und somit die Authentizität des darin gespeicherten Prüfprogramms nicht bestätigt wird, wird mit Schritt 109 fortgefahren, in dem geeignete Maßnahmen ergriffen werden, um die Ausführung eines manipulierten Prüfprogramms möglichst zu verhindern. Insbesondere kann in Schritt 109 die Ausführung des Prüfprogramms unterbunden werden, d.h. das Prüfprogramm wird nicht gestartet. Ebenso kann eine Fehlermeldung ausgegeben bzw. gesendet werden, um z.B. einen Benutzer der Recheneinheit auf die mögliche Manipulation hinzuweisen, der daraufhin den Fehler analysieren und etwa eine Neuprogrammierung des Prüfspeicherbereichs durchführen kann.
  • Wenn andererseits beim Vergleich festgestellt wird, dass ein Ist-Prüf-MAC gleich dem entsprechenden Referenz-Prüf-MAC ist, also der entsprechende Prüfspeicherbereich gegenüber einem früheren Referenzzustand unverändert ist, wird mit Schritt 110 fortgefahren.
  • In Schritt 110 lädt der Host, genauer ein darin ausgeführtes Prüfprogramm oder Bootprogramm (falls dieses ein Prüfprogramm umfasst), einen Programmspeicherbereich im Hostspeicher in das Kryptomodul, d.h. der Host liest den Programmspeicherbereich aus dem Hostspeicher und überträgt ihn an das Kryptomodul. Genauer gesagt werden die im Programmspeicherbereich gespeicherten Daten gelesen und an das Kryptomodul übertragen. Als Programmspeicherbereich wird ein Speicherbereich im Hostspeicher bezeichnet, in dem ein oder mehrere Anwendungsprogramme zumindest teilweise gespeichert sind. Ein Anwendungsprogramm kann sich auch über mehrere Programmspeicherbereiche erstrecken. Es besteht also nicht notwendigerweise eine eins-zu-eins-Zuordnung zwischen Programmspeicherbereichen und Anwendungsprogrammen, auch wenn dies natürlich möglich und vorteilhaft ist, da es eine eindeutige Zuordnung von Manipulationsversuchen ermöglicht.
  • In Schritt 112 berechnet bzw. bestimmt das Kryptomodul einen Ist-Programm-MAC für den vom Host übertragenen Programmspeicherbereich. Das Kryptomodul wendet also einen MAC-Algorithmus auf die vom Host übertragenen Daten an, wobei im MAC-Algorithmus ein im Schlüsselspeicher gespeicherter Schlüssel verwendet wird, der im Schritt 106 vom HSM zum Kryptomodul bzw. Schlüsselspeicher übertragen wurde. Wenn mehrere Schlüssel vorhanden sind, muss klarerweise eine Zuordnung von Schlüssel zu Programmspeicherbereich erfolgen, z.B. über eine geeignete Kennzeichnung, die eventuell auch vom HSM vorgegeben wird. Der bestimmte Ist-Programm-MAC wird im Ergebnisregister des Kryptomoduls gespeichert.
  • Schritt 110 (Laden eines Programmspeicherbereichs in das Kryptomodul) und Schritt 112 (Bestimmen des Ist-Programm-MAC) werden nicht notwendigerweise nacheinander durchgeführt, sondern werden typischerweise parallel durchgeführt. Dies ist insbesondere bei MAC-Algorithmen der Fall, die Daten blockweise verarbeiten, wie etwa die erwähnten HMAC und CMAC, die eine Blockchiffre bzw. Hashfunktion auf Blöcke von Daten anwenden und diese verketten. Es wird also ein Strom von Daten(blöcken) durch den Host zum Kryptomodul übertragen und dort parallel in Blöcken verarbeitet.
  • In Schritt 114 vergleicht das HSM den Ist-Programm-MAC mit einem entsprechenden im HSM-Speicher gespeicherten Referenz-Programm-MAC. Das HSM liest dazu den Ist-Programm-MAC aus dem Ergebnisregister des Kryptomoduls und liest den entsprechenden Referenz-Programm-MAC aus dem HSM-Speicher.
  • Wenn beim Vergleich festgestellt wird, dass der Ist-Programm-MAC nicht gleich dem entsprechenden Referenz-Programm-MAC ist, also der entsprechende Programmspeicherbereich gegenüber einem früheren Referenzzustand verändert ist und somit die Authentizität darin gespeicherter Anwendungsprogramme nicht bestätigt wird, wird mit Schritt 115 fortgefahren, in dem geeignete Maßnahmen ergriffen werden, um die Ausführung eines manipulierten Anwendungsprogramms möglichst zu verhindern. Insbesondere kann in Schritt 115 die Ausführung des Anwendungsprogramms unterbunden werden, d.h. das Anwendungsprogramm wird nicht gestartet oder, falls diese bereits ausgeführt wird, unterbrochen. Ebenso kann eine Fehlermeldung ausgegeben bzw. gesendet werden, um z.B. einen Benutzer der Recheneinheit auf die mögliche Manipulation hinzuweisen, der daraufhin den Fehler analysieren kann und etwa eine Neuprogrammierung des Programmspeicherbereichs durchführen kann.
  • Wenn andererseits beim Vergleich festgestellt wird, dass der Ist-Programm-MAC gleich dem entsprechenden Referenz-Programm-MAC ist, also der entsprechende Programmspeicherbereich gegenüber einem früheren Referenzzustand unverändert ist, wird mit Schritt 116 fortgefahren, in dem der Host ein oder mehrere Anwendungsprogramme, das bzw. die in dem Programmspeicherbereich gespeichert ist bzw. sind, ausführt.
  • Im Prinzip ist es möglich, dass, anders als in der dargestellten Reihenfolge, Anwendungsprogramme, ohne eine vorherige Prüfung abzuwarten, sofort durch den Host bzw. das Bootprogramm gestartet werden und die Anwendungsprogramme später, während sie bereits ausgeführt werden, unterbrochen werden, wenn in Schritt 114 festgestellt wird, dass ein Programmspeicherbereich, in dem ein jeweiliges Anwendungsprogramm gespeichert ist, einen Ist-Programm-MAC ungleich dem entsprechenden Referenz-Programm-MAC aufweist. Dies hat den Vorteil, dass Anwendungsprogramme schnellstmöglich gestartet werden. Eine Manipulation wird erst später erkannt, etwa entsprechend der Ausführung in Schritt 114.
  • Bevorzugt ist allerdings vorgesehen, den Start eines Anwendungsprogramms erst dann zu erlauben, wenn der Programmspeicherbereich, in dem dieses gespeichert ist, geprüft wurde, also nachdem der zugehörige Ist-Programm-MAC bestimmt wurde und durch das HSM mit dem entsprechenden Referenz-Programm-MAC verglichen wurde. Schritt 116 erfolgt also bevorzugt erst, nachdem der Programmspeicherbereich, in dem ein jeweiliges Anwendungsprogramm gespeichert ist, entsprechend den Schritten 110, 112, 114 geprüft wurde.
  • Diese Ausführung bietet eine höhere Sicherheit, da der Start manipulierter Anwendungsprogramm von vornherein verhindert wird.
  • Im optionalen Schritt 118 kann gemäß einer bevorzugten Ausführungsform vorgesehen sein, das das HSM eine Prüfaufforderung an den Host sendet (Pfeil 118a), in der der Host aufgefordert wird, einen Programmspeicherbereich in das Kryptomodul zu laden. In der Prüfaufforderung sind dabei der zu ladende Programmspeicherbereich und ein bestimmter Prüfzeitpunkt angegeben. Der Host (bzw. Prüfprogramm oder Bootprogramm) sollte dann bis zum angegebenen Prüfzeitpunkt entsprechend Schritt 110 den Programmspeicherbereich in das Kryptomodul laden oder zu diesem Prüfzeitpunkt zumindest damit begonnen haben. Das Kryptomodul bestimmt entsprechend Schritt 112 einen entsprechenden Ist-Programm-MAC für den übertragenen Programmspeicherbereich.
  • Eine bestimmte Zeitspanne nach dem in der Prüfaufforderung angegebenen Prüfzeitpunkt springt (Pfeil 118b) das HSM zu Schritt 114, vergleicht also den aufgrund der Prüfaufforderung berechneten Ist-Programm-MAC mit dem entsprechenden Referenz-Programm-MAC und unterbindet (Schritt 115) oder erlaubt (Schritt 116) die Ausführung von Programmen, die in dem in der Prüfaufforderung angegebenen Programmspeicherbereich gespeichert sind. Die Zeitspanne berücksichtigt insbesondere die Verarbeitungsdauer durch das Kryptomodul, kann also bevorzugt durch die Verarbeitungsdauer des Kryptomoduls (die an sich bekannt ist, insbesondere wenn das Kryptomodul als Hardwaremodul realisiert ist) gegeben sein, wobei noch eine Größe des zu prüfenden Programmspeicherbereichs berücksichtigt werden kann.
  • Selbstverständlich kann diese Vorgehensweise für mehrere oder alle Programmspeicherbereiche oder auch für den Bootspeicherbereich oder für Prüfspeicherbereiche durchgeführt werden, wobei verschiedene Prüfzeitpunkte vorgegeben werden können und ein Programmspeicherbereich auch mehrmals geprüft werden kann.
  • Ein Prüfzeitpunkt kann beispielsweise so bestimmt werden, dass er in einem bestimmten zeitlichen Abstand nach dem Start der Recheneinheit, nach dem Beginn der Ausführung eines Prüfprogramms oder des Bootprogramms, oder nach dem Beginn der Ausführung eines Anwendungsprogramms, das in dem zu prüfenden Programmspeicherbereich gespeichert ist, liegt. Ebenso ist es möglich, unabhängig davon Prüfzeitpunkte vorzugeben. Beispielsweise können ein Programmspeicherbereich und ein entsprechender Prüfzeitpunkt zufällig ausgewählt werden. Auch können Programmspeicherbereiche an mehreren, z.B. gleichmäßig oder zufällig beabstandeten, Prüfzeitpunkten überprüft werden. Diese Vorgehensweisen ermöglichen es, auch nach längerer Laufzeit der Recheneinheit Manipulationsversuche, die bei Start der Recheneinheit noch nicht vorlagen und während der Laufzeit erfolgen, zu erkennen.

Claims (12)

  1. Verfahren zum abgesicherten Start einer Recheneinheit, die einen Host, einen Hostspeicher, ein Hardware-Sicherheits-Modul, HSM, einen HSM-Speicher und wenigstens ein Kryptomodul aufweist, wobei das HSM und das wenigstens eine Kryptomodul dazu eingerichtet sind, Nachrichtenauthentifizierungscodes, MAC, zu bestimmen; wobei durch das HSM ein Bootspeicherbereich im Hostspeicher gelesen wird, ein Ist-Boot-MAC für den Boot-Speicherbereich bestimmt wird und der Ist-Boot-MAC mit einem im HSM-Speicher gespeicherten Referenz-Boot-MAC verglichen wird; wobei durch den Host, wenn der Ist-Boot-MAC gleich dem Referenz-Boot-MAC ist, ein in dem Bootspeicherbereich gespeichertes Bootprogram ausgeführt wird; wobei durch das HSM ein oder mehrere im HSM-Speicher gespeicherte Schlüssel in das wenigstens eine Kryptomodul geladen werden; wobei durch den Host ein oder mehrere Programmspeicherbereiche im Hostspeicher gelesen werden und an das wenigstens eine Kryptomodul übertragen werden; wobei durch das wenigstens eine Kryptomodul jeweils ein Ist-Programm-MAC für den einen oder die mehreren Programmspeicherbereiche unter Verwendung des einen oder der mehreren Schlüssel bestimmt wird; wobei durch das HSM der jeweils eine Ist-Programm-MAC mit einem entsprechenden im HSM-Speicher gespeicherten Referenz-Programm-MAC verglichen wird; wobei durch den Host ein oder mehrere Anwendungsprogramme, die in dem einen oder den mehreren Programmspeicherbereichen gespeichert sind, ausgeführt werden; und wobei durch das HSM die Ausführung wenigstens eines des einen oder der mehreren Anwendungsprogramme unterbunden wird, wenn beim Vergleichen festgestellt wird, dass für einen Programmspeicherbereich, in dem dieses wenigstens eine Anwendungsprogramm gespeichert ist, der Ist-Programm-MAC nicht gleich dem Referenz-Programm-MAC ist.
  2. Verfahren nach Anspruch 1, wobei mit dem Ausführen eines Anwendungsprogramms erst begonnen wird, nachdem das Bestimmen und Vergleichen des Ist-Programm-MAC eines Programmspeicherbereichs, in dem das Programm gespeichert ist, mit dem entsprechenden Referenz-Programm-MAC erfolgt ist, und wenn dabei vom HSM festgestellt wird, dass der Ist-Programm-MAC gleich dem entsprechenden Referenz-Programm-MAC ist.
  3. Verfahren nach einem der vorstehenden Ansprüche, wobei durch das HSM die Ausführung wenigstens eines des einen oder der mehreren Anwendungsprogramme unterbunden wird, wenn beim Vergleichen festgestellt wird, dass für einen Programmspeicherbereich, in dem dieses wenigstens eine Anwendungsprogramm gespeichert ist, der Ist-Programm-MAC nicht gleich dem entsprechenden Referenz-Programm-MAC ist.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei durch das HSM wenigstens ein Prüfspeicherbereich im Hostspeicher gelesen wird, wenigstens ein Ist-Prüf-MAC für den wenigstens einen Prüfspeicherbereich bestimmt wird und der wenigstens eine Ist-Prüf-MAC mit wenigstens einem entsprechenden im HSM-Speicher gespeicherten Referenz-Prüf-MAC verglichen wird; wobei durch den Host, wenn der wenigstens eine Ist-Prüf-MAC gleich dem wenigstens eine Referenz-Prüf-MAC ist, wenigstens ein in dem wenigstens einen Prüfspeicherbereich gespeichertes Prüfprogramm ausgeführt wird; wobei das wenigstens eine Prüfprogramm, wenn es im Host ausgeführt wird, dazu eingerichtet ist, den Schritt des Lesens eines oder mehrerer Programmspeicherbereiche im Hostspeicher und des Übertragens an das wenigstens eine Kryptomodul durch den Host durchzuführen; wobei bevorzugt unterschiedliche Prüfprogramme in unterschiedlichen Hostkernen des Hosts, die weiter bevorzugt von einem Hostkern, in dem das Bootprogramm ausgeführt wird, unterschiedlich sind, ausgeführt werden.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei durch das HSM wenigstens eine Prüfaufforderung an den Host gesendet wird, wenigstens einen zu prüfenden Programmspeicherbereich im Hostspeicher bis spätestens zu einem bestimmten Prüfzeitpunkt zu lesen und an das Kryptomodul zu übertragen.
  6. Verfahren nach Anspruch 5, wobei die Ausführung von in dem wenigstens einen zu prüfenden Programmspeicherbereich gespeicherten Programmen unterbunden wird, wenn vom HSM festgestellt wird, dass innerhalb einer bestimmten Zeitspanne nach dem in der wenigstens einen Prüfaufforderung bestimmten Prüfzeitpunkt kein Ist-Programm-MAC für den wenigstens einen zu prüfenden Programmspeicherbereich bestimmt wurde oder dass der Ist-Programm-MAC nicht gleich dem Referenz-Program-MAC ist.
  7. Verfahren nach Anspruch 5 oder 6, wobei die Prüfzeitpunkte Zeitpunkte umfassen, die in einem vorbestimmten zeitlichen Abstand nach Startzeitpunkten der Ausführung des Bootprogramms und/oder, falls abhängig von Anspruch 4, der Ausführung des wenigstens einen Prüfprogramms und/oder der Ausführung eines Anwendungsprogramms liegen; wobei im Fall, dass der Startzeitpunkt eines Anwendungsprogramms verwendet wird, der wenigstens eine zu prüfende Programmspeicherbereich ein Programmspeicherbereich ist, in dem das Anwendungsprogramm gespeichert ist.
  8. Recheneinheit umfassend einen Host, einen Hostspeicher, ein Hardware-Sicherheits-Modul, HSM, einen HSM-Speicher und wenigstens ein Kryptomodul, wobei das HSM und das wenigstens eine Kryptomodul dazu eingerichtet sind, Nachrichtenauthentifizierungscodes, MAC, zu bestimmen; wobei die Recheneinheit dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  9. Recheneinheit nach Anspruch 8, umfassend mehrere Kryptomodule.
  10. Recheneinheit nach Anspruch 8 oder 9, wobei der Host mehrere Hostkerne aufweist und die Anzahl der Hostkerne größer oder, weiter bevorzugt, gleich der Anzahl der Kryptomodule ist.
  11. Computerprogramm, das eine Recheneinheit nach einem der Ansprüche 8 bis 10 dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 7 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.
  12. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 11.
DE102020216030.9A 2020-12-16 2020-12-16 Verfahren zum abgesicherten Start einer Recheneinheit Pending DE102020216030A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020216030.9A DE102020216030A1 (de) 2020-12-16 2020-12-16 Verfahren zum abgesicherten Start einer Recheneinheit
CN202111539771.4A CN114637996A (zh) 2020-12-16 2021-12-16 用于以确保安全的方式启动计算单元的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020216030.9A DE102020216030A1 (de) 2020-12-16 2020-12-16 Verfahren zum abgesicherten Start einer Recheneinheit

Publications (1)

Publication Number Publication Date
DE102020216030A1 true DE102020216030A1 (de) 2022-06-23

Family

ID=81847279

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020216030.9A Pending DE102020216030A1 (de) 2020-12-16 2020-12-16 Verfahren zum abgesicherten Start einer Recheneinheit

Country Status (2)

Country Link
CN (1) CN114637996A (de)
DE (1) DE102020216030A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022116869A1 (de) 2022-07-06 2024-01-11 Infineon Technologies Ag Verfahren zum ausführen eines programms auf einer datenverarbeitungsvorrichtung

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
AES instruction set. In: Wikipedia, the free encyclopedia. Bearbeitungsstatus: 05.12.2020. URL: https://en.wikipedia.org/w/index.php?title=AES_instruction_set&oldid=992383436 [abgerufen am 05.08.2021]
GASSER, M. [et al.]: The Digital Distributed System Security Architecture. In: Proceedings of the 12th National Computer Security Conference, Baltimore, Maryland, US 1989, S. 305-319. URL: https://csrc.nist.gov/CSRC/media/Publications/conference-paper/1989/10/10/proceedings-12th-national-computer-security-conference-1989/documents/1989-12th-NCSC-proceedings.pdf [abgerufen am 05.08.2021]
Hardware security module. In: Wikipedia, the free encyclopedia. Bearbeitungsstatus: 31.11.2020. URL: https://en.wikipedia.org/w/index.php?title=Hardware_security_module&oldid=986438843 [abgerufen am 05.08.2021]
Message authentication code. In: Wikipedia, the free encyclopedia. Bearbeitungsstatus: 14.12.2020. URL: https://en.wikipedia.org/w/index.php?title=Message_authentication_code&oldid=994178104 [abgerufen am 05.08.2021]
Multi-core processor. In: Wikipedia, the free encyclopedia. Bearbeitungsstatus: 18.11.2020. URL: https://en.wikipedia.org/w/index.php?title=Multi-core_processor&oldid=989274864 [abgerufen am 05.08.2021]
PARNO, B. [et al.]: Bootstrapping Trust in Commodity Computers. In: 2010 IEEE Symposium on Security and Privacy, 2010, S. 414-429. IEEE Xplore [online]. DOI: 10.1109/SP.2010.32

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022116869A1 (de) 2022-07-06 2024-01-11 Infineon Technologies Ag Verfahren zum ausführen eines programms auf einer datenverarbeitungsvorrichtung

Also Published As

Publication number Publication date
CN114637996A (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE102015209116A1 (de) Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
DE10392528T5 (de) Microcode-Patch-Authentifizierung
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112013007574T5 (de) Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102019128528A1 (de) Datenkryptografievorrichtungen und speichersysteme
WO2017102295A1 (de) Verfahren und sicherheitsmodul zum bereitstellen einer sicherheitsfunktion für ein gerät
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102020216030A1 (de) Verfahren zum abgesicherten Start einer Recheneinheit
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
EP3963490B1 (de) Verfahren und vorrichtung zum übertragen eines boot-codes mit verbesserter datensicherheit
DE102015112837A1 (de) Vorrichtung und Verfahren zur Verhinderung des Klonens von Code
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
DE102021110766B3 (de) Forensik-Modul und eingebettetes System
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung
DE102022200544A1 (de) Verfahren zur abgesicherten Bereitstellung eines zu schützenden Computerpro-gramms in einer Recheneinheit
DE102021110769A1 (de) Emulationssystem und Verfahren
DE102022209628A1 (de) Verfahren zum Überprüfen von Daten in einer Recheneinheit
DE102022202691A1 (de) Verfahren zur Durchführung einer abgesicherten Startsequenz einer Recheneinheit
DE102020207614A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102021207212A1 (de) Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul einer Recheneinrichtung assoziierten Daten

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed