-
Die
vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren
zum Bereitstellen einer plattformunabhängigen sicheren
Domäne und ein computerlesbares Aufzeichnungsmedium. Insbesondere
betreffen Ausführungsformen ein Verfahren und eine Vorrichtung
zum Bereitstellen einer plattformunabhängigen sicheren
Domäne, die dazu ausgebildet sind, eine Ausführungsumgebung
von einer sicheren Domäne in eine unsichere Domäne
umzuwandeln in Abhängigkeit davon, ob ein Sicherungsbit
gesetzt ist, wenn ein nach dem Zufallsprinzip erzeugter Verzweigungsbefehl
erfolgreich ausgeführt ist.
-
Da
auf tragbaren Geräten, wie Mobiltelefonen oder PDAs (Personal
Digital Assistant) ausgeführte Anwendungen zunehmend sensible
Daten mit Sicherheitsanspruch verarbeiten, z. B einen Chiffrierschlüssel,
ein Zertifikat, eine International Mobile Equipment Identity (IMEI),
ein SIMLock usw., nehmen die Arten und/oder das Ausmaß von
Angriffen, die die Sicherheit von mobilen Geräten bedrohen, ebenfalls
zu.
-
In
der Regel wird Software eines mobilen Geräts mit einem
Prozessor als Anwendung und Betriebssystem (OS) klassifiziert. Das
OS steuert für gewöhnlich Systemeinrichtungen
oder disponiert die Ausführung von Anwendungen, wodurch
die Anwendung mit der Hardware verbunden wird und das gesamte System
verwaltet wird. Auf diese Weise spielt das OS allgemein eine signifikante
Rolle beim Betrieb eines mobilen Geräts.
-
Um
den Betrieb des OS zu schützen, stellt der Prozessor in
der Regel einen Privilegierungsmodus für das OS bereit,
der sich von einem Benutzerprogrammmodus unterscheidet.
-
Jedoch,
selbst wenn ein OS-Kern im OS-Privilegierungssystem geschützt
ist, wenn ein Sicherheitsmangel im OS vorliegt, ist der OS-Kern
nutzlos. Altzweck-OS, die typischerweise verwendet werden, weisen
viele Sicherheitsmängel auf. Es wird jedoch wegen der Bequemlichkeit
bei den Anwendungen in der Regel keine strenge Sicherheitspolitik
angewendet. Dementsprechend ist bei solchen Anwendungen, die in
Altzweck-OS ausgeführt werden, die Datensicherheit schwer
zu garantieren.
-
Um
eine Verbesserung bei der Datensicherheit zu erreichen, muss ein
sicher ausgelegtes Altzweck-OS verwendet werden oder sicherheitsrelevante
Daten können in einer unabhängigen Ausführungsumgebung
separat verarbeitet werden. Das erste Verfahren, das ein exklusives
OS bei einem Allzweckgerät anwendet, ist in Hinblick auf
Kosten und Benutzerfreundlichkeit nicht geeignet.
-
Das
zweite Verfahren zum separaten Verarbeiten von sicherheitsrelevanten
Daten in einer unabhängigen Ausführungsumgebung
kann dadurch effektiv sein, dass vorhandene OS und vorhandene Anwendungen
verwendet werden. Die Funktionen des OS müssen jedoch modifiziert
werden, es muss ein vorgegebener Prozessorkern verwendet werden oder
es ist schwierig, einen Schaltkreis zum Analysieren einer Softwareabfolgestruktur
auszulegen, was zeitaufwändig ist.
-
Die
Erfindung liegt die technische Aufgabe zugrunde, eine Vorrichtung
und ein Verfahren zum Bereitstellen einer plattformunabhängigen
sicheren Domäne und ein computerlesbares Aufzeichnungsmedium
zum Bereitstellen von Datensicherheit zur Verfügung zu
stellen, die z. B. ungeachtet der Art eines Prozessors oder der
Struktur eines Busses in verschiedenen Allzweckplattformen anwendbar
sind, die Zeit zum Entwickeln eines Chipsystems (SoC, System an
Chip) zum Minimieren von Modifikationen eines OS zu minimieren und
eine unabhän gige Sicherheitsumgebung zu minimieren, in
der sicherheitsrelevante Daten behandelt werden.
-
Die
Erfindung löst diese Aufgabe dadurch, dass sie eine Vorrichtung
mit den Merkmalen des Anspruch 1, ein Verfahren mit den Merkmalen
des Anspruch 13 und ein computerlesbares Aufzeichnungssystem mit
den Merkmalen des Anspruch 20 zur Verfügung stellt.
-
Vorteilhafte
Ausführungsformen der Erfindung sind in den Unteransprüchen
angeführt, deren Wortlaut hiermit durch Bezugnahme zum
Inhalt der Beschreibung gemacht wird, um unnötige Textwiederholungen
zu vermeiden.
-
Ausführungsformen
sind daher auf Verfahren und Vorrichtungen zum Bereitstellen einer
plattformunabhängigen sicheren Domäne gerichtet,
die eines oder mehrere der Probleme, die auf Einschränkungen
und Nachteilen im Stand der Technik beruhen, im Wesentlichen überwinden.
-
Es
ist daher ein Merkmal einer Ausführungsform, ein Verfahren
zum Umschalten zwischen einer sicheren Domäne und einer
unsicheren Domäne zur Verfügung zu stellen, das
nicht von der Art des Prozessors, der Art des Betriebssystems oder
der Struktur eines Busses abhängig ist, und auf diese Weise bei
Allzweckbetriebssystemen oder Allzweckplattformen ungeachtet der
Plattform angewendet werden kann, wodurch sich die Zeit zum Auslegen
eines Chipsystems (SoC) verringert.
-
Es
ist daher ein anderes Merkmal einer Ausführungsform, eine
plattformunabhängige sichere Domäne bereitzustellen,
die dazu ausgebildet ist, dass von einer sicheren Domäne
in eine unsichere Domäne umgewandelt wird, ungeachtet der
Art des Prozessors, der Art des Betriebssystems oder der Struktur
eines Busses, und auf diese Weise bei Allzweckbetriebssystemen oder
Allzweckplattformen ungeachtet der Plattform angewendet werden kann, wodurch
sich die Zeit zum Auslegen eines Chipsystems (SoC) verringert.
-
Es
ist daher ein anderes Merkmal einer Ausführungsform, eine
sichere Domäne bereitzustellen, die nicht von der Art des
Prozessors, der Art des Betriebssystems oder der Struktur eines
Busses abhängig ist, und auf diese Weise bei Allzweckbetriebssystemen
oder Allzweckplattformen ungeachtet der Plattform angewendet werden
kann, wodurch sich die Zeit zum Auslegen eines Chipsystems (SoC)
verringert.
-
Es
ist daher ein anderes Merkmal einer Ausführungsform, eine
Vorrichtung zum Bereitstellen einer plattformunabhängigen
sicheren Domäne zur Verfügung zu stellen, bei
der eine Funktion eines Prozessors nicht modifiziert ist, und auf
diese Weise ein Betriebssystem schnell entwickelt und inspiziert
werden kann.
-
Vorteilhafte
Ausführungsformen der Erfindung, wie sie unten ausführlich
beschrieben werden, sind in den Zeichnungen dargestellt, in denen:
-
1 ein
Blockdiagramm einer beispielhaften Ausführungsform einer
Ausführungsumgebung zeigt, die in eine sichere Domäne
und eine unsichere Domäne unterteilt ist,
-
2 eine
beispielhafte Ausführungsform eines Blockdiagramms einer
Vorrichtung zum Bereitstellen einer sicheren Domäne zeigt,
-
3 ein
schematisches Diagramm einer weiteren beispielhaften Ausführungsform
einer Vorrichtung zum Bereitstellen einer sicheren Domäne zeigt,
-
4 ein
schematisches Diagramm einer beispielhaften Ausführungsform
einer Umwandlung einer Ausführungsumgebung der Vorrichtung
zum Bereitstellen einer sicheren Domäne der 2 und 3 von
einer sicheren Domäne in eine unsichere Domäne
zeigt,
-
5 ein
Taktdiagramm einer beispielhaften Ausführungsform einer
Betriebsweise eines Sicherungsmonitors der Vorrichtung zum Bereitstellen
einer sicheren Domäne der 2 und 3 zeigt,
-
6 ein
Flussdiagramm eines beispielhaften Verfahrens zum Bereitstellen
einer sicheren Domäne zeigt und
-
7 ein
Flussdiagramm eines beispielhaften Verfahrens zum Bereitstellen
einer sicheren Domäne und Umwandeln einer Ausführungsumgebung von
einer sicheren Domäne in eine unsichere Domäne
zeigt.
-
Die
koreanische Patentanmeldung
Nr. 10-2009-0043095 , eingereicht am 18. Mai 2009 beim koreanischen
Patentamt mit dem Titel: ”Method and Apparatus for Providing
Platform Independent Secure Domain” wird durch Bezugnahme
insgesamt zum Bestandteil der vorliegenden Beschreibung gemacht.
-
In
den Figuren der Zeichnungen können zur Verdeutlichung der
Darstellung die Abmessungen von Schichten und Bereichen übertrieben
dargestellt sein. Es versteht sich ebenso, dass, wenn ein Element
als ”zwischen” zwei Elementen bezeichnet ist, es
das einzige Element zwischen den beiden Elementen sein kann oder
ein oder mehrere dazwischen liegende Elemente ebenso vorhanden sein
können. Gleiche Bezugszeichen bezeichnen gleiche Elemente
in der Beschreibung.
-
1 stellt
ein Blockdiagramm einer beispielhaften Ausführungsform
einer Ausführungsumgebung dar, die in eine sichere Domäne
und eine unsichere Domäne unterteilt sein kann.
-
Mit
Bezug zu 1 kann die Ausführungsumgebung
einer Anwendung in eine sichere Domäne und eine unsichere
Domäne unterteilt sein. Die sichere Domäne kann
einen sicheren Master 20 und einen Slave 40 des
sicheren Bereichs umfassen. Die unsichere Domäne kann einen
unsicheren Master 30 und einen Slave 50 des unsicheren
Bereichs umfassen. Ein Prozessor 10 kann mit der unsicheren
Domäne und der sicheren Domäne kommunizieren.
Ein Hauptbus kann einen Kommunikationspfad zwischen dem Prozessor 10 und
Elementen der unsicheren Domäne und der sicheren Domäne
bereitstellen. Insbesondere kann z. B. der Hauptbus einen Kommunikationspfad
zwischen dem Prozessor 10, dem sicheren Master 20,
dem unsicheren Master 30, dem Slave 40 des sicheren
Bereichs und dem Slave 50 des unsicheren Bereichs bereitstellen.
-
Ein
Allzweckbetriebssystem kann Anwendungen, die sensible sicherheitsrelevante
Daten handhaben, von anderen Anwendungen nicht streng trennen. Sensible
sicherheitsrelevante Daten können z. B. einen Chiffrierschlüssel,
ein Zertifikat, eine International Mobile Equipment Identity (IMEI),
ein SIMLock usw. beinhalten. Sensible sicherheitsrelevante Daten
können auf einem hohen Sicherheitsniveau verarbeitet werden,
um ein Aufrechterhalten der Sicherheit zu unterstützen.
Ein Allzweckbetriebssystem kann jedoch Anwendungen, die sensible
sicherheitsrelevante Daten handhaben, von anderen Anwendungen nicht
trennen, weil eine Verarbeitung auf höheren Sicherheitsniveaus
z. B. die Leistung einer Anwendung beeinträchtigen oder
verlang samen und/oder für einen Benutzer unbequem sein
kann. Wenn daher ein Allzweckbetriebssystem eingesetzt wird, kann
es schwierig sein, die Sicherheit von sicherheitsrelevanten Daten
zu garantieren.
-
Um
Stabilität beim Handhaben von sicherheitsrelevanten Daten
zu erreichen, kann eine Ausführungsumgebung in eine sichere
Domäne und in eine unsichere Domäne unterteilt
sein. Ein sicherer Code, der sicherheitsrelevante sensible Daten
beinhaltet, z. B. einen Schlüssel, ein Zertifikat, eine
IMEI, ein SIMLock usw., und ein Programm zum Verarbeiten der sicherheitsrelevanten
Daten können in der sicheren Domäne ausgeführt
werden. Ein unsicherer Code, der nicht sicherheitsrelevant ist,
kann in der unsicheren Domäne ausgeführt werden.
-
In
hierin beschriebenen beispielhaften Ausführungsformen kann
angenommen sein, dass eine Ausführungsumgebung in eine
sichere Domäne und in eine unsichere Domäne aufgeteilt
ist, um sicherheitsrelevante Daten zu schützen. Ausführungsformen
können eine Umwandlung der Ausführungsumgebung
von einer unsicheren Domäne in eine sichere Domäne
unter Verwendung von Hardware, ungeachtet der Art des Prozessors
und/oder der Art des Betriebssystems ermöglichen. Insbesondere,
z. B., wenn ein Aufruf eines sicheren Codes detektiert ist, kann
eine Ausführungsumgebung einer Anwendung in eine sichere
Domäne umgewandelt werden, so dass der sichere Code in
der geschützten sicheren Domäne ausgeführt
werden kann, z. B. einer separaten sichereren Domäne zum
Ausführen des sicheren Codes.
-
Die
unsichere Domäne kann einer Umgebung entsprechen, in der
eine Anwendung ausgeführt werden kann, die keine sicherheitsrelevanten Daten
umfasst. Mit Bezug zu 1 können der Prozessor 10,
wenn er keinen sicheren Code ausführt, und der unsichere
Master 30 nicht auf die sichere Domäne zugreifen.
Wenn der Prozessor 10 kei nen sicheren Code ausführt,
kann der Prozessor 10 auf den unsicheren Bereich 50 zugreifen
und kann daran gehindert sein, auf den sicheren Bereich 40 zuzugreifen.
Insbesondere, wenn der Prozessor 10 keinen sicheren Code
ausführt, können der Prozessor 10 und der
unsichere Master 30 daran gehindert sein, auf den sicheren
Bereich 40 zuzugreifen.
-
Die
sichere Domäne kann einer Domäne entsprechen,
in der eine Anwendung mit sicherheitsrelevanten Daten ausgeführt
werden kann. Mit Bezug zu 1 können
der sichere Master 20 und der Prozessor 10, während
ein sicherer Code ausgeführt wird, über den Hauptbus
sowohl auf den sicheren Bereich 40 wie den unsicheren Bereich 50 zugreifen.
Der sichere Master 20 und der Prozessor 10 können
während ein sicherer Code ausgeführt wird ohne
Einschränkungen auf den sicheren Bereich 40 und
den unsicheren Bereich 50 zugreifen.
-
Der
sichere Bereich 40 und der unsichere Bereich 50 können
Slave-Bereiche sein, in denen in Abhängigkeit davon, ob
sicherheitsrelevante Daten enthalten sind, eine physikalische Adresse
getrennt werden kann. Der sichere Bereich 40 und der unsichere
Bereich 50 können Speichereinrichtungen umfassen,
die verschiedene Daten speichern können, z. B. einen Speicher
mit wahlfreiem Zugriff (Random Access Memory RAM), einen Nur-Lese-Speicher (Read
Only Memory ROM), einen Flash-Speicher (FM) und einen elektrisch
löschbaren und programmierbaren Nur-Lese-Speicher (Electrically
Erasable and Programmable Read Only Memory EEPROM) oder eine magnetische
Aufzeichnungsvorrichtung (z. B. Hard Disk Drive HDD).
-
2 stellt
eine beispielhafte Ausführungsform eines Blockdiagramms
einer Vorrichtung zum Bereitstellen einer sicheren Domäne
dar.
-
Mit
Bezug zu 2 kann die Vorrichtung zum Bereitstellen
einer sicheren Domäne einen Prozessor 110, einen
Sicherungsmonitor 115, einen Befehlsbypaß-ROM 125,
einen Adressdecodierer 135 und einen Zugriffsbeschränker 145 (Slave-Firewall (FW))
umfassen.
-
Die
Vorrichtung zum Bereitstellen einer sicheren Domäne kann
in Abhängigkeit von interaktiven Operationen des Prozessors 110,
des Sicherungsmonitors 115 und des Befehlsbypaß-ROM 125 ein
Sicherungsbit (SB) setzen/zurücksetzen und kann dadurch
bestimmen, dass eine Ausführungsumgebung in einer sicheren
Domäne oder in einer unsicheren Domäne sein soll.
-
Der
Prozessor 110 kann eine Berechnungseinheit umfassen, die
verschiedene Anwendungen ausführt. Insbesondere kann der
Prozessor 110 verschiedene Anwendungen zum Durchführen
von Softwarebefehlen ausführen, wobei ein sicherer Code
mit sicherheitsrelevanten Daten in der sicheren Domäne ausgeführt
wird und ein unsicherer Code ohne sicherheitsrelevante Daten in
der unsicheren Domäne ausgeführt wird usw.
-
Der
Sicherungsmonitor 115 kann den Befehl, den der Prozessor 110 ausführt, überwachen
und kann ein Sicherungsbit SB setzen/zurücksetzen, um eine
Ausführungsumgebung von einer unsicheren Domäne
in eine sichere Domäne umzuwandeln. Die sichere Domäne
kann einer Umgebung entsprechen, in der das Sicherungsbit SB gesetzt
ist, und die unsichere Domäne kann einer Umgebung entsprechen, in
der das Sicherungsbit SB zurückgesetzt ist.
-
Der
Befehlsbypaß-ROM 125 kann ein ROM sein, der einem
Speicherbereich entspricht, aus dem der Prozessor 110 Befehle
abrufen kann, die vom Sicherungsmonitor 115 erzeugt sind.
Insbesondere kann der Befehlsbypaß-ROM 125 z.
B. ein festverdrahteter ROM sein, der nicht von einem Programm abhängig
ist. Die vom Sicherungsmonitor 115 erzeugten Befehle können
im Befehlsbypaß-ROM 125 gespeichert sein. Der
Prozessor 110 kann im Befehlsbypaß-ROM 125 gespeicherte
Befehle abrufen und kann die abgerufenen Befehle ausführen.
-
Der
Sicherungsmonitor 115 kann einen Verzweigungsbefehl erzeugen,
wenn der Prozessor 110 einen sicheren Code aufruft, und
kann den Verzweigungsbefehl für den Befehlsbypaß-ROM 125 bereitstellen.
Der Sicherungsmonitor 115 kann überwachen, ob
der Prozessor 110 den Verzweigungsbefehl abruft und ihn
erfolgreich ausführt. Der Sicherungsmonitor 115 kann
ein Sicherungsbit SB setzen, wenn der Verzweigungsbefehl vom Prozessor 110 erfolgreich
ausgeführt worden ist, und kann dadurch die Ausführungsumgebung
in eine sichere Domäne umwandeln. Wenn die Ausführung
des sicheren Codes in der sicheren Domäne beendet ist,
kann das Sicherungsbit SB zurückgesetzt werden. Zurücksetzen des
Sicherungsbits kann damit die Ausführungsumgebung von der
sicheren Domäne in die unsichere Domäne umwandeln.
-
Nachfolgend
werden Komponenten der Vorrichtung zum Bereitstellen einer sicheren
Domäne und ihre Funktionen ausführlich beschrieben.
-
Der
Sicherungsmonitor 115 kann eine Monitorsteuereinheit 112,
einen Zufallszahlengenerator 114 und eine Spezial-Funktions-Register(SFR)-Bank 116 umfassen.
-
Die
Monitorsteuereinheit 112 kann eine Operation des Prozessors 110 überwachen
und kann ein Sicherungsbit SB erzeugen. Die Monitorsteuereinheit 112 kann
eine Operation des Prozessors 110 überwachen und
kann bestimmen, ob der Prozessor 110 einen sicheren Code
aufgerufen hat.
-
Der
Zufallszahlengenerator 114 kann einen Verzweigungsoffset
nach dem Zufallsprinzip erzeugen. Wenn vom Prozessor 110 ein
sicherer Code aufgerufen ist, kann der Zufallszahlengenerator 114 zufällig
einen Verzweigungsoffset erzeugen und kann den nach dem Zufallsprinzip
erzeugten Verzweigungsoffset der Monitorsteuereinheit 112 bereitstellen.
-
Die
Monitorsteuereinheit 112 kann den zufällig erzeugten
Verzweigungsoffset verwenden und kann einen Verzweigungsbefehl erzeugen.
Die Monitorsteuereinheit 112 kann den erzeugten Verzweigungsbefehl
dem Befehlsbypaß-ROM 125 bereitstellen.
-
Der
Befehlsbypaß-ROM 125 kann ein festverdrahteter
ROM sein, der verschiedene Arten von Befehlen speichert, die vom
Sicherungsmonitor 115 empfangen worden sind. Der Befehlsbypaß-ROM 125 kann
einen Verzweigungsbereich 122 und einen Umgebungssetzbereich 124 umfassen.
Der Umgebungssetzbereich 124 kann einen Umgebungssetzbefehl
speichern. Der Verzweigungsbereich 122 kann dazu ausgebildet
sein, den von der Monitorsteuereinheit 112 erzeugten Verzweigungsbefehl
zu speichern.
-
Die
Spezial-Funktions-Register(SFR)-Bank 116 kann außerdem
einen Umgebungssetzbefehl bezüglich der sicheren Domäne
speichern. Der Umgebungssetzbereich 124 kann dazu ausgebildet
sein, den Umgebungssetzbefehl der SFR-Bank 116 zu speichern.
-
Der
Verzweigungsbefehl und/oder der Umgebungssetzbefehl, die im Verzweigungsbereich 122 bzw.
im Umgebungssetzbereich 124 hinterlegt sein können,
können vom Prozessor 110 abgerufen und durchgeführt
werden.
-
Die
Monitorsteuereinheit 112 kann überwachen, ob der
Verzweigungsbefehl vom Prozessor 110 erfolgreich ausgeführt
wird. Wenn der Verzweigungsbefehl vom Prozessor 110 erfolgreich
ausgeführt wird, kann die Monitorsteuereinheit 112 ein
Sicherungsbit SB setzen.
-
Um
zu bestimmen, ob der Verzweigungsbefehl vom Prozessor 110 erfolgreich
ausgeführt wird oder nicht, kann die Monitorsteuereinheit 112 im
Voraus eine geschätzte Verzweigungsadresse unter Verwendung
eines nach dem Zufallsprinzip erzeugten Verzweigungsoffset errechnen.
Die Monitorsteuereinheit 112 kann eine Verzweigungsadresse,
die vom Prozessor 110 übertragen wird, während
der Verzweigungsbefehl ausgeführt wird, mit der im Voraus
unter Verwendung eines nach dem Zufallsprinzip erzeugten Verzweigungsoffset
errechneten geschätzten Verzweigungsadresse vergleichen
und kann dadurch bestimmen, ob der Verzweigungsbefehl vom Prozessor 110 erfolgreich
ausgeführt worden ist.
-
Um
die Sicherheit von verarbeiteten Daten zu verbessern, z. B. zu erhöhen,
kann in einigen Ausführungsformen die Operation von interaktivem Übertragen
und Ausführen des Verzweigungsbefehls so gesetzt sein,
dass sie in einer vorgegebenen Anzahl an Wiederholungen durchgeführt
wird. In diesen Ausführungsformen kann die Monitorsteuereinheit 112 ein
Sicherungsbit SB nur dann setzen, wenn der Prozessor 110 ein
Mehrzahl, z. B. die vorgegebene Anzahl, an zufällig erzeugten
Verzweigungsbefehlen erfolgreich ausgeführt hat.
-
Wenn
das Sicherungsbit SB gesetzt ist, kann die Ausführungsumgebung
von einer unsicheren Domäne in eine sichere Domäne
umgewandelt werden. Wenn die Ausführungsumgebung in der
sicheren Domäne ist, können der Prozessor 110 und
der sichere Master 20 die Möglichkeit haben, auf
den sicheren Bereich 40 zuzugreifen (1)
und damit den sicheren Code ausführen. Wenn die Ausführung
des aufge rufenen sicheren Codes abgeschlossen ist, kann die Monitorsteuereinheit 112 das
Sicherungsbit SB zurücksetzen und die Ausführungsumgebung
von der sicheren Domäne in die unsichere Domäne
umwandeln.
-
Indessen
kann, während das Sicherungsbit SB ausgeführt
wird, basierend auf dem Umgebungssetzbefehl die sichere Domäne
mit verschiedenen Umgebungsvariablen gesetzt werden. Insbesondere kann
die Monitorsteuereinheit 112 den in der SFR-Bank 116 gespeicherten
Umgebungssetzbefehl zu einem Anfangszeitpunkt dem Befehlsbypaß-ROM 125 bereitstellen,
und der Befehlsbypaß-ROM 125 kann den empfangenen
Umgebungssetzbefehl im Umgebungssetzbereich 124 speichern.
Der Prozessor 110 kann sequentiell einen im Umgebungssetzbereich 124 des
Befehlsbypaß-ROM 125 gespeicherten Umgebungssetzbefehl
abrufen, nachdem das Sicherungsbit SB gesetzt worden ist, kann den Umgebungssetzbefehl
ausführen und kann dadurch eine Setzoperation bezüglich
der sicheren Domäne abschließen.
-
In
einigen Ausführungsformen kann der in der SFR-Bank 116 gespeicherte
Umgebungssetzbefehl so ausgebildet sein, dass er nur modifizierbar
ist, wenn ein System, das die Vorrichtung zum Bereitstellen einer
sicheren Domäne beinhaltet, initialisiert wird, z. B.,
wenn das System zurückgesetzt (Reset) oder hochgefahren
wird. Auf diese Weise kann der Umgebungssetzbereich 124 des
Befehlsbypaß-ROM 125 als interner ROM dienen und
kann eine Umgebungseinstellung verändern, wenn eine Veränderung der
Umgebungseinstellung erforderlich ist. Das heißt, der Umgebungssetzbereich 124 kann
z. B. gleichzeitig als interner ROM dienen und kann eine Umgebungseinstellung
verändern, wenn es erforderlich ist.
-
Mit
Bezug zu den 1 und 2 kann die Monitorsteuereinheit 112 des
Sicherungsmonitors 115 ein Sicherungsbit zum Adressdecodierer 135 und
zum Zugriffsbeschränker 145 übertragen
und kann dadurch verhindern, dass der Prozessor 110 oder
der unsichere Master 30 auf den sicheren Bereich 40 in
der unsicheren Domäne zugreift.
-
Der
Adressdecodierer 135 kann eine Adressdecodierung durchführen.
Insbesondere, wenn das Sicherungsbit gesetzt ist, kann der Adressdecodierer 135 eine
sichere Adressdecodierung durchführen, die eine Adressdecodierung
aller Adressenbereiche ermöglicht, z. B. sicherer und unsicherer
Bereiche, und wenn das Sicherungsbit zurückgesetzt ist,
kann der Adressdecodierer 135 eine unsichere Adressdecodierung
durchführen, die eine Adressdecodierung nur eines unsicheren
Bereichs ermöglicht.
-
Der
Zugriffsbeschränker 145 kann eine Einheit sein,
die verwendet wird, wenn sowohl ein sicherer Bereich wie ein unsicherer
Bereich in einem Slave vorhanden sind. Der Zugriffsbeschränker 145 kann
in Abhängigkeit davon, ob der Master ein sicherer/unsicherer
Master 20/30 ist und das Sicherungsbit gesetzt/zurückgesetzt
ist, bestimmen, ob einem Master oder einem Prozessor erlaubt wird
oder nicht, auf einen sicheren Bereich im Slave zuzugreifen.
-
In
Ausführungsformen kann ein Betriebszustand des Prozessors 110 in
einen Zustand der unsicheren Domäne, in dem ein unsicherer
Code ausgeführt werden kann, und einen Zustand der sicheren Domäne,
in dem ein sicherer Code ausgeführt werden kann, unterteilt
sein. Der Zustand der unsicheren Domäne kann einen Zustand
der zufälligen Verzweigung umfassen, in dem ein zufällig
erzeugter Verzweigungsbefehl ausgeführt werden kann, bevor
der Zustand der unsicheren Domäne in den Zustand der sicheren
Domäne umgewandelt wird. Die sichere Domäne kann
einen Domänensetzzustand aufweisen, in dem eine für
eine sichere Domäne erforderliche Domäne gesetzt
werden kann. Um die Sicherheit zu verbessern und/oder geschützte
Ausführung eines sicheren Codes zu garantieren, kann der
Sicherungsmonitor 115 interaktiv eine Ausführungsumgebung
durch Setzen/Zurücksetzen eines Sicherungsbits in Abhängigkeit
von einem zuvor definierten Verzweigungsbefehl und davon, ob der
Umgebungssetzbefehl erfolgreich ausgeführt worden ist,
umgewandelt werden.
-
In
Ausführungsformen kann zur Umwandlung in eine sichere Ausführungsumgebung,
d. h. Umwandlung von einer unsicheren Domäne in eine sichere
Domäne, ein Codeausführungsfluss des Prozessors 110 derart
ausgebildet sein, dass eine Ausführungsumgebung in eine
sichere Domäne umgewandelt wird, die nachdem eine Ausführung
eines unsicheren Codes in der unsicheren Domäne abgeschlossen
ist, ausschließlich einen sicheren Code ausführt.
-
Insbesondere
kann z. B. eine Ausführungsumgebung in eine sichere Domäne
umgewandelt werden, nachdem direkt bevor ein sicherer Code ausgeführt
wird, geprüft worden ist, ob eine Flush-Befehlssequenz
ausgeführt worden ist oder nicht. Eine Flush-Befehlssequenz
kann eine Pipeline oder einen Befehlscache mit einem unsicheren
Code leeren, der verbleiben und ausgeführt werden kann. In
Ausführungsformen kann in einem Versuch, eine unbeabsichtigte
Umwandlung der Ausführungsumgebung in eine sichere Domäne
zu vermeiden, was Auftreten kann, wenn ein Abrufen der Flush-Befehlssequenz
durch Manipulieren des unsicheren Codes imitiert wird, obwohl tatsächlich
kein sicherer Code ausgeführt wird, nur ein Abrufen zum
Ausführen einer Flush-Befehlssequenz zulässig
sein.
-
In
Ausführungsformen kann eine Umwandlung in eine sichere
Domäne aus einer Imitierung eines Verzweigungsbefehls,
der aus einem manipulierten unsicheren Code in einen künstlichen
sicheren Code resultiert, verringert und/oder verhindert werden,
indem ein nach dem Zufallsprinzip erzeugter Verzweigungsbefehl eingesetzt
wird und eine Flush-Funktion des unsicheren Codes, z. B. zur gleichen
Zeit, durchgeführt wird.
-
In
Ausführungsformen können der Sicherungsmonitor 115 und
der Befehlsbypaß-ROM 125 außerhalb des
Prozessors 110 unter Verwendung von Hardware separat ausgebildet
sein, und können aus Sicht des Prozessors 110 transparent
ausgelegt sein. Dementsprechend können Ausführungsformen einer
Vorrichtung zum Bereitstellen einer sicheren Domäne, die
eines oder mehrere der hier beschriebenen Merkmale aufweisen, ungeachtet
der Art des Prozessors oder der Art des verwendeten Betriebssystems
bei allen Arten von Plattformen angewendet werden. Ausführungsformen
einer Vorrichtung zum Bereitstellen einer sicheren Domäne
können so ausgelegt sein, dass sie von einer Taktung eines
internen Busses nicht stark beeinflusst werden, z. B. relativ unempfindlich
sind, und auf diese Weise einfach bei einem Prozessor oder einem
Bus mit einer neuen Struktur angewendet werden können.
-
Durch
Implementieren eines Sicherungsmonitors 115 und des festverdrahteten
Befehlsbypaß-ROM 125 so, dass sie miteinander
verbunden sind, kann das Sicherheitsniveau viel stärker
erhöht werden als wenn sie als Softwaresequenz implementiert
sind.
-
3 stellt
ein schematisches Diagramm einer weiteren beispielhaften Ausführungsform
der Vorrichtung zum Bereitstellen einer sicheren Domäne
dar. Mit Bezug zu 3 kann die Vorrichtung zum Bereitstellen
einer sicheren Domäne einen Prozessor 210, einen
Sicherungsmonitor 215, einen Befehlsbypaß-ROM 225,
einen Adressdecodierer 235 und/oder Zugriffsbeschränker 245_1, 245_2, 245_3 umfassen. 3 stellt
auch beispielhafte Slaves 240, 250 und Master,
z. B. einen sicheren Master 220 und einen unsicheren Master 230 dar,
die bei der hier dargestellten Vorrichtung zum Bereitstellen einer
sicheren Domäne eingesetzt sein können. Das heißt, die
beispielhafte Vorrichtung zum Bereitstellen einer sicheren Domäne
von 3 kann im Wesentlichen der Vorrichtung zum Bereitstellen
einer sicheren Domäne von 2 in einem
Zustand, in dem die Vorrichtung zum Bereitstellen einer sicheren
Domäne mit Slaves 240, 250 und Mastern 220, 230 verbunden ist,
entsprechen. Gleiche Bezugszeichen sind in den 2 und 3 gleichen
Elementen zugeordnet.
-
In
Ausführungsformen können die Slaves 240, 250 Module
sein, die von einem Prozessor oder einem Master angesteuert werden.
Die Module können eine oder mehrere Arten von Speichermodulen umfassen,
die dazu ausgebildet sind, Daten zu speichern, wie ein allgemeines
Festplattenlaufwerk (HDD) oder ein Speicher, z. B. RAM, ROM, Flash-Speicher
usw.
-
Um
sicherheitsrelevante Daten zu schützen, können
ein oder mehrere Slaves 240, 250 in sichere Bereiche 152_1, 152_2 bzw.
unsichere Bereiche 154_1, 154_2 unterteilt sein.
In Ausführungsformen können sichere Bereiche und
unsichere Bereiche jeweils in separaten Slaves ausgebildet sein
oder in einem einzigen Slave. Die Slaves 240, 250 können
z. B. jeweils einen der Zugriffsbeschränker 245_1, 245_2 umfassen.
-
Die
Zugriffsbeschränker 245_1, 245_2, 245_3 können
verwendet werden, wenn ein unsicherer Bereich und ein sicherer Bereich
in einem Slave vorliegen oder beim Steuern eines Zugriffs auf ein Peripheriegerät 190,
das mit dem sicheren Bereich über einen Peripheriebus verbunden
ist. Zum Beispiel können die Zugriffsbeschränker 240_1, 240_2 der
Slaves 240, 250 bestimmen, ob ein Master ein sicherer/unsicherer
Master 220, 230 ist, und ob der Prozessor 210,
in Abhängigkeit davon, ob ein Sicherungsbit gesetzt/zurückgesetzt
ist, auf den sicheren Bereich zugreifen kann. Die Zugriffsbeschränker 245_1, 245_2 eines
Slave können verhindern, dass der unsichere Master und
der Prozessor 210 durch Zugriff auf einen sicheren Bereich
einen unsicheren Code ausführen.
-
In
Ausführungsformen kann ein Master, z. B. der sichere Master 220,
der unsichere Master 230, einen Prozessor, z. B. 210,
umfassen und/oder ihm zugeordnet sein. Der Master 220, 230 kann
einen Modul umfassen, der nicht von anderen Bauteilen angesteuert
wird, der aber z. B. einen oder mehrere der Slaves 240, 250 selbst
ansteuert oder Daten mit dem Slave austauscht. Ein Master kann als
sicherer Master 220 und als unsicherer Master 230 klassifiziert sein.
Der sichere Master 220 kann sowohl auf den oben beschriebenen
sicheren Bereich wie den unsicheren Bereich zugreifen. Der unsichere
Master 230 kann nur auf den unsicheren Bereich zugreifen
und Zugriff auf den sicheren Bereich kann ihm verwehrt sein. Wenn
der Prozessor 210 einen sicheren Code ausführt,
kann er dem sicheren Master 220 entsprechen, und wenn der
Prozessor 210 einen unsicheren Code ausführt,
kann er dem unsicheren Master 230 entsprechen.
-
Der
Adressdecodierer 235 kann in Abhängigkeit davon,
ob ein Master, der eine Adresse anfordert, der sichere Master 220 ist
und ob ein Sicherungsbit gesetzt ist, eine sichere Adressdecodierung oder
eine unsichere Adressdecodierung durchführen. Eine sichere
Adressdecodierung kann angewendet werden, wenn ein Master, der eine
Adresse anfordert, der sichere Master 220 ist und/oder
ein Sicherungsbit gesetzt ist (einschließlich eines Falls,
bei dem ein Prozessor ein sicherer Master wird) und kann eine Adressdecodierung über
alle Bereiche ermöglichen. Eine unsichere Adressdecodierung
kann angewendet werden, wenn ein Master, der eine Adresse anfordert,
der unsichere Master 230 ist und/oder ein Sicherungsbit
zurückgesetzt ist (einschließlich eines Falls,
bei dem ein Prozessor ein unsicherer Master wird) und kann eine
Adressdecodierung nur in einem unsicheren Bereich durchführen. Wenn daher
der Master, der eine Adresse anfordert, der unsichere Master 230 ist
oder das Sicherungsbit zurückgesetzt ist, kann eine Adressdecodierung
bezüglich eines sicheren Bereichs verwehrt sein, und der
unsichere Master 230 kann keinen Zugriff auf den sicheren
Bereich erhalten.
-
Der
Sicherungsmonitor 215 kann außerhalb des Prozessors 210 liegen
oder er kann im Prozessor 110, 210 angeordnet
sein. Der Sicherungsmonitor 215 kann Signale des Prozessors 210 und
Signale eines Busses überwachen. Bei einer speziellen Bedingung,
unter der Ausführung eines authentifizierten Sicherheitscodes,
der in einem vordefinierten sicheren Bereich liegt, angefordert
wird, kann der Sicherungsmonitor 215 in Abhängigkeit
davon, ob ein zufälliger Verzweigungsbefehl erfolgreich
war oder nicht, gemäß einer interaktiven Kooperation
zwischen Prozessor 210 und dem Befehlsbypaß-ROM 225 ein
Sicherungsbit setzen/zurücksetzen.
-
Mit
Bezug zu 3 kann ein vom Sicherungsmonitor 215 bereitgestelltes
Sicherungsbit dem Adressdecodierer 235 und den Zugriffsbeschränkern 245_1, 245_2, 245_3 bereitgestellt
werden und kann dadurch verhindern, dass ein Master oder ein Prozessor
auf sichere Bereiche zugreift, z. B. unerlaubten Zugriff zu sicheren
Bereichen verhindern.
-
Ausführungsformen
der Vorrichtung zum Bereitstellen einer sicheren Domäne
mit einem oder mehreren der oben beschriebenen Merkmale können bei
typischen Allzweckplattformen angewendet werden, indem ein vom Sicherungsmonitor 215 erzeugtes
Sicherungsbit direkt dem Adressdecodierer 235 und den Zugriffsbeschränkern 245_1, 245_2, 245_3 bereitgestellt
wird.
-
4 stellt
ein schematisches Diagramm einer beispielhaften Ausführungsform
einer Umwandlung einer Ausführungsumgebung der Vorrichtung zum
Bereitstellen einer sicheren Domäne der 2 und 3 zwischen
einer sicheren Domäne und einer unsicheren Domäne
dar. 5 stellt ein allgemeines Taktdiagramm einer beispielhaften
Ausführungsform einer Betriebsweise eines Sicherungsmonitors 115, 215 der
Vorrichtung zum Bereitstellen einer sicheren Domäne der 2 und 3 dar.
-
Ein
System, das eine Vorrichtung zum Bereitstellen einer sicheren Domäne
beinhaltet, z. B. die oben mit Bezug zu den 2 und 3 dargestellte Vorrichtung
zum Bereitstellen einer sicheren Domäne, kann in einer
sicheren Hochfahrumgebung initialisiert werden und kann von einer
unsicheren Domäne in eine sichere Domäne umgewandelt
werden und kann dann in die unsichere Domäne zurückgeführt werden.
-
Mit
Bezug zu den 2, 3 und 4 kann
in einer sicheren Hochfahroperation S10 das System, das eine Vorrichtung
zum Bereitstellen einer sicheren Domäne beinhaltet, zurückgesetzt
oder zum Initialisieren hochgefahren werden. Die sichere Hochfahroperation
kann in einem sicheren Domänenzustand erfolgen, der vom
Sicherungsmonitor 115, 215 nicht beeinflusst werden
kann, bis das sichere Hochfahren abgeschlossen ist. In Ausführungsformen
kann ein Umgebungssetzbefehl der SFR-Bank 116 (2)
des Sicherungsmonitors 115 während der sicheren
Hochfahroperation S10 gesetzt werden. In solchen Ausführungsformen
können in der SFR-Bank 116 des Sicherungsmonitors 115 gespeicherte
Daten nicht verändert werden, nachdem die sichere Hochfahroperation
beendet ist.
-
Nachdem
die sichere Hochfahroperation S10 beendet ist, kann die Ausführungsumgebung
in einer Operation S20 in einen unsicheren Domänenzustand
umgewandelt werden.
-
Wenn
vom Prozessor 110, 210 im unsicheren Domänenzustand
eine Anfrage eines sicheren Codes zum Ausführen eines sicheren
Codes erzeugt wird, kann eine zufällige Verzweigungsoperation
S30 gemäß den interaktiven Operationen der Monitorsteuereinheit 112 (2)
und des Prozessors 110, 210 durchgeführt
werden.
-
In
der zufälligen Verzweigungsoperation S30 kann die Monitorsteuereinheit 112 eine
Operation des Prozessors 110, 210 überwachen,
um eine Anforderung eines sicheren Codes zu detektieren. Wenn eine
Anforderung eines sicheren Codes detektiert ist, kann ein Verzweigungsbefehl
gemäß einer vorgegebenen Anzahl einmal oder mehrmals
erzeugt werden und kann dem Befehlsbypaß-ROM 125, 225 bereitgestellt
werden. Die Monitorsteuereinheit 112 kann eine Operation
des Prozessors 110, 210 überwachen, um
zu bestimmen, ob der Prozessor 110, 210 alle Verzweigungsbefehle
ausgeführt hat, die der Prozessor 110, 210 vom
Befehlsbypaß-ROM 125, 225 abgerufen hat.
-
Wenn
der Prozessor 110, 210 eine zufällige Verzweigungsoperation
nicht ausgeführt hat, kann die Monitorsteuereinheit 112 einen
Befehl bereitstellen, der das System zu einer Routine abzweigt,
die einem Angriffszustand zugeordnet ist, und kann dadurch das System
so einstellen, dass es in Operation S60 zurückgesetzt wird.
-
Wenn
der Prozessor 110, 210 eine zufällige Verzweigungsoperation
erfolgreich ausgeführt hat, kann eine sichere Domänensetzoperation
S40 gestartet werden. In der sicheren Domänensetzoperation
S40 kann die Monitorsteuereinheit 112 ein Sicherungsbit
setzen und kann zur gleichen Zeit einen in der SFR-Bank 116 gespeicherten
Umgebungssetzbefehl für den Befehlsbypaß-ROM 125, 225 bereitstellen.
Der dem Befehlsbypaß-ROM 125, 225 bereitgestellte
Umgebungssetzbefehl kann vom Prozessor 110, 210 derart
abgerufen und ausgeführt werden, dass eine Setzoperation,
die einer sicheren Domäne zugeordnet ist, ausgeführt
werden kann.
-
Wenn
das Setzen der sicheren Domäne abgeschlossen ist, kann
eine Umwandlung der Ausführungsumgebung von der unsicheren
Domäne zur sicheren. Domäne abgeschlossen werden.
Wenn das Setzen der sicheren Domäne abgeschlossen ist, kann
der Prozessor 110, 210 in Operation S50 einen sicheren
Code in der sicheren Domäne ausführen.
-
Wenn
ein Ausführen des sicheren Codes abgeschlossen ist, kann
die Monitorsteuereinheit 112 ein Sicherungsbit zurücksetzen
und kann dadurch die Ausführungsumgebung von der sicheren
Domäne in die unsichere Domäne umwandeln.
-
In 4 geben
eingekreiste Operationen, die mit einer einfachen durchgezogenen
Linie dargestellt sind, Zustände an, in denen ein Sicherungsbit zurückgesetzt
ist, das heißt, einen unsicheren Domänenzustand,
und eingekreiste Operationen, die mit einer doppelten durchgezogenen
Linie dargestellt sind, geben Zustände an, in denen ein
Sicherungsbit gesetzt ist, das heißt, einen sicheren Domänenzustand.
Insbesondere kann der unsichere Domänenzustand die Ausführungsoperation
des unsicheren Codes, Operation S20, und die zufällige
Verzweigungsoperation S30 beinhalten, und der sichere Domänenzustand
kann die sichere Hochfahroperation S10, die sichere Domänensetzoperation
S40 und die Ausführungsoperation des sicheren Codes S50
beinhalten.
-
Mit
Bezug zu den 4 und 5 können Ausführungsformen
einer Vorrichtung zum Bereitstellen einer sicheren Domäne,
die eines oder mehrere der hier beschriebenen Merkmale aufweist,
und insbesondere Ausführungsformen eines Sicherungsmonitors,
der eines oder mehrere der hier beschriebenen Merkmale aufweist,
eine Mehrzahl von Operationen wiederholen, z. B. S10 bis S60 bzw.
K1 bis K6. Insbesondere
können z. B. eine Initialisierungs- und sichere Hochfahroperation
S10, K1, eine unsichere Codeausführungsoperation
S20, K2, eine zufällige Verzweigungsoperation
S30, K3, eine sichere Domänensetzoperation
S40, K4, eine sichere Codeausführungsoperation
S50, K5, und/oder eine unsichere Codeausführungsoperation
S60, K6, wiederholt werden. Eine, einige
oder alle der Operationen können in Abhängigkeit
davon, ob ein sicherer Code aufgerufen ist oder nicht, wiederholt
werden. Hauptmerkmale jeder der Operationen werden unten beschrieben.
-
Eine
sichere Hochfahroperation S10, K1, kann
einem Initialisierungszustand entsprechen. Die sichere Hochfahroperation
S10, K1, kann in einer sicheren Domäne
ausgeführt werden. Der Prozessor 110, 210 kann
während der sicheren Hochfahroperation S10, K1,
auf alle Slaves und Speicherbereichen zugreifen, z. B. auf sichere
und unsichere Speicherbereiche.
-
Eine
unsichere Codeausführungsoperation S20, S60, K2,
K6, kann einem Zustand entsprechen, in dem
ein unsicherer Code ausgeführt wird. Der Prozessor 110, 210 kann
nur auf einen unsicheren Bereich zugreifen.
-
Eine
zufällige Verzweigungsoperation S30, K3,
kann einem Verzweigungsbefehl entsprechen, der ausgeführt
werden kann, wenn eine Umwandlung in eine sichere Domäne
erforderlich ist. Die zufällige Verzweigungsoperation S30,
K3, kann in einem unsicheren Domänenzustand
ausgeführt werden.
-
Eine
sichere Domänensetzoperation S40, K4,
kann einer Ausführung eines Programms zum Setzen einer
Ausführungsumgebung entsprechen, die eine Umwandlung in
eine sichere Domäne betrifft. Die sichere Domänensetzoperation
S40, K4, kann in einem sicheren Domänenzustand
ausgeführt werden und der Prozessor 110, 210 kann
auf sichere und unsichere Bereiche, z. B. alle Slave- und Speicherbereiche
zugreifen.
-
Eine
sichere Codeausführungsoperation S50, K5,
kann einem Zustand entsprechen, während dem ein sicherer
Code ausgeführt werden kann. Die sichere Codeausführungsoperation
S50, K5, kann in einem sicheren Domänenzustand
ausgeführt werden und der Prozessor 110, 210 kann
auf sichere und unsichere Bereiche, z. B. alle Slave- und Speicherbereiche
zugreifen.
-
Bei
der sicheren Hochfahroperation S10, K1, können
ein Systemreset und ein sicheres Hochfahren gleichzeitig durchgeführt
werden. Während ein sicheres Hochfahren durchgeführt
wird, kann der Sicherungsmonitor 115, 215 angesteuert
werden und ein Umgebungssetzbefehl, der für einen Umgebungssetzbereich
eines Befehlsbypaß-ROM 125, 225 benötigt
wird, kann durch Setzen einer SFR-Bank 116 des Sicherungsmonitors 115, 215 gesetzt
werden. Ein Bit, das anzeigt, ob ein sicheres Hochfahren in einem
vorgegebenen Feld der SFR-Bank 116 abgeschlossen ist, und
ein Bit, das anzeigt, ob der Sicherungsmonitor 115, 215 verwendet
wird, kann zu einem Zeitpunkt, wenn das sichere Hochfahren beendet
ist, jeweils auf 1 gesetzt werden. Eine Operation des Sicherungsmonitors 115, 215 kann
dann unter einer sicheren Domäne gestartet werden und ein
Sicherungsbit gemäß der Operation des Sicherungsmonitors
kann zum Adressdecodierer 135, 235 und dem Zugriffsbeschränker 145, 245_1, 245_2 des
Slave übertragen werden. Wenn das sichere Hochfahren abgeschlossen
ist, kann die Ausführungsumgebung von der sicheren Domäne
in die unsichere Domäne umgewandelt werden.
-
Wenn
eine Anfrage nach einer Ausführung eines sicheren Codes
während der unsicheren Codeausführungsoperation
S20, K2, von einem Prozessor erzeugt ist,
kann ein Verzweigen mit einer Verzweigungsstartadresse des Befehlsbypaß-ROM 125, 225 vorgenommen
werden und die zufällige Verzweigungsoperation S30, K3, kann gestartet werden. Wenn ein Verzweigungsbefehl
vom Prozessor in der zufälligen Verzweigungsoperation S30,
K3, erfolgreich ausgeführt ist,
kann ein Verzweigen mit einer Umgebungssetzstartadresse vorgenommen
werden, die dadurch die sichere Domänensetzoperation S40, K4, starten kann.
-
Bei
der sicheren Domänensetzoperation S40, K4,
kann das Sicherungsbit gesetzt werden und gleichzeitig kann der
Umgebungssetzbefehl vom Prozessor 110, 210 ausgeführt
werden, wodurch eine sichere Domäne gesetzt wird. Wenn
die Ausführung des Umgebungssetzbefehls abgeschlossen ist, kann
ein Verzweigen mit einer vorliegenden sicheren Codestartadresse
vorgenommen werden. Wenn eine sichere Codestartadresse vom Sicherungsmonitor detektiert
ist, dann kann die sichere Codeausführungsoperation S50,
K5, durchgeführt werden.
-
Wenn
die Ausführung des sicheren Codes abgeschlossen ist, kann
ein Verzweigen mit einer sicheren Codeaustrittsadresse vorgenommen
werden. Wenn die sichere Codeaustrittsadresse vom Sicherungsmonitor 115, 215 detektiert
ist, kann die unsichere Codeausführungsoperation S60, K6, durchgeführt werden und das Sicherungsbit
kann zurückgesetzt werden.
-
Nachfolgend
wird ein beispielhaftes Verfahren zum Bereitstellen einer sicheren
Domäne z. B. unter Verwendung einer Ausführungsform
der Vorrichtung zum Bereitstellen einer sicheren Domäne,
z. B. der Vorrichtung der 2, 3,
die eines oder mehrere der oben beschriebenen Merkmale aufweist,
beschrieben. Das beispielhafte Verfahren zum Bereitstellen einer
sicheren Domäne ist im Wesentlichen gleich den Operationen
der Vorrichtung zum Bereitstellen einer sicheren Domäne,
und daher werden Wiederholungen von Funktionen und Operationen von
Komponenten der Vorrichtung zum Bereitstellen einer sicheren Domäne
weggelassen.
-
6 stellt
ein Flussbild einer beispielhaften Ausführungsform eines
Verfahrens zum Bereitstellen einer sicheren Domäne dar.
-
Ausführungsformen
können ein Verfahren zum Bereitstellen einer sicheren Domäne
durch Umwandeln einer Ausführungsumgebung von einer unsicheren
Domäne in eine sichere Domäne basierend darauf,
ob ein Sicherungsbit gesetzt/zurückgesetzt (ein vom Sicherungsbit
gesetzter Wert) ist, zur Verfügung stellen. Wenn zum Beispiel
eine Anfrage zum Ausführen eines sicheren Codes in einem
unsicheren Domänenzustand detektiert wird, kann die Ausführungsumgebung
durch eine Reihe von Operationen, die unter Verwendung von Hardware
erreicht werden, von der unsicheren Domäne in die sichere Domäne
umgewandelt werden, so dass der sichere Code in der geschützten
sicheren Domäne ausgeführt werden kann.
-
Mit
Bezug zu 6 kann in S110 der Sicherungsmonitor 115, 215 eine
Operation des Prozessors 110, 210 detektieren.
-
Wenn
ein Aufruf eines sicheren Codes vom Prozessor 110, 210 (Ausführungsanforderung)
detektiert ist, kann in S120 ein Verzweigungsbefehl erzeugt werden.
Der Verzweigungsbefehl kann unter Verwendung z. B. eines nach dem
Zufallsprinzip erzeugten Verzweigungsoffset erzeugt werden.
-
In
S130 kann der Sicherungsmonitor 115, 215 den erzeugten
Verzweigungsbefehl dem Befehlsbypaß-ROM 125, 225 bereitstellen.
-
In
S140 kann der Prozessor 110, 210 den Verzweigungsbefehl
vom Befehlsbypaß-ROM 125, 225 abrufen
und ihn ausführen.
-
In
S150 kann der Sicherungsmonitor 115, 215 eine
Operation des Prozessors 110, 210 detektieren
und kann bestimmen, ob eine Ausführung des Verzweigungsbefehls
durch den Prozessor 110, 210 erfolgreich ist.
-
In
S160 kann, wenn der Sicherungsmonitor 115, 215 detektiert,
dass der Verzweigungsbefehl durch den Prozessor 110, 210 erfolgreich
ausgeführt worden ist, der Sicherungsmonitor 115, 215 ein
Sicherungsbit setzen, um die Ausführungsumgebung von einer
unsicheren Domäne in eine sichere Domäne umzuwandeln.
Ob ein Verzweigungsbefehl erfolgreich ausgeführt worden
ist oder nicht, kann durch Vergleichen einer Verzweigungsadresse,
die aus einem zufällig erzeugten Verzweigungsoffset geschätzt
ist, mit einer Verzweigungsadresse, die tatsächlich vom
Prozessor 110, 210 ausgeführt wird, bestimmt
werden.
-
Wenn
das Sicherungsbit gesetzt ist, kann der Prozessor 110, 210 Umgebungssetzbefehle,
die im Umgebungssetzbereich 124 des Befehlsbypaß-ROM 125 gespeichert
sind, abrufen und kann die Umgebungssetzbefehle sequentiell ausführen,
um die sichere Domäne zu setzen. Der Befehlsbypaß-ROM 125, 225 kann
einen Umgebungssetzbefehl vom Sicherungsmonitor 115, 215 bei
der Initialisierung des Systems empfangen und kann den Umgebungssetzbefehl
speichern.
-
Der
Sicherungsmonitor 115, 215 kann das gesetzte Sicherungsbit
dem Adressdecodierer 135, 235 und dem Zugriffsbeschränker 145, 245_1 und 245_2 bereitstellen
und kann dadurch unerlaubten Zugriff auf den sicheren Bereich 152_1 und 152_2 verhindern.
-
Der
Sicherungsmonitor 115, 215 kann auch so eingestellt
sein, dass er eine Mehrzahl von Verzweigungsbefehlen erzeugt und
ein Sicherungsbit setzt, wenn der Prozessor 110, 210 die
Mehrzahl von Verzweigungsbefehlen erfolgreich ausgeführt
hat. In solchen Ausführungsformen kann die Frequenz zum Ausführen
von Verzweigungsbefehlen durch das Setzen einer sicheren Domäne
bestimmt sein.
-
Wenn
das Sicherungsbit gesetzt ist und die Ausführungsumgebung
von der unsicheren Domäne in die sichere Domäne
umgewandelt ist, kann der Prozessor 110, 210 einen
sicheren Code ausführen. Wenn eine Ausführung
des sicheren Codes abgeschlossen ist, kann, in S170, der Sicherungsmonitor 115, 215 ein
Sicherungsbit zurücksetzen und kann die Ausführungsumgebung
von der sicheren Domäne in die unsichere Domäne
umwandeln. Das zurückgesetzte Sicherungsbit kann dem Adressdecodierer 135, 235 und
dem Zugriffsbeschränker 145, 245_1, 245_2 bereitgestellt
werden.
-
7 stellt
ein Flussbild einer beispielhaften Ausführungsform eines
Verfahrens zum Bereitstellen einer sicheren Domäne und
Umwandeln einer Ausführungsumgebung dar.
-
In 7 geben
eingekreiste Operationen, die mit einer einfachen durchgezogenen
Linie dargestellt sind, Zustände an, in denen ein Sicherungsbit zurückgesetzt
ist, das heißt, einen unsicheren Domänenzustand,
und eingekreiste Operationen, die mit einer doppelten durchgezogenen
Linie dargestellt sind, geben Zustände an, in denen ein
Sicherungsbit gesetzt ist, das heißt, einen sicheren Domänenzustand.
-
Mit
Bezug zu 7 kann in S200 ein System, das
z. B. die Vorrichtung zum Bereitstellen einer sicheren Domäne
der 2, 3 umfasst, zurückgesetzt
oder hochgefahren werden. In S210 kann eine sichere Hochfahroperation,
die eine Initialisierungsoperation sein kann, durchgeführt
werden. Während der sicheren Hochfahroperation kann ein
in der SFR-Bank 116 (2) im Sicherungsmonitor 115 gespeicherter
Umgebungssetzbefehl dem Befehlsbypaß-ROM 125 bereitgestellt
werden. In solchen Ausführungsformen kann der in der SFR-Bank 116 gespeicherte
Umgebungssetzbefehl nur während der sicheren Hochfahroperation
verändert werden.
-
Nachdem
die sichere Hochfahroperation durchgeführt ist, kann in
S220 eine Ausführungsumgebung des Systems vom sicheren
Domänenzustand in den unsicheren Domänenzustand
umgewandelt werden.
-
In
S230 kann der Sicherungsmonitor 115, 215 überwachen,
ob vom Prozessor 110, 210 ein sicherer Code aufgerufen
wird.
-
In
S240 kann, wenn ein sicherer Code aufgerufen ist, eine zufällige
Verzweigungsoperation zum Erzeugen eines Verzweigungsbefehls und
Bereitstellen des Verzweigungsbefehls für den Befehlsbypaß-ROM 125, 225 durchgeführt
werden.
-
In
S250 kann der Sicherungsmonitor 115, 215 bestimmen,
ob die vom Prozessor 110, 210 durch Abrufen eines
Verzweigungsbefehls durchgeführte zufällige Verzweigungsoperation
erfolgreich ausgeführt worden ist. Wenn die zufällige
Verzweigungsoperation erfolgreich ist, kann in S260 der Sicherungsmonitor 115, 215 ein
Sicherungsbit setzen und der Prozessor 110, 210 kann
eine sichere Domänensetzoperation durchführen,
die Abrufen eines Umgebungssetzbefehls vom Befehlsbypaß-ROM 125, 225 und
Ausführen den Umgebungssetzbefehls umfasst. Ansonsten,
wenn die zufällige Verzweigungsoperation nicht erfolgreich
ist, kann beim Umwandeln der Ausführungsumgebung in eine
sichere Domäne ein Problem aufgetreten sein, und damit kann
das gesamte System zurückgesetzt werden.
-
In
S270 kann, wenn das Sicherungsbit gesetzt ist und das Setzen der
sicheren Domäne abgeschlossen ist, die Ausführungsumgebung
von der unsicheren Domäne in eine sichere Domäne
umgewandelt werden.
-
In
S280 kann, wenn die Ausführungsumgebung in die sichere
Domäne umgewandelt ist, der Prozessor 110, 210 einen
sicheren Code ausführen.
-
In
S290 wird bestimmt, ob eine Ausführung des sicheren Codes
erfolgreich ist.
-
Wenn
in S290 bestimmt ist, dass eine Ausführung des sicheren
Codes erfolgreich war, kann in S300 die Ausführung des
sicheren Codes beendet werden.
-
In
S300 kann der Sicherungsmonitor 115, 215 ein Sicherungsbit
zurücksetzen und die Ausführungsumgebung von der
sicheren Domäne in die unsichere Domäne umwandeln.
Die oben beschriebenen Operationen können dann wiederholt
werden.
-
Wenn
in S290 bestimmt ist, dass eine Ausführung des sicheren
Codes nicht erfolgreich war, kann das System zu S200 zurückkehren
und zurückgesetzt werden. In solchen Fällen kann
der Sicherungsmonitor 115, 215 überwachen,
ob ein sicherer Code vom Prozessor 110, 210 aufgerufen
wird und die oben beschriebenen Operationen wiederholen.
-
Ausführungsformen
können als computerlesbarer Code auf einem computerlesbaren
Aufzeichnungsmedium ausgebildet sein. Das computerlesbare Aufzeichnungsmedium
kann eine beliebige Datenspeichereinrichtung sein, die Daten speichern kann,
die danach von einem Computersystem gelesen werden können.
Beispiele von computerlesbaren Aufzeichnungsmedien umfassen Nur-Lese-Speicher (ROM),
Speicher mit wahlfreiem Zugriff (RAM), CD-ROMs, Magnetbänder,
Floppy-Disks, optische Datenspeichereinrichtungen usw. (wie Datenübertragung
durch das Internet). Das computerlesbare Aufzeichnungsmedium kann
auch über netzwerkgekoppelte Computersysteme verbreitet
werden, so dass der computerlesbare Code verteilt gespeichert und ausgeführt
werden kann.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - KR 10-2009-0043095 [0024]