-
Die vorliegende Offenbarung bezieht sich auf elektronische Einrichtungen und Verfahren zum Steuern der Funktionen einer elektronischen Einrichtung.
-
In vielen Anwendungen, einschließlich insbesondere Kraftfahrzeuganwendungen, müssen elektronische Einrichtungen, wie zum Beispiel Mikrosteuerungen (z. B. eine elektronische Steuereinheit, Electronic Control Unit (ECU)), typischerweise hohe Sicherheitsanforderungen erfüllen. Insbesondere ist es gewöhnlich wünschenswert, dass bestimmte sicherheitskritische Operationen ausschließlich dann durchgeführt werden, wenn ein geringes Risiko besteht, dass die Sicherheit der elektronischen Einrichtung beeinträchtigt wird. Mit anderen Worten: Bestimmte Operationen sollten ausschließlich dann ausgeführt werden, wenn ein hohes Maß an Vertrauen in die Intaktheit der elektronischen Einrichtung besteht. Ansätze für ein entsprechendes Steuern der Funktionen einer elektronischen Einrichtung sind daher wünschenswert.
-
Gemäß einer Ausführungsform wird eine elektronische Einrichtung bereitgestellt, die Folgendes enthält: einen Prozessor, der dazu ausgebildet ist, Programmcode auszuführen, eine Sicherheitsstufenregistrierungsschaltung, die dazu ausgebildet ist, eine aktuelle Sicherheitsstufe der elektronischen Einrichtung zu speichern, wobei die aktuelle Sicherheitsstufe der elektronischen Einrichtung eine von einer Vielzahl von Sicherheitsstufen ist, die entsprechend einer vorbestimmten Sicherheitsstufenhierarchie von höheren zu niedrigeren Sicherheitsstufen geordnet sind, Funktionssteuerschaltungstechnik, die dazu ausgebildet ist, Funktionen der elektronischen Einrichtung entsprechend der aktuellen Sicherheitsstufe zu steuern, wobei die Funktionssteuerschaltungstechnik dazu ausgebildet ist, mehr Funktionen für eine Sicherheitsstufe, die in der Sicherheitsstufenhierarchie höher liegt, als für eine Sicherheitsstufe, die in der Sicherheitsstufenhierarchie niedriger liegt, zuzulassen, und Sensorschaltungstechnik, die dazu ausgebildet ist, ein sicherheitsrelevantes Ereignis zu registrieren, wobei die Sicherheitsstufenregistrierungsschaltung dazu ausgebildet ist, die aktuelle Sicherheitsstufe als Reaktion auf die Detektion eines sicherheitsrelevanten Ereignisses durch die Sensorschaltungstechnik und/oder als Reaktion auf eine Anweisung aus dem Prozessor zu ändern und wobei die Sicherheitsstufenregistrierungsschaltung dazu ausgebildet ist, die aktuelle Sicherheitsstufe ausschließlich in entsprechend der Sicherheitsstufenhierarchie abnehmender Weise zu ändern.
-
Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Steuern der Funktionen einer elektronischen Einrichtung, die der oben beschriebenen elektronischen Einrichtung entspricht, bereitgestellt.
-
In den Zeichnungen bezeichnen gleiche Bezugszeichen in den unterschiedlichen Ansichten im Allgemeinen durchweg die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, weil der Schwerpunkt stattdessen im Allgemeinen auf die Veranschaulichung der Grundlagen der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
- Die 1 zeigt eine Mikrosteuerung.
- Die 2 zeigt ein Flussdiagramm, das einen Boot-Prozess für einen sicheren Startablauf einer Mikrosteuerung veranschaulicht.
- Die 3 zeigt eine Mikrosteuerung gemäß einer Ausführungsform.
- Die 4 zeigt ein Beispiel für eine Umsetzungsform einer CSIL- (Cyber Security Integrity Level) Registrierungsschaltung.
- Die 5 zeigt ein Flussdiagramm, das einen Boot-Prozess (d. h. einen Startprozess) für einen sicheren Startablauf einer Mikrosteuerung mit CSIL-Management veranschaulicht.
- Die 6 veranschaulicht eine Zustandsmaschine.
- Die 7 zeigt eine elektronische Einrichtung gemäß einer Ausführungsform.
- Die 8 zeigt ein Flussdiagramm, das ein Verfahren zum Steuern der Funktionen einer elektronischen Einrichtung gemäß einer Ausführungsform veranschaulicht.
-
Die folgende ausführliche Beschreibung bezieht sich auf die zugehörigen Zeichnungen, die veranschaulichend spezifische Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung umgesetzt werden kann. Andere Aspekte können genutzt werden, und bauliche, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, denn einige Aspekte dieser Offenbarung können mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden, um neue Aspekte zu bilden.
-
Die 1 zeigt eine Mikrosteuerung 100.
-
Die Mikrosteuerung 100 enthält einen Nur-Lese-Speicher (ROM, Read-Only Memory) 101, einen nichtflüchtigen Speicher (Non-Volatile Memory, NVM) 102, eine erste CPU (Central Processing Unit) 103, eine zweite CPU 104, z. B. als Teil eines Hardware-Sicherheitsmoduls 105, eine Leistungsversorgung 106 und eine Taktversorgung 107.
-
Das ROM 101 kann Firmware der Mikrosteuerung speichern, z. B. einen Boot-Code (auch als Start-Software SSW bezeichnet) der Mikrosteuerung 100, die durch die CPUs 103, 104 beim Starten (z. B. Hochlaufen) der Mikrosteuerung 100 ausgeführt wird. Starten kann sich darauf beziehen, dass die Leistungsversorgung 106 damit startet, die anderen Komponenten der Mikrosteuerung, z. B. die Speicher 101, 102 und die CPUs 103, 104, mit Leistung zu versorgen. Beim Hochlaufen wird die Mikrosteuerung 100 zurückgesetzt. Zum Beispiel enthält die Mikrosteuerung 100 einen Power-on Reset- (PoR-) Generator, der ein Rücksetzsignal generiert, wenn die Leistungsversorgung 106 an die bzw. den Rest der Mikrosteuerung 100 Leistung anlegt. Dies stellt sicher, dass die Mikrosteuerung 100 in einem bekannten Zustand zu arbeiten beginnt. Gleichermaßen wird der Boot-Code ausgeführt, wenn die Mikrosteuerung 100 zurückgesetzt worden ist.
-
Der NVM 102 kann Software (SW) speichern, die durch die CPUs 103, 104 ausgeführt werden kann, wenn die Mikrosteuerung gebootet worden ist (d. h. die Mikrosteuerung ist gestartet (oder zurückgesetzt) und der Boot-Code ist ausgeführt worden).
-
Die Mikrosteuerung 100 kann zum Beispiel eine Mikrosteuerung oder eine MCU (Microcontroller Unit) für Kraftfahrzeug- jedoch auch für andere wie Luftfahrt- oder Industrie-Anwendungen sein. Eine Mikrosteuerung in solch einem Anwendungskontext muss typischerweise hohe Sicherheitsanforderungen erfüllen. Eine Mikrosteuerung mit eingebettetem NVM 102 (z. B. Flash-Speicher) unterstützt im Allgemeinen einen sicheren Betrieb gut, weil der On-Chip-NVM zuverlässig ist und aus der Sicherheitsperspektive vergleichsweise einfach geschützt werden kann.
-
Die Sicherheit kann auf dem Konzept basieren, dass die mittlere (Raum und Zeit) Störungsrate unter einem gegebenen Niveau liegt, z. B. aufgrund von ECC- (Error Correction Code) Fehlerkorrektur für Speicher, und dass, falls eine unkorrigierte Störung eintritt, sie wenigstens mit einer sehr hohen Wahrscheinlichkeit detektiert werden kann.
-
Bei der Sicherheit ist die Situation für Angriffe ähnlich, jedoch mit dem Unterschied, dass nach dem Eintreten eines sicherheitskritischen Ereignisses das Vertrauen in das System (in die Mikrosteuerung 100 in diesem Beispiel) als dauerhaft reduziert betrachtet werden kann. Dementsprechend ist zu erkennen, dass verschiedene Ausführungsformen auf einem Konzept einer Vertrauenskette basieren: Gemäß verschiedenen Ausführungsformen wird zum Beispiel die Mikrosteuerung 100 nach einem Power-on Reset so betrachtet, dass sie in einem vollständig sicheren Zustand startet. Alle Operationen zwischen diesem Anfangszustand und dem aktuellen Betriebszustand, in dem die Mikrosteuerung 100 normale Anwender-Software ausführt, müssen vertrauenswürdig sein. Andernfalls wird der aktuelle Betriebszustand nicht als sicher betrachtet.
-
Die 2 zeigt ein Flussdiagramm 200, das einen Boot-Prozess (d. h. einen Startprozess) für einen sicheren Startablauf einer Mikrosteuerung veranschaulicht.
-
Eine erste CPU 201, die z. B. der ersten CPU 103 der 1 entspricht, und eine zweite CPU 202, die z. B. der zweiten CPU 104 der 1 entspricht, sind am Ablauf beteiligt.
-
In der 2 werden die Ausführung der Firmware 203, 205 (die z. B. im ROM 101 gespeichert ist) und die Ausführung der Software 204, 206 (z. B. eine Anwendung oder ein Anwendercode, die im NVM 102 gespeichert sind) separat gezeigt.
-
Nach dem Power-on Reset 207 führt die erste CPU 201 in 208 Code aus dem ROM 101 aus, z. B. Boot-Code (wie zum Beispiel Firmware). Dieses Beispiel beinhaltet die Ausführung von Hardware-Startprozeduren (z. B. von anderen Komponenten der Mikrosteuerung 100, wie zum Beispiel einer Schnittstelle), Spannungshochfahren (z. B. einer Spannung, die durch die Leistungsversorgung 106 z. B. anderen Komponenten der Mikrosteuerung 100 bereitgestellt wird), NVM- (z. B. Flash-) Hochfahren, LBIST (Logic Built-In Self-Test) usw.
-
Des Weiteren startet die erste CPU 201 als Teil der Ausführung ihres Boot-Codes das HSM 105 in 109.
-
In 210 führt die zweite CPU 202 (d. h. die HSM-CPU oder sichere CPU) Code aus dem ROM 101 aus, z. B. ihren eigenen Boot-Code. Danach startet die zweite CPU 202 in 211 die Ausführung von Code, der im NVM 102 gespeichert ist. Dies kann zum Beispiel Software zum Prüfen der Authentizität von Software (die z. B. ebenfalls im NVM 102 gespeichert ist) beinhalten, die durch die erste CPU ausgeführt werden soll. Wenn die Authentizität verifiziert worden ist, informiert die zweite CPU 202 zum Beispiel die erste CPU 201 (immer noch unter der Steuerung des ROM-Codes) in 112 entsprechend, und die erste CPU 201 startet in 213 die Ausführung ihrer eigenen (Anwender-) Software, die im NVM 102 gespeichert ist.
-
Die Codeausführung in 213 kann zum Beispiel Taktinitialisierung (eines Taktgenerators der Mikrosteuerung 100), Sicherheitsprüfungen, Konfiguration und Verriegelung von Zugriffsrechten und andere Initialisierungen, wie Zugriffsschutzmaßnahmen, und schließlich die Ausführung einer Anwenderanwendung beinhalten.
-
Typischerweise gibt es einige fundamentale und sicherheitskritische Entscheidungen, die zwischen dem Power-on Reset und der Anwender-Software-Ausführung vorgenommen werden müssen. Falls zum Beispiel die Einrichtung NVM 102 (z. B. Flash) neu ist, d. h. frisch aus der Produktion (d. h. nicht mit Anwender- oder Kundendaten beschrieben), kann die Mikrosteuerung (z. B. eine der CPUs 103, 104) entscheiden, dass alle Schnittstellen und Speicher ungeschützt sein können. Zu anderen Beispielen für sicherheitskritische (z. B. SW-) Entscheidungen zählen, ob die Mikrosteuerung Debugger-Zugriff zulässt, ob eine Software in den NVM 102 geladen wird und kritische Entscheidungen in der Kunden-SW usw.
-
Alle solchen sicherheitskritischen Entscheidungen haben gemeinsam, dass sie, falls entschieden wird, dass eine entsprechende Anforderung erfüllt ist oder dass eine bestimmte Operation zulässig ist (z. B. Debugger-Zugriff ist zulässig), Hintertüren zur Einrichtung öffnen (d. h. in diesem Beispiel zur Mikrosteuerung). Es muss sichergestellt werden, dass die implizite Öffnung der Hintertür ausschließlich dann erfolgt, falls die entsprechende Anforderung autorisiert und im aktuellen Einrichtungszustand zulässig ist.
-
Ein Angreifer wird typischerweise versuchen, die Ausführung einer sicherheitskritischen Entscheidung zu manipulieren, um eine Hintertür zu öffnen, z. B. durch Takt-Glitching-Angriffe oder Spannungsspitzen, um falsche Entscheidungen anzuregen. Abtastelemente (Sensoren) können bereitgestellt werden, um zuzulassen, dass solche Angriffe wenigstens zum Teil detektiert werden. Allerdings sind solche Abtastelemente, weil sie typischerweise meist Mixed-Signal-Charakteristika aufweisen, mit hohem Hardware-Aufwand verbunden. Zusätzlich widersprechen hohe Empfindlichkeit und aggressiv Reaktion auf Anomalien einem robusten MCU-Design, was eine reduzierte Verfügbarkeit des Systems bedeutet. Es gibt eine Grauzone zwischen klar detektierbaren Fehlern/Angriffen und dem beständigen Betrieb des Systems.
-
Gemäß verschiedenen Ausführungsformen wird das folgende Konzept verwendet, um einen sicheren Betrieb einer Mikrosteuerung einzurichten: Nach dem Start, z. B. nach dem HW-Rücksetzen oder dem Power-on Reset, befindet sich die Mikrosteuerung in einem sicheren Zustand. Die SSW oder SW kann dies nach der Bewertung bestimmter Bedingungen ändern. Eine Bedingung ist, dass die SSW oder SW sicher sein kann, dass sie auf einem System mit einer gegebenen Vertrauensstufe ausgeführt wird.
-
Gemäß verschiedenen Ausführungsformen wird eine Operation (wie zum Beispiel Debugger-Zugriff) ausschließlich dann zugelassen, falls die Mikrosteuerung eine bestimmte Mindestsicherheitsstufe aufweist. Zum Beispiel wird als Sicherheitsstufe eine sogenanntes Cyber-Sicherheitsintegritätsstufe (CSIL) verwendet. Sie stuft die Vertrauensstufe des Systems (z. B. der Mikrosteuerung oder der MCU 100) aus einer Perspektive der Cyber-Sicherheit ein. Die Mikrosteuerung kann ausschließlich dann eine kritische Entscheidung treffen (wie zum Beispiel das Zulassen einer sicherheitskritischen Funktion, wie zum Beispiel den Debugger-Zugriff), falls die CSIL hoch genug ist.
-
Zum Beispiel kann die Mikrosteuerung ein CSIL-Register enthalten, das die aktuelle CSIL speichert, z. B. in der Form einer Angabe, wie zum Beispiel einer Binärdarstellung des aktuellen CSIL.
-
Die 3 zeigt eine Mikrosteuerung 300 gemäß einer Ausführungsform.
-
Ähnlich wie die Mikrosteuerung 100 enthält die Mikrosteuerung 300 einen Nur-Lese-Speicher (ROM) 301, einen nichtflüchtigen Speicher (NVM) 302, eine erste CPU (Central Processing Unit) 303, eine zweite CPU 304, z. B. als Teil eines Hardware-Sicherheitsmoduls 105, und eine Leistungsversorgung 306.
-
Das ROM 301 kann Boot-Code speichern, der beim Start ausgeführt wird, wie oben mit Bezug auf die 1 erklärt wird. Insbesondere kann die Mikrosteuerung einen Power-on Reset-Generator, wie oben beschrieben ist, enthalten.
-
Zusätzlich enthält die Mikrosteuerung 100 ein CSIL-Register 307, das die aktuelle CSIL der Mikrosteuerung 300 speichert. Die Funktionssteuerschaltungstechnik 308 (die auch wenigstens teilweise durch eine oder beide der CPUs 303, 304 gebildet sein kann) steuert Funktionen der Mikrosteuerung, wie zum Beispiel der CPUs 303, 304 (z. B. Debugger-Ausführung), die Speicher 301, 302, oder andere Komponenten, wie zum Beispiel eine Schnittstelle 311. Zum Beispiel kann die Funktionssteuerschaltungstechnik 308 steuern, ob Zugriff auf einen (z. B. On-Chip-) Schlüsselspeicher 309 zulässig ist. Zum Steuern von Funktionen kann die Funktionssteuerschaltungstechnik Leitungen zu verschiedenen Komponenten der Mikrosteuerung 300 enthalten, die zum Beispiel Freigabesignale übertragen.
-
Gemäß verschiedenen Ausführungsformen ist die CSIL-Registrierungsschaltung (z. B. das CSIL-Register) 307 so ausgebildet, z. B. indem sie als eine Hardware- (HW-) Schaltung mit entsprechenden Charakteristika gebildet ist, dass sich die CSIL, die sie angibt, mit der Zeit seit dem letzten Start ausschließlich verringern kann. Insbesondere ist die CSIL somit vor Manipulationen durch einen Angreifer geschützt. Es kann somit zum Beispiel verhindert werden, dass ein Angreifer die CSIL anhebt, um eine Funktion zuzulassen, die für die aktuelle wahre CSIL nicht zulässig ist (und die bis zum nächsten Start nie wieder zugelassen werden darf). Zur Veranschaulichung: Das Vertrauen in das System kann sich ausschließlich verringern. Das alleinige Mittel zum Erhöhen des Vertrauens ist durch Neustarten (z. B. Rücksetzen) des Systems.
-
Das CSIL-Register 307 bildet eine zuverlässige Informationsquelle für die aktuelle CSIL, die von der Funktionssteuerschaltungstechnik 308, insbesondere der SSW oder der SW, die auf einer CPU 303, 305 läuft, und der HW (z. B. entsprechende Hardware-Steuerschaltungstechnik, wie zum Beispiel der Schnittstelle 311) für sicherheitskritische Entscheidungen zu jedem Zeitpunkt verwendet werden kann.
-
Es sei angemerkt, dass eine Mikrosteuerung Startphasenanzeigebits und -signale aufweisen kann, die jedoch durch die SSW gesteuert werden und typischerweise nicht automatisch durch HW in einem Fall eines kritischen Ereignisses, das ein Angriff sein könnte, gelöscht werden. Diese Steuerung durch die SSW kann einfach sein, dass ein Bit oder Signal am Ende des kritischen Abschnitts gelöscht wird. Des Weiteren werden sie, im Gegensatz zur CSIL gemäß verschiedenen Ausführungsformen, nicht durch die SSW als Bedingung für eine Entscheidung, sondern ausschließlich zum Steuern des Sicherheitszustands der HW-IP durch die SSW verwendet. Zum Beispiel könnte solch ein Bit oder Signal während der Startphase CPU-Zugriff auf kritische Speicher oder Test-Hardware zulassen. Falls also die SSW-Ausführung durch einen Angriff beeinflusst wird, besteht das Risiko, dass diese Bits oder Signale in einem kritischen Zustand bleiben. Es gibt auch Sensoren für Anomalien, die von der SSW berücksichtigt werden können. Allerdings ist zu erkennen, dass die Funktionen der CSIL gemäß verschiedenen Ausführungsformen darüber hinausgehen, weil Informationen kombiniert werden, damit sie eine zuverlässige Informationsquelle für die aktuelle CSIL bilden.
-
Die Mikrosteuerung 300 kann des Weiteren einen oder mehrere Sensoren 310 enthalten, die dazu ausgebildet sind, Angriffe auf die Mikrosteuerung 300 zu detektieren. Dazu können zum Beispiel Sensoren zählen, die das Potenzial bestimmter Bereiche überwachen und eine Alarmmeldung generieren, wenn Potenzialänderungen, die zum Beispiel zulässige Bereiche überschreiten, detektiert werden. Diese Sensoren können auch reine Digitalzähler sein, die die Anzahl von Ereignissen, die über eine Zeit aufgetreten sind, überwachen. In diesem Fall besteht der Sensor aus zwei Stufen, erstens einer Mixed-Signal-Informationsquelle und zweitens einem Digitalzähler, der das Verhalten der Mixed-Signal-Informationsquelle überwacht und eine Alarmmeldung ausschließlich dann triggert, wenn eine Anomalie detektiert wird (z. B. ob die Anzahl von Ereignissen der Mixed-Signal-Informationsquelle einen definierten Grenzwert überschreitet).
-
Wie oben erklärt wird, ist die CSIL-Einstufung der Mikrosteuerung 300 zum Beginn eines Mikrosteuerungsbetriebszyklus (z. B. zwischen zwei aufeinanderfolgenden Power-on Resets) am höchsten. Vom Beginn des Betriebszyklus kann sie ausschließlich reduziert und nie wieder erhöht werden. Diese Eigenschaft wird zum Beispiel durch die Hardware-Konfiguration der CSIL-Registrierungsschaltung 307 erzwungen.
-
Die 4 zeigt ein Beispiel für eine Umsetzungsform einer CSIL-Registrierungsschaltung 400.
-
Die CSIL-Registrierungsschaltung 400 enthält einen Dekrementierer 401, der einen Wert, den er speichert, jedes Mal, wenn er einen Takttrigger empfängt, um 1 dekrementiert. Dieser Wert wird durch die CSIL-Registrierungsschaltung 400 als eine Angabe der aktuellen CSIL ausgegeben. Als Dekrementierer wird eine Schaltung verstanden, die eine Dekrementieroperation ausführt.
-
Eine Eingangsschaltung 402 empfängt eine Angabe 403, um wieviel die CSIL im Fall eines bestimmten Ereignisses zu reduzieren ist, und triggert den Dekrementierer 401 um eine entsprechende Anzahl von Malen. Falls zum Beispiel die zweite CPU 304 das Ausführen des Boot-Codes beendet hat und das Ausführen von NVM-Code startet, gibt sie der CSIL-Registrierungsschaltung 400 an, dass die CSIL um 1 reduziert werden soll, und die Eingangsschaltung 402 triggert den Dekrementierer 401 einmal.
-
Der Dekrementierer 401 ist so ausgebildet, dass er beim Power-on Reset einen Anfangswert entsprechend der höchsten CSIL hat.
-
Es sei angemerkt, dass Intelligenz (z. B. Logikschaltungstechnik) hinzugefügt werden kann, um zu vermeiden, dass die CSIL jedes Mal, wenn das gleiche Ereignis auftritt, verringert wird (und sich somit, falls das gleiche Ereignis mehrmals auftritt, die CSIL-Stufe auf 0 verringert).
-
Diese Intelligenz kann zum Beispiel zur Generierung der CSIL-Reduzierungsanweisung hinzugefügt werden. Zum Beispiel sendet die CPU 304 die CSIL-Reduzierungsanweisung 403 für ein Ereignis ausschließlich dann, falls das Ereignis zum ersten Mal aufgetreten ist (seit dem Hochlaufen oder dem Power-on Reset).
-
Alternativ kann die CSIL-Registrierungsschaltung 400 durch entsprechende Intelligenz ergänzt werden. Zum Beispiel kann die CSIL-Registrierungsschaltung 400, z. B. in der Eingangsschaltung 402, einen Speicher 404 enthalten, den sie verwendet, um die Ereignisse zu speichern, aufgrund derer der Dekrementierer 401 seinen Wert bereits dekrementiert hat (für den aktuellen Lauf, d. h. nachdem sie beim Hochlaufen oder Power-on Reset auf den Höchstwert gesetzt wurde).
-
Die Eingangsschaltung 402 kann dann beim Empfang einer CSIL-Reduzierungsanweisung 403, die in dieser Ausführungsform das Ereignis, auf dem sie basiert, detektieren, ob das Ereignis für den aktuellen Lauf bereits zuvor aufgetreten ist.
-
Die Eingangsschaltung 402 kann dann dazu ausgebildet sein, den Dekrementierer 401 ausschließlich dann zu triggern, falls das Ereignis (aufgrund dessen die CSIL-Reduzierungsanweisung ausgelöst worden ist) für den aktuellen Lauf zum ersten Mal auftritt (d. h. ein neues Ereignis ist).
-
Die CSIL-Registrierungsschaltung 400 kann auch die Anzahl von Malen für den Speicher 404 speichern, die ein Ereignis aufgetreten ist (d. h. eine CSIL-Reduzierungsanweisung 403 ist für ein Ereignis gesendet worden), und dazu ausgebildet sein, den Dekrementierer 401 ausschließlich dann zu triggern, falls die Anzahl für das Ereignis (oder möglicherweise auch die Summe der Anzahlen über eine Gruppe von Ereignissen) einen vordefinierten Schwellenwert überschreitet. Der Schwellenwert kann zum Beispiel für unterschiedliche Arten von Ereignissen vordefiniert sein und zum Beispiel ebenfalls im Speicher 404 gespeichert werden.
-
Die 5 zeigt ein Flussdiagramm 500, das einen Boot-Prozess (d. h. einen Startprozess) für einen sicheren Startablauf einer Mikrosteuerung mit CSIL-Management veranschaulicht.
-
Eine erste CPU 501, die z. B. der ersten CPU 303 der 3 entspricht, und eine zweite CPU 502, die z. B. der zweiten CPU 304 der 3 entspricht, sind am Ablauf beteiligt.
-
Des Weiteren ist ein CSIL-Register 503, z. B. entsprechend der CSIL-Registrierungsschaltung 307, am Ablauf beteiligt.
-
Ähnlich wie in der 2 werden die Ausführung von Firmware 504, 506 (z. B. im ROM 301 gespeichert) und die Ausführung von Software 505, 507, 508 (z. B. im NVM 302 gespeicherter Anwendungs- oder Anwendercode) separat gezeigt, wobei in diesem Beispiel angenommen wird, dass die zweite CPU 502 drei virtuelle Maschinen VM0, VM1 und VM2 implementiert, und die Ausführung von Software auf der zweiten CPU 502 wird für VM0/1 und VM2 separat gezeigt.
-
Beim Power-on Reset 509 wird die CSIL im CSIL-Register 503 auf die höchste Stufe gesetzt, was in diesem Beispiel der Wert 4 ist.
-
Die erste CPU 501 führt dann in 510 Code aus dem ROM 301 aus, z. B. Boot-Code. Dies beinhaltet zum Beispiel die Ausführung von Hardware-Startprozeduren (z. B. der Schnittstelle 311), Spannungshochfahren, NVM-Hochfahren, LBIST (Logic Built-In Self-Test) usw.
-
Des Weiteren startet die erste CPU 501 als Teil der Ausführung ihres Boot-Codes das HSM 305 in 511.
-
In 512 führt die zweite CPU 502 (d. h. die HSM-CPU oder sichere CPU) Code aus dem ROM 301 aus, z. B. ihren eigenen Boot-Code.
-
Wenn die zweite CPU 502 die Ausführung ihres Boot-Codes beendet hat, setzt sie in 513 die CSIL durch Reduzieren auf den Wert 3 und startet die Ausführung von Code, der im NVM 102 gespeichert ist, durch VM0 und/oder VM1. Die durch VM0 und/oder VM1 ausgeführte Software ist zum Beispiel Sicherheits-Software. Sie kann zum Beispiel Software zum Prüfen der Authentizität von Software (die z. B. ebenfalls im NVM 302 gespeichert ist) enthalten, die durch die erste CPU 501 ausgeführt werden soll. Wenn die Authentizität verifiziert worden ist, informiert die zweite CPU 502 zum Beispiel die erste CPU 501 (immer noch unter der Steuerung des ROM-Codes) in 514 entsprechend, und die erste CPU 501 reduziert die CSIL-Stufe auf 2 und startet in 515 die Ausführung ihrer eigenen (Anwender-) Software, die im NVM 302 gespeichert ist.
-
Des Weiteren reduziert die Sicherheits-Software, die durch VM0 und/oder VM1 ausgeführt wird, irgendwann die CSIL auf 1 und lässt die Ausführung von Anwendungs-Software (die im NVM 302 gespeichert ist) durch VM2 zu.
-
Es sei angemerkt, dass Variationen des oben Genannten möglich sind. Zum Beispiel kann die CSIL in 514 bereits auf 2 reduziert worden sein, wie durch den gekreuzt schraffierten Bereich 517 veranschaulicht wird.
-
Wenn ein Sensor 310 einen Angriff detektiert, kann er jederzeit ein Alarmsignal generieren, das dem CSIL-Register 307 bereitgestellt wird und die CSIL auf null reduziert.
-
Im Folgenden werden Beispiele für Operationen gegeben, die auf den verschiedenen CSIL-Stufen durchgeführt werden.
-
CSIL = 4:
- Dies ist die CSIL-Phase mit ausschließlicher ROM-Code-Ausführung. Die CSIL ist am höchsten, weil allein Code aus dem ROM ausgeführt wird, was es extrem schwierig macht, den ausgeführten Code zu modifizieren. In dieser Phase werden sehr sicherheitskritische Entscheidungen getroffen. Zum Beispiel wird geprüft, ob die Einrichtung (z. B. insbesondere der NVM 302) neu ist. Falls dies wahr ist, sind alle Schnittstellen offen (ungeschützt). Es kann des Weiteren entschieden werden, ob das HSM gestartet werden soll, und andere kritische Konfigurationsentscheidungen können getroffen werden, und kritische Mikrosteuerungs-Assets können verarbeitet und behandelt werden.
-
Zum Beispiel könnte nicht nur durch SW sondern auch durch HW erzwungen werden, dass die Entscheidung „Einrichtung ist neu“ ausschließlich dann getroffen werden kann, falls CSIL = 4 ist.
-
CSIL = 3:
- In dieser Phase wird HSM-Anwendercode ausgeführt, aber kein normaler Anwendercode wird ausgeführt. Somit wird in dieser Phase immer noch ausschließlich Code ausgeführt, der in Hinsicht auf die Sicherheit voll vertrauenswürdig ist.
-
Weil der HSM-Code aus dem NVM 302 kommt, können anwendungsspezifische Sicherheitskonfigurationen und -entscheidungen getroffen werden, wie das Setzen des Schutzes für den Teil des NVM, in dem der HSM-Code und -Daten gespeichert werden, das Lesen einer bestimmten Klasse von Schlüsseln aus einem Datenbereich des NVM (während dies blockiert wird, falls die CSIL < 3 ist), das Aktivieren eines SW-Updates und das Öffnen der HSM-Debugger-Schnittstelle.
-
Zum Beispiel werden Einrichten und Wartung eines isolierter MCU-Sicherheitsmechanismus in dieser Phase durchgeführt.
-
CSIL = 2:
- In dieser Phase werden HSM-Anwendercode und normaler Anwendercode ausgeführt. Dies ist immer noch eine sehr sichere Phase, weil alle Sicherheitsschutzmaßnahmen in der Phase von CSIL = 3 erfolgt sind.
-
Zu den Operationen während CSIL = 2 können zum Beispiel das Setzen des Schutzes für den Teil/Bruchteil des NVM, in dem der HSM-Code und -Daten gespeichert werden, immer noch eine bestimmte Art von Daten-NVM-Operationen, z. B. ausschließlich in bestimmten Adressbereichen (während dies blockiert wird, falls die CSIL < 2 ist), Einrichten und Wartung globaler MCU-Sicherheitsmechanismen, Laufenlassen eines Sicherheitssystems (z. B. ausschließlich Sicherheits-Software auf der HSM-CPU 502) und Laufenlassen einer Anwendung (z. B. auf der ersten CPU 501) zählen.
-
Zusammengefasst: Zu allen kritischen Aktivitäten während der Phase von CSIL 3 und CSIL 2 (die (möglicherweise zusammen mit CSIL = 4) als Cyber Security High Integrity Phase (CSHIP) angesehen werden können) können zum Beispiel Folgende zählen:
- • Initialisieren von CS- (Cyber Security) Infrastruktur
- • Installieren von SW-Updates
- • Verwenden der kritischsten Schlüssel ausschließlich jetzt
- • Verteilen von kritischen Schlüsseln
- • Öffnen der Debugger-Schnittstelle nach der Authentifizierung
- • Prüfen von Anwendungs-SW
- • Schließlich das Entziehen von Privilegien, z. B. für PFcs- (Programm-Flash der zweiten CPU 104) Programmierung. In einem nichtflüchtigen Speicher für die zweite CPU 104 (z. B. einem Flash-Speicher) werden empfindlicher Code und Daten gespeichert, und es wird sichergestellt, dass ausschließlich vertrauenswürdige Software, z. B. des zweiten Prozessors 104, Schreibzugriff auf einige Flash-Bereiche (z. B. zur Neuprogrammierung des vertrauenswürdigen Systems 105) und Lesezugriff auf andere Flash-Bereiche (z. B. zum Speichern von kryptografischen Schlüsseln) hat. Einige der kryptografischen Schlüsseln werden zum Beispiel weggesperrt, wenn CSIL < 4 erreicht wird, so dass sie nicht lesbar, sondern ausschließlich über eine Schlüsselindexnummer verwendbar sind.
-
CSIL = 1:
- In dieser Phase wird HSM-Anwendercode ausgeführt, und nicht sicherer Anwendercode wird auf der VM2 ausgeführt.
-
Wie oben erwähnt worden ist, lässt die HSM-CPU in diesem spezifischen Beispiel das Betreiben unterschiedlicher virtueller Maschinen zu, die durch einen Hypervisor getrennt sind. Solch ein System bietet mehr Angriffsmöglichkeiten als eine reine Verwendung der HSM-CPU für Sicherheitscode. Dessen ungeachtet weist dieses Setup immer noch eine Stufe CSIL > 0 auf, weil erwartet werden kann, dass immer noch alles sicher ist (falls kein Angriff detektiert worden ist). Es sei angemerkt, dass in einem System ohne Hypervisor CSIL = 2 und CSIL = 1 identisch sein können.
-
In der Phase CSIL = 1 läuft die Sicherheits-Software auf der HSM-CPU VM0 und VM1, und Anwendungs-Software läuft auf der HSM-CPU VM2.
-
CSIL = 0:
- Wenn ein Angriff detektiert wird, wird die CSIL auf 0 reduziert.
-
In dieser Phase werden alle rein sicherheitsrelevanten Assets automatisch geschützt. Optional kann ein Notlaufmodus ohne Einbeziehen von sicherheitsrelevanten Assets unterstützt werden.
-
Das CSIL-Register 307 kann so angesehen werden, dass es eine Zustandsmaschine implementiert.
-
Die 6 veranschaulicht eine Zustandsmaschine 600.
-
Die Zustandsmaschine 600 weist einen Startzustand 601 auf, bei dem die CSIL am höchsten ist (z. B. nach dem Rücksetzen). Von diesem Zustand startend, kann die CSIL um eine oder auch mehr als eine Stufe zurzeit ausschließlich reduziert werden.
-
Zum Beispiel gibt es einen Zustand 602, in dem die CSIL von einem Höchstwert um eins reduziert wird, einen Zustand 603, in dem die CSIL von einem Höchstwert um zwei reduziert wird, und so weiter, bis zu einem Zustand 604 mit CSIL = 0.
-
Zustände können weggelassen werden, wenn der Übergang von oben (hohe CSIL) nach unten (niedrige CSIL) erfolgt. Insbesondere gibt es einen Übergang 605 von jedem Zustand über dem Zustand 604 CSIL = 0 zum Zustand 604 CSIL = 0, wenn ein Angriff durch einen der Sensoren 310 detektiert wird.
-
Die CSIL stuft die Cyber-Sicherheitsvertrauensstufe ein und kann als eine Basis für SW- oder HW-Entscheidungen verwendet werden. Sie kann nach dem Rücksetzen (Zustand 601) auf den Höchstwert gesetzt werden und kann an gegebenen SW-Punkten und als Reaktion auf SW- oder HW-Ereignisse reduziert werden (Übergang zu niedrigeren Zuständen). Das Verhalten der Zustandsmaschine, dass die CSIL-Stufe ausschließlich reduziert, niemals erhöht werden kann, kann z. B. durch einen Dekrementierer erzwungen werden, wie mit Bezug auf die 4 beschrieben wird.
-
Es sei angemerkt, dass die Zustandsmaschine komplexer sein kann und dass es mehrere Zustände auf einer CSIL-Stufe geben kann, wie zum Beispiel durch den Zustand angegeben wird. Des Weiteren können mehrere unterschiedliche CSIL-Zustandsmaschinen in einer Mikrosteuerung (z. B. auf einem Chip) vorhanden sein. Sie können sich in der Rücksetz-Art (Power-on Reset, System- oder Anwendungsrücksetzen) zum Setzen des Startzustands und durch die Bedingungen, durch welche die CSIL-Stufe reduziert wird, unterscheiden.
-
Zum Beispiel kann die Mikrosteuerung 300 zwei CSIL-Register 307 enthalten, die zwei CSIL-Zustandsmaschinen implementieren, die durch nur zwei Ein-Bit-Signale/Registerbits gegeben sind (d. h. jede Zustandsmaschine weist nur zwei Zustände auf). Beide Zustandsmaschinen werden ausschließlich durch Power-on Reset aktiv gesetzt und mit CSIL1PHASE und CSIL2PHASE bezeichnet (im Folgenden als CSILxPHASE bezeichnet, wenn beide gemeint sind oder beide möglich sind). Eine aktive CSILxPHASE stellt eine hohe Sicherheitsstufe dar, und eine gelöschte CSILxPHASE stellt eine niedrige Sicherheitsstufe dar.
-
Eine CSILxPHASE (d. h. sowohl die CSIL1PHASE als auch die CSIL2PHASE) kann zum Beispiel bei Folgendem gelöscht werden:
- 1. im Fall eines Lockstep-Versagens der ersten CPU 303 (unter der Annahme, dass die erste CPU 303 für die Sicherheit einen Lockstep-Mechanismus implementiert)
- 2. im Fall, dass der Lockstep-Mechanismus der ersten CPU 303 deaktiviert ist
- 3. im Fall eines EVR- (Embedded Voltage Regulator) Versagens, z. B. der Leistungsversorgung 306
- 4. im Fall bestimmter Alarmmeldungen (zu denen ein EVR-Versagen zählen könnte)
- 5. im Fall von Taktüberwachungsalarmmeldungen.
-
Die CSIL1 PHASE kann zum Beispiel insbesondere gelöscht werden:
- 1. durch die Firmware, die durch die erste CPU 303 beim Sprung zur Anwendercodeausführung ausgeführt wird,
- 2. (optional) bereits früher durch Anwendercode, der durch die zweite CPU 304 ausgeführt wird.
-
Die CSIL2PHASE kann zum Beispiel insbesondere gelöscht werden:
- 1. durch Firmware, die durch die erste CPU 303 vor dem Sprung zur Anwendercodeausführung ausgeführt wird, falls das HSM deaktiviert ist (das HSM nicht gestartet worden ist),
- 2. durch Anwendercodes, die durch die zweite CPU 304 ausgeführt werden.
-
Die Ereignisbedingung(en), die zum Löschen einer CSILxPHASE geführt haben, können zum Beispiel in einem Register für Analysezwecke erfasst werden.
-
Zum Beispiel wird die CSIL1 PHASE wie folgt verwendet:
- 1. Die Aktionen, die bereitgestellt werden, falls „Flash ist neu“ detektiert wird, werden ausschließlich dann getriggert, falls CSIL1PHASE immer noch aktiv ist, andernfalls wird in einen sicheren Zustand übergegangen. Es sei angemerkt, dass die CSILIPHASE-Prüfung nach der „Flash ist neu“-Detektion, kurz vor dem Triggern der Aktionen, erfolgen muss.
- 2. Entscheidungen, die „offene Debugger-Schnittstelle“ in HW und SW betreffen, werden durch dieses Signal gegattert.
- 3. Zusätzliche HW-Signalbedingungen z. B. für den Zugriff auf Schlüsselspeicher oder bestimmte Konfigurationen der Sicherheits-IP, wie Krypto-Beschleuniger.
-
Die CSIL2PHASE wird zum Beispiel wie folgt verwendet:
- Spezifische Ressourcen werden geschützt, falls die zweite CPU 304 von einer reinen HSM-CPU auf eine (gemeinsam genutzte) Anwendercode-CPU zurückschaltet, z. B. die zweite CPU 304 generiert kein „Ich bin der HSM-Master“-Signal mehr für ihre Zugriffe.
-
Das Bereitstellen von CSIL-Informationen, wie es oben beschrieben worden ist, lässt das Verwenden eines einfachen System-Designs zu, was zulässt, das System (z. B. die Mikrosteuerung) sicherer und zuverlässiger zu machen. Insbesondere kann der Startablauf für HW und Kainden-SW vereinfacht werden. Außerdem können Sicherheitsentscheidungen in HW und SW weniger fehleranfällig gemacht werden. Zum Beispiel lässt es zu, dass vermieden wird, dass eine SW komplexe Prüfungen vor einer sicherheitskritischen Entscheidung vornehmen muss, was fehleranfällig ist und die Angriffsfläche vergrößert. Das gleiche gilt für sicherheitskritische HW-Bedingungen.
-
Zusammengefasst wird gemäß verschiedenen Ausführungsformen eine elektronische Einrichtung bereitgestellt, wie sie in der 7 veranschaulicht wird.
-
Die 7 zeigt eine elektronische Einrichtung 700 gemäß einer Ausführungsform.
-
Die elektronische Einrichtung 700 enthält einen Prozessor 701, der dazu ausgebildet ist, Programmcode auszuführen und eine Sicherheitsstufenregistrierungsschaltung 702, die dazu ausgebildet ist, eine aktuelle Sicherheitsstufe (z. B. eine Angabe einer aktuellen Sicherheitsstufe) der elektronischen Einrichtung zu speichern, wobei die aktuelle Sicherheitsstufe der elektronischen Einrichtung eine von einer Vielzahl von Sicherheitsstufen ist, die entsprechend einer vorbestimmten Sicherheitsstufenhierarchie von höheren zu niedrigeren Sicherheitsstufen geordnet sind.
-
Die elektronische Einrichtung 700 enthält des Weiteren Funktionssteuerschaltungstechnik 703, die dazu ausgebildet ist, Funktionen der elektronischen Einrichtung entsprechend der aktuellen Sicherheitsstufe zu steuern, wobei die Funktionssteuerschaltungstechnik dazu ausgebildet ist, mehr Funktionen (d. h. einen breiteren Bereich von Funktionen) für eine Sicherheitsstufe, die in der Sicherheitsstufenhierarchie höher liegt, als für eine Sicherheitsstufe, die in der Sicherheitsstufenhierarchie niedriger liegt, zuzulassen.
-
Des Weiteren enthält die elektronische Einrichtung 700 Sensorschaltungstechnik 704, die dazu ausgebildet ist, ein sicherheitsrelevantes Ereignis zu detektieren.
-
Die Sicherheitsstufenregistrierungsschaltung 702 ist dazu ausgebildet, die aktuelle Sicherheitsstufe als Reaktion auf die Detektion eines sicherheitsrelevanten Ereignisses durch die Sensorschaltungstechnik 704 und/oder als Reaktion auf eine Anweisung aus dem Prozessor 701 zu ändern, und die Sicherheitsstufenregistrierungsschaltung 702 ist dazu ausgebildet, die aktuelle Sicherheitsstufe ausschließlich in entsprechend der Sicherheitsstufenhierarchie abnehmender Weise (zum Beispiel ausschließlich in monoton abnehmender Weise) zu ändern.
-
Gemäß verschiedenen Ausführungsformen wird die Sicherheitsstufe (oder das Vertrauen in eine elektronische Einrichtung) mit anderen Worten als Reaktion auf bestimmte Ereignisse erfolgreich reduziert. Dies bedeutet, dass die Sicherheitsstufe bei einem Höchstwert, z. B. beim Start (d. h. dem Power-on Reset) der elektronischen Einrichtung, beginnt und dann ausschließlich, als Reaktion auf die Detektion von sicherheitsrelevanten Ereignisse durch die Sensorschaltungstechnik oder als Reaktion auf entsprechende Anweisungen durch den Prozessor (oder irgendeinen anderen Prozessor), abnehmen kann, insbesondere auf Anweisungen, die durch Software, die durch den Prozessor (oder irgendeinen anderen Prozessor) ausgeführt wird, oder möglicherweise auch durch andere Hardware-Komponenten, wie zum Beispiel einer Speichersteuerung, einer Schnittstelle usw. getriggert werden. Abhängig von der Sicherheitsstufe, wie sie aktuell in der elektronischen Einrichtung gespeichert ist, sind bestimmte Operationen oder Funktionen zulässig oder verboten. Dies bedeutet, dass eine bestimmte Operation in der elektronischen Einrichtung ausschließlich dann möglich (d. h. zulässig) ist, wenn die elektronische Einrichtung eine bestimmte Mindestvertrauensstufe aufweist. Mit anderen Worten: Die Sicherheitsstufenregistrierungsschaltung ist dazu ausgebildet, eine Erhöhung der aktuellen Sicherheitsstufe (während ihrer Operation, d. h. außer, wenn die elektronische Einrichtung zurückgesetzt wird) zu verhindern.
-
Der Satz an Funktionen, die für eine Sicherheitsstufe zulässig sind, nimmt ab (z. B. mit jeder Sicherheitsstufe), wenn sie sich von höheren zu niedrigeren Sicherheitsstufen entwickelt. Insbesondere können/kann die (Menge an) Funktionen, die zulässig sind, stetig abnehmen, wenn sie sich zu niedrigeren Sicherheitsstufen entwickelt. Die Vielzahl an Sicherheitsstufen kann zum Beispiel 3 oder mehr (z. B. 4, 5 oder sogar mehr) Sicherheitsstufen beinhalten. Die niedrigste Sicherheitsstufe kann einer Stilllegung der elektronischen Einrichtung entsprechen. Zu den Steuerfunktionen, die einer Sicherheitsstufe entsprechen, kann das Steuern von Zugriffsrechten auf die Funktionen entsprechend der Sicherheitsstufe zählen.
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren, wie es in der 8 veranschaulicht ist, durchgeführt, z. B. von der elektronischen Schaltung 700.
-
Die 8 zeigt ein Flussdiagramm 800, das ein Verfahren zum Steuern der Funktionen einer elektronischen Einrichtung veranschaulicht.
-
In 801 wird eine aktuelle Sicherheitsstufe der elektronischen Einrichtung gespeichert, wobei die aktuelle Sicherheitsstufe der elektronischen Einrichtung eine von einer Vielzahl von Sicherheitsstufen ist, die entsprechend einer vorbestimmten Sicherheitsstufenhierarchie von höheren zu niedrigeren Sicherheitsstufen geordnet sind.
-
In 802 werden Funktionen der elektronischen Einrichtung entsprechend der aktuellen Sicherheitsstufe gesteuert, wobei mehr Funktionen für eine Sicherheitsstufe zulässig sind, die in der Sicherheitsstufenhierarchie höher liegt, als für eine Sicherheitsstufe, die in der Sicherheitsstufenhierarchie niedriger liegt.
-
In 803 wird bestimmt, ob ein sicherheitsrelevantes Ereignis detektiert wird.
-
In 804 wird die aktuelle Sicherheitsstufe als Reaktion auf die Detektion eines sicherheitsrelevanten Ereignisses und/oder als Reaktion auf eine Anweisung aus einem Prozessor geändert, wobei die aktuelle Sicherheitsstufe ausschließlich in einer entsprechend der Sicherheitsstufenhierarchie abnehmenden Weise geändert wird.
-
Es sei angemerkt, dass 802, 803, 804 nicht in dieser Reihenfolge durchgeführt werden müssen und periodisch wiederholt kontinuierlich durchgeführt werden können. Zum Beispiel können in 802 die Funktionen der elektronischen Einrichtung kontinuierlich entsprechend der aktuellen Sicherheitsstufe der elektronischen Einrichtung gesteuert werden.
-
Im Folgenden werden verschiedene Beispiele beschrieben:
- Das Beispiel 1 ist eine elektronische Einrichtung, wie sie in der 7 veranschaulicht wird.
- Das Beispiel 2 ist die elektronische Einrichtung des Beispiels 1, wobei die Sicherheitsstufenregistrierungsschaltung eine Sicherheitsstufenspeicherschaltung enthält, die dazu ausgebildet ist, die aktuelle Sicherheitsstufe zu speichern.
- Das Beispiel 3 ist die elektronische Einrichtung des Beispiels 2, wobei die Sicherheitsstufenspeicherschaltung einen Dekrementierer enthält, der dazu ausgebildet ist, auf einem gespeicherten Wert zu operieren, wobei der gespeicherte Wert wenigstens teilweise die Sicherheitsstufe darstellt.
- Das Beispiel 4 ist die elektronische Einrichtung des Beispiels 3, wobei der Dekrementierer dazu ausgebildet ist, den gespeicherten Wert in einer Richtung zu ändern, so dass er eine Abfolge von gespeicherten Werten aufweist, die monoton abnehmende Sicherheitsstufen darstellen.
- Das Beispiel 5 ist die elektronische Einrichtung eines der Beispiele 2 bis 4, die eine Sicherheitsstufensteuerung enthält, die dazu ausgebildet ist, die aktuelle Sicherheitsstufe zu setzen, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird.
- Das Beispiel 6 ist die elektronische Einrichtung des Beispiels 5, wobei die Sicherheitsstufenspeicherschaltung einen Dekrementierer enthält und die Sicherheitsstufensteuerung dazu ausgebildet ist, die aktuelle Sicherheitsstufe zu setzen, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, indem sie eine Dekrementieroperation eines oder mehrerer Zählschritte durch den Dekrementierer triggert.
- Das Beispiel 7 ist die elektronische Einrichtung eines der Beispiele 1 bis 6, wobei die Anweisung aus dem Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe ist.
- Das Beispiel 8 ist die elektronische Einrichtung des Beispiels 7, wobei der Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe als Reaktion auf eines von einem oder mehreren Codeausführungsereignissen zu senden.
- Das Beispiel 9 ist die elektronische Einrichtung des Beispiels 7 oder 8, wobei der Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Boot-Code zu senden, bevor die Ausführung von Nicht-Boot-Code begonnen wird.
- Das Beispiel 10 ist die elektronische Einrichtung eines der Beispiele 7 bis 9, wobei der Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe beim Beginn der Ausführung von Anwendungscode zu senden.
- Das Beispiel 11 ist die elektronische Einrichtung eines der Beispiele 7 bis 10, die einen Nur-Lese-Speicher und einen nichtflüchtigen Speicher enthält, wobei der Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Code aus dem Nur-Lese-Speicher vor dem Beginn der Ausführung von Code aus dem nichtflüchtigen Speicher zu senden.
- Das Beispiel 12 ist die elektronische Einrichtung des Beispiels 5 und eines der Beispiele 7 bis 11, die einen zweiten Prozessor enthält, der dazu ausgebildet ist, Authentifizierungscode auszuführen, wobei der zweite Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe zur Sicherheitsstufensteuerung nach der Ausführung des Authentifizierungscodes zu übertragen, und wobei die Sicherheitsstufensteuerung dazu ausgebildet ist, die aktuelle Sicherheitsstufe, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, als Reaktion auf die Anweisung zum Reduzieren der Sicherheitsstufe durch den zweiten Prozessor zu setzen. Das Beispiel 13 ist die elektronische Einrichtung des Beispiels 12, wobei der zweite Prozessor dazu ausgebildet ist, in Übereinstimmung mit dem Authentifizierungscode Anwendungscode, der durch den Prozessor ausgeführt werden soll, zu authentifizieren.
- Das Beispiel 14 ist die elektronische Einrichtung des Beispiels 12 oder 13, wobei der zweite Prozessor dazu ausgebildet ist, eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Boot-Code vor dem Beginn der Ausführung von Nicht-Boot-Code zu senden und wobei die Sicherheitsstufensteuerung dazu ausgebildet ist, die aktuelle Sicherheitsstufe, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, als Reaktion auf die Anweisung zum Reduzieren der Sicherheitsstufe durch den zweiten Prozessor zu setzen.
- Das Beispiel 15 ist die elektronische Einrichtung eines der Beispiele 12 bis 14, die ein Hardware-Sicherheitsmodul enthält, wobei der zweite Prozessor ein Teil des Hardware-Sicherheitsmoduls ist.
- Das Beispiel 16 ist die elektronische Einrichtung eines der Beispiele 1 bis 15, wobei zu den Funktionen, die durch die Funktionssteuerschaltungstechnik gesteuert werden, wenigstens eine von Folgenden zählt: Zugriff auf einen bestimmten Speicher oder Speicherbereich, insbesondere einen Schlüsselspeicher, Zugriffsfähigkeit auf die elektronische Einrichtung durch eine Schnittstelle der elektronischen Einrichtung, eine Prüfung, ob ein Speicher neu ist, eine Prüfung, ob ein Hardware-Sicherheitsmodul gestartet werden soll, Schreibzugriff auf einen Speicher der elektronischen Einrichtung, insbesondere das Durchführen eines Software-Updates, und Debugger-Zugriff, insbesondere auf einen Debugger-Modus des Prozessors.
- Das Beispiel 17 ist die elektronische Einrichtung des Beispiels 5 und eines der Beispiele 7 bis 16, wobei die Sicherheitsstufensteuerung dazu ausgebildet ist, die aktuelle Sicherheitsstufe, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, auf die niedrigste Stufe der Sicherheitsstufen entsprechend der Sicherheitsstufenhierarchie als Reaktion auf die Detektion eines Angriffs auf die elektronische Schaltung durch die Sensorschaltungstechnik zu setzen.
- Das Beispiel 18 ist die elektronische Einrichtung eines der Beispiele 1 bis 17, wobei die Sicherheitsstufenregistrierungsschaltung dazu ausgebildet ist, bei einem Rücksetzen der elektronischen Einrichtung eine vorbestimmte höchste Sicherheitsstufe der Vielzahl von Sicherheitsstufen zu speichern.
- Das Beispiel 19 ist die elektronische Einrichtung des Beispiels 18, wobei das Rücksetzen ein Power-on Reset ist.
- Das Beispiel 20 ist die elektronische Einrichtung eines der Beispiele 1 bis 19, wobei die elektronische Einrichtung eine Mikrosteuerung implementiert.
- Das Beispiel 21 ist die elektronische Einrichtung eines der Beispiele 1 bis 20, wobei die elektronische Einrichtung eine integrierte Schaltung ist.
- Das Beispiel 22 ist ein Verfahren zum Steuern der Funktionen einer elektronischen Einrichtung, wie es in der 8 veranschaulicht wird.
- Das Beispiel 23 ist das Verfahren des Beispiels 12, wobei es das Speichern der aktuellen Sicherheitsstufe mittels einer Sicherheitsstufenspeicherschaltung beinhaltet.
- Das Beispiel 24 ist das Verfahren des Beispiels 23, wobei die Sicherheitsstufenspeicherschaltung einen Dekrementierer enthält, der auf einem gespeicherten Wert operiert, wobei der gespeicherte Wert wenigstens teilweise die Sicherheitsstufe darstellt.
- Das Beispiel 25 ist das Verfahren des Beispiels 24, wobei der Dekrementierer den gespeicherten Wert in einer Richtung ändert, so dass er eine Abfolge von gespeicherten Werten aufweist, die monoton abnehmende Sicherheitsstufen darstellen.
- Das Beispiel 26 ist das Verfahren eines der Beispiele 23 bis 25, das das Setzen der aktuellen Sicherheitsstufe, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, beinhaltet.
- Das Beispiel 27 ist das Verfahren des Beispiels 26, wobei die Sicherheitsstufenspeicherschaltung einen Dekrementierer enthält und die aktuelle Sicherheitsstufe, die durch die Sicherheitsstufenspeicherschaltung gespeichert wird, gesetzt wird, indem eine Dekrementieroperation eines oder mehrerer Zählschritte durch den Dekrementierer getriggert wird.
- Das Beispiel 28 ist das Verfahren eines der Beispiele 22 bis 27, wobei die Anweisung aus dem Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe ist.
- Das Beispiel 29 ist das Verfahren des Beispiels 28, wobei der Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe als Reaktion auf eines von einem oder mehreren Codeausführungsereignissen sendet.
- Das Beispiel 30 ist das Verfahren des Beispiels 28 oder 29, wobei der Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Boot-Code sendet, bevor die Ausführung von Nicht-Boot-Code begonnen wird.
- Das Beispiel 31 ist das Verfahren eines der Beispiele 28 bis 30, wobei der Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe beim Beginn der Ausführung von Anwendungscode sendet.
- Das Beispiel 32 ist das Verfahren eines der Beispiele 28 bis 31, wobei der Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Code aus einem Nur-Lese-Speicher vor dem Beginn der Ausführung von Code aus einem nichtflüchtigen Speicher sendet.
- Das Beispiel 33 ist das Verfahren eines der Beispiele 22 bis 32, das beinhaltet, dass ein zweiter Prozessor Authentifizierungscode ausführt, wobei der zweite Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe nach der Ausführung des Authentifizierungscodes überträgt und die aktuelle Sicherheitsstufe als Reaktion auf die Anweisung zum Reduzieren der Sicherheitsstufe durch den zweiten Prozessor gesetzt wird.
- Das Beispiel 34 ist das Verfahren des Beispiels 33, wobei der zweite Prozessor Anwendungscode, der durch den Prozessor ausgeführt werden soll, in Übereinstimmung mit dem Authentifizierungscode authentifiziert.
- Das Beispiel 35 ist das Verfahren des Beispiels 33 oder 34, wobei der zweite Prozessor eine Anweisung zum Reduzieren der Sicherheitsstufe am Ende der Ausführung von Boot-Code vor dem Beginn der Ausführung von Nicht-Boot-Code sendet und wobei die aktuelle Sicherheitsstufe als Reaktion auf die Anweisung zum Reduzieren der Sicherheitsstufe durch den zweiten Prozessor gesetzt wird.
- Das Beispiel 36 ist das Verfahren eines der Beispiele 33 bis 35, wobei der zweite Prozessor ein Teil des Hardware-Sicherheitsmoduls ist.
- Das Beispiel 37 ist das Verfahren eines der Beispiele 22 bis 36, wobei zu den gesteuerten Funktionen wenigstens eine von Folgenden zählt: Zugriff auf einen bestimmten Speicher oder Speicherbereich, insbesondere einen Schlüsselspeicher, Zugriffsfähigkeit durch eine Schnittstelle, eine Prüfung, ob ein Speicher neu ist, eine Prüfung, ob ein Hardware-Sicherheitsmodul gestartet werden soll, Schreibzugriff auf einen Speicher der elektronischen Einrichtung, insbesondere Durchführen eines Software-Updates, und Debugger-Zugriff, insbesondere auf einen Debugger-Modus des Prozessors.
- Das Beispiel 38 ist das Verfahren eines der Beispiele 22 bis 37, das das Setzen der aktuellen Sicherheitsstufe auf die niedrigste Stufe der Sicherheitsstufen entsprechend der Sicherheitsstufenhierarchie als Reaktion auf die Detektion eines Angriffs beinhaltet.
- Das Beispiel 39 ist das Verfahren eines der Beispiele 22 bis 38, das das Speichern einer vorbestimmten höchsten Sicherheitsstufe der Vielzahl an Sicherheitsstufen beim Rücksetzen der elektronischen Einrichtung beinhaltet.
- Das Beispiel 40 ist das Verfahren des Beispiels 39, wobei das Rücksetzen ein Power-on Reset ist.
- Das Beispiel 41 ist das Verfahren eines der Beispiele 22 bis 40, das durch eine Mikrosteuerung durchgeführt wird.
- Das Beispiel 42 ist das Verfahren eines der Beispiele 22 bis 41, das durch eine integrierte Schaltung durchgeführt wird.
-
Gemäß einem weiteren Beispiel wird eine Datenverarbeitungseinrichtung bereitgestellt, die Folgendes enthält: einen oder mehrere Prozessoren, die dazu ausgebildet sind, Software auszuführen, einen Sicherheitsstufenspeicher, der dazu ausgebildet ist, eine Sicherheitsstufe der Datenverarbeitungseinrichtung zu speichern, die eine einer Vielzahl von geordneten Sicherheitsstufen sein kann, Funktionssteuerschaltungstechnik, die dazu ausgebildet ist, Funktionen der Datenverarbeitungseinrichtung entsprechend der gespeicherten Sicherheitsstufe zu steuern, wobei die Funktionssteuerschaltungstechnik dazu ausgebildet ist, mehr Funktionen für eine höhere Sicherheitsstufe als für eine niedrigere Sicherheitsstufe zuzulassen, und eine Sicherheitsstufensteuerung, die dazu ausgebildet ist, die Sicherheitsstufe als Reaktion auf die Detektion eines sicherheitsrelevanten Ereignisses zu reduzieren, wobei der Sicherheitsstufenspeicher dazu ausgebildet ist, das Erhöhen der gespeicherten Sicherheitsstufe zu verhindern.
-
Obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben worden sind, versteht es sich für Durchschnittsfachleute, dass vielerlei alternative und/oder äquivalente Umsetzungsformen die gezeigten und beschriebenen spezifischen Ausführungsformen ersetzen können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll alle Anpassungen oder Variationen der hier erörterten spezifischen Ausführungsformen abdecken. Diese Erfindung soll ausschließlich durch die Ansprüche und ihre Äquivalente beschränkt sein.
-
Bezugszeichenliste
-
- 101
- ROM
- 102
- NVM
- 103, 104
- CPUs
- 105
- HSM
- 106
- Leistungsversorgung
- 107
- Taktversorgung
- 201, 202
- CPUs
- 203, 204
- Firmware
- 205, 206
- Software
- 207-213
- Verarbeitungsschritte
- 301
- ROM
- 302
- NVM
- 303, 304
- CPUs
- 305
- HSM
- 306
- Leistungsversorgung
- 307
- CSIL-Register
- 308
- Funktionssteuerschaltungstechnik
- 309
- Schlüsselspeicher
- 310
- Sensor
- 311
- Schnittstelle
- 400
- CSIL-Registrierungsschaltung
- 401
- Dekrementierer
- 402
- Eingang
- 403
- CSIL-Reduzierungsanweisung
- 501, 502
- CPUs
- 503
- CSIL-Register
- 504,505
- Firmware
- 506-508
- Software
- 509-517
- Verarbeitungsschritte
- 600
- Zustandsdiagramm
- 601-605
- Zustände
- 700
- Elektronische Einrichtung
- 701
- Prozessor
- 702
- Sicherheitsstufenregistrierungsschaltung
- 703
- Funktionssteuerschaltungstechnik
- 704
- Sensorschaltungstechnik
- 800
- Flussdiagramm
- 801-802
- Verarbeitungsschritte