-
Die Erfindung betrifft ein Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls und ein Computerprogramm zur Durchführung des Verfahrens, das auch als Hypervisor bezeichnet wird.
-
Stand der Technik
-
Steuergeräte sind elektronische Module, die bspw. in Kraftfahrzeugen eingesetzt werden, um Abläufe zu steuern und zu regeln. Hierzu sind die Steuergeräte Komponenten des Kraftfahrzeugs zugeordnet, deren Betrieb mit dem zugeordneten Steuergerät kontrolliert wird. Hierzu liest das Steuergerät von Sensoren erfasste Daten ein und wirkt durch die Ansteuerung von Aktoren auf den Betrieb ein.
-
Das beschriebene Verfahren kommt in Verbindung mit einem elektronischen Sicherheitsmodul zur Anwendung, das in einem Steuergerät, insbesondere im Automotive-Bereich, in sicherheitsrelevanten Bereichen eingesetzt wird. Bei den meisten Anwendungen in den sicherheitsrelevanten Bereichen ist das unmanipulierbare oder nicht einsehbare Speichern von Daten eine wesentliche Anforderung. Hierbei werden kryptographische Schlüssel eingesetzt, die in symmetrischen oder asymmetrischen Verschlüsselungsverfahren zur Anwendung kommen.
-
Die verwendeten Schlüssel und Verschlüsselungsverfahren stellen Geheimnisse dar, die vor Angreifern geheim gehalten werden müssen. Andere Anwendungen in sicherheitsrelevanten Bereichen betreffen bspw. den Schutz vor unerlaubten Veränderung, bspw. das Speichern von geänderten Seriennummern oder Kilometerständen, das Unterbinden von nicht genehmigten Tuningmaßnahmen usw.
-
Daher ist es erforderlich, in Steuergeräten sichere Umgebungen bereitzustellen, in denen Funktionen ausgeführt werden können, die diese Geheimnisse einsehen und/oder verändern müssen. Diese Umgebungen weisen regelmäßig eine sichere Recheneinheit bzw. CPU, die auch als secure CPU bezeichnet wird, sowie ein Speichermodul auf. Eine solche Umgebung wird hierin als Hardware-Sicherheitsmodul (HSM: Hardware Security Module) bezeichnet. Dieses stellt ein leistungsfähiges Modul mit Hardware- und Software-Komponenten dar, welches den Schutz und die Vertrauenswürdigkeit von eingebetteten Systemen verbessert. Insbesondere unterstützt das HSM dabei, sicherheitskritische Anwendungen und Daten zu schützen. Mit einem HSM können ebenfalls die Sicherheitskosten reduziert werden, während zugleich ein wirksamer Schutz vor Angreifern geboten werden kann. Bezüglich des grundlegenden Aufbaus eines HSM wird auf 3 verwiesen.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund werden ein Verfahren und ein Computerprogramm mit den Merkmalen der unabhängigen Patentansprüche vorgestellt. Ausgestaltungen des Verfahrens und des Computerprogramms gehen aus den abhängigen Ansprüchen und der Beschreibung hervor.
-
Gemäß dem vorgestellten Verfahren erfolgt eine strikte Trennung von Applikationen einschließlich zugehöriger Schlüssel oder Daten von den Systemressourcen, einschließlich der Software-Basisfunktionen, innerhalb des HSM, der Hauptrechenkerne bzw. Maincores oder in Kombination beider.
-
Das vorgestellte Computerprogramm, das auch als Hypervisor hierin bezeichnet wird, kommt auf einer Recheneinheit, insbesondere auf einer Recheneinheit in einem elektronischen Hardware-Sicherheitsmodul (HSM), zur Ausführung.
-
Bei dem Verfahren wird somit ein Hypervisor eingesetzt. Dieser Hypervisor, der auch als Virtual Machine Monitor bezeichnet wird, ist ein Computerprogramm, das eine virtuelle Maschine bereitstellt. Dieser Hypervisor stellt eine übergeordnete Instanz dar, die Anwendungen steuern und ggf. unterbinden kann. Insbesondere regelt der Hypervisor Ressourcen- und Speicherzugriffe und die Ausführung von Software hinsichtlich Dauer, Zeitpunkt und Wiederholrate.
-
Alle Hardware-Ressourcen im HSM werden exklusiv von einem Hypervisor verwaltet. Dadurch ist eine klare Trennung unterschiedlicher Applikationen, die im HSM ausgeführt werden, möglich. Gegenseitige Beeinflussung, gezielt oder zufällig, wird ausgeschlossen, u. a. bspw. durch Verwendung der MPU (Memory Protection Unit).
-
Die Hypervisorfunktionalität basiert auf der MPU-Einheit im HSM und der Unterscheidung des System-Usermodes. Konkret bedeutet dies, dass alle Applikationen im Usermode ausgeführt werden und Zugriffe auf System- und Hardware-Ressourcen nur über definierte APIs zugänglich sind. Unter Usermode versteht man einen eingeschränkten Betriebsmode für die Applikationen, z. B. kann die Applikation nur einen zugeordneten Speicher, Timeslots sowie APIs verwenden. Weiterer Vorteil ist, dass die in der Software implementierten Krypto- oder Sicherheitsfunktionen von der restlichen Applikation strikt getrennt bzw. geschützt wird und nur über eine definierte API aufgerufen werden kann.
-
Der Hypervisor im Hauptrechner bzw. Maincore bzw. in Maincores arbeitet unabhängig von der Verwendung im HSM. Dies stellt einen Mechanismus zum Schutz des Betriebssytems dar.
-
Die wesentlichen Merkmale des Hypervisor im HSM treffen auch hier zu. Zusätzlich kann die Hypervisorsoftware über das Feature Secure Boot im Steuergeräte-Hochlauf abgesichert werden, damit die Applikationssoftware im laufenden Betrieb nicht mehr manipulierbar ist. Die Code-Basis des Hypervisors ist eher klein und kann daher komplett zertifiziert werden. Alternativ kann der Hypervisorcode auch im HSM gespeichert und beim Steuergeräte-Hochlauf in das Maincore-RAM geladen und ausgeführt werden.
-
Eine weitere Möglichkeit besteht darin, den Hypervisor-Code zu verschlüsseln und beim Steuergeräte-Hochlauf über HSM zu entschlüsseln und aus dem RAM ausführbar zu machen.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
-
Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt eine Vertrauenspyramide.
-
2 zeigt in einer schematischen Darstellung Funktionen eines HSM.
-
3 zeigt in einer schematischen Darstellung den Aufbau einer Ausführung des HSM.
-
4 zeigt eine Ausführung des HSM.
-
Ausführungsformen der Erfindung
-
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
-
Um einem IT-System dahingegen zu vertrauen, dass es immer so agiert, wie dies erwartet ist, erfordert es, aufeinanderfolgend allen Schichten zu vertrauen, die eingebunden sind, um ein vertrauenswürdiges IT-System zu erzeugen.
-
1 zeigt eine Pyramide des Vertrauens, die als Trust Pyramid bezeichnet wird, für ein typisches IT-System. Diese ist insgesamt mit der Bezugsziffer 10 bezeichnet und umfasst eine Schicht für eine organisatorische Sicherheit 12, eine Schicht für eine Systemsicherheit 14, eine Schicht für eine Hardware-Sicherheit 16, eine Schicht für eine Software-Sicherheit 18 und eine oberste Schicht für Vertrauen 20 bzw. Trust.
-
Um dem gesamten IT-System vertrauen zu können, ist es erforderlich, dass jede Schicht auf die wirksame Sicherheit der darunterliegenden Schicht vertrauen kann, ohne in der Lage zu sein, dies direkt zu verifizieren. Dies bedeutet bspw., dass sich eine perfekte Software- und Hardware-Sicherheitslösung durch eine schwache darunterliegende Sicherheitssystemgestaltung als nutzlos erweisen kann. Darüber hinaus kann gegeben sein, dass eine mögliche Schwäche in der Systemgestaltung nicht erfasst oder durch die oberen Hard- und Software-Schichten verhindert wird.
-
Im Gegensatz zu typischen Back- und IT-Systemen ist die Hardware-Schicht von eingebetteten Systemen oftmals physischen Angriffen ausgesetzt, die Hardware- oder Software-Funktionen durch physische Mittel beeinflussen, bspw. einen Flash-Speicher manipulieren oder Alarmfunktionen deaktivieren. Ein Ansatz, solche physischen Attacken zu erschweren, besteht darin, insbesondere manipuliergeschützte Hardware-Sicherheitsmodule (HSM) einzusetzen, wie diese bspw. in 2 gezeigt sind. Ein solches HSM schützt wichtige Informationen, bspw. Personen-Identifikationsnummern (PIN), sichere Schlüssel und kritische Operationen, bspw. eine PIN-Verifikation, eine Datenverschlüsselung, bspw. durch starke physische Abschirmung.
-
Wie ein HSM ausgebildet sein kann und was für Funktionen von diesem durchgeführt werden können, um die Sicherheit eines eingebetteten Systems zu verbessern, wird im Folgenden dargestellt.
-
2 zeigt die Kernfunktionen eines typischen Hardware-Sicherheitsmoduls. Die Darstellung zeigt eine Software-Schicht 30 und eine Hardware-Schicht 32, die vor unberechtigten Zugriffen geschützt ist.
-
Die Software-Schicht 30 umfasst eine Reihe von Anwendungen 34, von denen hier drei dargestellt sind. Weiterhin ist ein Betriebssystem 36 vorgesehen. Die Hardware-Schicht 32 umfasst eingebettete Standard-Hardware 38 und ein Hardware-Sicherheitsmodul (HSM) 40. In diesem HSM 40 ist ein erster Block 42 für Schnittstellen und Steuerung, ein zweiter Block 44 für sichere Verschlüsselungsfunktionen, ein dritter Block 46 für sichere Funktionen und ein sicherer Speicher 48 vorgesehen.
-
Der sichere Speicher 48 ist ein kleiner, nicht flüchtiger Datenspeicher, bspw. mit einer Kapazität von einige kB, innerhalb des manipuliergeschützten HSM 40, um ein nichtautorisiertes Auslesen, eine Manipulation oder ein Löschen von kritischen Informationen, wie bspw. von kryptographischen Schlüsseln, kryptographischen Zertifikaten oder Authentifizierungsdaten, bspw. PINs oder Passwörter zu verhindern. Der sichere Speicher 48 des HSM 40 enthält weiterhin alle HSM-Konfigurationsinformationen, bspw. Informationen zum Eigentümer des HSM 40 oder Zugriffautorisierungen zu gesicherten internen Einheiten.
-
Im zweiten Block 44 für sichere Verschlüsselungsfunktionen sind kryptographische Algorithmen, die für eine Datenverschlüsselung und -entschlüsselung verwendet werden, bspw. AES oder 3DES, eine Datenintegritätsverstärkung, bspw. MAC oder HMAC, oder eine Datenursprungsverifikation, bspw. durch Verwenden von digitalen Signatur-Algorithmen, wie bspw. RSA oder ECC, und alle zugehörigen kryptographischen Aktivitäten, wie bspw. Schlüsselerzeugung, Schlüsselverifikation, enthalten.
-
Sichere Funktionen im dritten Block 46 umfassen alle geschützten Funktionen, die nicht direkt einem kryptographischen Verfahren zugeordnet sind, wobei das HSM 40 als physisch geschützter "Trust Anchor" dient. Dies kann bspw. ein physisch geschütztes Taktsignal, ein interner Zufallszahlengenerator, ein Ladeprogramm-Schutzmechanismus oder irgendeine kritische Anwendungsfunktion sein, bspw. um einen sicheren Dongle zu realisieren.
-
Der erste Block 42 für Schnittstellen und Steuerung umfasst die interne HSM-Logik, welche die HSM-Kommunikation mit der Außenwelt implementiert und die den Betrieb aller internen Basiskomponenten, wie diese vorstehend erwähnt sind, verwaltet.
-
Alle funktionalen Basiskomponenten des Hardware-Sicherheitsmoduls 40, wie dies vorstehend beschrieben ist, sind von einer kontinuierlichen physischen Grenze umgeben, was verhindert, dass interne Daten und Prozesse abgehört, kopiert bzw. nachgebildet oder manipuliert werden können. Dies könnte dazu führen, dass ein nichtautorisierter Nutzer interne Geheimnisse verwenden oder kompromittieren kann. Die kryptographische Grenze wird üblicherweise mit algorithmischen und physischen Zeitkanal-Gegenmaßnahmen mit dedizierten Zugriffsschutzmitteln implementiert, bspw. eine spezielle Abschirmung oder Beschichtungen, um einen Seitenkanal-Widerstand, einen Zugriffshinweis, einen Zugriffswiderstand oder eine Zugriffsantwort zu ermöglichen.
-
Wie das HSM 40 die Sicherheit einer eingebetteten Produktlösung verbessern kann, wird nachstehend dargelegt:
-
Das HSM 40 schützt kritische Informationen, bspw. Identitäten, Signierschlüssel oder Schlüssel, durch die physische Abschirmung, die nicht durch eine Software-Anfälligkeit umgangen werden kann.
-
Das HSM 40 kann dabei helfen, mächtige POI-Angreifer (POI: Point of Interest) zu erfassen, abzuschwächen oder abzuhalten, indem wirksame Seitenkanal-Widerstand- und Zugriffsschutz-Barrieren implementiert werden, die u. a. starke Zugriffsrestriktionen haben, selbst für autorisierte Nutzer. Es werden bspw. einige Informationen immer exklusiv innerhalb des HSM 40 gehalten.
-
Das HSM 40 kann Sicherheitsmechanismen beschleunigen, bei denen bestimmte Beschleunigungsschaltkreise angewendet werden.
-
Mit dem HSM 40 können Sicherheitskosten reduziert werden, indem hoch optimierte Spezialschaltkreise hinzugefügt werden, bspw. für eine standardisierte Kryptographie.
-
Ein möglicher Aufbau des HSM ist in 3 dargestellt. Diese zeigt das HSM 70, das in eine Umgebung eingebettet ist. Die Darstellung zeigt eine Hauptrecheneinheit 72, einen Systembus 74, einen RAM-Baustein 76 mit einem gemeinsam zu nutzenden Bereich und ein Testprogramm 78 bzw. Debugger mit zugeordneter Hardware 80 und Schnittstelle 82, die wiederum ein Register 84 umfasst. Die Darstellung zeigt weiterhin einen Speicherbaustein 86 für Flash-Code mit einem Datenbereich 88 und einem sicheren Bereich 90, in dem sichere Kerndaten enthalten sind.
-
In dem HSM 70 sind eine Schnittstelle 100 zum Testprogram 78, ein sicherer Rechenkern 102, ein sicherer RAM-Baustein 104, ein Zufallsgenerator 106, bspw. ein TRNG oder PRNG, und Schlüssel 108, bspw. AES, vorgesehen.
-
Der Hypervisor umfasst sowohl die Standardfunktionalität des Betriebssystems, das sogenannte Scheduling, Speicherzugriffe und Zugriff auf die Hardware oder Basis-Software-Funktionen über definierte Programmierschnittstellen bzw. APIs (application programming interface). Der Hypervisor kann dabei mit der bereits vorhandenen Memory Protection Unit (MPU) realisiert werden, die es erlaubt, Zugriffe entweder im System oder Usermode auf definierte Speicherbereiche für Applikationen festzulegen.
-
Die Konfiguration erfolgt derart, dass alle System- und Hardware-Ressourcen entsprechend lokatiert und nur über den Hypervisor "erreichbar" sind. Die Applikationen selbst werden in unterschiedliche Adressbereiche konfiguriert und nur im Usermode mit eingeschränkten Zugriffsrechten ausgeführt. In Software realisierte zu schützende Systemfunktionen wie sichere Bibliotheken bzw. SecuLibs etc. werden gleich wie die Hardware-Ressourcen an den Hypervisor angebunden und im Systemmode betrieben. Die Trennung der Ressourcen der einzelnen Applikationen umfasst sowohl den Programmbereich als auch der zugehörigen Daten der jeweiligen Applikation. Zugriffe auf Daten der benachbarten Applikation sind nicht möglich. Dies betrifft insbesondere auch die Schlüssel. Durch diese Struktur ist es möglich, auch neue Applikationen mit wenig Aufwand in das System zu integrieren.
-
Bei der Nutzung des Hypervisors auch im Hauptrechner bzw. Hauptrechenkern wird der bisherige Sicherheitsanker auf die Hauptrechner ausgeweitet. Mit Hilfe des Secureboot-Features zusammen mit dem Hypervisor im HSM wird der Hypervisorcode im Hauptrechner beim Steuergeräte-Hochlauf abgesichert.
-
4 zeigt eine Ausführung eines HSM zur Verdeutlichung des Verfahrens. Die Darstellung zeigt ein HSM 200, mit Bereichen 202 für Anwendungsprogramme und einem weiteren Bereich 204 für sichere Bibliotheken. Weiterhin ist ein Bereich 206 für Schlüssel und ein zusätzlicher Bereich 208 für Zufallsgeneratoren, TRNG oder PRNG, vorgesehen. Weiterhin ist ein Hypervisor 210 mit MPU 240 (MPU: Memory Protection Unit) und eine Mikrocontroller-Abstraktionsschicht MCAL 212 vorgesehen. Der Zugriff der Anwendungsprogramme auf die sicheren Bibliotheken erfolgt über den Hypervisor 210, wie mit einem Pfeil 230 verdeutlicht ist. Ein Zugriff auf Software-Funktionen erfolgt somit über den Hypervisor 210. Aber auch ggf. auf Hardware-Ressourcen und sichere Bibliotheken kann bei dieser Ausführung neu über den Hypervisor 210 zugegriffen werden.
-
Weiterhin zeigt die Darstellung einen Systembus 220, mit dem das HSM 200 mit einem Hauptrechner 222 verbunden ist. In diesem ist ein erster Bereich 224 für Anwendungsprogramme, ein zweiter Bereich 226 für die Kommunikation und ein dritter Bereich 228 für einen Speicherzugriff vorgesehen. Weiterhin ist ein Bereich 230 als Schnittstelle zu dem HSM 200 vorgesehen.