-
Die
Erfindung betrifft ein Datenverarbeitungssystem.
-
In
elektronischen Kommunikationseinrichtungen wie beispielweise mobilen
Kommunikationsendgeräten,
besteht oftmals der Bedarf, die Sicherheit für bestimmte Anwendungsprogramme
(im Folgenden auch bezeichnet als Anwendungen oder Applikationen)
oder Daten bereitzustellen, wie beispielsweise Applikationen zum
Ausführen
von kryptografischen Operationen. Es ist wünschenswert, Verarbeitungssysteme
bereitzustellen, welche einerseits einen hohen Grad an Sicherheit
für zu
schützende
Applikationen und Daten bereitstellen, aber andererseits sicherstellen,
dass Sicherheitsressourcen für
Applikationen oder Daten, welche nicht geschützt werden müssen, nicht
verschwendet werden.
-
In
vielen elektronischen Computereinrichtungen wie beispielsweise Mobilfunktelefonen,
sind sichere Ausführungsumgebungen
erforderlich zum Ausführen
von Aufgaben, welche sicherheitsrelevant sind, beispielsweise in
welchen vertrauliche Daten verarbeitet werden. In dem Beispiel von
Mobilfunktelefonen können
Mobilfunkbetreiber und Mobilfunktelefon-Hersteller eine sichere
Ausführungsumgebung zum
Laden einer sicheren Applikation in ein Mobilfunktelefon benötigen, das
heißt
eine Applikation, die nicht von einem Benutzer verändert werden
soll. Solch eine Applikation wird beispielsweise in ein Mobilfunktelefon
geladen, wenn das Mobilfunktelefon hergestellt wird oder es kann
von dem Benutzer des Mobilfunktelefons selbst heruntergeladen werden.
-
Solch
eine Applikation verarbeitet beispielsweise vertrauliche Daten wie
beispielsweise kryptografische Schlüssel. Beispielsweise soll es
für einen Angreifer
nicht möglich
sein (angreifender Benutzer), solch einen kryptografischen Schlüssel von
dem Mobilfunktelefon zu extrahieren. Deshalb sollte der kryptografische
Schlüssel
vor Angriffen seitens nicht-vertrauenswürdiger Software und vor physikalischen Angriffen
wie beispielsweise einem Ausprobieren oder einem Verändern von
Informationssignalen beispielsweise zwischen der Haupt-Verarbeitungskomponente
des Mobilfunktelefons und Speicherkomponenten des Mobilfunktelefons
wie beispielsweise einem dynamischen Vielfachzugriffspeicher (Dynamic Random
Access Memory, DRAM) oder einem nicht-flüchtigen Speicher des Mobilfunktelefons
geschützt
werden.
-
Es
könnte
auch wünschenswert
sein, dass sichere Applikationen, das heißt Applikationen, welche beispielsweise
von dem Betreiber des Mobilfunk-Kommunikationsnetzwerks, für welche
das Mobilfunktelefon als Benutzerendgerät verwendet wird, als vertrauenswürdig betrachtet
wird, von einander isoliert werden, so dass beispielsweise eine
der sicheren Applikationen keinen Zugriff auf die Daten hat, welche
von einer anderen der sicheren Applikationen verarbeitet werden.
-
Eine
sichere Allzweck-Ausführungsumgebung
ist üblicherweise
relativ komplex (obwohl sie typischerweise weniger komplex ist als
das Haupt-Betriebssystem des Mobilfunktelefons oder allgemein der
elektronischen Computereinrichtung) und weist typischerweise relativ
hohe Speicheranforderungen auf, das heißt beispielsweise einen relativ
hohen Speicherbedarf. Zusätzliche
sichere Ausführungsumgebungen
können
verwendet werden zum Schützen
vertraulicher Daten vor Software-Angriffen.
Ein Schutz vor Hardware-Angriffen kann berücksichtigt werden, indem die
gesamte sichere Ausführungsumgebung
von einem On-Chip(Auf-dem-Chip)-Speicher (oder einen gestapelten
Speicher) ausgeführt
wird, das heißt
einem Speicher, welcher Teil desselben Chips ist wie beispielsweise
der Hauptverarbeitungs-Schaltkreis des Mobilfunktelefons und somit
sicher ist gegen Software-Angriffe
oder Hardware-Angriffe. Jedoch erhöht dies typischerweise die
Kosten des Chips, welcher die sichere Ausführungsumgebung bereitstellt.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird ein Datenverarbeitungssystem bereitgestellt,
welches aufweist einen Computerchip mit einem Verarbeitungsschaltkreis
und einem chipinternen ersten Speicher und einem chipexternen zweiten Speicher,
welcher mit dem Computerchip gekoppelt ist. Der Verarbeitungsschaltkreis
ist derart eingerichtet, dass er das Ausführen von Computerprogrammen
ermöglicht,
welche in dem ersten Speicher gespeichert sind, und dass er die
Ausführung
von Computerprogrammen verhindert, welche in dem zweiten Speicher
gespeichert sind, wenn das Datenverarbeitungssystem in einem ersten
Zustand ist, und wobei der Verarbeitungsschaltkreis eingerichtet
ist, ein Ausführen
von Computerprogrammen zu ermöglichen, welche
in dem zweiten Speicher gespeichert sind, wenn das Datenverarbeitungssystem
in einem zweiten Zustand ist.
-
Gemäß einer
Ausgestaltung weist das Datenverarbeitungssystem zusätzlich einen
dritten Speicher auf, in welchem Daten gespeichert sind, wobei der
Verarbeitungsschaltkreis derart eingerichtet ist, dass er einen
Zugriff auf die Daten ermöglicht, wenn
das Datenverarbeitungssystem in dem ersten Zustand ist und derart,
dass er den Zugriff auf die Daten verhindert, wenn das Datenverarbeitungssystem in
dem zweiten Zustand ist.
-
Der
dritte Speicher kann ein chipinterner Speicher sein.
-
Die
Daten können
kryptografische Daten sein.
-
Weiterhin
können
die Daten einen kryptografischen Schlüssel aufweisen.
-
Gemäß einer
anderen Ausgestaltung der Erfindung weist das Datenverarbeitungssystem
zusätzlich
einen Sicherheits-Schaltkreis
auf, welcher in einem ersten Sicherheits-Schaltkreis-Zustand ist, wenn das Datenverarbeitungssystem
in dem ersten Zustand ist, und welcher in einem zweiten Sicherheits-Schaltkreis-Zustand
ist, wenn das Datenverarbeitungssystem in dem zweiten Zustand ist.
-
Der
Sicherheits-Schaltkreis kann eingerichtet sein zum Verarbeiten von
geheimen Daten, wenn er in dem ersten Sicherheits-Schaltkreis-Zustand
ist, und derart, dass er die geheimen Daten nicht verarbeitet, wenn
er in dem zweiten Sicherheits-Schaltkreis-Zustand ist.
-
Der
Sicherheits-Schaltkreis kann ferner derart eingerichtet sein, dass
er einen Zugriff auf die verarbeiteten geheimen Daten ermöglicht,
wenn er in dem zweiten Sicherheits-Schaltkreis-Zustand ist.
-
Gemäß einer
anderen Ausgestaltung ist der Sicherheits-Schaltkreis eingerichtet derart, dass
er einen Zugriff auf die geheimen Daten nicht ermöglicht,
wenn er in dem zweiten Sicherheits-Schaltkreis-Zustand ist.
-
Gemäß einer
Weiterbildung der Erfindung ist der zweite Speicher gegen Software-Angriffe
geschützt.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung wird eine elektronische Computereinrichtung bereitgestellt,
welche das Datenverarbeitungssystem, wie oben beschrieben, aufweist.
-
Die
elektronische Computereinrichtung kann als eine mobile elektronische
Computereinrichtung ausgestaltet sein, beispielsweise als eine mobile Kommunikationseinrichtung.
-
Gemäß einer
anderen Ausgestaltung des Datenverarbeitungssystems kann der Verarbeitungsschaltkreis
eingerichtet sein zum Ausführen
eines Steuerungs-Computerprogramms,
welches steuert, ob in dem ersten Speicher gespeicherte Computerprogramme
und/oder in dem zweiten Speicher gespeicherte Computerprogramme
ausgeführt
werden dürfen.
-
Der
Code des Steuerungs-Computerprogramms kann in dem ersten Speicher
gespeichert sein.
-
Weiterhin
kann der Computerchip ein System-Auf-Chip implementieren, welches
den Verarbeitungsschaltkreis und den ersten Speicher aufweist.
-
Gemäß einem
anderen Ausführungsbeispiel wird
ein Datenverarbeitungssystem bereitgestellt mit einem Computerchip,
welcher einen Verarbeitungsschalkreis und einen chipinternen ersten
Speicher aufweist, und mit einem chipexternen zweiten Speicher,
welcher mit dem Computerchip gekoppelt ist, und mit einem Zugriffskontroll-Schaltkreis,
welcher eingerichtet ist zum Gewähren
oder Verweigern eines Zugriffs auf Ressourcen des Datenverarbeitungssystems
abhängig
davon, ob der Zugriff von einem Computerprogramm angefordert worden
ist, dessen Code in dem ersten Speicher gespeichert ist, oder von
einem Computerprogramm, dessen Code in dem zweiten Speicher gespeichert
ist.
-
Gemäß noch einem
anderen Ausführungsbeispiel
der Erfindung wird ein Verfahren zum Betreiben eines Datenverarbeitungssystems
mit einem Computerchip bereitgestellt, wobei der Computerchip einen
Verarbeitungsschaltkreis und einen chipinternen ersten Speicher
aufweist, und mit einem chipexternen zweiten Speicher, welcher mit
dem Computerchip gekoppelt ist. Das Verfahren weist auf ein Ermöglichen
einer Ausführung
von Computerprogrammen, die in dem ersten Speicher gespeichert sind
und ein Verhindern eines Ausführens
von Computerprogrammen, welche in dem zweiten Speicher gespeichert
sind, wenn das Datenverarbeitungssystem in einem ersten Zustand
ist, und ein Ermöglichen eines
Ausführens
von Computerprogrammen, welche in dem zweiten Speicher gespeichert
sind, wenn das Datenverarbeitungssystem in einem zweiten Zustand
ist.
-
Gemäß einer
Ausgestaltung des Verfahrens kann das Datenverarbeitungssystem zusätzlich einen
dritten Speicher aufweisen, in welchem Daten gespeichert sind, und
das Verfahren kann ferner aufweisen ein Ermöglichen eines Zugriffs auf
die Daten, wenn das Datenverarbeitungssystem in dem ersten Zustand
ist, und ein Verhindern eines Zugriffs auf die Daten, wenn das Datenverarbeitungssystem
in dem zweiten Zustand ist.
-
Weiterhin
kann gemäß dem Verfahren
der dritte Speicher ein chipinterner Speicher sein.
-
Die
Daten können
kryptografische Daten sein.
-
Weiterhin
können
die Daten einen kryptografischen Schlüssel aufweisen.
-
Weiterhin
kann das Verfahren aufweisen ein Schützen des zweiten Speichers
gegen Software-Angriffe.
-
Gemäß noch einem
anderen Ausführungsbeispiel
wird ein Verfahren zum Betreiben eines Datenverarbeitungsschaltkreises
mit einem Computerchip bereitgestellt, wobei der Computerchip einen Verarbeitungsschaltkreis
und einen chipinternen ersten Speicher aufweist, und mit einem chipexternen zweiten
Speicher, welcher mit dem Computerchip gekoppelt ist. Das Verfahren
weist auf ein Gewähren oder
Verweigern eines Zugriffs auf Ressourcen des Datenverarbeitungssystems
abhängig
davon, ob der Zugriff von einem Computerprogramm angefordert worden
ist, dessen Code in dem ersten Speicher gespeichert ist, oder von
einem Computerprogramm, dessen Code in dem zweiten Speicher gespeichert ist.
-
Gemäß noch einem
anderen Ausführungsbeispiel
wird ein Computerprogrammprodukt bereitgestellt, welches, wenn es
von einem Datenverarbeitungssystem ausgeführt wird mit einem Computerchip,
welcher einen Verarbeitungsschaltkreis und einen chipinternen ersten
Speicher aufweist, und mit einem chipexternen zweiten Speicher,
welcher mit dem Computerchip gekoppelt ist, das Datenverarbeitungssystem
veranlasst, folgendes Verfahren auszuführen: Ermöglichen eines Ausführens von
Computerprogrammen, welche in dem ersten Speicher gespeichert sind
und ein Verhindern eines Ausführens von
Computerprogrammen, welche in dem zweiten Speicher gespeichert sind,
wenn das Datenverarbeitungssystem in einem ersten Zustand ist, und
ein Ermöglichen
eines Ausführens
von Computerprogrammen, welche in dem zweiten Speicher gespeichert sind,
wenn das Datenverarbeitungssystem in einem zweiten Zustand ist.
-
In
den Zeichnungen werden gleiche Bezugszeichen verwendet zum Bezeichnen
von gleichen oder ähnlichen
Teilen über
alle Ansichten hinweg. Die Zeichnungen sind nicht notwendigerweise
maßstabsgetreu,
es wurde stattdessen Wert darauf gelegt, die Prinzipien der Ausführungsbeispiele
der Erfindung zu erläutern.
In der folgenden Beschreibung werden verschiedene Ausführungsbeispiele
der Erfindung beschrieben unter Bezugnahme auf die beigefügten Zeichnungen.
-
Es
zeigen
-
1 eine
elektronische Computereinrichtung gemäß einem Ausführungsbeispiel
der Erfindung;
-
2 ein
Betriebs-Zustandsdiagramm gemäß einem
Ausführungsbeispiel
der Erfindung;
-
3 einen
Sicherheits-Schaltkreis gemäß einem
Ausführungsbeispiel
der Erfindung; und
-
4 ein
Ablaufdiagramm gemäß einem Ausführungsbeispiel
der Erfindung.
-
Im
Rahmen dieser Beschreibung werden die Begriffe "verbunden", "angeschlossen" sowie "gekoppelt" verwendet zum Beschreiben
sowohl einer direkten als auch einer indirekten Verbindung, eines direkten
oder indirekten Anschlusses sowie einer direkten oder indirekten
Kopplung. In den Figuren werden identische oder ähnliche Elemente mit identischen
Bezugszeichen versehen, soweit dies zweckmäßig ist.
-
Ein
Ausführungsbeispiel
der Erfindung, in welchem vertrauliche Daten geschützt werden
können
gegen Software-Angriffe
und Hardware-Angriffe, und welches ferner bereitgestellt wird zu
niedrigen Kosten, wird im Folgenden unter Bezugnahme auf 1 näher erläutert.
-
1 zeigt
eine elektronische Computereinrichtung 100 gemäß einem
Ausführungsbeispiel
der Erfindung.
-
Die
elektronische Computereinrichtung 100 ist beispielsweise
ein Mobilfunktelefon oder allgemein eine mobile elektronische Einrichtung
wie beispielsweise ein persönlicher
digitaler Assistent (Personal Digital Assistant, PDA). Sie kann
ebenso ein Personal Computer-System sein, wie beispielsweise ein
Laptop oder ein Desktop-Computer, oder auch eine Workstation oder
ein Server-Computer, welcher in einem Kommunikationsnetzwerk wie
beispielsweise dem Internet betrieben wird.
-
Die
elektronische Computereinrichtung 100 kann aufweisen einen
Computerchip 101 mit einem Verarbeitungsschaltkreis 102,
beispielsweise einem Mikroprozessor, beispielsweise einem Allzweck-Prozessor,
welcher den Betrieb der elektronischen Computereinrichtung 100 steuert,
und einem ersten Speicher 103. Dies bedeutet, dass der
erste Speicher 103 ein chipinterner Speicher der elektronischen
Computereinrichtung 100 ist, in diesem Beispiel Teil desselben
Computerchips wie der Verarbeitungsschaltkreis 102 ist.
-
Die
elektronische Computereinrichtung 100 weist ferner einen
zweiten Speicher 104 auf, welcher nicht Teil des Computerchips 101 ist
und somit ein chipexterner Speicher ist. Der zweite Speicher 104 kann
ein Speicher sein, welcher ein externer Speicher der elektronischen
Computereinrichtung 100 ist, und ist beispielsweise gekoppelt
mit der elektronischen Computereinrichtung mittels eines Speicherbusses
(welcher ein serieller Bus sein kann oder ein paralleler Bus) beispielsweise
ausgestaltet gemäß einem
universellen seriellen Bus-Standard (Universal Serial Bus, USB)
oder mittels jeder beliebigen geeigneten Kommunikationsverbindung
zum Datentransfer. In diesem Beispiel ist der zweite Speicher 104 gekoppelt
mit dem Computerchip 101 mittels eines internen Speicherbusses
der elektronischen Computereinrichtung 100.
-
Der
Verarbeitungsschaltkreis 102 ist eingerichtet derart, dass
er ermöglicht
oder erlaubt ein Ausführen
von Computerprogrammen, welche in dem ersten Speicher 103 gespeichert
sind, und derart, dass er verhindert ein Ausführen von Computerprogrammen,
welche in dem zweiten Speicher 104 gespeichert sind, wenn
die elektronische Computereinrichtung 100, welche allgemein
ein Datenverarbeitungssystem sein kann, in einem ersten Zustand
ist, und derart, dass es ermöglicht
oder erlaubt ein Ausführen
von Computerprogrammen, welche in dem zweiten Speicher 104 gespeichert
sind, wenn die elektronische Computereinrichtung 100 in
einem zweiten Zustand ist.
-
Dies
bedeutet, dass in dem ersten Zustand, welcher angesehen werden kann
als ein sicherer Betriebszustand der elektronischen Computereinrichtung 100,
nur Computerprogramme, deren Computercode in dem ersten Speicher 103 gespeichert
ist, und deshalb gegen Hardware-Angriffe geschützt ist, ausgeführt werden
dürfen.
Beispielsweise können vertrauliche
Daten wie beispielsweise kryptografische Schlüssel nur verarbeitet werden
in dem ersten Zustand, und es ist daher gewährleistet, dass nur Computerprogramme,
welche gegen Hardware-Angriffe geschützt sind, die vertraulichen
Daten verarbeiten dürfen
und auf diese Zugriff haben dürfen.
In dem zweiten Zustand, welcher angesehen werden kann als ein weniger
sicherer Zustand als der erste Zustand, können Computerprogramme, deren
Code in dem zweiten Speicher 104 gespeichert ist, ausgeführt werden.
Beispielsweise können
in dem zweiten Zustand vertrauliche Daten nicht verarbeitet werden.
-
Ein
in den Ausführungsbeispielen
der Erfindung verwendeter Speicher kann ein flüchtiger Speicher sein, beispielsweise
ein dynamischer Vielfachzugriffspeicher (Dynamic Random Access Memory, DRAM),
oder ein nicht-flüchtiger
Speicher, beispielsweise ein programmierbarer Nur-Lese-Speicher (Programmable
Read Only Memory, PROM), ein löschbarer
PROM (Erasable PROM, EPROM), ein elektrisch löschbarer PROM (Electrically
Erasable PROM, EEPROM), oder ein Flash-Speicher, beispielsweise ein Floating
Gate-Speicher, ein Ladungsfänger-Speicher
(Charge Trapping-Speicher), ein magnetoresistiver Vielfachzugriffspeicher
(Magnetoresistive Random Access Memory, MRAM), oder ein Phasenänderungs-Vielfachzugriffspeicher
(Phase Change Random Access Memory, PCRAM).
-
Im
Rahmen dieser Beschreibung kann eine „flüchtige Speicherzelle" verstanden werden
als eine Speicherzelle, welche Daten speichert, wobei die Daten
aufgefrischt werden, während
eine Energieversorgungsspannung des Speichersystems aktiv ist, in anderen
Worten, in einem Zustand des Speichersystems, in welchem es mit
einer Energieversorgungsspannung versorgt wird. In einem Ausführungsbeispiel
der Erfindung kann eine „flüchtige Speicherzelle" verstanden werden
als eine Speicherzelle, welche Daten speichert, wobei die Daten
aufgefrischt werden während
einer Auffrisch-Periode, in der die Speicherzelle mit einer Energieversorgungsspannung versorgt
wird, gemäß dem Pegel
der gespeicherten Daten.
-
Eine „nicht-flüchtige Speicherzelle" kann verstanden
werden als eine Speicherzelle, welche Daten speichert, selbst wenn
sie nicht aktiv ist. In einem Ausführungsbeispiel der Erfindung
kann eine Speicherzelle als nicht-aktiv angesehen werden, wenn beispielsweise
aktuell kein Zugriff auf den Inhalt der Speicherzelle aktiv ist.
In einem anderen Ausführungsbeispiel
kann eine Speicherzelle als nicht-aktiv angesehen werden, wenn beispielsweise
die Energieversorgung inaktiv ist. Ferner können die gespeicherten Daten
aufgefrischt werden auf einer regulären Zeitbasis, aber nicht,
wie bei einer „flüchtigen Speicherzelle" alle wenigen Pikosekunden
oder Nanosekunden oder Millisekunden, sondern eher in einem Bereich
von Stunden, Tagen, Wochen oder Monaten. Alternativ kann es in einigen
Ausgestaltungen auch gar nicht erforderlich sein, die Daten aufzufrischen.
-
Ein
Schaltkreis kann ein Hardware-Schaltkreis sein, beispielsweise ein
integrierter Schaltkreis, eingerichtet zum Implementieren der jeweiligen Funktionalität oder auch
eine programmierbare Einheit wie beispielsweise ein Prozessor, der
für die
jeweilige Funktionalität
programmiert ist. Ein Prozessor kann beispielsweise ein RISC-Prozessor
(Reduced Instruction Set Computer) oder ein CISC-Prozessor (Complex
Instruction Set Computer) sein. Eine Logik kann beispielsweise implementiert
werden mittels eines Schaltkreises.
-
Die
elektronische Computereinrichtung 100 kann mehr als zwei
Betriebszustände
aufweisen, welche definieren, welchen Computerprogrammen es ermöglicht oder
erlaubt ist, mittels der elektronischen Computereinrichtung 100 ausgeführt zu werden,
beispielsweise mittels des Verarbeitungsschaltkreises 102.
Ein Ausführungsbeispiel,
in dem drei unterschiedliche Betriebszustände vorgesehen sind, welche
auch bezeichnet werden als Ausführungs-Rechteebenen
(auch bezeichnet als Ausführungs-Privilegienlevel),
wird im Folgenden unter Bezugnahme auf 2 beschrieben.
-
2 zeigt
ein Betriebs-Zustandsdiagramm 200 gemäß einem Ausführungsbeispiel
der Erfindung.
-
Drei
Betriebszustände
werden als ein Beispiel erläutert.
Ein erster Betriebszustand wird bezeichnet als Ausführungs-Rechteebene 0 201,
ein zweiter Betriebszustand wird bezeichnet als Ausführungs-Rechteebene
1 202, und ein dritter Betriebszustand wird bezeichnet
als Ausführungs-Rechteebene 2 203.
-
Für jede Ausführungs-Rechteebene
0 201, 1 202, 2 203 werden die verfügbaren Ressourcen
der elektronischen Computereinrichtung 100 erläutert. Eine
Ressource der elektronische Computereinrichtung 100 ist
verfügbar
in einer Ausführungs-Rechteebene
0 201, 1 202, 2 203, wenn auf sie zugegriffen werden
darf, beispielsweise in dem Fall, dass die Ressource Daten sind,
welche in der elektronischen Computereinrichtung 100 gespeichert
sind, wenn sie verwendet werden dürfen von Computerprogrammen,
welche in der Ausführungs-Rechteebene
ausgeführt
werden, beispielsweise in dem Fall, dass die Ressource eine Verarbeitungskomponente
ist, oder in dem Fall, dass die Ressource ein Computerprogrammcode
ist, die in einem Speicher oder einem Speicherbereich gespeichert
ist, wenn das Computerprogramm ausgeführt werden darf. Dies bedeutet, dass
abhängig
von der Ausführungs-Rechteebene, in
welcher sich die elektronische Computereinrichtung 100 aktuell
befindet, es Computerprogrammen von bestimmten Speichern oder Speicherbereichen ermöglicht oder
erlaubt ist, ausgeführt
zu werden, oder eine Ausführung
derselben verhindert wird.
-
Dies
bedeutet, dass Ressourcen Hardware-Ressourcen sein können, wie
beispielsweise Verarbeitungskomponenten oder ein Speicher, aber auch
Software-Ressourcen wie Computerprogramme oder Daten.
-
Ressourcen
der elektronischen Computereinrichtung 100 können enthalten Auf-dem-Chip(On-chip)-Verarbeitungsressourcen 204,
das heißt
Verarbeitungskomponenten der elektronischen Computereinrichtung 100,
welche Teil sind des Computerchips 101, welcher ein System-Auf-Chip
(System an Chip, SoC) bilden kann, wie beispielweise ein Verarbeitungselement 205, welches
in diesem Beispiel dem Verarbeitungsschaltkreis 102 entspricht,
und einen Sicherheits-Schaltkreis 206. Ressourcen der elektronischen
Computereinrichtung 100 können ferner aufweisen einen Auf-dem-Chip(On-chip)-Speicher 207,
welcher dem ersten Speicher 103 in 1 entspricht,
und einen Außerhalb-des-Chips(Off-chip)-Speicher 208,
welcher dem zweiten Speicher 104 entspricht; sie können jedoch
auch andere interne oder externe Speicher der elektronischen Computereinrichtung 100 enthalten.
-
Die
Ausführungs-Rechteebene
0 201 (in anderen Worten die Ausführungs-Umgebung mit Rechteebene
0) ist anschaulich eine sehr kleine Ausführungsumgebung und ist beispielsweise
in ihrer Funktionalität
beschränkt
auf das Einstellen oder Einrichten des Zugriffsschutzes auf die
elektronische Computereinrichtung 100 (diese Funktion ist
in 2 mittels eines Blocks 209 dargestellt),
womit kryptografische Dienste bereitgestellt werden sowie eine Verwaltung
der Sicherheit der elektronischen Computereinrichtung 100.
Beispielsweise weist die Funktionalität der Ausführungs-Rechteebene 0 201 eine
Laufzeit-Integritätsprüfung auf.
-
In
der Ausführungs-Rechteebene
0 201 wird nur der Auf-dem-Chip-Speicher 207 verwendet.
Dies bedeutet, dass beispielsweise Sicherheits-Funktionalitäten, welche
in der Ausführungs-Rechteebene
0 201 bereitgestellt werden, welche beispielsweise von dem
Sicherheits-Schaltkreis 206 bereitgestellt wird, nur den
Auf-dem-Chip-Speicher 207 zum Verarbeiten verwenden und
dass nur Computerprogramme, deren Code in dem Auf-dem-Chip-Speicher 207 gespeichert
sind, ausgeführt
werden. Dies bedeutet, dass Computerprogrammen, deren Code in dem
Außerhalb-des-Chips-Speichers 208 gespeichert
sind, es nicht erlaubt oder ermöglicht
ist, ausgeführt
zu werden, beispielsweise mittels des Verarbeitungselements 205,
wenn die elektronische Computereinrichtung 100 sich in
der Ausführungs-Rechteebene
0 201 befindet. In der Ausführungs-Rechteebene 0 201 wird beispielsweise
die gesamte Zugriffsschutz-Hardware der elektronischen Computereinrichtung 100 eingestellt
oder eingerichtet. Diese Zugriffsschutz-Hardware steuert beispielsweise,
welche Ressourcen der elektronischen Computereinrichtung 100 verfügbar sind
in den verschiedenen Ausführungs-Rechteebenen
0 201, 1 202, 2 203.
-
Beispielsweise
werden kryptografische Funktionalitäten, welche die vertraulichen
Daten wie beispielsweise einen geheimen Schlüssel verwenden, in der Ausführungs-Rechteebene
0 201 bereitgestellt. In einem Ausführungsbeispiel sind in der Ausführungs-Rechteebene
0 201 nur Ressourcen der elektronischen Computereinrichtung 100 verfügbar, welche
Teil sind des Chips 101. Daher kann die Ausführungs-Rechteebene
0 201 betrachtet werden als eine Auf-dem-Chip-Sicherheits-Umgebung.
-
Die
Ausführungs-Rechteebene
0 201 ist beispielsweise die Ausführungs-Umgebung, welche betreten
wird, wenn die elektronische Computereinrichtung 100 gestartet
wird, das heißt
welche eingerichtet oder eingestellt wird während des Hochfahrens des Systems.
Das Hochfahren des Systems wird beispielsweise implementiert in
einer solchen Weise, dass es Teil ist eines sicheren Hochfahrens,
wobei nur kryptografisch authentifizierter Programmcode ausgeführt wird,
oder wobei der Programmcode integritätsgeschützt ist. Das sichere Hochfahren
ist ein Prozess der Ausführungs-Rechteebene
0 201. Dies bedeutet beispielsweise, dass während des
sicheren Hochfahrens nur Programmcode ausgeführt werden darf, der in dem
Auf-dem-Chip-Speicher 207 gespeichert ist.
-
Die
Zugriffsschutz-Einstellung 209, welche in der Ausführungs-Rechteebene
0 201 ausgeführt wird,
weist beispielsweise auf ein Zuordnen von Speichern oder Speicherbereichen
(sowohl Auf-dem-Chip als auch Außerhalb-des-Chips) und von Peripherien, oder
allgemein von Ressourcen der elektronischen Computereinrichtung 100 zu
den Ausführungs-Rechteebenen
0 201, 1 202, 2 203. Sobald sie in dieser
Weise konfiguriert ist, gewährleistet
eine Zugriffskontrolllogik, welche eine Auf-dem-Chip-Komponente
des Computerchips 101 sein kann, oder mittels eines Computerprogramms implementiert
sein kann, dessen Code in dem Auf-dem-Chip-Speicher 206 gespeichert
ist, das auf die Ressourcen der elektronischen Computereinrichtung 100 nur
zugegriffen werden kann in der korrekten Ausführungs-Rechteebene. Beispielsweise kann definiert
sein, dass auf den Sicherheits-Schaltkreis, welcher einen geheimen
kryptografischen Schlüssel (Wurzel-Schlüssel, Root
Key) verwaltet oder hält,
nur zugegriffen werden kann in der Ausführungs-Rechteebene 0 201.
Der Sicherheits-Schaltkreis 206 kann beispielsweise den
geheimen kryptografischen Schlüssel
in der Ausführungs-Rechteebene
0 201 verwenden zum Auspacken und Erstellen anderer kryptografischer
Schlüssel.
Diese anderen kryptografischen Schlüssel können dann geladen werden (beispielsweise
in den Auf-dem-Chip-Speicher 207 oder in einen Speicher
des Sicherheits-Schaltkreises 206), gesperrt werden (das
heißt
geschützt
werden gegen eine Veränderung
in der Ausführungs-Rechteebene
1 202 und der Ausführungs-Rechteebene
2 203). Diese Funktionalität des kryptografischen Schaltkreises 206 in
der Ausführungs-Rechteebene 0 201 ist
in 2 mittels des Blocks 210 dargestellt. Nachdem
die anderen kryptografischen Schlüssel gesperrt (anders ausgedrückt "eingeschlossen") worden sind, kann
der Sicherheits-Schaltkreis 206 für die Domäne der Ausführungs-Rechteebene 1 202 freigeben
werden, das heißt
auf ihn kann nun in der Ausführungs-Rechteebene
1 202 zugegriffen werden. Allgemein kann die Ausführungs-Rechteebene
1 202 Sicherheitsdienste verwenden, welche von der Ausführungs-Rechteebene 0 201 bereitgestellt
werden.
-
Die
Funktionalität
der Zugriffskontrolllogik in der Ausführungs-Rechteebene 1 202 und
der Ausführungs-Rechteebene 2 203,
das heißt
das Verhindern eines Zugriffs auf Ressourcen der elektronischen
Computereinrichtung 100 in Ausführungs-Rechteebenen, in welchen
der Zugriff nicht erlaubt ist, ist mittels Blöcken 211 in 2 dargestellt.
-
Der
Außerhalb-dem-Chip-Speicher 208 kann aufgeteilt
sein in Speicherbereiche, welche verfügbar sind abhängig von
der aktuellen Ausführungs-Rechteebene
0 201, 1 202, 2 203. In diesem Beispiel
ist in einem ersten Speicherbereich 212 des Außerhalb-des-Chips-Speichers 208 Computerprogrammcode
gespeichert, welcher ausgeführt
werden darf in der Ausführungs-Rechteebene
1 202, welcher jedoch nicht ausgeführt werden darf in der Ausführungs-Rechteebene
0 201. In einem zweiten Speicherbereich 213 ist
ein Computerprogrammcode gespeichert, welcher ausgeführt werden
darf in der Ausführungs-Rechteebene
2 203, welcher jedoch nicht ausgeführt werden darf in der Ausführungs-Rechteebene
1 202 und der Ausführungs-Rechteebene
0 201. Der Computerprogrammcode 214, welcher ausgeführt werden
darf in der Ausführungs-Rechteebene
0 201 ist, wie oben erläutert, in
dem Auf-dem-Chip-Speicher 207 gespeichert.
-
In
einem dritten Speicherbereich 215 des Außerhalb-des-Chips-Speichers 208 sind
Daten gespeichert, auf welche zugegriffen werden darf in der Ausführungs-Rechteebene
0 201 und der Ausführungs-Rechteebene
1 202, auf welche jedoch nicht zugegriffen werden darf
in der Ausführungs-Rechteebene
2 203. In einem dritten Speicherbereich 215 des Außerhalb-des-Chips-Speichers 208 sind
Daten gespeichert, auf welche in allen drei Ausführungs-Rechteebenen 0 201,
1 202, 2 203 zugegriffen werden darf. Daten, welche
in dem Auf-dem-Chip-Speicher 207 gespeichert sind und auf die
zugegriffen werden darf in der Ausführungs-Rechteebene 0 201 sind
dargestellt in 2 mittels des Blocks 217.
Jedoch kann ein Auf-dem-Chip-Speicherbereich 218 vorgesehen sein,
in dem Daten gespeichert sind, auf die auch zugegriffen werden darf
in der Ausführungs-Rechteebene
1 202, auf die jedoch nicht zugegriffen werden darf in
der Ausführungs-Rechteebene
2 203. Programmcode oder Daten, welche in dem Außerhalb-des-Chips-Speichers 208 gespeichert
sind, können
oder dürfen
nicht ausgeführt
werden in der Ausführungs-Rechteebene
0 201. Jedoch kann oder können in einem Ausführungsbeispiel
der Erfindung Programmcode oder Daten, welche in dem Außerhalb-des-Chips-Speichers 208 gespeichert
ist oder sind, in den Auf-dem-Chip-Speicher 207 geladen werden
in der Ausführungs-Rechteebene 0 201,
jedoch darf der Programmcode nur ausgeführt und die Daten dürfen nur
gelesen oder geladen werden, das heißt es darf nur auf sie zugegriffen
werden, nachdem der Außerhalb-des-Chips-Speicher 208 einen Test
hinsichtlich Integrität
und Authentizität
bestanden hat.
-
Es
ist anzumerken, dass in einem Ausführungsbeispiel der Erfindung
ein Unterschied zwischen Daten und Computerprogrammcode sein kann hinsichtlich
der Zugriffsrechte der Ausführungs-Rechteebenen
0 201, 1 202, 2 203. Während auf
Daten, auf welche zugegriffen werden darf in einer Ausführungs-Rechteebene
0 201, 1 202, 2 203, auch zugegriffen
werden darf in jeder beliebigen anderen Ausführungs-Rechteebene, welche
sicherer ist, beispielsweise kann auf Daten, auf welche in der Ausführungs-Rechteebene
1 202 zugegriffen werden kann, auch zugegriffen werden
in der Ausführungs-Rechteebene
0 201, ist dies nicht der Fall für Computerprogrammcode. Beispielsweise
kann es Computerprogrammcode geben, der ausgeführt werden kann in der Ausführungs-Rechteebene
1 202, jedoch kann es nicht erlaubt sein, diesen Computerprogrammcode
in der Ausführungs-Rechteebene 0 201 auszuführen; es
kann allerdings erlaubt sein, diesen auszuführen in der Ausführungs-Rechteebene
2 203. Dies bedeutet, dass der Computerprogrammcode, für den dessen
Ausführung
erlaubt ist, hinsichtlich seiner Ausführung eingeschränkt ist,
wenn die elektronische Computereinrichtung 100 in eine
höhere (das
heißt
sicherere) Ausführungs-Rechteebene übergeht.
In anderen Worten werden im Gegensatz zu anderen Ressourcen der
elektronischen Computereinrichtung 100 die Zugriffsrechte
hinsichtlich des Computerprogrammcodes reduziert bei einem Übergang
zu einer sichereren Ausführungs-Rechteebene. Zum
Erreichen der höchsten
Sicherheit kann es jedoch in anderen Ausführungsbeispielen (beispielsweise
dem oben beschriebenen) nicht erlaubt sein, auf Daten zuzugreifen
in einer Ausführungs-Rechteebene,
auf welche ebenfalls zugegriffen werden darf in einer Ausführungs-Rechteebene,
welche unsicherer ist.
-
Daten,
auf welche nur in der Ausführungs-Rechteebene
0 201 zugegriffen werden darf, sind beispielsweise ein
geheimer kryptografischer Wurzel-Schlüssel (Root Key), welcher verwendet wird
zum Auspacken eines Schlüssels
und zum Erstellen anderer kryptografischer Schlüssel, auf welche, wenn sie
gesperrt sind, zugegriffen werden darf in der Ausführungs-Rechteebene
1 202.
-
Das
Umschalten zwischen den Ausführungs-Rechteebenen
0 201, 1 202, 2 203, welches in 2 mittels
der Blöcke 219 dargestellt
ist, wird gesteuert von einer Auf-dem-Chip-Komponente oder mittels eines Computerprogramms,
dessen Code in dem Auf-dem-Chip-Speicher 207 gespeichert
ist. Wie zuvor beschrieben, können
Computerprogramme, welche in der Ausführungs-Rechteebene 1 202 ablaufen
(deren Code beispielsweise in dem ersten Speicherbereich 212 gespeichert
ist) kryptografische Schlüssel
verwenden, welche ausgepackt und erstellt worden sind in der Ausführungs-Rechteebene
0 201, jedoch können
die Computerprogramme diese kryptografischen Schlüssel nicht
extrahieren. Die Computerprogramme, welche in der Ausführungs-Rechteebene
1 202 ablaufen, werden in einem Ausführungsbeispiel vor Software-Angriffen
geschützt,
beispielsweise mittels Computerprogrammen, welche ausgeführt werden
dürfen
in der Ausführungs-Rechteebene
2 203, beispielsweise, indem der erste Speichbereich 212 nicht-zugreifbar
in der Ausführungs-Rechteebene 2 203 gestaltet
wird. Eine Korrektheit und/oder Integritäts-Überprüfung der Computerprogramme,
die in dem ersten Speicherbereich 212 gespeichert sind,
kann durchgeführt
werden zur Zeit des Hochfahrens des Systems oder auch während der
Laufzeit des Systems. Beispielsweise kann ein Computerprogramm,
welches durchgeführt
wird in der Ausführungs-Rechteebene
0 201, eine Laufzeitüberprüfung von
Computerprogrammen durchführen,
welche in dem ersten Speicherbereich 212 gespeichert sind
und in der Ausführungs-Rechteebene 1 202 ausgeführt werden.
-
Das Überprüfen des
Computerprogrammcodes von Computerprogrammen der Domäne der Ausführungs-Rechteebene
1 202, das heißt
Computerprogramme, welche ausgeführt
werden dürfen
in der Ausführungs-Rechteebene
1 202, ermöglicht
das Erfassen von physikalischen Angriffen auf den Code dieser Computerprogramme,
beispielsweise ein Erfassen einer Veränderung des ersten Speicherbereichs 212.
Die physikalischen Angriffe auf den Außerhalb-des-Chips-Speicher 208 kompromittieren nicht
die Sicherheit der Computerprogramme, welchen es ermöglicht oder
erlaubt ist, in der Ausführungs-Rechteebene
0 201 ausgeführt
zu werden, da diese Computerprogramme in dem Auf-dem-Chip-Speicher 207 gespeichert
sind, und durch eine Änderung
des Außerhalb-des-Chips-Speichers 208 nur
Computerprogramme geändert
werden können,
welchen es nicht erlaubt oder ermöglicht ist, in der Ausführungs-Rechteebene
0 201 ausgeführt
zu werden. Deshalb ist es beispielsweise nicht möglich, mittels physikalischer Angriffe
auf den Außerhalb-des-Chips-Speichers 208 Zugriff
zu erlangen auf Komponenten der elektronischen Computereinrichtung 100,
auf welche nur zugegriffen werden kann in der Ausführungs-Rechteebene
0 201, da Computerprogramme, welche in dem Außerhalb-des-Chips-Speichers 208 gespeichert sind,
sich selbst nicht in die Ausführungs-Rechteebene
0 201 erheben können
und daher keinen Zugriff auf Ressourcen haben, welche nur in der
Ausführungs-Rechteebene 0 201 verfügbar sind.
-
Verglichen
mit Computerprogrammen, welche in der Ausführungs-Rechteebene 0 201 ausgeführt werden,
haben Computerprogramme, denen es ermöglicht oder erlaubt ist, in
der Ausführungs-Rechteebene 1 202 ausgeführt zu werden,
einen beschränkteren
Zugriff auf den Sicherheits-Schaltkreis 206. Daten, auf
welche zugegriffen werden kann in der Ausführungs-Rechteebene 1 202,
können
auch in dem Auf-dem-Chip-Speicherbereich 218 gespeichert
werden zur Gewährleistung
von Vertraulichkeit und zum Verhindern von einfachen Bus-Abhör-Angriffen.
In einem Ausführungsbeispiel
der Erfindung kann es vorgesehen sein, dass die gesamte Manipulation
oder Veränderung
von vertraulichen Daten nur erlaubt oder ermöglicht ist in der Ausführungs-Rechteebene
0 201. Auf kryptografische Schlüssel und Daten niedrigerer
Sensitivität
kann zugegriffen werden in der Ausführungs-Rechteebene 1 202.
In der Ausführungs-Rechteebene 2 203 können Computerprogramme,
welche in dem zweiten Speicherbereich 213 des Außerhalb-des-Chips-Speicher 208 gespeichert
sind, ausgeführt
werden. In einem Ausführungsbeispiel
der Erfindung wird der zweite Speicherbereich 213 ebenfalls
vor Software-Angriffen geschützt
mittels einer Zugriffkontrolllogik, aber sie ist auf irgendeine
Weise weniger geschützt
als der Computerprogrammcode, welcher in dem ersten Speicherbereich 212 gespeichert
ist.
-
Indem
unterschiedliche Ausführungs-Rechteebenen
bereitgestellt werden, kann die Menge oder Größe von Auf-dem-Chip-Speicher 207 minimiert
gehalten werden. Beispielsweise sind nur der kritischste Computerprogrammcode
und nur die kritischsten Daten gespeichert in dem Auf-dem-Chip-Speicher 207 und
auf sie kann nur zugegriffen werden in der Ausführungs-Rechteebene 0 201.
In der Ausführungs-Rechteebene
1 202 darf Computerprogrammcode, welcher in einem chipexternen
Speicher gespeichert ist, ausgeführt
werden, welcher nicht gegen Hardware-Angriffe geschützt ist,
von welchem jedoch der kritische Programmcode und die kritischen
Daten isoliert sind.
-
Wie
in 2 mittels des Blocks 220 dargestellt
ist, erhöht
sich die Funktionalität
und Komplexität
der Ausführungs-Rechteebene 0 201 hin
zu der Ausführungs-Rechteebene
2 203 über
die Ausführungs-Rechteebene
1 202. Andererseits steigt, wie in 2 mittels
des Blocks 221 dargestellt, die Sicherheit ausgehend von
der Ausführungs-Rechteebene
2 203 hin zu der Ausführungs-Rechteebene
0 201 über die
Ausführungs-Rechteebene
1 202.
-
Wie
zuvor beschrieben, können
in dem Sicherheits-Schaltkreis 206 geheime Daten, wie beispielsweise
ein kryptografischer Wurzel-Schlüssel, gespeichert
sein. Diese Sicherheit der elektronischen Computereinrichtung 100 kann
stark abhängig
sein von der Sicherheit und der sicheren Verwendung dieser geheimen
Daten. Als ein Maß zum
Gewährleisten der
sicheren Verwendung der geheimen Daten kann, wie oben beschrieben
worden ist, nur Software, welche als sicher betrachtet wird, in
diesem Beispiel Computerprogramme, welche in dem Auf-dem-Chip-Speicher 207 gespeichert
sind, Zugriff haben auf die geheimen Daten, welche in dem Sicherheits-Schaltkreis 206 gespeichert
sind. In einem Ausführungsbeispiel
der Erfindung wird diese Software so einfach wie möglich gehalten,
da eine hohe Komplexität
zu einer Reduktion der Sicherheit der elektronischen Computereinrichtung 100 führen kann.
Weniger sichere Software, wie beispielsweise Computerprogramme,
denen es erlaubt oder ermöglicht
ist, in der Ausführungs-Rechteebene 1 202 und der
Ausführungs-Rechteebene
2 203 ausgeführt
zu werden, können
die Verwendung von Funktionaltäten des
Sicherheits-Schaltkreises 206 benötigen zum Beschleunigen einiger
Prozesse, beispielsweise zum Beschleunigen einer Entschlüsselung,
einer Verschlüsselung
oder einer kryptografischen Signierung von Daten. Die weniger sichere
Software muss nicht notwendigerweise die geheimen Daten verwenden, welche
in dem Sicherheits-Schaltkreis 206 gespeichert sind.
-
Wenn
die geheimen Daten beispielsweise ein Wurzel-Schlüssel sind,
wie oben beschrieben, können
andere kryptografische Schlüssel
ausgepackt, beispielsweise aus diesem abgeleitet, werden und in
der Ausführungs-Rechteebene
0 201 eingeschlossen werden und die Computerprogramme, welche
in der Ausführungs-Rechteebene
1 202 ausgeführt
werden, können
die anderen kryptografischen Schlüssel verwenden. Im Allgemeinen
kann die weniger sichere Software geheime Daten spezifisch für ihre Applikation
verwenden (welche beispielsweise irgendwie weniger sicher sind,
beispielsweise andere kryptografische Schlüssel), welche abgeleitet sind
oder werden von den geheimen Daten, die in dem Sicherheits-Schaltkreis 206 gespeichert sind.
In einem Ausführungsbeispiel
der Erfindung wird ein Weg bereitgestellt zum Übergeben der abgeleiteten geheimen
Daten an die weniger sichere Software und zum Ermöglichen
der weniger sicheren Software des Nutzens des Sicherheits-Schaltkreises 206,
ohne die geheimen Daten, die in dem Sicherheits-Schaltkreis 206 gespeichert
sind, welche im Folgenden auch bezeichnet werden als geheime Wurzel-Daten,
beispielsweise einen Wurzel-Schlüssel, zu
gefährden
oder zu verletzen.
-
Wenn
die abgeleiteten geheimen Daten (beispielsweise der andere kryptografische
Schlüssel, welcher
von dem Wurzel-Schlüssel abgeleitet
worden ist) an die weniger sichere Software übergeben werden und die weniger
sichere Software die abgeleiteten Daten direkt verwenden können, können die abgeleiteten
geheimen Daten ungeschützt
sein.
-
Wenn
die weniger sichere Software Zugriff auf den Sicherheits-Schaltkreis 206 erhält mittels
des Sicherheits-Treibers,
dann ist die Chance bzw. das Risiko einer Sicherheitslücke umso
größer, je
mächtiger
die Software (insbesondere je komplexer die Software) ist, welche
mit dem Sicherheits-Treiber zusammenwirkt. Wenn der Sicherheits-Schaltkreis 206 verwendet
wird in einem Zustand, in dem auf die geheimen Wurzel-Daten, gespeichert
in dem Sicherheits-Schaltkreis 206,
zugegriffen werden kann, das heißt in der Ausführungs-Rechteebene
0 201, so werden die höchsten
Sicherheitsmaßnahmen
getroffen, beispielsweise werden Unterbrechungen (Interrupts) während Zugriffen
in der Ausführungs-Rechteebene
0 201 deaktiviert und Cache-Speicher werden gelöscht, wenn
die Ausführungs-Rechteebene
0 201 verlassen wird, und es kann ein akzeptabler Leistungsfähigkeitsverlust
resultieren, wenn die Ausführungs-Rechteebene 0 201 betreten
wird, jedes Mal, wenn auf den Sicherheits-Schaltkreis 206 zugegriffen
werden soll. Dieser Leistungsfähigkeitsverlust kann
auch als ein inakzeptabler Kompromiss der Sensitivität der Daten
betrachtet werden, welche aktuell verarbeitet werden, und beispielsweise
auch verarbeitet werden können
in der Ausführungs-Rechteebene
1 202.
-
Daher
werden in einem Ausführungsbeispiel unterschiedliche
Zugriffsebenen für
die unterschiedlichen Ausführungs-Rechteebenen 0 201,
1 202, 2 203 vorgesehen für den Sicherheits-Schaltkreis 206. Beispielsweise
ist in der Ausführungs-Rechteebene 0 201 der
Sicherheits-Schaltkreis 206 in einem sicheren Zustand,
in dem er beispielsweise einen Wurzel-Schlüssel verarbeiten kann und kryptografische Schlüssel auspacken
und/oder von dem Wurzel-Schlüssel
ableiten kann oder erstellen kann. Zusätzlich kann der Sicherheits-Schaltkreis 206 einen unsicheren
Zustand aufweisen, in welchen er übergeht, wenn die elektronische
Computereinrichtung 100 sich in der Ausführungs-Rechteebene
1 202 oder in der Ausführungs-Rechteebene
2 203 befindet, und im welchem Zustand die geheimen Wurzel-Daten von
dem Sicherheits-Schaltkreis 206 nicht verarbeitet werden
dürfen.
Dies ermöglicht
es, dass die geheimen abgeleiteten Daten sicher von den geheimen Wurzel-Daten
abgeleitet werden und dann der in der Ausführungs-Rechteebene 1 202 oder
in der Ausführungs-Rechteebene
2 203 ausgeführten
Software übergeben
werden, wenn der Sicherheits-Schaltkreis 206 in dem unsicheren
Zustand ist.
-
Die
abgeleiteten geheimen Daten verlassen niemals den Sicherheits-Schaltkreis 206,
sondern werden vorgeladen in der Ausführungs-Rechteebene 0 201 zur
Verwendung von der weniger sicheren Software, das heißt von Software,
der es erlaubt ist, in der Ausführungs-Rechteebene
1 202 oder in der Ausführungs-Rechteebene
2 203 ausgeführt
zu werden. Die weniger sichere Software kann beispielsweise die
abgeleiteten geheimen Daten verwenden, kann sie jedoch nicht lesen
oder verändern
(was ansonsten zu einem Verlust an Sicherheit in einigen Fällen führen könnte). Ferner
hat die weniger sichere Software keinen Zugriff auf die geheimen
Wurzel-Daten, welche in dem Sicherheits-Schaltkreis 206 gespeichert
sind. Eine mögliche
Implementierung des Sicherheits-Schaltkreises 206 ist in 3 dargestellt.
-
3 zeigt
einen Sicherheits-Schaltkreis 300 gemäß einem Ausführungsbeispiel
der Erfindung.
-
Wie
oben beschrieben worden ist, kann der Sicherheits-Schaltkreis 300 in
zwei (oder mehr) Sicherheitszuständen
betrieben werden. Eine Sicherheits-Zustandslogik 301 steuert,
in welchem Zustand der Sicherheits-Schaltkreis 300 sich
aktuell befindet. Die Sicherheits-Zustandslogik 301 kann
beispielsweise mit der Zugriffs-Steuerungslogik zusammenwirken,
wobei die Zugriffs-Steuerungslogik Ressourcen der elektronischen
Computereinrichtung steuert, auf welche Ressourcen zugegriffen werden
kann in der aktuellen Ausführungs-Rechteebene.
Beispielsweise ermittelt die Zugriffs-Steuerungslogik, dass in der
aktuellen Ausführungs-Rechteebene auf den
Sicherheits-Schaltkreis 300 nur in einem unsicheren Zustand
zugegriffen werden kann und instruiert die Sicherheits-Zustandslogik 301,
den Sicherheits-Schaltkreis 300 in den unsicheren Zustand
umzuschalten. Es wird angenommen, dass der Sicherheits-Schaltkreis 300 einen
sicheren Zustand aufweist, in welchem der Sicherheits-Schaltkreis 300 sich
beispielsweise befindet, wenn die elektronische Computereinrichtung 100 sich
in der Ausführungs-Rechteebene
0 201 befindet und den unsicheren Zustand aufweist, in
welchem der Sicherheits-Schaltkreis 300 sich befindet,
wenn die elektronische Computereinrichtung 100 sich in
der Ausführungs-Rechteebene
1 202 oder in der Ausführungs-Rechteebene
2 203 befindet.
-
Wenn
sich der Sicherheits-Schaltkreis 300 in einem sicheren
Zustand befindet, kann der Sicherheits-Schaltkreis 300 geheime
Wurzel-Daten 302 in einen temporär sicheren Speicher laden,
beispielsweise in ein Register eines Verarbeitungsschaltkreises 303 des
Sicherheits-Schaltkreises 300. Die Lade-Operation zum Laden
der geheimen Daten 302 ist in 3 mittels
eines Blocks 304 dargestellt. Die geheimen Wurzel-Daten 302 können auch
die Ausgabe eines Zufallszahlengenerators des Sicherheits-Schaltkreises 300 sein.
-
Der
Sicherheits-Schaltkreis 303 stellt die kryptografischen
Funktionalitäten
des Sicherheits-Schaltkreises 300 bereit. Der Zugriff dieser Funktionalitäten kann
gesteuert werden mittels eines Zugriffskontroll-Schaltkreises 305,
welcher auch nicht Teil des Sicherheits-Schaltkreises 300 sein kann
(das heißt
er kann extern zu diesem sein) und implementiert sein kann mittels
der Zugriffskontrolllogik, welche den Zugriff auf die Ressourcen
der oben beschriebenen elektronischen Computereinrichtung 100 steuert.
Für die
Entscheidung, ob auf den Sicherheits-Schaltkreis 300 zugegriffen
werden darf, wird ein Zugriffstyp-Erfassen 306 durchgeführt, wobei
beispielsweise ermittelt wird, in welcher Ausführungs-Rechteebene sich die
elektronische Computereinrichtung 100 aktuell befindet
oder ob sichere Software 307 (welche nur ausgeführt werden
darf in der Ausführungs-Rechteebene
0 201) oder unsichere Software 308 (welche beispielsweise
ausgeführt
wird in der Ausführungs-Rechteebene 1 202)
Zugriff auf den Sicherheits-Schaltkreis 300 wünscht.
-
In
dem sicheren Zustand kann der Sicherheits-Schaltkreis 300 die
geheimen Wurzel-Daten laden und die geheimen Wurzel-Daten verwenden,
beispielsweise geheime Wurzel-Daten, welche permanent in dem Sicherheits-Schaltkreis 300 gespeichert sind,
und kann Daten, welche von den geheimen Wurzel-Daten abgeleitet
sind, laden und verwenden, beispielsweise andere kryptografische
Schlüssel, welche
von einem kryptografischen Wurzel-Schlüssel abgeleitet worden sind.
-
Der
Sicherheits-Schaltkreis 300 geht in den sicheren Zustand über, beispielsweise
wenn er ein externes Signal empfängt,
beispielsweise von der Zugriffskontrolllogik der elektronischen
Computereinrichtung 100, oder wenn ein Zugriff auf den
Sicherheits-Schaltkreis 300 existiert, welcher als sicher
betrachtet wird, beispielsweise aufgrund der Tatsache, dass die
elektronische Computereinrichtung 100 sich in der Ausführungs-Rechteebene
0 210 befindet. Wenn der Sicherheits-Schaltkreis 300 sich in einem sicheren
Zustand befindet, wird ein unsicherer Zugriff auf den Sicherheits-Schaltkreis 300 verhindert,
beispielsweise mittels der Zugriffskontrolllogik 305 oder, in
einer Ausführungsform
wird ein unsicherer Zugriff auf den Sicherheits-Schaltkreis 300 erlaubt,
wobei jedoch alle sicheren und geheimen Daten in dem Sicherheits-Schaltkreis 300 gelöscht werden
(beispielsweise bevor der Zugriff durchgeführt wird). Eine Serie von sicheren
Zugriffen auf den Sicherheits-Schaltkreis 300 wird auch
als ein sicherer Ausführungsstrang
(Thread) bezeichnet.
-
Wenn
der Sicherheits-Schaltkreis 300 sich in dem sicheren Zustand
befindet, können
Unterbrechungssignale (Interrupts) umgeleitet (re-routed) werden
mittels eines Unterbrechungs-Routers
(Interrupt router) 309 derart, dass nur ein sicherer Software-Treiber
unterbrochen werden darf, beispielsweise derart, dass ein Unterbrechungssignal
(Interrupt) zu dem Ausführen
einer sicheren Unterbrechungsroutine (Interrupt routine) führt. In
einem Ausführungsbeispiel
schreibt sichere Software, beispielsweise ein Computerprogramm,
welches ausgeführt
wird in der Ausführungs-Rechteebene
0 201, sobald abgeleitete geheime Daten fertig sind, um
weniger sicherer Software übergeben
zu werden, ein Bit in dem Sicherheits-Schaltkreis 300, welches es
ermöglicht
oder erlaubt, dass unsichere Zugriffe auftreten, ohne zu bewirken,
dass die abgeleiteten geheimen Daten des Sicherheits-Schaltkreises 300 gelöscht werden.
Die sichere Software kann auch ein Bit in dem Sicherheits-Schaltkreis 300 schreiben,
welches bewirkt, dass Unterbrechungssignale (Interrupts) zu einem unsicheren
Software-Treiber geleitet werden. Dieses Umleiten von Unterbrechungssignalen
(Interrupts) zu dem unsicheren Software-Treiber kann auch von dem
Sicherheits-Schaltkreis 300 eingestellt werden, wenn er
den sicheren Zustand verlässt.
-
In
einem Ausführungsbeispiels,
in dem unsichere Zugriffe auf den Sicherheits-Schaltkreis 300 nicht
vermieden werden, wenn der Sicherheits-Schaltkreis 300 sich
in einem sicheren Zustand befindet, aber, wie oben beschrieben,
geheime Daten, welche in dem Sicherheits-Schaltkreis gespeichert
sind, in dem Fall eines unsicheren Zugriffes gelöscht werden, zeigt der Sicherheits-Schaltkreis 300 diese
Sicherheitslücke
an mittels einer sicheren Unterbrechungsroutine oder indem ein geschütztes Zustandsbit
in dem Sicherheits-Schaltkreis 300 gesetzt wird (welches
beispielsweise nur gelöscht
werden kann, das heißt
zurückgesetzt
werden kann, durch einen sicheren Zugriff des Sicherheits-Schaltkreises 300).
Dies ermöglicht
es, dass sichere Software-Ablaufstränge darauf aufmerksam gemacht
werden, dass ein Angriff oder eine Fehlfunktion aufgetreten ist und
es werden so genannte „Mann
in der Mitte"(man in
the middle)-Typ-Angriffe verhindert.
-
Ein
Verfahren zum Betreiben eines Datenverarbeitungssystems mit einem
Computerchip, welcher einen Verarbeitungsschaltkreis und einen chipinternen
ersten Speicher aufweist, und mit einem chipexternen zweiten Speicher,
welcher mit dem Computerchip gekoppelt ist, gemäß einem Ausführungsbeispiel
der Erfindung ist in 4 dargestellt.
-
4 zeigt
ein Ablaufdiagramm 400 gemäß einem Ausführungsbeispiel
der Erfindung.
-
In 401,
welcher Schritt entspricht, dass das Datenverarbeitungssystem sich
in einem ersten Zustand befindet, wird die Ausführung von Computerprogrammen
ermöglicht
oder erlaubt von Computerprogrammen, welche in dem ersten Speicher
gespeichert sind, und eine Ausführung
von Computerprogrammen, welche in dem zweiten Speicher gespeichert
sind, wird verhindert.
-
In 402,
welcher Schritt entspricht dem Datenverarbeitungssystem, welches
sich in einem zweiten Zustand befindet, wird ein Ausführen von
Computerprogrammen, welche in dem zweiten Speicher gespeichert sind,
ermöglicht
oder erlaubt.
-
Obwohl
die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsbeispiele
gezeigt und beschrieben wurde, sollte es von denjenigen, die mit
dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen
bezüglich
Ausgestaltung und Details daran vorgenommen werden können, ohne
vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden
Ansprüche
definiert wird, abzuweichen. Der Bereich der Erfindung wird daher
durch die angefügten
Ansprüche
bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den
Wortsinn oder den Äquivalenzbereich
der Ansprüche
fallen, umfasst werden.