-
TECHNISCHES GEBIET
-
Ausführungsformen
der Erfindung betreffen im allgemeinen das Gebiet der Datenverarbeitung und
im besonderen Vorrichtungen, Verfahren und Systeme zum Stillegen
eines Prozessorbusagenten.
-
ALLGEMEINER STAND DER TECHNIK
-
Rechensysteme
arbeiten häufig
mit empfindlicher und vertraulicher Information. In einigen Fällen zieht
diese Information Hacker (und/oder andere böswillige Organisationen) an,
da sie wertvoll ist. Rechensysteme benutzen immer komplexere Sicherheitsmerkmale,
um die wertvolle Information zu schützen, mit welcher sie arbeiten.
In einigen Fällen befähigen diese
Sicherheitsmerkmale ein Rechensystem dazu, eine geschützte Domäne zu erstellen. Der
Ausdruck „geschützte Domäne” bezieht
sich auf eine Ausführungsumgebung,
in der Software von unautorisierter Software im Wesentlichen isoliert
wird.
-
Viele
Rechensysteme weisen auch Verwaltungsmerkmale auf, um die Fernverwaltung
des Rechensystems zu unterstützen.
Diese Verwaltungsmerkmale können
verschiedene Hardware- (zum Beispiel eine Mikrosteuerung), Firmware-
und/oder Softwarekomponenten aufweisen, die häufig in dem Chipsatz des Rechensystems
implementiert sind. In manchen Fällen
stellten diese Verwaltungsmerkmale Zugang zu dem Prozessorbus, Speicher
und anderen potentiell empfindlichen Komponenten des verwalteten
Systems bereit.
-
In
einigen Fällen
können
die Verwaltungsmerkmale eines Rechensystems die Sicherheitsmerkmale
des Rechensystems beeinträchtigen.
Zum Beispiel ermöglichen
die Verwaltungsmerkmale des Rechensystems in der Regel, daß ein Fernsystem auf
verschiedene Aspekte des Rechensystems zugreift und diese steuert.
Ein Hacker (oder andere böswillige
Organisation) kann den Zugriff und die Steuerung, die von den Verwaltungsmerkmalen
bereitgestellt werden, mißbrauchen,
um ein oder mehrere Sicherheitsmerkmale zu beeinträchtigen.
-
Ein
Beispiel des Potentials zum Mißbrauch der
Verwaltungsmerkmale eines Rechensystems ist die Benutzung dieser
Merkmale, um die Erstellung einer geschützten Domäne zu beeinträchtigen.
Zu der Erstellung einer geschützten
Domäne
gehört
in der Regel ein Verbindungsprozeß, um zu bewirken, daß sich ein
oder mehrere Prozessoren des Rechensystems mit der geschützten Domäne verbinden.
Ein Hacker könnte
die Verwaltungsmerkmale eines Rechensystems mißbrauchen, um zu verhindern,
daß sich
ein Prozessor mit der geschützten
Domäne
verbindet. Dieser Prozessor könnte
dann „entführt” werden
und (möglicherweise)
benutzt werden, um empfindliche Daten auf dem Rechensystem zu gefährden.
-
US 2003/0188165 A1 beschreibt
ein Verfahren und eine Vorrichtung zum Initiieren sicherer Operationen
in einem Mikroprozessor durch einen initiierenden logischen Prozessor
(ILP).
-
KURZE BESCHREIBUNG DER ERFINDUNG
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, die Sicherheit
eines Rechensystems zu erhöhen.
-
Diese
Aufgabe wird durch ein Verfahren nach dem unabhängigen Anspruch 1 und einer
Vorrichtung nach dem unabhängigen
Anspruch 7 gelöst. Weitere
vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den
abhängigen
Ansprüchen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der Erfindung sind in den Figuren der beiliegenden Zeichnungen beispielhaft
und nicht einschränkend
dargestellt, wobei ähnliche
Bezugszeichen ähnliche
Elemente bezeichnen.
-
1 ist
ein Blockdiagramm auf hoher Ebene, das ausgewählte Aspekte eines Rechensystems zeigt,
das gemäß einer
Ausführungsform
der Erfindung implementiert ist.
-
2 ist
ein konzeptuelles Diagramm, das den Prozeß des Erstellen einer geschützten Domäne darstellt.
-
3 ist
ein Blockdiagramm, das ausgewählte
Aspekte einer Verwaltungsmaschine gemäß einer Ausführungsform
der Erfindung darstellt.
-
4 ist
ein Blockdiagramm ausgewählter Aspekte
einer Verwaltungsmaschine, die gemäß einer Ausführungsform
der Erfindung implementiert ist.
-
5 ist
ein Flußdiagramm,
das bestimmte Aspekte eines Verfahrens zum Stillegen eines Prozessorbusagenten
gemäß einer
Ausführungsform der
Erfindung darstellt.
-
6 ist
ein Flußdiagramm,
das bestimmte Aspekte eines Verfahrens zum Stillegen einer Verwaltungsmaschine
gemäß einer
Ausführungsform der
Erfindung darstellt.
-
7A und 7B sind
Blockdiagramme, die ausgewählte
Aspekte von Rechensystemen darstellen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen
der Erfindungen betreffen im allgemeinen Verfahren, Vorrichtungen
und Systeme zum Stillegen eines Prozessorbusagenten. Der Ausdruck ”Prozessorbusagent” bezieht
sich auf eine Komponente, die Zugang zu dem Prozessorbus (zum Beispiel
Front-Side-Bus)
eines Rechensystems hat. Der Prozessorbusagent kann ein Verwaltungsmerkmal
für ein
Rechensystem unterstützen.
In einer Ausführungsform
initiiert ein Prozessor die Erstellung einer geschützten Domäne für das Rechensystem. Der
Prozessorbusagent wird als Reaktion auf die Initiierung der Erstellung
der geschützten
Domäne
mindestens teilweise stillgelegt. Wie nachstehend weiter beschrieben,
wird die Fähigkeit
des Prozessorbusagenten zur Beeinträchtigung der Erstellung der
geschützten
Domäne
verringert, da er stillgelegt wird.
-
1 ist
ein Blockdiagramm auf hoher Ebene, das ausgewählte Aspekte eines Rechensystems zeigt,
das gemäß einer
Ausführungsform
der Erfindung implementiert ist. Das Rechensystem 100 weist einen
oder mehrere Prozessoren 1021 –102N auf. Der Ausdruck ”Prozessor” kann sich auf einen physikalischen
Prozessor und/oder einen logischen Prozessor beziehen. Zu einem
physikalischen Prozessor kann zum Beispiel eine zentrale Verarbeitungseinheit,
eine Mikrosteuerung, ein partitionierter Kern und dergleichen gehören. Ein
logischer Prozessor bezieht sich zum Beispiel auf den Fall, in dem
physikalische Ressourcen von zwei oder mehr Threads gemeinsam benutzt
werden und der Architekturzustand für die zwei logischen Prozessoren
dupliziert wird. Zum Beispiel weisen die physikalischen Prozessoren 1021 and 102N jeweils
die logischen Prozessoren 1041 –104N und 1061 –106N auf. Die logischen Prozessoren 1041 –104N und 1061 –106N können
zum Beispiel Threads, Hyper-Threads, Bootstrap-Prozessoren, initiierende logische Prozessoren,
antwortende logische Prozessoren und dergleichen sein. Der geschützte Speicher 108 stellt
einen geschützten
Speicher (und/oder einen geschützten
Speicherbereich) für
Befehle und/oder Daten bereit, die von einem Prozessor verarbeitet
werden können.
-
Die
Prozessoren 1021 –102N sind an die Speichersteuerung 118 durch
den Prozessorbus 116 gekoppelt. Die Speichersteuerung 118 steuert
(mindestens teilweise) den Informationsfluß zwischen den Prozessoren 102 und
einem Speichersubsystem. In einer Ausführungsform weist die Speichersteuerung 118 eine
Verwaltungsmaschine 120 und ein authentisiertes Codemodul
oder authentisierte Codemodule 112 auf. Die Verwaltungsmaschine 120 kann
Hardware, Software und/oder Firmware aufweisen, um eine oder mehrere
Verwaltungsfunktionen zu unterstützen.
Zum Beispiel kann die Verwaltungsmaschine 120 eine Mikrosteuerung,
geschützten
Speicher und/oder einen geschützten
Kommunikationskanal aufweisen. Die Verwaltungsmaschine 120 wird
nachstehend in bezug auf 3 und 4 weiter
erläutert.
-
In
einer Ausführungsform
weist die Speichersteuerung 118 ein oder mehrere authentisierte
Speichermodule 112 auf. Die authentisierten Speichermodule 112 können vertrauenswürdigen Code (und/oder
Daten) bereitstellen, um für
das Rechensystem 100 bestimmte Funktionen bereitzustellen.
In einer Ausführungsform
kann der vertrauenswürdige Code
(und/oder Daten) in authentisierten Speichermodulen 112 gespeichert,
in dem geschützten
Speicher 108 angeordnet und von einem Prozessor ausgeführt werden.
Der Code ist deshalb teilweise vertrauenswürdig, weil er sicher gespeichert
und/oder vor der Benutzung authentisiert wird. In einer Ausführungsform
wird das Protokoll zur Erstellung einer geschützten Domäne in einem authentisierten
Speichermodul 112 gespeichert. Der Speicher 122 stellt für das Rechensystem 100 einen
flüchtigen
Speicher bereit. In einer Ausführungsform
weist der Speicher 122 eine oder mehrere dynamische wahlfreie
Zugriffsspeicher(DRAM)-Vorrichtungen auf.
-
Eine
Eingabe-/Ausgabe(I/I)-Steuerung 124 steuert mindestens
teilweise den Informationsfluß in und
aus dem Rechensystem 100. In einer Ausführungsform weist die Verwaltungsmaschine 120 eine private
Kommunikationsverbindung 114 mit der I/O-Steuerung 124 auf.
Die private Kommunikationsverbindung 114 unterstützt eine
private Verbindung zwischen einer externen Einheit (zum Beispiel
einer Verwaltungskonsole) und der Verwaltungsmaschine 120.
Die Schnittstelle 128 repräsentiert eine oder mehrere
I/O-Schnittstellen. Diese Schnittstellen können zum Beispiel einen universellen
serieller Bus (USB), einen Peripheral-Component-Interconnect(PCI)-Bus,
einen PCI-Express-Bus und dergleichen umfassen. Außerdem weist
die I/O-Steuerung 124 eine oder mehrere verdrahtete oder
drahtlose Netzschnittstellen 130 auf, um sich mit dem Netz 126 zu
verbinden.
-
In
einer Ausführungsform
unterstützt
das Rechensystem 100 eine Anzahl von Sicherheitsmerkmalen
wie die Fähigkeit,
eine geschützte
Domäne
zu erstellen. 2 ist ein konzeptuelles Diagramm,
das den Prozeß der
Erstellung einer geschützten
Domäne
darstellt.
-
Zunächst weist
das Rechensystem 100 eine Standarddomäne 200 auf. Die Standarddomäne 200 kann
ein Betriebssystem 202 und eine oder mehrere Anwendungen 204 aufweisen.
Das Betriebssystem 202 kann als ein Ring-0-Agent klassifiziert
werden, da es die höchste
Stufe von Zugriffsrechten hat. Im Gegensatz dazu können die
Anwendungen 204 als Ring-3-Agenten klassifiziert werden,
da sie einen reduzierten Satz von Zugriffsrechten haben. Die Hardware 205 (zum
Beispiel Prozessoren, Chipsatz, Speicher usw.) unterstützt die
Standarddomäne 2001 .
-
Zu
einem beliebigen Zeitpunkt fordert eine Komponente des Rechensystems
(in der Regel eine Ring-0-Komponente) den Start einer geschützten Domäne 210 an.
Eine Implementierung eines Protokolls, das (mindestens teilweise)
die Erstellung der geschützten
Domäne
definiert, kann in einem authentisierten Codemodul (zum Beispiel 112,
dargestellt in 1) gespeichert und in einen
geschützten Speicher
(zum Beispiel 108, dargestellt in 1) geladen
(oder teilweise geladen) werden. Der Start (oder die Erstellung)
der geschützten
Domäne 210 wird
in der Regel in Stufen ausgeführt.
Unter den ersten Stufen des Erstellungsprozesses befindet sich ein
Verbindungsprozeß.
Der Verbindungsprozeß ermöglicht,
daß sich
jeder der Prozessoren (physikalische und/oder logische) mit der
geschützten
Domäne 210 verbindet.
In einer Ausführungsform
löst der Prozessorbefehl
GETSEC(SENTER) den Verbindungsprozeß aus. In einer Ausführungsform
unterstützen
Register (zum Beispiel das Exists-Register 132 und das
Join-Register 130, dargestellt in 1) den Verbindungsprozeß. Das Exists-Register 132 weist
einen Eintrag auf, der jedem Prozessor in dem Rechensystem entspricht.
Wenn sich jeder Prozessor mit der geschützten Domäne verbindet, wird ein Eintrag
in dem Join-Register 130 vorgenommen. Wenn das Join-Register 130 in
einer Ausführungsform
einen übereinstimmenden
Eintrag für
jeden Eintrag in dem Exists-Register 132 aufweist, haben
sich alle Prozessoren mit der geschützten Domäne verbunden.
-
Nachdem
der Verbindungsprozeß vollendet ist,
wird der Domänenverwalter 222 von
zum Beispiel einem authentisierten Codemodul in den Speicher geladen.
Der Domänenverwalter 222 stellt
zwischen der Standarddomäne 208 und
der geschützten
Domäne 210 eine
Isolierung bereit. Die geschützte
Domäne 210 kann
Applets 216 und Kernel 218 aufweisen. Der Ausdruck
Kernel bezieht sich auf Software, die eine Schnittstelle zwischen
der Hardware und einer Software höherer Ebene bereitstellt. Ein
Applet ist eine Softwarekomponente, die Daten verarbeitet. In einer
Ausführungsform
unterstützt
die Hardware 224 sowohl die Standarddomäne 2002 als
auch die geschützte
Domäne 210.
Die Hardware 224 kann zum Beispiel einen oder mehrere Prozessoren,
Chipsätze
und vertrauenswürdige Plattformmodule
aufweisen. Ein vertrauenswürdiges
Plattformmodul bezieht sich auf einen Chip, der ein oder mehrere
vertrauenswürdige
Rechenmerkmale bereitstellt.
-
In
einer Ausführungsform
können
ein oder mehrere Prozessorbusagenten dynamisch stillgelegt werden,
um zum Beispiel das Potential zu verringern, daß die Prozessorbusagenten ein
oder mehrere Sicherheitsmerkmale eines Rechensystems beeinträchtigen.
Zum Beispiel kann ein Prozessorbusagent während (mindestens eines Teils)
der Erstellung der geschützten
Domäne 210 stillgelegt
werden. Nachstehend wird eine Ausführungsform der Erfindung beschrieben,
in welcher der Prozessorbusagent eine Verwaltungsmaschine ist. Außerdem erläutert die
nachstehend beschriebene Ausführungsform die
Stillegung der Verwaltungsmaschine während der Erstellung einer
geschützten
Domäne.
In einer alternativen Ausführungsform
können
unterschiedliche (oder zusätzliche)
Prozessorbusagenten stillgelegt werden. In ähnlicher Weise kann die Stillegung
des Prozessorbusagenten in einer alternativen Ausführungsform
unter Umständen
ausgeführt
werden, die nicht die Erstellung eines Prozessorbusagenten sind.
-
3 ist
ein Blockdiagramm, das ausgewählte
Aspekte einer Verwaltungsmaschine gemäß einer Ausführungsform
der Erfindung darstellt. In einer Ausführungsform kann ein Prozessor,
der die Erstellung einer geschützten
Domäne
steuert, die Verwaltungsmaschine 300 stillegen und wieder
in Betrieb nehmen. Die Fähigkeit,
die Verwaltungsmaschine 300 stillzulegen, trägt zur Gewährleistung
dessen bei, daß die
Verwaltungsmaschine 300 die Erstellung einer geschützten Domäne (und/oder
den Betrieb anderer Sicherheitsmerkmale) nicht beeinträchtigt.
-
In
einer Ausführungsform
speichert der Speicher 318 Firmwarecode für die Verwaltungsmaschine 300.
Die Firmware ist in zwei Teile aufgeteilt: Boot-Firmware 320 und
Anwendungsfirmware 322. Die Boot-Firmware 320 kann
eine Internetprotokoll-(IP)Adresse aufweisen, die sich bei dem normalen
Hochfahrrücksetzvektor
der Verwaltungsmaschine 300 befindet. Die Boot-Firmware 320 kann
von einem geschützten
Speicher geladen werden, um die Möglichkeit einer unbefugten Änderung
in dem Code zu verringern. Der geschützte Speicher kann als Flash-,
Nur-Lese-Speicher und dergleichen implementiert sein. Im Falle eines
Flashspeichers kann der Speicher durch Setzen eines Flash-Lockdown-Bits am
Ende des Flashprogrammierprozesses geschützt werden. Die Anwendungsfirmware 322 ist
ein Anwendungscode, der in der Regel benutzt wird, um eine Verwaltungsfunktion
auszuführen.
In vielen Fällen
kann die Anwendungsfirmware 322 von einem anderen Anbieter
als dem der Boot-Firmware 320 bereitgestellt
werden.
-
Die
Verwaltungsmaschine 300 weist Speicherpartitionen 302–308 auf.
Eine oder mehrere Speicherpartitionen 302–308 können vertrauenswürdige Speicherpartitionen
sein. Eine vertrauenswürdige
Speicherpartition bezieht sich auf eine Speicherpartition, auf die
nur von der Verwaltungsmaschine 300 zugegriffen werden
kann. In einer Ausführungsform
sind ein oder mehrere isolierte Latches 310–316 mit
den vertrauenswürdigen
Speicherpartitionen 302–308 verbunden. Die
isolierten Latches 310–316 stellen
geschützte
Schnittstellen für
die vertrauenswürdigen
Speicherpartitionen 302–308 bereit. Das heißt, die
isolierten Latches 310–316 können den Prozessoren
eines Rechensystems (zum Beispiel des Rechensystems 100,
das in 1 dargestellt ist) ermöglichen, vertrauenswürdige Speicherpartitionen 302–308 zu
erreichen. In ähnlicher
Weise können
die isolierten Latches 310–316 den vertrauenswürdigen Speicherpartitionen 302–308 ermöglichen,
die Prozessoren (oder andere Einheiten) zu erreichen.
-
Der
sichere Rücksetzvektor 302 der
Verwaltungsmaschine (ME) stellt eine vertrauenswürdige Speicherpartition bereit,
um einen Vektor zu speichern, dem im Falle einer sicheren Rücksetzung
zu folgen ist. In der dargestellten Ausführungsform stellt der sichere
ME-Rücksetzvektor 302 einen
Sprung zu dem sicheren ME-Rücksetzcode 308 bereit.
In einer Ausführungsform
stellt der sichere ME-Rücksetzvektor 308 eine
Logik bereit, um die Verwaltungsmaschine 300 stillzulegen.
Der Ausdruck „Stillegen” der Verwaltungsmaschine 300 bezieht
sich grob gesagt auf das Einschränken
der Fähigkeit
der Verwaltungsmaschine 300, eine Sicherheitsbedrohung
für ihr
zugehöriges
Rechensystem darzustellen. Das Stillegen der Verwaltungsmaschine 300 kann
Folgendes aufweisen: Sperren ihres internen Leistungszustands; Befehlen,
daß sie
einen Schlafzustand betritt; und/oder Befehlen, daß sie einen
Spinlock betritt. Der Ausdruck Spinlock bezieht sich zum Beispiel
auf eine Sperre, bei der ein Thread in einer Schleife wartet. In der
Regel werden Spinlocks beibehalten, bis sie freigegeben werden oder
bis der Thread in den Schlafzustand übergeht.
-
In
einer Ausführungsform
führt der
sichere ME-Rücksetzcode 308 als
Reaktion auf einen sicheren ME-Rücksetzbefehl
die folgenden Aufgaben aus. Der sichere ME-Rücksetzcode 308 ruft
sämtliche
authentisierte Aufhebungsrückrufe,
die registriert worden sind. Ein sicheres ME-Rücksetzbestätigungsbit 310 wird
zum Beispiel in einem Statusregister gesetzt, um den Empfang des
sicheren Rücksetzbefehls
zu bestätigen.
Der sichere ME-Rücksetzcode 308 übernimmt
dann die Steuerung der ME durch zum Beispiel Implementierten eines
ME-Schlafzustands,
eines ME-Spinlocks oder dergleichen. In einer Ausführungsform
legt der sichere ME-Rücksetzcode 308 ein
sicheres ME-Rücksetzbestätigungsbit 310 fest,
um zum Beispiel anzuzeigen, daß die
ME stillegelegt worden ist. Nach Übernahme der Steuerung der
ME kann der sichere ME-Rücksetzcode 308 auf
einen sicheren ME-Rücksetzwiederaufnahmebefehl 314 warten.
In Antwort auf das Empfangen des sicheren ME-Rücksetzwiederaufnahmebefehls 314 belebt
der sichere ME-Rücksetzcode
die ME wieder (annulliert zum Beispiel den ME-Schlafzustand oder den
ME-Spinlock).
-
In
einer Ausführungsform
unterstützt
der sichere ME-Rücksetzcode 308 zusätzliche
Funktionen. Zum Beispiel kann der sichere Rücksetzcode 308 Code
authentifizieren, Code prüfen,
sich selbst Funktionen hinzufügen
und dergleichen. Der Latch 316 kann eine Schnittstelle
bereitstellen, um eine oder mehrere dieser zusätzlichen Funktionen des sicheren
ME-Rücksetzcodes 308 zu
unterstützen.
-
4 ist
ein Blockdiagramm ausgewählter Aspekte
einer Verwaltungsmaschine 400, die gemäß einer Ausführungsform
der Erfindung ausgeführt
ist. Die Verwaltungsmaschine 400 weist eine Mikrosteuerung 410,
einen Speicher 420, eine private Kommunikationsverbindung 430 und
Firmware 440 auf. In einer Ausführungsform sind eine oder mehrere
dieser Komponenten über
die Speichermaschinenverbindung 450 miteinander verbunden,
wie dargestellt. Die Mikrosteuerung 410 führt den
Code aus, der mit der Verwaltungsmaschine 400 verbunden
ist. Der Speicher 420 kann einen Universalspeicher, vertrauenswürdigen Speicher
und/oder Cachespeicher aufweisen, um Code und Daten für die Verwaltungsmaschine 400 zu
speichern. In einer Ausführungsform speichert
die Firmware 440 Boot-Firmware 442 und Anwendungsfirmware 444.
-
Mit
Bezug auf 5 bis 6 werden
die besonderen Verfahren, die zu Ausführungsformen der Erfindung
gehören,
im Hinblick auf Computersoftware, Firmware und/oder Hardware in
bezug auf ein Flußdiagramm
beschrieben. Die von einem Rechensystem auszuführenden Verfahren können Zustandsmaschinen
oder Computerprogramme bilden, die aus von einem Computer ausführbaren
Befehlen bestehen. Die von einem Computer ausführbaren Befehle können in
einer Computerprogrammiersprache geschrieben sein oder in einer
Firmwarelogik verkörpert
sein. Wenn sie in einer Programmiersprache geschrieben sind, die
einen anerkannten Standard erfüllt,
können
solche Befehle auf verschiedenen Hardwareplatt formen ausgeführt und
mit verschiedenen Betriebssystemen verbunden werden. Außerdem werden
Ausführungsformen
der Erfindung nicht in bezug auf eine bestimmte Programmiersprache
beschrieben. Man wird zu schätzen
wissen, daß verschiedene
Programmiersprachen benutzt werden können, um die hierin beschriebenen
Ausführungsformen
umzusetzen. Darüber
hinaus wird im Stand der Technik unter Software in der einen oder
anderen Form (zum Beispiel Programm, Verfahren, Prozeß, Anwendung
usw.) im allgemeinen das Ausführen
einer Handlung oder Hervorbringen eines Ergebnisses verstanden.
Solche Ausdrücke
sind bloß eine
kurze Art und Weise, um zu sagen, daß die Ausführung der Software von einer
Rechenvorrichtung bewirkt, daß die
Vorrichtung eine Aktion ausführt
oder ein Ergebnis hervorbringt.
-
5 ist
ein Flußdiagramm,
das bestimmte Aspekte eines Verfahrens zum Stillegen eines Prozessorbusagenten
gemäß einer
Ausführungsform der
Erfindung darstellt. Der Prozessorbusagent kann zum Beispiel eine
Verwaltungsmaschine sein. In bezug auf den Prozeßblock 502 initiiert
ein Prozessor die Erstellung einer geschützten Domäne. Der Prozessor kann ein
physikalischer Prozessor und/oder ein logischer Prozessor sein.
In einer Ausführungsform
ist der Prozessor, der die Erstellung der geschützten Domäne steuert (oder der Einfachheit
halber, der Prozessor), ein Bootstrap-Prozessor.
-
In
bezug auf den Prozeßblock 504 legt
der Prozessor den Prozessorbusagenten still. Der Ausdruck ”stillegen” bezieht
sich grob gesagt auf die Einschränkung
der Fähigkeit
des Prozessorbusagenten, ein oder mehrere Sicherheitsmerkmale eines
zugehörigen
Rechensystems zu beeinträchtigen.
In einer Ausführungsform
bezieht sich das Stillegen des Prozessorbusagenten auf das Einschränken (oder
möglicherweise
Negieren) der Fähigkeit
des Prozessorbusagenten, die Erstellung einer geschützten Domäne zu beeinträchtigen.
Zu Beispielen der Stillegung des Prozessorbusagenten gehören: dem
Prozessorbusagenten Signalisieren, seinen internen Leistungszustand
zu sperren; dem Prozessorbusagenten Signalisieren, einen Schlafzustand
zu betreten; und/oder dem Prozessorbusagenten Signalisieren, einen
Spinlock auszuführen.
-
Mit
Bezug auf den Prozeßblock 506 erstellt der
Prozessor mindestens teilweise die geschützte Domäne. In einer Ausführungsform
bezieht sich die Erstellung (mindestens teilweise) der geschützten Domäne auf die
Ausführung
einer oder mehrerer Stufen des Erstellungsprozesses. Zum Beispiel
bezieht sich die Erstellung der geschützten Domäne in einer Ausführungsform
auf die Vollendung des Verbindungsprozesses, der die Verbindung
der Prozessoren des Rechensystems mit der geschützten Domäne betrifft.
-
Mit
Bezug auf den Prozeßblock 508 belebt der
Prozessor den Prozessorbusagenten wieder (oder belebt diesen teilweise
wieder). In einer Ausführungsform
wird der Prozessorbusagent nach (oder als Reaktion auf) die (mindestens
teilweise) Erstellung der geschützten
Domäne
wiederbelebt. Der Ausdruck ”Wiederbeleben” des Prozessorbusagenten
bezieht sich auf das Zurückführen des
Prozessorbusagenten in einen aktiven Zustand. Zum Beispiel kann
das Wiederbeleben des Prozessorbusagenten Folgendes aufweisen: Freigeben
des internen Leistungszustands der Verwaltungsmaschine; dem Prozessorbusagenten
Befehlen, einen Schlafzustand zu verlassen; und oder dem Prozessorbusagenten
Befehlen, einen Spinlock zu verlassen.
-
In
einer Ausführungsform
ist der Prozessorbusagent eine Verwaltungsmaschine (zum Beispiel die
Verwaltungsmaschine 300, die in 3 dargestellt
ist). 6 ist ein Flußdiagramm,
das bestimmte Aspekte eines Verfahrens zum Stillegen einer Verwaltungsmaschine
gemäß einer
Ausführungsform der
Erfindung darstellt. Die Boot-Firmware der Verwaltungsmaschine wird
aus einem manipulationssicheren permanenten Speicher (zum Beispiel 320, dargestellt
in 3) geladen. In einer Ausführungsform wird die Boot-Firmware
authentifiziert, nachdem sie geladen ist, wie durch 604 dargestellt.
Zum Beispiel kann ein authentisiertes Codemodul die kryptographische
Signatur der Boot-Firmware authentisieren. Die Verwaltungsmaschine
zeigt an, daß ihre Boot-Firmware
bei 606 authentisiert worden ist. Zum Beispiel kann die
Verwaltungsmaschine ein gültiges ME-Boot-Firmware-Bitlatch
(zum Beispiel Latch 316, dargestellt in 3)
setzen, um anzuzeigen, daß die ME-Boot-Firmware
authentisiert worden ist.
-
Mit
Bezug auf den Prozeßblock 608 überprüft der Prozessormikrocode,
ob die ME-Boot-Firmware authentisiert worden ist. In einer Ausführungsform
wird diese Überprüfung am
Anfang der Erstellung einer geschützten Partition vorgenommen.
Diese Überprüfung kann
vor zum Beispiel dem Initiieren eines Verbindungsprozesses ausgeführt werden,
um die Prozessoren des Rechensystems mit der geschützten Domäne zu verbinden.
-
Der
Prozeß,
der die Erstellung der geschützten
Domäne
steuert (oder der Einfachheit halber, der Prozessor) initiiert eine
sichere Rücksetzung
der Verwaltungsmaschine bei 610. In einer Ausführungsform schränkt die
sichere Rücksetzung
die Fähigkeit
der Verwaltungsmaschine ein, die Erstellung der geschützten Domäne zu beeinträchtigen.
Das heißt,
in einer Ausführungsform
ist die sichere Rücksetzung ein
Mechanismus zum Stillegen der Verwaltungsmaschine.
-
7A und 7B sind
Blockdiagramme, die jeweils ausgewählte Aspekte der Rechensysteme 700 und 800 darstellen.
Das Rechensystem 700 weist den Prozessor 710 auf,
der an die Verbindung 720 gekoppelt ist. In einigen Ausführungsformen können die
Ausdrücke
Prozessor und zentrale Verarbeitungseinheit (CPU) austauschbar verwendet
werden. In einer Ausführungsform
ist der Prozessor 710 ein Prozessor in der XEON®-Prozessorfamilie,
die von Intel Corporation of Santa Clara, Kalifornien, erhältlich ist.
In einer alternativen Ausführungsform können andere
Prozessoren benutzt werden. In noch einer anderen alternativen Ausführungsform
kann der Prozessor 710 eine Vielzahl von Prozessorkernen
aufweisen.
-
Gemäß einer
Ausführungsform
kommuniziert die Verbindung 720 mit dem Chip 730.
In einer Ausführungsform
ist der Chip 730 eine Komponente eines Chipsatzes. Die
Verbindung 720 kann eine Punkt-zu-Punkt-Verbindung sein
oder kann mit zwei oder mehr Chips (zum Beispiel des Chipsatzes)
verbunden sein. Der Chip 730 weist die Speichersteuerung 740 auf,
die an den Hauptsystemspeicher (zum Beispiel wie in 1 dargestellt)
gekoppelt sein kann. In einer alternativen Ausführungsform kann sich die Speichersteuerung 740 auf
dem gleichen Chip wie der Prozessor 710 befinden, wie in 7B dargestellt.
In einer Ausführungsform
kann die Verwaltungsmaschine 742 dynamisch stillegt werden, um
zum Beispiel ihre Fähigkeit
einzuschränken,
ein Sicherheitsmerkmal der Rechensysteme 700 und 800 einzuschränken.
-
Die
Eingabe-/Ausgabe(I/O)-Steuerung 750 steuert den Datenfluß zwischen
dem Prozessor 710 und einer oder mehreren I/O-Schnittstellen
(zum Beispiel verdrahtete oder drahtlose Netzschnittstellen) und/oder
I/O-Vorrichtungen. Zum Beispiel steuert die I/O-Steuerung 750 in der dargestellten
Ausführungsform
den Datenfluß zwischen
dem Prozessor 710 und dem drahtlosen Sender und Empfänger 760.
In einer alternativen Ausführungsform
können
die Speichersteuerung 740 und die I/O-Steuerung 750 in
einer einzigen Steuerung integriert sein.
-
Elemente
von Ausführungsformen
der vorliegenden Erfindung können
auch als maschinenlesbares Medium zum Speichern der von einer Maschine ausführbaren
Befehle bereitstellt werden. Das maschinenlesbare Medium kann umfassen,
ist jedoch nicht beschränkt
auf Flashspeicher, optische Platten, Kompaktplatten-Nur-Lese-Speicher
(CD-ROM), digitale vielseitige Videoplatten(DVD)-ROM, wahlfreie Zugriffsspeicher
(RAM), löschbare
programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare
Nur-Lese-Speicher
(EEPROM), Magnetkarten oder optische Karten, Übertragungsmedien oder andere
Arten von maschinenlesbaren Medien, die zum Speichern von elektronischen
Befehlen geeignet sind. Zum Beispiel können Ausführungsformen der Erfindung
als ein Computerprogramm heruntergeladen werden, das von einem Ferncomputer
(zum Beispiel einem Server) auf einen anfragenden Computer (zum
Beispiel einen Client) mittels Datensignalen übertragen werden kann, die
in einer Trägerwelle
oder anderem Übertragungsmedium über eine
Kommunikationsverbindung (zum Beispiel ein Modem oder Netzverbindung)
verkörpert sind.
-
Man
wird zu schätzen
wissen, daß jeglicher Bezug
in der Spezifikation auf ”eine
bestimmte Ausführungsform” oder „eine Ausführungsform” bedeutet,
daß ein
bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, das
oder die in Verbindung mit der Ausführungsform beschrieben wird,
in mindestens einer Ausführungsform
enthalten ist. Folglich wird betont und man sollte zu schätzen wissen,
daß sich
zwei oder mehr Bezugnahmen auf „eine bestimmte Ausführungsform” oder „eine Ausführungsform” oder „eine alternative
Ausführungsform” in verschiedenen
Teilen dieser Spezifikation nicht unbedingt auf die gleiche Ausführungsform
beziehen. Darüber
hinaus können
die bestimmten Merkmale, Strukturen oder Eigenschaften wie angemessen
in einer oder mehreren Ausführungsform
der Erfindung kombiniert werden.
-
In ähnlicher
Weise sollte man zu schätzen wissen,
daß in
der vorstehenden Beschreibung von Ausführungsformen der Erfindung
verschiedene Merkmale mitunter in einer einzigen Ausführungsform,
Figur oder Beschreibung davon gruppiert worden sind, um die Offenbarung
kurz zu fassen und zu einem besseren Verständnis eines oder mehrerer der verschiedenen
erfinderischen Aspekte beizutragen. Dieses Offenbarungsverfahren
soll jedoch nicht dahingehend interpretiert werden, daß der beanspruchte
Gegenstand mehr Merkmale erfordert als diejenigen, die ausdrücklich in
jedem Anspruch genannt sind. Vielmehr liegen die erfinderischen
Aspekte, wie die nachfolgenden Ansprüche reflektieren, in weniger als
allen Merkmalen einer einzigen vorstehend offenbarten Ausführungsform.
Folglich werden die Ansprüche,
die der ausführlichen
Beschreibung folgen, hiermit ausdrücklich in diese ausführliche
Beschreibung aufgenommen.