DE10254621A1 - Vorrichtung und Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung - Google Patents
Vorrichtung und Verfahren zum Erzeugen einer vertrauenswürdigen UmgebungInfo
- Publication number
- DE10254621A1 DE10254621A1 DE10254621A DE10254621A DE10254621A1 DE 10254621 A1 DE10254621 A1 DE 10254621A1 DE 10254621 A DE10254621 A DE 10254621A DE 10254621 A DE10254621 A DE 10254621A DE 10254621 A1 DE10254621 A1 DE 10254621A1
- Authority
- DE
- Germany
- Prior art keywords
- trusted
- integrity
- measure
- operating environment
- trustworthy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
Abstract
Eine Computervorrichtung zum Erzeugen einer vertrauenswürdigen Umgebung, die eine vertrauenswürdige Einrichtung, die angeordnet ist, um ein erstes Integritätsmaß zu erwerben, um eine Bestimmung darüber zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, einen Prozessor, der angeordnet ist, um die Ausführung einer ersten Vertrauensroutine und einer zugeordneten ersten Betriebsumgebung zu ermöglichen, und eine Einrichtung zum Einschränken des Zugriffs der ersten Betriebsumgebung auf Ressourcen, die für die Vertrauensroutinen verfügbar sind, aufweist, wobei die Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung darüber zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
Description
- Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung.
- Computerplattformen, die für handelsübliche Anwendungen verwendet werden, arbeiten üblicherweise in einer Umgebung, in der ihr Verhalten anfällig für eine Modifikation durch lokale oder entfernte Entitäten ist.
- Zusätzlich dazu, in Anbetracht der andauernden Steigerung der Computerleistung wurde es immer üblicher für Computerplattformen, mehrere Benutzer zu unterstützen, wobei jeder Benutzer seine eigene Betriebsumgebung aufweisen kann, die auf der Computerplattform installiert ist.
- Die Betriebssystemsoftware läuft üblicherweise auf der Systemprivilegebene eines Prozessors, wobei die Systemprivilegebene den individuellen Betriebssystemen ermöglicht, sowohl privilegierte als auch nicht-privilegierte Befehle zu verwenden, die durch die Prozessorhardware bereitgestellt werden. Als solches, wo eine Anzahl von separaten Betriebssystemen gleichzeitig auf einer Computerplattform läuft, verwenden die Betriebssysteme das Gesamtsystemprivileg gemeinschaftlich und sind nicht notwendigerweise voneinander isoliert oder geschützt. Das Volumen des Quellcodes für Softwarekomponenten, die ein Gesamtsystemprivileg gemeinschaftlich verwenden, ist üblicherweise bei modernen Betriebssystemen so groß, daß es praktisch unmöglich ist, die Richtigkeit des Quellcodes und ob das Verhalten des Quellcodes sich wie erwartet verhält, sicherzustellen.
- Dementsprechend ist diese potentielle Unsicherheit der Plattform eine Einschränkung für dessen Verwendung durch Parteien, die anderweitig bereit wären, die Plattform zu verwenden.
- Erhöhen des Pegels an Vertrauen bei Plattformen ermöglicht daher ein größeres Benutzerzutrauen (confidence), daß sich die Plattform- und die Betriebssystem-Umgebung auf eine bekannte Weise verhalten.
- Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung, ein Verfahren und ein System zum Erzeugen einer vertrauenswürdigen Umgebung zu schaffen.
- Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 2 oder 3, ein Verfahren gemäß Anspruch 18, 19 oder 20 und ein System gemäß Anspruch 21 gelöst.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung wird eine Computervorrichtung zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, die eine vertrauenswürdige Einrichtung, die angeordnet ist, um ein erstes Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, einen Prozessor, der angeordnet ist, um die Ausführung einer ersten Vertrauensroutine zu ermöglichen und der einer ersten Betriebsumgebung zugeordnet ist, und eine Einrichtung zum Einschränken des Zugriffs der ersten Betriebsumgebung auf Ressourcen, die für die Vertrauensroutine verfügbar sind aufweist, wobei die Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
- Gemäß einem zweiten Aspekt der Erfindung wird eine Computervorrichtung zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, die eine vertrauenswürdige Einrichtung, die angeordnet ist, um ein erstes Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, und einen Prozessor aufweist, der angeordnet ist, um die Ausführung einer ersten Vertrauensroutine und einer zugeordneten ersten Betriebsumgebung zu ermöglichen, wobei der Prozessor angeordnet ist, um den Zugriff der ersten Betriebsumgebung auf Ressourcen einzuschränken, die für die Vertrauensroutine verfügbar sind, wobei die Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
- Gemäß einem dritten Aspekt der vorliegenden Erfindung wird eine Computervorrichtung zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, die eine vertrauenswürdige Einrichtung, die angeordnet ist, um ein erstes Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, und einen Prozessor aufweist, der angeordnet ist, um die Ausführung einer ersten Vertrauensroutine in einer ersten Privilegebene des Prozessors zu ermöglichen und um die Ausführung einer zugeordneten ersten Betriebsumgebung in einer zweiten Privilegebene des Prozessors zu ermöglichen, derart, daß ein Zugriff auf Ressourcen, die für einen Code verfügbar sind, der in der ersten Privilegebene ausgeführt wird, auf einen Code beschränkt ist, der in der zweiten Privilegebene ausgeführt wird, wobei die Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
- Vorzugsweise ist die vertrauenswürdige Einrichtung eine fälschungsresistente Einrichtung.
- Vorzugsweise ist der Prozessor angeordnet, um die Ausführung einer Mehrzahl von Vertrauensroutinen in der ersten Privilegebene zu ermöglichen und um die Ausführung jeweiliger zugeordneter Betriebsumgebungen in der zweiten Privilegebene zu ermöglichen; wobei jede Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein Integritätsmaß, das der jeweiligen zugeordneten Betriebsumgebung zugeordnet ist zu erwerben, um eine Bestimmung zu ermöglichen, ob die jeweilige Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
- Vorzugsweise ist die Vertrauensroutine angeordnet, um eine kryptographische Funktionalität zum Einschränken des Zugriffs auf Daten einzulagern, die der Vertrauensroutine zugeordnet sind.
- Vorzugsweise ist die vertrauenswürdige Einrichtung angeordnet, um eines oder mehrere Geheimnisse zu speichern.
- Geeigneterweise sind der Vertrauensroutine eines oder mehrere Geheimnisse zugeordnet.
- Am geeignetsten ist zumindest ein Geheimnis ein privater, asymmetrischer Verschlüsselungsschlüssel.
- Vorzugsweise ist die vertrauenswürdige Einrichtung angeordnet, um beim Abschalten der Computervorrichtung Geheimnisse zu speichern, die durch eine Vertrauensroutine verwendet werden.
- Vorzugsweise weist der Code, der in der zweiten Privilegebene ausgeführt wird, einen begrenzten Zugriff auf Daten auf, die einer Vertrauensroutine zugeordnet sind, die in der ersten Privilegebene ausgeführt wird.
- Vorzugsweise sind alle Daten, die dem Vertrauensmodul zugeordnet sind, vor einer Änderung von dem Code geschützt, der in der Privilegebene 2 ausgeführt wird.
- Vorzugsweise sind Geheimnisse, die einem Vertrauensmodul zugeordnet sind, für einen Code nicht zugreifbar, der in der Privilegebene 2 ausgeführt wird.
- Geeigneterweise bürgt die vertrauenswürdige Einrichtung für einen öffentlichen Schlüssel, der dem Vertrauensmodul zugeordnet ist, unter Verwendung eines privaten Schlüssels der vertauenswürdigen Einrichtung.
- Geeigneterweise bürgt eine vertrauenswürdige dritte Partei für einen öffentlichen Schlüssel, der dem Vertrauensmodul zugeordnet ist, unter Verwendung eines privaten Schlüssels der vertrauenswürdigen Parteien.
- Vorzugsweise ist die vertrauenswürdige Einrichtung angeordnet, um Bootsequenzbefehle zu übertragen, um eine Initiierung des Bootens der Computervorrichtung zu ermöglichen.
- Vorzugsweise ist der Prozessor angeordnet, um zu verursachen, daß die Bootsequenzbefehle die ersten Befehle sind, die durch den Prozessor nach der Freigabe von der Rücksetzung (reset) ausgeführt werden.
- Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, das das Erwerben eines ersten Integritätsmaßes, um eine Bestimmung zu ermöglichen, ob eine Computervorrichtung auf eine vertrauenswürdige Weise arbeitet und das Ausführen einer ersten Vertrauensroutine in einer ersten Privilegebene eines Prozessors und das Ausführen einer zugeordneten ersten Betriebsumgebung in einer zweiten Privilegebene des Prozessors, das Einschränken des Zugriffs auf Ressourcen, die für einen Code verfügbar sind, der in der ersten Privilegebene ausgeführt wird, von einem Code, der in der zweiten Privilegebene ausgeführt wird, das Erwerben des ersten Integritätsmaßes und eines zweiten Integritätsmaßes, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet, aufweist.
- Gemäß einem fünften Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, das das Erwerben eines ersten Integritätsmaßes, um eine Bestimmung zu ermöglichen, ob eine Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, das Ausführen einer ersten Vertrauensroutine und einer zugeordneten ersten Betriebsumgebung, das Einschränken des Zugriffs der ersten Betriebsumgebung auf Ressourcen, die für die Vertrauensroutine verfügbar sind, und das Anordnen der Vertrauensroutine, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet, aufweist.
- Gemäß einem sechsten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, das das Erwerben eines ersten Integritätsmaßes, um eine Bestimmung zu ermöglichen, ob eine Computervorrichtung auf eine vertrauenswürdige Weise arbeitet und das Ausführen einer ersten Vertrauensroutine und einer zugeordneten ersten Betriebsumgebung, das Beschränken des Zugriffs der ersten Betriebsumgebung auf Ressourcen, die für die Vertrauensroutine verfügbar sind, das Erwerben des ersten Integritätsmaßes und eines zweiten Integritätsmaßes, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet, aufweist.
- Gemäß einem siebten Aspekt der vorliegenden Erfindung wird ein Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung geschaffen, das eine vertrauenswürdige Einrichtung, die angeordnet ist, um ein erstes Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, einen Prozessor, der angeordnet ist, um die Ausführung einer ersten Vertrauensroutine und einer zugeordneten ersten Betriebsumgebung zu ermöglichen, und eine Einrichtung zum Einschränken des Zugriffs der ersten Betriebsumgebung auf Ressourcen, die für die Vertrauensroutine verfügbar sind, aufweist, wobei die Vertrauensroutine angeordnet ist, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, um eine Bestimmung zu ermöglichen, ob die erste Betriebsumgebung auf eine vertrauenswürdige Weise arbeitet.
- Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
- Fig. 1 ein System, das in der Lage ist, Ausführungsbeispiele der vorliegenden Erfindung zu implementieren;
- Fig. 2 eine Hauptplatine, die eine vertrauenswürdige Einrichtung umfaßt;
- Fig. 3 Privilegebenen eines Prozessors;
- Fig. 4 die vertrauenswürdige Einrichtung detaillierter;
- Fig. 5 die Schritte, die beim Erwerben eines Integritätsmaßes der Rechenvorrichtung umfaßt sind;
- Fig. 6 ein System, das in der Lage ist, Ausführungsbeispiele der vorliegenden Erfindung zu implementieren;
- Fig. 7 eine virtuelle vertrauenswürdige Einrichtung;
- Fig. 8 ein Ausführungsbeispiel der vorliegenden Erfindung.
- Das vorliegende Ausführungsbeispiel liefert die Einlagerung einer physischen, vertauenswürdigen Einrichtung und einer Softwarevertrauensroutine (d. h. einer virtuellen, vertauenswürdigen Einrichtung) in eine Rechenplattform. Die Funktion der tatsächlichen vertauenswürdigen Einrichtung ist es, die Identität der Plattform an zuverlässig gemessene Daten zu binden, die ein Integritätsmaß der Plattform liefern, während die virtuelle vertrauenswürdige Einrichtung die Identität einer zugeordneten Softwarebetriebsumgebung (z. B. eines Betriebssystems) an zuverlässig gemessene Daten bindet, die ein Integritätsmaß der Betriebsumgebung liefern. Die Identitäten und die Integritätsmaße werden mit erwarteten Werten verglichen, die durch eine vertrauenswürdige Partei (TP = trusted party) geliefert werden, die vorbereitet ist, um für die Vertrauenswürdigkeit der Plattform zu bürgen. Optional werden die erwarteten Werte, die durch die vertrauenswürdige dritte Partei geliefert werden, sicher in der jeweiligen tatsächlichen vertauenswürdigen Einrichtung und der virtuellen vertauenswürdigen Einrichtung gespeichert. Falls eine Übereinstimmung besteht, ist die Folgerung, daß zumindest ein Teil der Plattform und des Betriebssystem korrekt arbeitet, abhängig von dem Umfang des Integritätsmaßes.
- Ein Benutzer verifiziert die korrekte Operation der Plattform und der Betriebsumgebung vor dem Austauschen anderer Daten mit der Plattform. Ein Benutzer tut dies durch Anfordern der Identitäten und Integritätsmaße der tatsächlichen vertauenswürdigen Einrichtung und der virtuellen vertauenswürdigen Einrichtung. (Optional lehnen die vertauenswürdigen Einrichtungen ab, einen Nachweis der Identität zu liefern, falls dieselbe selbst nicht in der Lage war, eine korrekte Operation der Plattform zu verifizieren) Der Benutzer empfängt den Beweis der Identität und des Identitätsmaßes und vergleicht dieselben mit den Werten, die durch die vertrauenswürdige dritte Partei geliefert werden. Wenn die gemessenen Daten, die durch die vertauenswürdigen Einrichtungen berichtet werden, die gleichen wie die sind, die durch die vertrauenswürdige dritte Partei geliefert wurden, kann der Benutzer der Plattform vertrauen.
- Zusätzlich dazu, wenn die Computerplattform angeordnet ist, um eine Mehrzahl von separaten Betriebsumgebungen zu unterstützen, wobei jede Betriebsumgebung ihre eigene jeweilige virtuelle vertrauenswürdige Einrichtung aufweist, können die Benutzer der jeweiligen Betriebsumgebungen darauf vertrauen, daß ihre Betriebsumgebung von einer anderen Betriebsumgebung isoliert ist, die auf der Computerplattform läuft.
- Sobald ein Benutzer eine vertrauenswürdige Operation der Plattform und der Betriebsumgebung eingerichtet hat, tauscht er andere Daten mit der Plattform aus. Für einen lokalen Benutzer könnte der Austausch durch eine Wechselwirkung mit einer bestimmten Softwareanwendung erfolgen, die innerhalb der Betriebsumgebung auf der Plattform läuft. Für einen entfernten Benutzer könnte der Austausch eine sichere Transaktion umfassen. In jedem Fall werden die Daten üblicherweise durch eine der vertauenswürdigen Einrichtungen "unterzeichnet" ausgetauscht. Der Benutzer kann dann ein größeres Zutrauen haben, daß Daten mit einer Plattform ausgetauscht werden, deren Verhalten vertrauenswürdig ist.
- Die vertauenswürdigen Einrichtungen verwenden kryptographische Prozesse, liefern jedoch nicht notwendigerweise eine externe Schnittstelle für diese kryptographischen Prozesse.
- Um sicherzustellen, daß ein minimales Risiko besteht, daß die virtuelle vertrauenswürdige Einrichtung anfällig für eine Softwareattacke durch eine bösartige Software ist, die auf der Computerplattform läuft, ist die virtuelle vertrauenswürdige Einrichtung angeordnet, um in einer Prozessorprivilegebene ausgeführt zu werden, die den Zugriff auf andere Softwareanwendungen einschränkt, die auf der Computerplattform ausgeführt werden (wie nachfolgend beschrieben wird). Zusätzlich dazu werden Geheimnisse, die der virtuellen vertauenswürdigen Einrichtung zugeordnet sind, derart gespeichert, daß die Geheimnisse für Softwareanwendungen nicht zugreifbar sind, die in einer Prozessorprivilegebene ausgeführt werden, die niedriger ist als die, in der die virtuelle vertrauenswürdige Einrichtung ausgeführt wird. Ferner wäre es eine äußerst wünschenswerte Implementierung, die tatsächliche vertrauenswürdige Einrichtung fälschungssicher zu machen, um Geheimnisse dadurch zu schützen, daß dieselben für andere Plattformfunktionen nicht zugreifbar sind, und eine Umgebung zu liefern, die im wesentlichen immun gegen eine nicht autorisierte Modifikation ist. Da eine Fälschungssicherung unmöglich ist, ist die beste Annäherung eine vertrauenswürdige Einrichtung, die fälschungsresistent oder fälschungserfassend ist. Die vertrauenswürdige Einrichtung besteht daher vorzugsweise aus einer physikalischen Komponente, die fälschungsresistent ist.
- Techniken, die für Fälschungsresistenz relevant sind, sind Fachleuten auf dem Gebiet der Sicherheit bekannt. Diese Techniken umfassen Verfahren für eine Fälschungsresistenz (wie z. B. eine angemessene Einkapselung der vertauenswürdigen Einrichtung), Verfahren zum Erfassen einer Fälschung (wie z. B. der Erfassung aus Spezifikationsspannungen, Röntgenstrahlen oder einem Verlust an physikalischer Integrität in dem Gehäuse der vertauenswürdigen Einrichtung), und Verfahren zum Eliminieren von Daten, wenn eine Fälschung erfaßt wird.
- Eine vertrauenswürdige Plattform 10 ist in dem Diagramm in Fig. 1 dargestellt. Die Plattform 10 umfaßt die Standardmerkmale einer Tastatur 14, einer Maus 16 und einer visuellen Anzeigeeinheit (VDU = visual display unit) 18, die die tatsächliche "Benutzerschnittstelle" der Plattform liefern. Bei der Plattform 10 besteht eine Mehrzahl von Modulen 15: dies sind andere Funktionselemente der vertrauenswürdigen Plattform von im wesentlichen einer Art, die angemessen für diese Plattform ist (die funktionelle Bedeutung derartiger Elemente ist für die vorliegende Erfindung nicht relevant und wird daher hierin nicht weiter erörtert).
- Wie in Fig. 2 dargestellt ist, umfaßt die Hauptplatine 20 der vertrauenswürdigen Rechenplattform 10 (unter anderen Standardkomponenten) einen Hauptprozessor 21 mit einem internen Speicher 25, einem Hauptspeicher 22, einer vertauenswürdigen Einrichtung 24, einem Datenbus 26 und jeweiligen Steuerleitungen 27 und Leitungen 28, einem BIOS- Speicher 29, der das BIOS-Programm 28 für die Plattform 10 enthält und eine Eingabe-/Ausgabe-Einrichtung (I/O) 23, die die Wechselwirkung zwischen den Komponenten der Hauptplatine, der Tastatur 14, der Maus 16 und der VDU 18 steuert. Der Hauptspeicher 22 ist üblicherweise ein Direktzugriffsspeicher (RAM = random access memory).
- Bei diesem Ausführungsbeispiel weist der Prozessor 21 vier Ausführprivilegebenen PL0, PL1, PL2, PL3 auf. Beispiele derartiger Prozessoren sind der PA-RISC-Prozessor von Hewlett-Packard oder der IA-64-Prozessor von Intel, es können jedoch auch andere Prozessorkonfigurationen mit einer Mehrzahl von Privilegebenen verwendet werden.
- In dem Prozessor 21 läuft eine sichere Plattformarchitektur (SPA) 31, wie in Fig. 3 gezeigt ist.
- Die SPA 31 umfaßt ein BIOS-Programm oder eine Firmware 28, die auf dem Prozessor 21 auf der Ausführprivilegebene 0 (PL0) läuft, die privilegierteste Ebene des Prozessors 21. Die SPA 31 umfaßt einen Vierschicht-Softwarering, der auf der BIOS-Firmware 28 in dem Prozessor 21 läuft.
- Der innerste Softwarering, der auf der BIOS-Firmware 28 läuft, wird als der sichere Plattformkernel (SPK) 32 bezeichnet und ist der einzige Softwarering, der eine privilegierte Aufgabe abspielt. Der SPK 32 läuft auf PL0 und bildet die Fundamentschicht der SPA 31 und ist die einzige Ringschicht, die auf privilegierte Systemregister zugreift und privilegierte Befehle ausführt.
- Ein sicheres Plattform-Global-Dienstemodul (SPGS) 33 läuft auf dem SPK 32 als eine unprivilegierte Aufgabe. Das SPGS 33 läuft auf der Ausführprivilegebene 1 (PL1), der zweitprivilegierten Ebene des Prozessors 21. Der SPK 32 und das SPGS 33 werden kollektiv als die sichere Plattform (SP) 34 bezeichnet.
- Zumindest ein Betriebssystembild 35 läuft auf dem SPGS 33 als eine unprivilegierte Aufgabe. Das Betriebssystembild 35 läuft auf der Ausführprivilegebene 2 (PL2), der drittprivilegierten Ebene des Prozessors 31. Endbenutzeranwendungen 36 laufen auf dem/den Betriebssystembildern 35 als unprivilegierte Aufgaben. Endbenutzeranwendungen 36 laufen auf der Ausführprivilegebene 3 (PL3), der viertprivilegierten Ebene (d. h. der am wenigsten privilegierten Ebene) des Prozessors 21.
- Der SPK 32 ist vorzugsweise ein kleiner Kernel mit einem vertrauenswürdigen, beweisbar korrekten Code, der sicherheitskritische Dienste ausführt, wobei die geringe Größe zu der Sicherheit und der Korrektheit des SPK beiträgt. Beispiele von sicherheitskritischen Diensten umfassen Speicher- und Prozeß-Verwaltung, Fallen- und Interrupt- Handhabung und kryptographische Dienste, wobei einige dieser Sicherheitsdienste über eine virtuelle Vertrauenseinrichtung durchgeführt werden können, wie nachfolgend beschrieben wird. Das SPGS 33 ist mit einem vertrauenswürdigen Code aufgebaut, verwendet aber Hardwaresicherheitsfähigkeiten der Prozessoren 21, wie z. B. der IA-64- Prozessoren, um die Auswirkung eines Fehlers zu minimieren. Das SPGS 33 läuft als eine unprivilegierte Aufgabe und verwendet den SPK 32, um privilegierte Operationen auszuführen.
- Zusätzlich dazu umfaßt der SPK 32 einen Code, um die Ausführung von einer oder mehreren virtuellen vertauenswürdigen Einrichtungen 37 innerhalb des SPK 32 zu ermöglichen. Die eine oder mehreren virtuellen vertauenswürdigen Einrichtungen 37 sind einer Betriebsumgebung zugeordnet, die in PL2 und PL3 ausgeführt wird, und ermöglichen es einem Benutzer, einzurichten, ob die zugeordnete Betriebsumgebung vertrauenswürdig ist, wie nachfolgend beschrieben wird. Es ist jedoch nicht wesentlich für den Code der virtuellen vertauenswürdigen Einrichtung, innerhalb des SPK-Codes eingelagert zu sein, der Code kann anderswo gehäust sein, z. B. in der vertauenswürdigen Einrichtung 24.
- Um sicherzustellen, daß der virtuellen vertauenswürdigen Einrichtung 37 vertraut werden kann, ist es für den Hersteller des SPK-Codes wünschenswert, durch eine vertrauenswürdige dritte Partei validiert zu werden. Bei der Validierung wird ein Validierungszeugnis, das mit dem privaten Schlüssel der vertrauenswürdigen dritten Parteien signiert ist, dem SPK-Code zugeordnet.
- Das SPGS 33 umfaßt üblicherweise alle Dienste, die nicht in dem SPK 32 umfaßt sein müssen. Ein Grund dafür, daß die sichere Plattform 34 in SPK 32 und SPGS 33 aufgespalten wird ist es, zu ermöglichen, daß der SPK 32 klein, stabil und verifizierbar ist.
- Schnittstellen zwischen der BIOS-Firmware 28 und der Prozessorhardware 21 umfassen eine privilegierte Binäranwendungsschnittstelle (ABI = application binary interface) und eine nicht-privilegierte ABI. Die Schnittstellen zwischen dem SPK 32 und der BIOS-Firmware 28 umfassen eine privilegierte ABI, eine nicht-privilegierte ABI und eine Prozessorabstraktionsschicht (PAL = processor abstraction layer) /Systemabstraktionsschicht (SAL = system abstraction layer) /erweiterbare Firmwareschnittstelle (EFI)-Schnittstellen. Die Schnittstellen zwischen dem SPGS 33 und dem SPK 32 umfassen eine sichere Plattformschnittstelle (SPI = secure platform interface) und eine nicht-privilegierte ABI. Die Schnittstellen zwischen den Betriebssystembildern 35 und dem SPGS 33 umfassen eine SPI, eine Globaldiensteschnittstelle (GSI = global services interface) und eine nicht-privilegierte ABI. Die Schnittstellen zwischen Endbenutzeranwendungen 36 und Betriebssystembildern 35 umfassen eine Anwendungsprogrammschnittstelle (EPI) und eine nicht-privilegierte ABI.
- Das SPGS 33 kann die Betriebssystembildschicht 35 in mehrere unabhängige Schutzdomänen partitionieren, die auf der PL2 arbeiten. Eine Schutzdomäne wird hierin als eine Softwarepartition und eine zugeordnete Sammlung von Systemressourcen, wie z. B. Speicher, I/O, Prozessoren und ähnliches bezeichnet, die durch das SPGS 33 zum Zweck des Ladens und Ausführens eines einzelnen Betriebssystembildes 35 erzeugt werden. Jede der mehreren unabhängigen Schutzdomänen ist in der Lage, ein Betriebssystembild 35 oder ein anderes Programm, das in der Lage ist, betrieben zu werden, urzuladen und auszuführen, nur unter Verwendung der SPK 32- und der SPGS 33-Dienste, wie z. B. eines spezialisierten Anwendungssteuerungsprogramms.
- Die mehreren unabhängigen Schutzdomänen, die auf der PL2 laufen, werden voneinander durch die Speicherschutzfähigkeiten der Vierprivilegebenen-Prozessorhardware 21 geschützt, wie z. B. die Prozessorschutzfähigkeiten des Prozessors IA-64. Daher hat ein Ausfall in einer der unabhängigen Schutzdomänen üblicherweise keine Auswirkung auf die anderen unabhängigen Schutzdomänen, sogar wenn der Ausfall ein Betriebssystemzusammenbruch ist. Die unabhängigen Schutzdomänen liefern die Fähigkeit, die Systemverwendung auf einer Feinkronbasis zu verwalten, während die Sicherheit beibehalten wird. Betriebssystembilder 35 werden zur sicheren Plattform 34 der SPA 31 getragen, ähnlich dazu, wie Betriebssysteme zu einer neuen Hardwareplattform- Industriestandardarchitektur ISA in der klassischen Architektur für Betriebssysteme getragen werden.
- Endbenutzeranwendungen 36 laufen auf der am wenigsten privilegierten Ebene, PL3, als unprivilegierte Aufgaben unter der Steuerung eines Betriebssystembildes 35 in einer Schutzdomäne einer sicheren Plattform 34. Üblicherweise, von der Perspektive der Endbenutzeranwendung aus, arbeitet die Endbenutzeranwendung 36 unter der Steuerung eines Betriebssystembildes 35, da die Endbenutzeranwendung unter der Steuerung eines Betriebssystems in der klassischen Architektur für Betriebssysteme laufen würde.
- Damit die Computerplattform 10 und die Betriebsumgebung(en) vertrauenswürdig sind, wird eine Vertrauenskette von der Systemhardware über den Bootprozeß bis zu einem abschließenden laufenden Code eingerichtet. Zusätzlich dazu wird der gesamte Softwarecode vorzugsweise authentifiziert, bevor derselbe ausführt wird, und ein ordnungsgemäß authentifiziertes Codestück ist vorzugsweise unänderbar, außer durch eine ähnlich vertrauenswürdige Komponente, um die Vertrauenskette beizubehalten. Die Softwareauthentifizierung sollte mehr sein als eine einfache Prüfsumme oder ein anderes schmiedbares Schema. Somit verwendet die SPA 31 vorzugsweise eine starke Authentifizierung unter Verwendung kryptographischer Verfahren, wie z. B. der Öffentlicher- Schlüssel-Verschlüsselung, derart, daß Software nur unerfaßbar fehlerhaft sein kann, wenn ein privater Schlüssel bekannt ist.
- Die Vertrauenskette erstreckt sich zurück zu der vertauenswürdigen Einrichtung 24. Wie nachfolgend beschrieben wird, wird der Prozessor 21 nach dem Zurücksetzen des Systems zuerst durch die vertrauenswürdige Einrichtung 24 gesteuert, die dann nach dem Durchführen eines sicheren Bootprozesses die Steuerung an die BIOS-Firmware 28 übergibt. Während des sicheren Bootprozesses erwirbt die vertrauenswürdige Einrichtung 24 ein Integritätsmaß von der Computerplattform 10, wie nachfolgend beschrieben wird.
- Genauer gesagt weist die vertrauenswürdige Einrichtung 24, wie in Fig. 4 gezeigt ist, folgende Merkmale auf: eine Steuerung 40, die programmiert ist, um die Gesamtoperation der vertauenswürdigen Einrichtung 24 zu steuern und mit den anderen Funktionen auf der vertauenswürdigen Einrichtung 24 und mit den anderen Einrichtungen auf der Hauptplatine 20 zu interagieren; eine Meßfunktion 41 zum Erwerben des Integritätsmaßes von der Plattform 10; eine kryptographische Funktion 42 zum Signieren, Verschlüsseln oder Entschlüsseln spezifizierter Daten; eine Authentifizierungsfunktion 43 und eine Schnittstellenschaltungsanordnung 44, die geeignete Tore (46, 47 und 48) zum Verbinden der vertauenswürdigen Einrichtung 24 mit dem Datenbus 26, den Steuerungsleitungen 27 bzw. den Adreßleitungen 28 der Hauptplatine 20 aufweist. Jeder der Blöcke in der vertauenswürdigen Einrichtung 24 hat Zugriff (üblicherweise über die Steuerung 40) zu den geeigneten flüchtigen Speicherbereichen 4 und/oder nichtflüchtigen Speicherbereichen 3 der vertauenswürdigen Einrichtung 24. Zusätzlich dazu ist die vertrauenswürdige Einrichtung 24 auf eine bekannte Weise entworfen, um fälschungsresistent zu sein.
- Aus Gründen des Verhaltens kann die vertrauenswürdige Einrichtung 24 als eine anwendungsspezifische integrierte Schaltung (ASIC) implementiert sein. Der Flexibilität halber ist die vertrauenswürdige Einrichtung 24 jedoch vorzugsweise eine geeignet programmierte Mikrosteuerung. Sowohl ASICs als auch Mikrosteuerungen sind in der Technik der Mikroelektronik bekannt und werden hierin nicht detaillierter berücksichtigt.
- Ein Datenartikel, der in dem nicht-flüchtigen Speicher 3 der vertauenswürdigen Einrichtung 24 gespeichert ist, ist ein Zertifikat 350. Das Zertifikat 350 enthält zumindest einen öffentlichen Schlüssel 351 der vertauenswürdigen Einrichtung 24 und optional einen authentifizierten Wert 352 des Plattformintegritätsmaßes, der durch eine vertrauenswürdige Partei (TP) gemessen wird. Das Zertifikat 350 wird durch die TP unter Verwendung des privaten Schlüssels der TP signiert, bevor dasselbe in der vertauenswürdigen Einrichtung 24 gespeichert wird. Bei späteren Kommunikationssitzungen kann ein Benutzer der Plattform 10 die Integrität der Plattform 10 und der Betriebsumgebung verifizieren, durch Vergleichen des erworbenen Integritätsmaßes (d. h. des gemessen Integritätsmaßes) mit einem authentischen Integritätsmaß 352, wie nachfolgend beschrieben wird. Die Kenntnis des allgemein verfügbaren öffentlichen Schlüssels der TP ermöglicht eine einfache Verifizierung des Zertifikats 350. Der nicht-flüchtige Speicher 45 enthält ferner ein Identitätsetikett (ID-Etikett) 353. Das ID-Etikett 353 ist ein herkömmliches ID-Etikett, z. B. eine Seriennummer, die innerhalb eines bestimmten Kontexts eindeutig ist. Das ID-Etikett 353 wird allgemein zum Indizieren und Etikettieren von Daten verwendet, die für die vertrauenswürdige Einrichtung 24 relevant sind, ist aber an sich nicht ausreichend, um die Identität der Plattform 10 unter vertrauenswürdigen Umständen zu belegen.
- Die vertrauenswürdige dritte Partei, die aufgefordert wird, das authentische Integritätsmaß zu liefern, inspiziert den Typ der Plattform, um zu entscheiden, ob sie für dieselbe bürgen sollte oder nicht. Dies ist eine Frage der Police (policy). Wenn alles in Ordnung ist, mißt die TP den Wert des Integritätsmaßes der Plattform. Dann erzeugt die TP ein Zertifikat für die Plattform. Das Zertifikat wird durch die TP durch Anbringen des öffentlichen Schlüssels der vertauenswürdigen Einrichtung und optional dessen ID-Etiketts an das gemessene Integritätsmaß und durch Signieren der Zeichenfolge mit dem privaten Schlüssel der TP erzeugt.
- Die vertrauenswürdige Einrichtung 24 kann nachfolgend ihre Identität durch Verwenden ihres privaten Schlüssels belegen, um bestimmte Eingangsdaten zu verarbeiten, die von dem Benutzer empfangen wurden, und Ausgangsdaten zu erzeugen, derart, daß es statistisch unmöglich ist, das Eingangs- /Ausgangs-Paar ohne Kenntnis des privaten Schlüssels zu erzeugen. Somit bildet die Kenntnis des privaten Schlüssels in diesem Fall die Basis der Identität. Es wäre eindeutig machbar, eine symmetrische Verschlüsselung zu verwenden, um die Basis der Identität zu bilden. Der Nachteil der Verwendung einer symmetrischen Verschlüsselung ist jedoch, daß der Benutzer sein Geheimnis mit der vertauenswürdigen Einrichtung gemeinschaftlich verwenden müßte. Ferner, als Ergebnis des Bedarfs zum gemeinschaftlichen Verwenden des Geheimnisses mit dem Benutzer, wäre es nicht ausreichend, die Identität für eine dritte Partei zu belegen, die nicht vollständig sicher sein könnte, ob die Verifizierung von der vertauenswürdigen Einrichtung oder dem Benutzer stammt, während eine symmetrische Verschlüsselung im Prinzip ausreichend wäre, um die Identität für den Benutzer zu belegen.
- Die vertrauenswürdige Einrichtung 24 wird durch Schreiben des Zertifikats 350 in die geeigneten nicht-flüchtigen Speicherpositionen 3 der vertauenswürdigen Einrichtung 24 initialisiert. Dies wird vorzugsweise durch eine sichere Kommunikation mit der vertauenswürdigen Einrichtung 24 durchgeführt, nachdem dieselbe in der Hauptplatine 20 installiert wurde. Das Verfahren des Schreibens des Zertifikats zu der vertauenswürdigen Einrichtung 24 ist analog zu dem Verfahren, das verwendet wird, um intelligente Karten durch Schreiben privater Schlüssel auf dieselben zu initialisieren. Die sichere Kommunikation wird durch einen "Hauptschlüssel" unterstützt, der nur der TP bekannt ist, der an die vertrauenswürdige Einrichtung (oder die intelligente Karte) während der Herstellung geschrieben wird und verwendet wird, um das Schreiben von Daten an die vertrauenswürdige Einrichtung 24 zu ermöglichen; das Schreiben von Daten an die vertrauenswürdige Einrichtung 24 ohne Kenntnis des Hauptschlüssels ist nicht möglich.
- An einem späteren Punkt während der Operation der Plattform, z. B. wenn dieselbe eingeschaltet oder zurückgesetzt wird, mißt und speichert die vertrauenswürdige Einrichtung 24 das Integritätsmaß 361 der Plattform.
- Die vertrauenswürdige Einrichtung 24 ist mit zumindest einem Verfahren zum zuverlässigen Messen oder Erwerben des Integritätsmaßes der Rechenplattform 10 ausgerüstet, der dieselbe zugeordnet ist, um einen Vergleich mit dem authentischen Integritätsmaß zu ermöglichen, das durch die vertrauenswürdige dritte Partei geliefert wird. Bei dem vorliegenden Ausführungsbeispiel wird das Integritätsmaß durch die Meßfunktion 41 erworben, durch Erzeugen einer Auswahl der BIOS-Befehle in dem BIOS-Speicher und dem SPK-Code. Das gemessene Integritätsmaß wird unter Verwendung des privaten Schlüssels der vertauenswürdigen Einrichtung 24 signiert, um das Zutrauen zu liefern, daß das Integritätsmaß durch die vertrauenswürdige Einrichtung 24 erworben wurde. Ein derart erworbenes Integritätsmaß, falls dieselbe wie oben beschrieben verifiziert wurde, gibt einem potentiellen Benutzer der Plattform eine hohe Zutrauensebene, daß die Plattform 10 nicht an einer Hardware oder einem BIOS- Programm oder einer Ebene abgeändert wurde.
- Die Meßfunktion 41 hat Zugriff auf folgende Teile: den nicht-flüchtigen Speicher 3 zum Speichern eines Hash- Programms 354 und eines privaten Schlüssels 355 der vertauenswürdigen Einrichtung 24 und einen flüchtigen Speicher 4 zum Speichern des erworbenen Integritätsmaßes in der Form einer Auswahl 361. Bei geeigneten Ausführungsbeispielen kann der flüchtige Speicher 4 ferner verwendet werden, um die öffentlichen Schlüssel und zugeordnete ID-Etiketten 360a-35??0n von einer oder mehreren authentischen intelligenten Karten (nicht gezeigt) zu speichern, die verwendet werden können, um Zugriff zu der Plattform 10 zu erlangen. Bei einer bevorzugten Implementierung umfaßt sowohl die Auswahl als auch das Integritätsmaß einen Boolschen Wert, der in dem flüchtigen Speicher 4 durch die Meßfunktion 31 gespeichert wird, aus den nachfolgend beschriebenen Gründen.
- Ein bevorzugter Prozeß zum Erwerben eines Integritätsmaßes für die Computerplattform 10 wird nun Bezug nehmend auf Fig. 5 beschrieben.
- Bei Schritt S00, beim Einschalten, überwacht die Meßfunktion 41 die Aktivität des Hauptprozessors 21 an den Daten, der Steuerung und den Adreßleitungen (26, 27 und 28), um zu bestimmen, ob die vertrauenswürdige Einrichtung 24 der erste Speicher ist, auf den zugegriffen wurde. Der Prozessor 21 wird zu der vertauenswürdigen Einrichtung 24 gerichtet, die als ein Speicher agiert. Bei Schritt S05, wenn die vertrauenswürdige Einrichtung 24 der erste zugegriffene Speicher ist, schreibt die Meßfunktion 41 bei Schritt S10 einen Boolschen Wert in den flüchtigen Speicher 3, der anzeigt, daß die vertrauenswürdige Einrichtung 24 der erste zugegriffene Speicher war. Anderweitig schreibt die Meßfunktion bei Schritt S15 einen Boolschen Wert, der anzeigt, daß die vertrauenswürdige Einrichtung 24 nicht der erste zugegriffene Speicher war.
- In dem Fall, daß auf die vertrauenswürdige Einrichtung 24 nicht zuerst zugegriffen wurde, besteht natürlich eine Möglichkeit, daß auf die vertrauenswürdige Einrichtung 24 überhaupt nicht zugegriffen wird. Dies wäre z. B. der Fall, wenn der Hauptprozessor 21 gehandhabt wird, um zuerst das BIOS-Programm abzuspielen. Unter diesen Umständen würde die Plattform arbeiten, wäre jedoch nicht in der Lage, ihre Integrität nach Bedarf zu verifizieren, da das Integritätsmaß nicht verfügbar wäre. Ferner, wenn auf die vertrauenswürdige Einrichtung 24 zugegriffen würde, nachdem auf das BIOS- Programm zugegriffen wurde, würde der Boolsche Wert eindeutig eine fehlende Integrität der Plattform anzeigen.
- Wenn jedoch ein Benutzer bereit ist, dem BIOS zu vertrauen, kann die Computerplattform 10 angeordnet werden, um die BIOS-Befehle als die ersten Befehle zu verwenden, auf die zugegriffen wurde.
- Bei Schritt S20, wenn (oder falls) durch den Hauptprozessor 21 als ein Speicher zugegriffen wird, liest der Hauptprozessor 21 die gespeicherten, systemeigenen Hash-Befehle 354aus der Meßfunktion 41 bei Schritt S25. Die Hash-Befehle 354 werden zum Verarbeiten durch den Hauptprozessor 21 über den Datenbus 26 weitergeleitet. Bei Schritt S30 führt der Hauptprozessor 21 die Hash-Befehle 354 aus und verwendet dieselben bei Schritt S35, um einen Auswahl des BIOS- Speichers 29 zu berechnen, durch Lesen der Inhalte des BIOS-Speichers 29 und durch Verarbeiten dieser Inhalte gemäß dem Hash-Programm. Bei Schritt S40 schreibt der Hauptprozessor 21 die berechnete Auswahl 361 in die geeignete, nicht-flüchtige Speicherposition 4 in der vertauenswürdigen Einrichtung 24. Auf ähnliche Weise initiiert die Meßfunktion 41 die Berechnung einer Auswahl für den SPK 32, der momentan in einer geeigneten, nicht-flüchtigen Speicherposition 4 in der vertauenswürdigen Einrichtung 24 gespeichert ist. Die Meßfunktion 41 ruft dann bei Schritt S45 die BIOS- Firmware 28 in dem BIOS-Speicher 29 auf und die Ausführung wird fortgesetzt, wie nachfolgend beschrieben ist.
- Es besteht offensichtlich eine Anzahl von unterschiedlichen Möglichkeiten, auf die das Integritätsmaß der Plattform berechnet werden kann, abhängig von dem Umfang des erforderlichen Vertrauens. Die Messung der Integrität des BIOS- Programms liefert eine grundlegende Prüfung der Integrität der zugrundeliegenden Verarbeitungsumgebung einer Plattform. Das Integritätsmaß sollte von einer derartigen Form sein, daß sie ein Schlußfolgern über die Gültigkeit des Bootprozesses ermöglicht - der Wert des Integritätsmaßes kann verwendet werden, um zu verifizieren, ob die Plattform unter Verwendung des korrekten BIOS urgeladen hat. Optional könnten individuelle Funktionsblöcke innerhalb des BIOS ihre eigenen Auswahlwerte aufweisen, wobei eine gemeinsame BIOS-Auswahl eine Auswahl dieser individuellen Auswahlen ist. Dies ermöglicht es einer Police anzugeben, welche Teile der BIOS-Operation für einen beabsichtigten Zweck kritisch sind, und welche irrelevant sind (wobei in diesem Fall die individuellen Auswahlen auf eine Weise gespeichert werden müssen, derart, daß die Gültigkeit der Operation unter der Police eingerichtet werden kann).
- Andere Integritätsprüfungen könnten das Einrichten umfassen, das verschiedene andere Einrichtungen, Komponenten oder Vorrichtungen, die an die Plattform angebracht sind, vorhanden und in richtigem Betriebszustand sind. Bei einem Beispiel könnten die BIOS-Programme, die einer SCSI- Steuerung zugeordnet sind, verifiziert werden, um sicherzustellen, daß Kommunikationen mit Peripheriegeräten vertraut werden kann. Bei einem anderen Beispiel könnte die Integrität anderer Einrichtungen, z. B. Speichereinrichtungen oder Coprozesso:ren, auf der Plattform verifiziert werden, durch Ausführen fester Aufforderung-/Antwort-Interaktionen, um konsistente Ergebnisse sicherzustellen. Wenn die vertrauenswürdige Einrichtung 24 eine abtrennbare Komponente ist, ist eine derartige Form der Interaktion wünschenswert, um eine geeignete logische Bindung zwischen der vertauenswürdigen Einrichtung 24 und der Plattform zu liefern. Ferner, obwohl die vertrauenswürdige Einrichtung 24 bei dem vorliegenden Ausführungsbeispiel den Datenbus als deren Hauptkommunikationseinrichtung mit anderen Teilen der Plattform verwendet, wäre es durchführbar, obwohl nicht so bequem, alternative Kommunikationswege zu liefern, wie z. B. hartverdrahtete Wege oder optische Wege. Ferner, obwohl die vertrauenswürdige Einrichtung 24 bei dem vorliegenden Ausführungsbeispiel den Hauptprozessor 21 anweist, das Integritätsmaß zu berechnen, ist die vertrauenswürdige Einrichtung bei anderen Ausführungsbeispielen selbst angeordnet, um eines oder mehrere Integritätsmaße zu messen.
- Vorzugsweise umfaßt der BIOS-Bootprozeß Mechanismen, um die Integrität des Bootprozesses selbst zu verifizieren. Derartige Mechanismen sind bereits z. B. aus dem Entwurf von Intel "Wired for Management baseline specification v 2,0-BOOT Integrity Service" bekannt, und umfassen die Berechnung von Auswahlen von Software oder Firmware vor dem Laden dieser Software oder Firmware. Eine derartige berechnete Auswahl wird mit einem Wert verglichen, der in einem Zertifikat gespeichert ist, das durch eine vertrauenswürdige Entität geliefert wird, deren öffentlicher Schlüssel dem BIOS bekannt ist. Die Software/Firmware wird dann nur geladen, wenn der berechnete Wert mit dem erwarteten Wert aus dem Zertifikat übereinstimmt, und das Zertifikat als gültig belegt wurde, durch Verwendung des öffentlichen Schlüssels der vertrauenswürdigen Entität. Anderweitig wird eine geeignete Ausnahmehandhabungsroutine aufgerufen.
- Optional, nach dem Empfangen der berechneten BIOS-Auswahl, kann die vertrauenswürdige Einrichtung 24 den richtigen Wert der BIOS-Auswahl in dem Zertifikat inspizieren und die Steuerung nicht an das BIOS weiterleiten, wenn die berechnete Auswahl nicht mit dem richtigen Wert übereinstimmt. Zusätzlich. oder alternativ dazu kann die vertrauenswürdige Einrichtung 24 den Boolschen Wert inspizieren und die Steuerung nicht zurück an das BIOS geben, wenn die vertrauenswürdige Einrichtung 24 nicht der erste zugegriffene Speicher war. In jedem dieser Fälle kann eine geeignete Ausnahmehandhabungsroutine aufgerufen werden.
- Optional, wie in Fig. 6 gezeigt ist, ist ein Systemverwaltungsrat (SMC = system management counsel) 60 mit der Gomputerplattform 10 über eine Verbindung 62 gekoppelt, um eine Steuerung und Unterstützung für die Computerplattform 10 zu liefern. Bei einem Ausführungsbeispiel umfaßt der SMC 60 separate, unabhängige Prozessoren (nicht gezeigt), wie z. B. standardmäßige, nicht vernetzte Personalcomputer (PC> Die Verbindung 62 kann serielle Schnittstellen (z. B. RS- 232 und USB) und/oder private LAN-Verbindungen umfassen. Der SMC 60 wird primär verwendet, um den SPK 32 während der Initialisierung der Computerplattform 10 zu authentifizieren. Zusätzlich dazu ist die Computerplattform 10 über SMC 60 konfiguriert. Bei einem Ausführungsbeispiel führt der SMC 60 eine entfernte Fehlerbeseitigung für den SPK 32 und das SPGS 33 durch.
- Bei einem Ausführungsbeispiel sind die GUI-Schnittstellen für die System-Steuerung und -Verwaltung nur auf dem SMC 60implementiert. Dieses Ausführungsbeispiel ermöglicht eine Entwicklung und ein Testen der Systemverwaltungsschnittstellen und der menschlichen Faktoren parallel zu der Entwicklung des Rests der Computerplattform 10, ohne darauf warten zu müssen, daß die gesamte Computerplattform 10 hochgefahren wird.
- Es kann mehr als ein SMC 60 mit der Computerplattform 10 über eine serielle Schnittstelle und/oder eine LAN- Verbindung 62 gekoppelt sein. Bei einem Ausführungsbeispiel sind die Funktionen des SMC 60 in das SPGS 33 in einer Computerplattform 10 integriert, die einen einzelnen Prozessor aufweist, wie z. B. eine Arbeitsstation.
- Zusätzlich dazu könnte die vertrauenswürdige Einrichtung 24 in dem SMC lokalisiert sein und als die vertrauenswürdige Einrichtung entfernt von der Computerplattform 10 agieren. Sobald die vertrauenswürdige Einrichtung 24 eine vertrauenswürdige Bootsequenz initiiert hat, wie oben beschrieben ist, ist es immer noch notwendig sicherzustellen, daß die Vertrauen skette durch die Initialisierung der Betriebsdomänen beibehalten wird. Daher, zusätzlich zur Verwendung der vertauenswürdigen Einrichtung 24, um Informationen darüber zu liefern, ob der Computerplattform vertraut werden kann, ist es nötig zu bestimmen, daß der Betriebsumgebung eines Benutzers vertraut werden kann.
- Dementsprechend, sobald die vertrauenswürdige Einrichtung 24 die Steuerung an die BIOS-Firmware 28 weitergegeben hat, ist die SPA 31 angeordnet, um eine vertrauenswürdige Betriebsumgebung zu liefern, wie nachfolgend beschrieben wird.
- Zuerst, beim Weitergeben der Steuerung an die BIOS-Firmware 28 urlädt und authentifiziert die BIOS-Firmware 28, inter alia, die E FI.
- Ein EFI-Dateisystem speichert ein Ladeprogramm einer sicheren Plattform (SP), eine Systemkonfigurationsdatenbank (SCD), ein SPK-Bild 32 und ein SPGS-Bild 33. Die EFI lädt das SP-Ladeprogramm von dem EFI-Dateisystem in den Speicher 25. Die EFI authentifiziert dieses Bild unter Verwendung des öffentlichen Schlüssels des Herstellers des Prozessors 21. Diese Authentifizierung erfordert, daß das SP- Ladeprogramm digital mit dem privaten Schlüssel des Herstellers des Prozessors 21 signiert wird.
- Die EFI überträgt dann die Steuerung zu dem SP- Ladeprogramm, das in dem Speicher 25 gespeichert ist. Das SP-Ladeprogramm ist ein EFI-basiertes, sekundäres Ladeprogramm, das spezifisch für die sichere Plattform ist. Das SP-Ladeprogramm ist für das Laden von SP-Bildern in den Speicher 25 verantwortlich.
- Bei einem Ausführungsbeispiel ist es möglich, daß die Ausführung an eine EFI-Hüllenaufforderung 8EFI-Shell Prompt) übertragen wird, um eine erstmalige Systeminstallation und andere Handhabungsdetails zu ermöglichen, was die SP- Vertrauenskette durchbricht. In diesem Fall erkennt die EFI, daß das Vertrauen verloren wurde, und fährt nicht mit dem Laden des SP-Ladeprogramms fort. Statt dessen wird die Computerplattform 10 zurückgesetzt, so daß alle Prozessoren 21 wieder mit dem Suchen nach Befehlen von der vertauenswürdigen Einrichtung 24 beginnen.
- Das SP-Ladeprogramm, das aus dem Speicher 25 läuft, lädt die SCD von dem EFI-Dateisystem in den Speicher 25. Das SP- Ladeprogramm authentifiziert dann die SCD unter Verwendung eines öffentlichen Schlüssels, der in dem SP- Ladeprogrammbild enthalten ist. Das SP-Ladeprogramm verwendet die SCD, um zu bestimmen, welche Bilder des SPK 32 und des SPGS 33 von dem EFI-Dateisystem in den Speicher geladen werden sollen. Das SP-Ladeprogramm verwendet den oben genannten öffentlichen Schlüssel zum Authentifizieren der Bilder des SPK 32 und des SPGS 33. Das SP-Ladeprogramm erzeugt eine virtuelle Abbildung für einen Eingangsbereich des SPK 32 ausschließlich mit Lese- und Ausführ- Erlaubnissen. Das SP-Ladeprogramm schaltet dann in den virtuellen Modus und zweigt zu dem Eingangspunkt des SPK 33 ab.
- Bei der Bootsequenz zum Hochfahren des SPK 32 initialisiert der SPK 32, der aus dem Speicher 25 auf dem Prozessor 21 läuft einen Privilegstatus (z. B. eine Unterbrechungsvektortabelle (NT), Steuerregister und eine bestimmte Interrupt-Konfiguration) und erzeugt andere zusätzliche Speicherabbildungen, die für den SPK 32 erforderlich sind, wie z. B. beschreibbare Bereiche für SPK-Daten. Der SPK 32 erzeugt dann erforderliche Speicherabbildungen und einen zusätzlichen Aufbau, der erforderlich ist, um das SPGS 33 zu betreiben.
- Eine sichere Plattform (SP) 34 mit gespiegeltem Dateisystem speichert zwei redundante Steuerblockbilder. Der SPK 32 liest die zwei redundanten Steuerblockbilder aus dem gespiegelten Dateisystem der SP in den SPK 32 in dem Speicher 35 als redundante Steuerblockbilder. Die zwei redundanten Steuerblockbilder enthalten Steuerungsinformationen, die an der ersten Computerplattform 10 initialisiert wurden. Die redundanten Steuerblockbilder werden verwendet, um zu testen, ob die Computerplattform 10 bereits initialisiert wurde.
- Bei einem Ausführungsbeispiel enthalten die redundanten Steuerblockbilder jeweils zumindest drei einzelne Steuerbereiche. Der erste Steuerbereich enthält ein Bild, das ebenfalls durch den öffentlichen Schlüssel des Herstellers des Prozessors 21 signiert wurde, der geschrieben wurde, als die Computerplattform 10 zum ersten Mal urgeladen wurde. Der erste Steuerbereich wird verwendet, um einen Wurzelsystemschlüssel (RSK = root system key) in dem zweiten Steuerbereich zu speichern. Der zweite Steuerbereich enthält den RSK, der unter demselben verschlüsselt ist. Der zweite Steuerbereich wird verwendet, um zu validieren, daß ein korrekter RSK bei nachfolgenden Bootvorgängen geliefert wurde. Das Verschlüsseln des RSK unter demselben ermöglicht eine Validierung des RSK, durch Vergleichen der Ergebnisse mit dem Wert, der bereits in dem zweiten Steuerbereich gespeichert ist. Der dritte Steuerbereich enthält ein Verzeichnis von Plattformsteuerungsinformationen der obersten Ebene, einschließlich Schlüssel, Pseudozufallszahlengeneratorstatus (PRNG-Status) und einen Letzte-Entropie-Pool- Schnappschuß, wobei alle verschlüsselt und durch den RSK nach Integrität geprüft wurden.
- Der SPK 32 weist üblicherweise eine minimale oder keine I/O-Fähigkeit auf. Bei einem Ausführungsbeispiel führt das SP-Ladeprogramm I/O-Zugriffe vor der Übertragung der Steuerung an den SPK 32 aus. Bei einem anderen Ausführungsbeispiel wird das SPGS 33 in einen I/O-Bereitzustand hochgefahren, vor der I/O-Operation, um von der Platte zu lesen, und die Steuerung fährt zurück zu dem SPK 32. Bei einem anderen Ausführungsbeispiel lädt das SPGS 33 den Speicher 25 und nachfolgend wird ein Ruf an den SPK 32 durchgeführt, der die obige Operation ausführt.
- Der SPK 32 bestimmt, ob die Steuerbereiche der zwei redundanten Steuerblockbilder übereinstimmen und die digitale Signatur prüft. Wenn die Steuerbereiche nicht übereinstimmen, werden die Steuerbereiche des redundanten Steuerblockbildes, dessen Integritätsprüfungen gültig sind verwendet, und die Steuerbereiche des anderen redundanten Steuerblocks, dessen Integritätsprüfungen ungültig sind, werden zurückgespeichert, um mit den verwendeten Steuerbereichen des gültigen, redundanten Steuerblockbildes übereinzustimmen. Wenn die Steuerbereiche beider redundanten Steuerblockbilder beschädigt sind, werden Protokolle verwendet, um die Steuerbereiche beider redundanten Steuerblockbilder wiederzugewinnen und zurückzuspeichern, ähnlich zu vielen Datenbanksystemen. Sobald der RSK erhalten wird, wird der Bootprozeß fortgesetzt.
- Der SPK 32 liest und entschlüsselt die Schutzschlüssel aus dem gespiegelten Dateisystem der SP.
- Die erste Domäne des SPGS 33 initialisiert die Entdeckung des I/O und führt dieselbe durch, um Zugriff auf den SMC 60 zu umfassen. Die erste Domäne des SPGS 33 lädt eine verschlüsselte SCD aus dem gespiegelten Dateisystem der SP. Die erste Domäne des SPGS 33 fordert den SPK 32 auf, die verschlüsselte SCD zu entschlüsseln. Die entschlüsselte SCD spezifiziert die Anzahl von Domänen des SPGS 33, die erzeugt werden sollen, und welche Systemressourcen zu welcher Domäne des SPGS 33 gehören. Die erste Domäne des SPGS 33 erzeugt dann jede zusätzliche Domäne des SPGS 33, die den entsprechenden Teilsatz der Systemressourcen spezifiziert, um in dem Prozessor 21 umfasst zu sein, auf dem die Domäne des SPGS 33 abgespielt wird.
- Jede Domäne des SPGS 33 liest die verschlüsselte SCD auf ähnliche Weise und erzeugt die spezifizierten Domänen. Jede durch das SPGS erzeugte Domäne umfaßt folgendes: Systemressourcen werden jeder Domäne des SPGS 33 auf einer Pro- Domäne-Basis zugeordnet. Ein Domänenanfangsbild (DII = domain initial image) wird von dem EFI-Dateisystem in den Speicher 25 als DII geladen. Das DII ist üblicherweise ein Betriebssystem-spezifisches Ladeprogramm zum Initiieren des Ladens eines Betriebssystems für eine spezifische Domäne in PL2. Wenn die SCD anzeigt, daß die gegebene Domäne des SPGS 33 eine sichere Domäne ist, dann wird der unabhängige öffentliche Schlüssel des SP-Ladeprogramms verwendet, um das DII zu authentifizieren. Somit werden die DIIs, die in sicheren Domäne des SPGS 33 laufen sollen, vorzugsweise digital mit dem privaten Schlüssel des SP-Ladeprogramms signiert. Eine Verwendung einer nicht sicheren Domäne des SPGS 33 ist es, die Entwicklung und Fehlerbeseitigung von DIIs zu ermöglichen.
- Bei der Erzeugung von jeder der spezifizierten Domänen wird eine zugeordnete, virtuelle vertrauenswürdige Einrichtung in dem SPK 32 erzeugt.
- Wenn die virtuellen vertauenswürdigen Einrichtungen 37 in dem SPK 32 ausgeführt werden, der auf der PL0-Ebene läuft, der einzigen Ebene, die privilegierte Befehle ausführt, können die virtuellen vertauenswürdigen Einrichtungen 37 effektiv von der Software isoliert werden, die in den anderen Prozessorprivilegebenen ausgeführt wird. Dementsprechend, da der SPK 32 ein vertrauenswürdiger Code ist, kann ein Benutzer vertrauen, daß die virtuellen vertauenswürdigen Einrichtungen von einer nicht-vertrauenswürdigen Software abgeschirmt sind.
- Jede virtuelle vertrauenswürdige Einrichtung 37 weist wie in Fig. 7 gezeigt ist eine zentrale Routine 70 zum Steuern der Gesamtoperation der virtuellen vertauenswürdigen Einrichtung; eine Meßfunktion 71 zum Erwerben eines Integritätsmaßes für eine zugeordnete Betriebsumgebung und zum Erhalten des Integritätsmaßes, die durch die vertrauenswürdige Einrichtung 24 erworben wurde und Messungen an der Software durchführt, die in der zugeordneten Betriebsumgebung ausgeführt werden sollen; eine kryptographische Funktion 72 zum Signieren, Verschlüsseln oder Entschlüsseln spezifizierter Daten auf. Zusätzlich dazu ist jede virtuelle vertrauenswürdige Einrichtung 37 in der Lage, das Integritätsmaß zu verifizieren, das durch die vertrauenswürdige Einrichtung 24 unter Verwendung des öffentlichen Schlüssels der vertrauenswürdigen dritten Parteien erworben wurde. Die virtuellen vertauenswürdigen Einrichtungen 37 haben Zugriff zu dem Speicher, der der PL0-Ebene zugeordnet ist. Zusätzlich dazu ist jede virtuelle vertrauenswürdige Einrichtung 37 angeordnet, und von einer anderen virtuellen vertauenswürdigen Einrichtung 37 isoliert zu sein, die einer separaten Betriebsumgebung zugeordnet ist.
- Bei der Erzeugung einer zugeordneten Betriebsumgebung in PL1 wird die zugeordnete virtuelle vertrauenswürdige Einrichtung 37 in PL0 mit einem Zertifikat erteilt, das dem Benutzer der Betriebsumgebung zugeordnet ist.
- Jedes Zertifikat der virtuellen vertauenswürdigen Einrichtungen 37 wird in einem lokalen Speicher in der PL0-Ebene gespeichert. Das Zertifikat enthält einen öffentlichen Schlüssel der jeweiligen virtuellen vertauenswürdigen Einrichtung 37 und optional einen authentifizierten Wert eines Integritätsmaßes zum Messen durch eine vertrauenswürdige dritte Partei, um eine Verifizierung des Integritätsmaßes zu ermöglichen, das durch die vertrauenswürdige Einrichtung 24 erworben wurde. Das Zertifikat wird durch die vertrauenswürdige dritte Partei unter Verwendung des privaten Schlüssels der vertrauenswürdigen dritten Partei signiert, bevor das Zertifikat in der virtuellen vertauenswürdigen Einrichtung 37 gespeichert wird, wodurch bestätigt wird, daß die vertrauenswürdige dritte Partei für die virtuelle vertrauenswürdige Einrichtung 37 bürgt. Bei diesem Ausführungsbeispiel könnten mögliche vertrauenswürdige dritte Parteien entweder die physikalische vertrauenswürdige Einrichtung 24 oder der SMC 60 sein.
- Wie nachfolgend beschrieben wird, kann ein Benutzer beim Zugreifen auf eine virtuelle vertrauenswürdige Einrichtung 37, die der jeweiligen Betriebsumgebung zugeordnet ist, das Computerplattformintegritätsmaß, das durch die vertrauenswürdige Einrichtung 24 gemessen und signiert wurde, mit dem privaten Schlüssel der vertauenswürdigen Einrichtung 24, und das Integritätsmaß, das durch die virtuelle vertrauenswürdige Einrichtung 37 gemessen und signiert wurde und den privaten Schlüssel der virtuellen vertauenswürdigen Einrichtung 37 für die jeweilige Betriebsumgebung erhalten. Dementsprechend ist der Benutzer in der Lage, alle Integritätsmaßinformationen zu erhalten, die erforderlich sind, um eine Verifizierung zu ermöglichen, daß der jeweiligen Betriebsumgebung von der virtuellen vertauenswürdigen Einrichtung 37 vertraut werden kann, ohne daß der Benutzer direkt auf die vertrauenswürdige Einrichtung 24 zugreifen muß.
- Da virtuelle vertrauenswürdige Einrichtungen bei der Erzeugung und Zerstörung von Betriebsumgebungen erzeugt und zerstört werden, ist es nötig sicherzustellen, daß ihre vorübergehende Existenz nicht die Vertrauenswürdigkeit von entweder der Computerplattform 10 oder den zugeordneten Betriebsumgebungen beeinträchtigt. Als solches, um sicherzustellen, daß ein Vertrauen beibehalten werden kann ist es wichtig, daß Geheimnisse, die der/den virtuellen vertauenswürdigen Einrichtungen 37 zugeordnet sind zu einer gegebenen Zeit nicht in mehr als einer aktiven vertauenswürdigen Einrichtung existieren. Dies erfordert, daß strikte und zuverlässige Verfahren in der Computerplattform 10 sicherstellen, daß bei der Erzeugung und Zerstörung einer virtuellen vertauenswürdigen Einrichtung 37 nur eine Kopie von relevanten Geheimnissen (z. B. für beispielhafte private Schlüssel) beibehalten wird.
- Als solches erfordert die Zerstörung einer virtuellen vertauenswürdigen Einrichtung 37 die permanente, sichere und geheime Zerstörung der Geheimnisse der virtuellen vertauenswürdigen Einrichtungen. Wenn eine virtuelle vertrauenswürdige Einrichtung 37 für eine Wiederverwendung zu einem späteren Datum gespeichert werden soll, müssen deren Geheimnisse sicher und geheim für eine spätere Verwendung bewahrt werden.
- Die Geheimnisse, die zu der virtuellen vertauenswürdigen Einrichtung 37 gehören, könnten in der tatsächlichen vertauenswürdigen Einrichtung 24 oder dem SMC 60 unter Verwendung der geschützten Speicherungsgeräte von z. B. einem vertrauenswürdigem Plattformmodul gespeichert werden. Geheimnisse von virtuellen vertauenswürdigen Einrichtungen 37 können sicher unter Verwendung des Beibehaltungsprozesses der vertrauenswürdigen Computerplattformzuordnung (TPCA - trusted computer platform association) gespeichert werden. Für Betriebsumgebungen, die trotzdem weiter existieren müssen, daß die Computerplattform 10 herunter- und wieder hochgefahren werden muß, ist es möglich, die gespeicherte, zugeordnete, virtuelle vertrauenswürdige Einrichtung 37 neu anzuordnen. Dies ermöglicht, daß dieselbe virtuelle vertrauenswürdige Einrichtung 37 für dieselbe Betriebsumgebung beibehalten wird, trotz dem temporären Herunterfahren der Betriebsumgebung.
- Das Verfahren, das erforderlich ist, um eine virtuellen vertrauenswürdige Einrichtung 37 neu anzuordnen, hängt jedoch von dem Verfahren ab, das verwendet wird, um die erste virtuelle vertrauenswürdige Einrichtung 37 abzubauen.
- Wenn eine virtuelle vertrauenswürdige Einrichtung 37 unter Verwendung des TCPA-Beibehaltungsprozesses gespeichert wurde, wie in Abschnitt 7.3 der TCPA-Spezifikation beschrieben ist, muß eine neue virtuelle vertrauenswürdige Einrichtung 37 und eine vertrauenswürdige Plattform (d. h. Betriebsumgebung) erzeugt werden (z. B. neuer Vermerkschlüssel, Paßwörter können über das Zertifikat der virtuellen vertauenswürdigen Einrichtungen geliefert werden). Der TCPA- Beibehaltungsprozeß wird verwendet, um die angemessenen Geheimnisse der virtuellen vertauenswürdigen Einrichtung an die neue virtuelle vertrauenswürdige Einrichtung 37 in der neuen Betriebsumgebung zu übertragen. Dies ist ein Zweischrittprozeß, der zuerst erfordert, daß der Eigentümer/Benutzer der neuen Betriebsumgebung prüft, daß die neue virtuelle vertrauenswürdige Einrichtung 37 und die Betriebsumgebung zumindest dieselbe Sicherheitsebene aufweisen wie die ursprüngliche virtuelle, vertrauenswürdige Einrichtung 37 und die Betriebsumgebung, derart, daß die existierenden Paßwörter die Sicherheitseigenschaft der neuen virtuellen vertauenswürdigen Einrichtung 37 und der zugeordneten Betriebsumgebung nicht überschreiten.
- Wenn die vorangehende virtuelle vertrauenswürdige Einrichtung 37 vollständig gespeichert wurde, wird eine leere virtuelle vertrauenswürdige Einrichtung 37 und eine zugeordnete Betriebsumgebung in PL0 bzw. PL1 erzeugt und die Originalgeheimnisse, die von der virtuellen vertrauenswürdigen Originaleinrichtung 37 gespeichert wurden, werden in die neue virtuelle vertrauenswürdige Einrichtung geladen. Wie oben erwähnt wurde, muß die neue Betriebsumgebung überprüft werden, daß die neue virtuelle vertrauenswürdige Einrichtung 37 und die Betriebsumgebung zumindest dieselbe Sicherheitsebene aufweisen wie die virtuelle vertrauenswürdige Originaleinrichtung 37 und die zugeordnete Betriebsumgebung, derart, daß die existierenden Paßwörter die Sicherheitseigenschaften der neuen virtuellen vertauenswürdigen Einrichtung 37 und der Betriebsumgebung nicht überschreiten. Wenn ein SMC 60 die Geheimnisse hält, ist ein bestimmter separater Sicherheitsdienst erforderlich, um die Geheimnisse vertraulich von dem SMC 60 an die Computerplattform 10 zu kommunizieren. Dies erfordert einen Schlüsselverteilungsdienst, wie Fachleuten auf dem Gebiet bekannt ist.
- Dies ermöglicht, daß mehrere Betriebsumgebungen erzeugt werden, wobei jede Betriebsumgebung ihre eigene zugeordnete virtuelle vertrauenswürdige Einrichtung 37 aufweist, derart, daß jede virtuelle vertrauenswürdige Einrichtung 37 das Integritätsmaß für die Computerplattform 10 von der vertauenswürdigen Einrichtung 24 herleitet und zusätzlich ein Integritätsmaß für die zugeordnete Betriebsumgebung mißt. Dies ermöglicht, daß eine Computerplattform 10 mehrere Benutzer aufweist, wobei jeder seine eigene jeweilige Betriebsumgebung hat, wobei jede Betriebsumgebung von der anderen isoliert ist und jede Betriebsumgebung ein Integritätsmaß sowohl für sich selbst als auch die Computerplattform 10 liefern kann. Dies ermöglicht es einem Benutzer einer Betriebsumgebung zu bestimmen, ob seiner jeweiligen Betriebsumgebung vertraut werden kann, ohne Informationen darüber zu benötigen, ob eine andere Betriebsumgebung auf der Computerplattform 10 läuft.
- Zusätzlich dazu, da jede Domäne isoliert ist und die virtuellen vertauenswürdigen Einrichtungen 37 in einer privilegierten Prozessorebene PL0 ausgeführt werden, kann eine bösartige Software, die in einer Domäne ausgeführt wird, keine Software attackieren, die in einer anderen Domäne ausgeführt wird.
- Fig. 8 stellt eine Computerplattform 10 dar, die eine vertrauenswürdige Einrichtung 24 aufweist, wobei BIOS- und SPK-Code auf dem Prozessor 21 installiert sind. Die Computerplattform 10 agiert als ein Server, der drei Betriebsumgebungen 80', 80 " und 80 " ' aufweist, die in der Privilegebene 1 ausgeführt werden, wo jeder Benutzer üblicherweise mit der Betriebsumgebung 80', 80 ", 80 " ' über eine Netzwerkverbindung kommunizieren würde. Jede der Betriebsumgebungen 80', 80 ", 80 " ' weist ihre eigene jeweilige virtuelle vertrauenswürdige Einrichtung 37', 37 ", 37 " ' auf, die in dem SPK 32 auf der Privilegebene PL0 ausgeführt wird. Jede virtuelle vertrauenswürdige Einrichtung 37', 37 ", 37 " ' weist ihr eigenes eindeutiges Zertifikat (nicht gezeigt) für ihre jeweilige Betriebsumgebung auf. Wenn ein Benutzer für jede Betriebsumgebung 80', 80 ", 80 " ' mit seiner jeweiligen Betriebsumgebung 80', 80", 80''' kommunizieren möchte, erzeugt er etwas vorübergehendes (nouce)(nicht gezeigt), wie z. B. eine zufällige Zahl, und gibt eine Anforderung an seine jeweilige virtuelle vertrauenswürdige Einrichtung 37', 37 ", 37 " ' aus. Das Vorübergehende wird verwendet, um den Benutzer vor einer Täuschung zu schützen, die durch das Wiederabspielen von alten aber echten Signaturen (genannt eine "Wiederabspielattacke") durch nicht-vertrauenswürdige Plattformen verursacht wird. Der Prozeß des Bereitstellens von etwas Vorübergehendem und des Verifizierens der Antwort ist ein Beispiel des bekannten "Aufruf-/Antwort"-Prozesses.
- Die jeweilige virtuelle vertrauenswürdige Einrichtung 37', 37 ", 3V" empfängt den Aufruf und erzeugt eine angemessene Antwort. Dies kann eine Auswahl des gemessenen Integritätsmaßes des Computerplattformintegritätsmaßes sein, das von der vertauenswürdigen Einrichtung 24 empfangen und mit dem privaten Schlüssel der vertauenswürdigen Einrichtung 24 signiert wurde, und des gemessenen Integritätsmaßes für die jeweilige Betriebsumgebung 80', 80 ", 80"', die mit dem privaten Schlüssel und dem Vorübergehenden und optional mit dessen ID-Etikett der jeweiligen virtuellen vertauenswürdigen Einrichtung 37 signiert wurde. Die jeweilige vertrauenswürdige Einrichtung 37'. 37 ", 37 " ' sendet das signierte Integritätsmaß zurück, begleitet durch das Zertifikat der jeweiligen virtuellen vertauenswürdigen Einrichtungen 37', 37 ", 37 " ' und das Zertifikat 350 der vertauenswürdigen Einrichtung 24, an den Benutzer zurück.
- Der Benutzer empfängt die Aufrufantwort und verifiziert das Zertifikat unter Verwendung des bekannten öffentlichen Schlüssels der TP(s). Der Benutzer extrahiert dann den öffentlichen Schlüssel der virtuellen vertauenswürdigen Einrichtung 37', 37 ", 37 " ' und den öffentlichen Schlüssel der vertauenswürdigen Einrichtung 24 aus dem Zertifikat und verwendet dieselben, um die signierten Integritätsmaße von der Aufrufantwort zu entschlüsseln. Dann verifiziert der Benutzer das Vorübergehende innerhalb der Aufrufantwort. Als nächstes vergleicht der Benutzer die berechneten Integritätsmaße, die er aus der Aufrufantwort extrahiert, mit den ordnungsgemäßen Plattformintegritätsmaßen, die in diesem Ausführungsbeispiel aus den Zertifikaten extrahiert werden. Wenn einer der vorangehenden Verifizierungsschritte fehlschlägt endet der gesamte Prozeß, wobei keine weitere Kommunikation stattfindet.
- Vorausgesetzt alles funktioniert, verwenden der Benutzer und die vertrauenswürdige Plattform andere Protokolle, um sichere Kommunikationen für anderen Daten einzurichten, wobei die Daten von der Plattform vorzugsweise durch die vertrauenswürdige Einrichtung 3 V, 37", 37''' signiert werden, ohne eine Kenntnis der anderen zwei Betriebsumgebungen, die auf der Computerplattform 10 installiert sind.
Claims (21)
1. Computervorrichtung zum Erzeugen einer
vertrauenswürdigen Umgebung, die eine vertrauenswürdige Einrichtung
(24, 37), die angeordnet ist, um ein erstes
Integritätsmaß zu erwerben, um eine Bestimmung darüber zu
ermöglichen, ob die Computervorrichtung auf eine
vertrauenswürdige Weise arbeitet, einen Prozessor (21),
der angeordnet ist, um die Ausführung einer ersten
Vertrauensroutine und einer zugeordneten ersten
Betriebsumgebung zu ermöglichen und eine Einrichtung zum
Einschränken des Zugriffs der ersten Betriebsumgebung
auf Ressourcen, die für die Vertrauensroutine
verfügbar sind, aufweist, wobei die Vertrauensroutine
angeordnet ist, um das erste Integritätsmaß und ein
zweites Integritätsmaß zu erwerben, um eine Bestimmung
darüber zu ermöglichen, ob die erste Betriebsumgebung
auf eine vertrauenswürdige Weise arbeitet.
2. Computervorrichtung zum Erzeugen einer
vertrauenswürdigen Umgebung, die eine vertrauenswürdige Einrichtung
(24, 37), die angeordnet ist, um ein erstes
Integritätsmaß zu erwerben, um eine Bestimmung darüber zu
ermöglichen, ob die Computervorrichtung auf eine
vertrauenswürdige Weise arbeitet, und einen Prozessor
(21), der angeordnet ist, um die Ausführung einer
ersten Vertrauensroutine und einer zugeordneten ersten
Betriebsumgebung zu ermöglichen, aufweist, wobei der
Prozessor (21) angeordnet ist, um den Zugriff der
ersten Betriebsumgebung auf Ressourcen einzuschränken,
die für die Vertrauensroutine verfügbar sind, wobei
die Vertrauensroutine angeordnet ist, um das erste
Integritätsmaß und ein zweites Integritätsmaß zu
erwerben, um eine Bestimmung darüber zu ermöglichen, ob die
erste Betriebsumgebung auf eine vertrauenswürdige
Weise arbeitet.
3. Computervorrichtung zum Erzeugen einer
vertrauenswürdigen Umgebung, die eine vertrauenswürdige Einrichtung
(24, 37), die angeordnet ist, um ein erstes
Integritätsmaß zu erwerben, um eine Bestimmung darüber zu
ermöglichen, ob die Computervorrichtung auf eine
vertrauenswürdige Weise arbeitet, und einen Prozessor
(21) aufweist, der angeordnet ist, um die Ausführung
einer ersten Vertrauensroutine in einer ersten
Privilegebene (PL1) des Prozesses (21) zu ermöglichen und
die Ausführung einer zugeordneten ersten
Betriebsumgebung in einer zweiten Privilegebene des Prozessors zu
ermöglichen, derart, daß der Zugriff auf Ressourcen,
die für den Code verfügbar sind, der in der ersten
Privilegebene ausgeführt wird, auf den Code beschränkt
ist, der in der zweiten Privilegebene (PL2) ausgeführt
wird, wobei die Vertrauensroutine angeordnet ist, um
das erste Integritätsmaß und ein zweites
Integritätsmaß zu erwerben, um eine Bestimmung darüber zu
ermöglichen, ob die erste Betriebsumgebung auf eine
vertrauenswürdige Weise arbeitet.
4. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der die vertrauenswürdige Einrichtung
(24, 37) eine fälschungsresistente Einrichtung ist.
5. Computervorrichtung gemäß Anspruch 3 oder 4, bei der
der Prozessor (21) angeordnet ist, um eine Ausführung
einer Mehrzahl von Vertrauensroutinen in der ersten
Privilegebene (PL1) zu ermöglichen und um die
Ausführung jeweiliger zugeordneter Betriebsumgebungen in der
zweiten Privilegebene (PL2) zu ermöglichen, wobei jede
Vertrauensroutine angeordnet ist, um das erste
Integritätsmaß und ein Integritätsmaß, das der jeweiligen
zugeordneten Betriebsumgebung zugeordnet ist zu
erwerben, um eine Bestimmung darüber zu ermöglichen, ob die
jeweilige Betriebsumgebung auf eine vertrauenswürdige
Weise arbeitet.
6. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der die Vertrauensroutine angeordnet ist,
um eine kryptographische Funktionalität zum
Einschränken des Zugriffs auf Daten einzubauen, die der
Vertrauensroutine zugeordnet sind.
7. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der die vertrauenswürdige Einrichtung
(24, 37) angeordnet ist, um eines oder mehrere
Geheimnisse zu speichern.
8. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der der Vertrauensroutine eines oder
mehrere Geheimnisse zugeordnet sind.
9. Computervorrichtung gemäß Anspruch 7 oder 8, bei der
zumindest ein Geheimnis ein privater asymmetrischer
Verschlüsselungsschlüssel ist.
10. Computervorrichtung gemäß Anspruch 8 oder 9, bei der
die vertrauenswürdige Einrichtung (24, 37) angeordnet
ist, um beim Herunterfahren der Computervorrichtung
Geheimnisse zu speichern, die durch eine
Vertrauensroutine verwendet werden.
11. Computervorrichtung gemäß einem der Ansprüche 3 bis
10, bei der der Code, der in der zweiten Privilegebene
(PL2) ausgeführt wird, einen eingeschränkten Zugriff
auf Daten aufweist, die einer Vertrauensroutine
zugeordnet sind, die in der ersten Privilegebene (PL1)
ausgeführt wird.
12. Computervorrichtung gemäß einem der Ansprüche 3 bis
11, bei der Daten, die der Vertrauensroutine
zugeordnet sind, vor einer Änderung durch den Code geschützt
werden, der in der zweiten Privilegebene (PL2)
ausgeführt wird.
13. Computervorrichtung gemäß einem der Ansprüche 3 bis
12, bei der Geheimnisse, die einer Vertrauensroutine
zugeordnet sind, für einen Code nicht zugreifbar sind,
der in der zweiten Privilegebene (PL2) ausgeführt
wird.
14. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der die vertrauenswürdige Einrichtung
(24, 37) für einen öffentlichen Schlüssel bürgt, der
dem Vertrauensmodul zugeordnet ist, unter Verwendung
eines privaten Schlüssels der vertauenswürdigen
Einrichtung (24, 37).
15. Computervorrichtung gemäß einem der Ansprüche 1 bis
13, bei der eine vertrauenswürdige dritte Partei für
einen öffentlichen Schlüssel bürgt, der dem
Vertrauensmodul zugeordnet ist, unter Verwendung eines
privaten Schlüssels der vertrauenswürdigen Parteien.
16. Computervorrichtung gemäß einem der vorangehenden
Ansprüche, bei der die vertrauenswürdige Einrichtung
(24, 37) angeordnet ist, um Bootsequenzbefehle zu
übertragen, um eine Initiierung des Bootens der
Computervorrichtung zu ermöglichen.
17. Computervorrichtung gemäß Anspruch 16, bei der der
Prozessor (21) angeordnet ist, um zu bewirken, daß die
Bootsequenzbefehle die ersten Befehle sind, die durch
den Prozessor (21) nach der Freigabe von dem
Zurücksetzen ausgeführt werden.
18. Verfahren zum Erzeugen einer vertrauenswürdigen
Umgebung, das das Erwerben eines ersten Integritätsmaßes,
um eine Bestimmung darüber zu ermöglichen, ob eine
Computervorrichtung auf eine vertrauenswürdige Weise
arbeitet und eine Vertrauensroutine in einer ersten
Privilegebene (PL1) eines Prozessors (21) ausführt und
eine zugeordnete erste Betriebsumgebung in einer
zweiten Privilegebene (PL2) des Prozessors (21) ausführt,
das Beschränken des Zugriffs auf Ressourcen, die für
den Code verfügbar sind, der in der ersten
Privilegebene (PL1) ausgeführt wird, für den Code, der in der
zweiten Privilegebene (PL2) ausgeführt wird, das
Erwerben des ersten Integritätsmaßes und eines zweiten
Integritätsmaßes, um eine Bestimmung darüber zu
ermöglichen, ob die erste Betriebsumgebung auf eine
vertrauenswürdige Weise arbeitet, aufweist.
19. Verfahren zum Erzeugen einer vertrauenswürdigen
Umgebung, das das Erwerben eines ersten Integritätsmaßes,
um eine Bestimmung darüber zu ermöglichen, ob eine
Computervorrichtung auf eine vertrauenswürdige Weise
arbeitet, das Ausführen einer ersten Vertrauensroutine
und einer zugeordneten ersten Betriebsumgebung und das
Einschränken des Zugriffs der ersten
Betriebsumgebungen auf Ressourcen, die für die Vertrauensroutine
verfügbar sind und das Anordnen der Vertrauensroutine, um
das erste Integritätsmaß und ein zweites
Integritätsmaß zu erwerben, um eine Bestimmung darüber zu
ermöglichen, ob die erste Betriebsumgebung auf eine
vertrauenswürdige Weise arbeitet, aufweist.
20. Verfahren zum Erzeugen einer vertrauenswürdigen
Umgebung, das das Erwerben eines ersten Integritätsmaßes,
um eine Bestimmung darüber zu ermöglichen, ob eine
Computervorrichtung auf eine vertrauenswürdige Weise
arbeitet, und eine erste Vertrauensroutine und eine
zugeordnete erste Betriebsumgebung ausführt, das
Beschränken des Zugriffs der ersten Betriebsumgebungen
auf Ressourcen, die für die Vertrauensroutine
verfügbar sind, das Erwerben des ersten Integritätsmaßes und
eines zweiten Integritätsmaßes, um eine Bestimmung
darüber zu ermöglichen, ob die erste Betriebsumgebung
auf eine vertrauenswürdige Weise arbeitet, aufweist.
21. Computersystem zum Erzeugen einer vertrauenswürdigen
Umgebung, die eine vertrauenswürdige Einrichtung, die
angeordnet ist, um ein erstes Integritätsmaß zu
erwerben, um eine Bestimmung darüber zu ermöglichen, ob die
Computervorrichtung auf eine vertrauenswürdige Weise
arbeitet, einen Prozessor, der angeordnet ist, um die
Ausführung einer ersten Vertrauensroutine und einer
zugeordneten ersten Betriebsumgebung zu ermöglichen,
und eine Einrichtung zum Einschränken des Zugriffs der
ersten Betriebsumgebung auf Ressourcen aufweist, die
für die Vertrauensroutine verfügbar sind, wobei die
Vertrauensroutine angeordnet ist, um das erste
Integritätsmaß und ein zweites Integritätsmaß zu erwerben,
um eine Bestimmung darüber zu ermöglichen, ob die
erste Betriebsumgebung auf eine vertrauenswürdige Weise
arbeitet.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB01279785 | 2001-11-22 | ||
GB0127978A GB2382419B (en) | 2001-11-22 | 2001-11-22 | Apparatus and method for creating a trusted environment |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10254621A1 true DE10254621A1 (de) | 2003-06-12 |
DE10254621B4 DE10254621B4 (de) | 2013-09-19 |
Family
ID=9926233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10254621A Expired - Fee Related DE10254621B4 (de) | 2001-11-22 | 2002-11-22 | Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung |
Country Status (3)
Country | Link |
---|---|
US (2) | US7376974B2 (de) |
DE (1) | DE10254621B4 (de) |
GB (1) | GB2382419B (de) |
Families Citing this family (155)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162035B1 (en) | 2000-05-24 | 2007-01-09 | Tracer Detection Technology Corp. | Authentication method and system |
GB2376763B (en) * | 2001-06-19 | 2004-12-15 | Hewlett Packard Co | Demonstrating integrity of a compartment of a compartmented operating system |
GB2372595A (en) * | 2001-02-23 | 2002-08-28 | Hewlett Packard Co | Method of and apparatus for ascertaining the status of a data processing environment. |
US7380130B2 (en) * | 2001-12-04 | 2008-05-27 | Microsoft Corporation | Methods and systems for authentication of components in a graphics system |
US7103914B2 (en) | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
US8171567B1 (en) | 2002-09-04 | 2012-05-01 | Tracer Detection Technology Corp. | Authentication method and system |
US20050108516A1 (en) * | 2003-04-17 | 2005-05-19 | Robert Balzer | By-pass and tampering protection for application wrappers |
US20050015430A1 (en) * | 2003-06-25 | 2005-01-20 | Rothman Michael A. | OS agnostic resource sharing across multiple computing platforms |
US20050039016A1 (en) * | 2003-08-12 | 2005-02-17 | Selim Aissi | Method for using trusted, hardware-based identity credentials in runtime package signature to secure mobile communications and high-value transaction execution |
US7366305B2 (en) * | 2003-09-30 | 2008-04-29 | Intel Corporation | Platform and method for establishing trust without revealing identity |
US20050081065A1 (en) * | 2003-10-14 | 2005-04-14 | Ernie Brickell | Method for securely delegating trusted platform module ownership |
JP4064914B2 (ja) | 2003-12-02 | 2008-03-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US7587607B2 (en) * | 2003-12-22 | 2009-09-08 | Intel Corporation | Attesting to platform configuration |
US7222062B2 (en) * | 2003-12-23 | 2007-05-22 | Intel Corporation | Method and system to support a trusted set of operational environments using emulated trusted hardware |
WO2005086802A2 (en) | 2004-03-08 | 2005-09-22 | Proxense, Llc | Linked account system using personal digital key (pdk-las) |
US7356735B2 (en) * | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
JP4144880B2 (ja) * | 2004-04-09 | 2008-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法 |
US7464406B2 (en) * | 2004-04-22 | 2008-12-09 | Lenovo (Singapore) Pte. Ltd. | System and method for user determination of secure software |
US20050251857A1 (en) * | 2004-05-03 | 2005-11-10 | International Business Machines Corporation | Method and device for verifying the security of a computing platform |
GB0411654D0 (en) * | 2004-05-25 | 2004-06-30 | Hewlett Packard Development Co | A generic trusted platform architecture |
US20050278253A1 (en) * | 2004-06-15 | 2005-12-15 | Microsoft Corporation | Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like |
US20050283601A1 (en) * | 2004-06-22 | 2005-12-22 | Sun Microsystems, Inc. | Systems and methods for securing a computer boot |
US20050289353A1 (en) * | 2004-06-24 | 2005-12-29 | Mikael Dahlke | Non-intrusive trusted user interface |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US7694121B2 (en) * | 2004-06-30 | 2010-04-06 | Microsoft Corporation | System and method for protected operating system boot using state validation |
US7568102B2 (en) * | 2004-07-15 | 2009-07-28 | Sony Corporation | System and method for authorizing the use of stored information in an operating system |
US20060015732A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation | Processing system using internal digital signatures |
US7716494B2 (en) * | 2004-07-15 | 2010-05-11 | Sony Corporation | Establishing a trusted platform in a digital processing system |
US20060075220A1 (en) * | 2004-10-01 | 2006-04-06 | Baugher Mark J | System and method to authorize a device to receive a content work based on device capabilities and content-work permissions |
US8769135B2 (en) * | 2004-11-04 | 2014-07-01 | Hewlett-Packard Development Company, L.P. | Data set integrity assurance with reduced traffic |
CN100489728C (zh) * | 2004-12-02 | 2009-05-20 | 联想(北京)有限公司 | 一种建立计算机中可信任运行环境的方法 |
AU2005319019A1 (en) * | 2004-12-20 | 2006-06-29 | Proxense, Llc | Biometric personal data key (PDK) authentication |
US7591014B2 (en) * | 2005-03-04 | 2009-09-15 | Microsoft Corporation | Program authentication on environment |
US7836299B2 (en) * | 2005-03-15 | 2010-11-16 | Microsoft Corporation | Virtualization of software configuration registers of the TPM cryptographic processor |
US7770000B2 (en) * | 2005-05-02 | 2010-08-03 | International Business Machines Corporation | Method and device for verifying the security of a computing platform |
US7613921B2 (en) | 2005-05-13 | 2009-11-03 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US8074262B2 (en) * | 2005-05-13 | 2011-12-06 | Intel Corporation | Method and apparatus for migrating virtual trusted platform modules |
US7587595B2 (en) * | 2005-05-13 | 2009-09-08 | Intel Corporation | Method and apparatus for providing software-based security coprocessors |
US7636442B2 (en) * | 2005-05-13 | 2009-12-22 | Intel Corporation | Method and apparatus for migrating software-based security coprocessors |
US7930738B1 (en) * | 2005-06-02 | 2011-04-19 | Adobe Systems Incorporated | Method and apparatus for secure execution of code |
US20060282683A1 (en) * | 2005-06-13 | 2006-12-14 | Subramanyam Chandramouli | Flash array read, erase, and program security |
US8839450B2 (en) | 2007-08-02 | 2014-09-16 | Intel Corporation | Secure vault service for software components within an execution environment |
US7603707B2 (en) * | 2005-06-30 | 2009-10-13 | Intel Corporation | Tamper-aware virtual TPM |
US7953980B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Signed manifest for run-time verification of software program identity and integrity |
US8549592B2 (en) * | 2005-07-12 | 2013-10-01 | International Business Machines Corporation | Establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform |
CN100547515C (zh) * | 2005-07-15 | 2009-10-07 | 联想(北京)有限公司 | 支持可信计算的虚拟机系统及在其上实现可信计算的方法 |
US8799431B2 (en) * | 2005-08-15 | 2014-08-05 | Toutvirtual Inc. | Virtual systems management |
US7827550B2 (en) * | 2005-08-17 | 2010-11-02 | Intel Corporation | Method and system for measuring a program using a measurement agent |
US8082468B1 (en) | 2008-12-15 | 2011-12-20 | Open Invention Networks, Llc | Method and system for providing coordinated checkpointing to a group of independent computer applications |
US8201240B2 (en) * | 2005-09-16 | 2012-06-12 | Nokia Corporation | Simple scalable and configurable secure boot for trusted mobile phones |
US8468361B2 (en) * | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
CN100428157C (zh) * | 2005-10-19 | 2008-10-22 | 联想(北京)有限公司 | 一种可进行完整性检测的计算机系统和方法 |
US20070101156A1 (en) * | 2005-10-31 | 2007-05-03 | Manuel Novoa | Methods and systems for associating an embedded security chip with a computer |
US7693838B2 (en) * | 2005-11-12 | 2010-04-06 | Intel Corporation | Method and apparatus for securely accessing data |
US8146138B2 (en) * | 2005-12-15 | 2012-03-27 | Microsoft Corporation | Access unit switching through physical mediation |
US20070143851A1 (en) | 2005-12-21 | 2007-06-21 | Fiberlink | Method and systems for controlling access to computing resources based on known security vulnerabilities |
US20070143827A1 (en) * | 2005-12-21 | 2007-06-21 | Fiberlink | Methods and systems for intelligently controlling access to computing resources |
EP1917757A2 (de) * | 2005-12-21 | 2008-05-07 | Fiberlink Communications Corporation | Verfahren und systeme für die intelligente zugangskontrolle zu computerressourcen |
US9113464B2 (en) | 2006-01-06 | 2015-08-18 | Proxense, Llc | Dynamic cell size variation via wireless link parameter adjustment |
US11206664B2 (en) | 2006-01-06 | 2021-12-21 | Proxense, Llc | Wireless network synchronization of cells and client devices on a network |
US7870399B2 (en) * | 2006-02-10 | 2011-01-11 | Arxan Defense Systems | Software trusted platform module and application security wrapper |
US7904718B2 (en) | 2006-05-05 | 2011-03-08 | Proxense, Llc | Personal digital key differentiation for secure transactions |
US8108668B2 (en) | 2006-06-26 | 2012-01-31 | Intel Corporation | Associating a multi-context trusted platform module with distributed platforms |
EP2037388A4 (de) * | 2006-07-03 | 2016-12-14 | Panasonic Ip Man Co Ltd | Zertifiziereinrichtung, verifiziereinrichtung, verifiziersystem, computerprogramm und integrierte schaltung |
GB0615015D0 (en) * | 2006-07-28 | 2006-09-06 | Hewlett Packard Development Co | Secure use of user secrets on a computing platform |
WO2008018055A2 (en) * | 2006-08-09 | 2008-02-14 | Neocleus Ltd | Extranet security |
US7966599B1 (en) * | 2006-08-29 | 2011-06-21 | Adobe Systems Incorporated | Runtime library including a virtual file system |
US8555072B2 (en) * | 2006-08-31 | 2013-10-08 | International Business Machines Corporation | Attestation of computing platforms |
US7900058B2 (en) * | 2006-08-31 | 2011-03-01 | Intel Corporation | Methods and arrangements for remote communications with a trusted platform module |
US8353031B1 (en) | 2006-09-25 | 2013-01-08 | Symantec Corporation | Virtual security appliance |
US8595487B2 (en) * | 2006-11-01 | 2013-11-26 | Vmware, Inc. | Virtualization hardware for device driver isolation |
US9269221B2 (en) | 2006-11-13 | 2016-02-23 | John J. Gobbi | Configuration of interfaces for a location detection system and application |
US9280659B2 (en) | 2006-12-29 | 2016-03-08 | Intel Corporation | Methods and apparatus for remeasuring a virtual machine monitor |
WO2008114257A2 (en) * | 2007-03-21 | 2008-09-25 | Neocleus Ltd. | Protection against impersonation attacks |
WO2008114256A2 (en) * | 2007-03-22 | 2008-09-25 | Neocleus Ltd. | Trusted local single sign-on |
EP1990750A1 (de) * | 2007-05-09 | 2008-11-12 | Nokia Siemens Networks Oy | Verfahren und Vorrichtung zur Datenverarbeitung und Kommunikationssystem mit einer derartigen Vorrichtung |
US9112681B2 (en) * | 2007-06-22 | 2015-08-18 | Fujitsu Limited | Method and apparatus for secure information transfer to support migration |
JP4907603B2 (ja) * | 2007-06-27 | 2012-04-04 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | アクセス制御システムおよびアクセス制御方法 |
US20090007256A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Using a trusted entity to drive security decisions |
US8250540B2 (en) * | 2007-07-16 | 2012-08-21 | Kaspersky Lab Zao | System and method for administration of mobile application |
US7836309B2 (en) * | 2007-07-20 | 2010-11-16 | Microsoft Corporation | Generic extensible pre-operating system cryptographic infrastructure |
US8064605B2 (en) * | 2007-09-27 | 2011-11-22 | Intel Corporation | Methods and apparatus for providing upgradeable key bindings for trusted platform modules |
US8301907B2 (en) * | 2007-09-28 | 2012-10-30 | Intel Corporation | Supporting advanced RAS features in a secured computing system |
US8249257B2 (en) | 2007-09-28 | 2012-08-21 | Intel Corporation | Virtual TPM keys rooted in a hardware TPM |
US8336029B1 (en) | 2007-11-08 | 2012-12-18 | Google Inc. | Debugger connection |
US8659427B2 (en) | 2007-11-09 | 2014-02-25 | Proxense, Llc | Proximity-sensor supporting multiple application services |
US8171528B1 (en) | 2007-12-06 | 2012-05-01 | Proxense, Llc | Hybrid device having a personal digital key and receiver-decoder circuit and methods of use |
US9251332B2 (en) | 2007-12-19 | 2016-02-02 | Proxense, Llc | Security system and method for controlling access to computing resources |
US9047468B2 (en) * | 2007-12-28 | 2015-06-02 | Intel Corporation | Migration of full-disk encrypted virtualized storage between blade servers |
US8474037B2 (en) * | 2008-01-07 | 2013-06-25 | Intel Corporation | Stateless attestation system |
WO2009102979A2 (en) | 2008-02-14 | 2009-08-20 | Proxense, Llc | Proximity-based healthcare management system with automatic access to private information |
US8117642B2 (en) * | 2008-03-21 | 2012-02-14 | Freescale Semiconductor, Inc. | Computing device with entry authentication into trusted execution environment and method therefor |
WO2009126732A2 (en) | 2008-04-08 | 2009-10-15 | Proxense, Llc | Automated service-based order processing |
US7995196B1 (en) | 2008-04-23 | 2011-08-09 | Tracer Detection Technology Corp. | Authentication method and system |
US20090307705A1 (en) * | 2008-06-05 | 2009-12-10 | Neocleus Israel Ltd | Secure multi-purpose computing client |
US9559842B2 (en) * | 2008-09-30 | 2017-01-31 | Hewlett Packard Enterprise Development Lp | Trusted key management for virtualized platforms |
US8341631B2 (en) * | 2009-04-10 | 2012-12-25 | Open Invention Network Llc | System and method for application isolation |
US8464256B1 (en) | 2009-04-10 | 2013-06-11 | Open Invention Network, Llc | System and method for hierarchical interception with isolated environments |
US8539488B1 (en) | 2009-04-10 | 2013-09-17 | Open Invention Network, Llc | System and method for application isolation with live migration |
US8880473B1 (en) | 2008-12-15 | 2014-11-04 | Open Invention Network, Llc | Method and system for providing storage checkpointing to a group of independent computer applications |
CN101782955B (zh) * | 2009-01-16 | 2012-06-20 | 鸿富锦精密工业(深圳)有限公司 | 文件保护系统 |
US8732444B2 (en) * | 2009-02-18 | 2014-05-20 | Panasonic Corporation | Information processing device and information processing method |
US9805196B2 (en) | 2009-02-27 | 2017-10-31 | Microsoft Technology Licensing, Llc | Trusted entity based anti-cheating mechanism |
US8127124B2 (en) | 2009-03-19 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Remote configuration of computing platforms |
US8401941B1 (en) | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
US10419504B1 (en) | 2009-04-10 | 2019-09-17 | Open Invention Network Llc | System and method for streaming application isolation |
US8418236B1 (en) * | 2009-04-10 | 2013-04-09 | Open Invention Network Llc | System and method for streaming application isolation |
US8555360B1 (en) | 2009-04-10 | 2013-10-08 | Open Invention Network Llc | System and method for on-line and off-line streaming application isolation |
US9058599B1 (en) | 2009-04-10 | 2015-06-16 | Open Invention Network, Llc | System and method for usage billing of hosted applications |
US8401940B1 (en) | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
US9577893B1 (en) | 2009-04-10 | 2017-02-21 | Open Invention Network Llc | System and method for cached streaming application isolation |
US11538078B1 (en) | 2009-04-10 | 2022-12-27 | International Business Machines Corporation | System and method for usage billing of hosted applications |
US8819399B1 (en) | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
US8490179B2 (en) * | 2009-10-27 | 2013-07-16 | Hewlett-Packard Development Company, L.P. | Computing platform |
US9026803B2 (en) * | 2009-11-30 | 2015-05-05 | Hewlett-Packard Development Company, L.P. | Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms |
US8776245B2 (en) * | 2009-12-23 | 2014-07-08 | Intel Corporation | Executing trusted applications with reduced trusted computing base |
US8418259B2 (en) * | 2010-01-05 | 2013-04-09 | Microsoft Corporation | TPM-based license activation and validation |
US9418205B2 (en) | 2010-03-15 | 2016-08-16 | Proxense, Llc | Proximity-based system for automatic application or data access and item tracking |
US9443078B2 (en) * | 2010-04-20 | 2016-09-13 | International Business Machines Corporation | Secure access to a virtual machine |
US9322974B1 (en) | 2010-07-15 | 2016-04-26 | Proxense, Llc. | Proximity-based system for object tracking |
GB201018836D0 (en) | 2010-11-08 | 2010-12-22 | Hewlett Packard Development Co | Data manager |
US9087196B2 (en) | 2010-12-24 | 2015-07-21 | Intel Corporation | Secure application attestation using dynamic measurement kernels |
US9317276B2 (en) * | 2011-01-19 | 2016-04-19 | International Business Machines Corporation | Updating software |
US9286449B2 (en) | 2011-01-21 | 2016-03-15 | Paypal, Inc. | System and methods for protecting users from malicious content |
US8857716B1 (en) | 2011-02-21 | 2014-10-14 | Proxense, Llc | Implementation of a proximity-based system for object tracking and automatic application initialization |
US8918907B2 (en) * | 2011-04-13 | 2014-12-23 | Phoenix Technologies Ltd. | Approaches for firmware to trust an application |
WO2013009302A1 (en) * | 2011-07-12 | 2013-01-17 | Hewlett-Packard Development Company , L.P. | Computing device including a port and a guest domain |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
US9405898B2 (en) | 2013-05-10 | 2016-08-02 | Proxense, Llc | Secure element as a digital pocket |
WO2014204363A1 (en) * | 2013-06-19 | 2014-12-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and an integrated circuit for executing a trusted application within a trusted runtime environment |
RU2538329C1 (ru) * | 2013-07-11 | 2015-01-10 | Общество с ограниченной ответственностью Фирма "Анкад" | Устройство создания доверенной среды для компьютеров информационно-вычислительных систем |
EP3074906B1 (de) * | 2013-11-26 | 2020-11-11 | Intel Corporation | Verfahren zur erweiterung einer vertrauenswürdigen kommunikationskette zu client-anwendungen |
US9519498B2 (en) * | 2013-12-24 | 2016-12-13 | Microsoft Technology Licensing, Llc | Virtual machine assurances |
US10192066B2 (en) | 2014-03-14 | 2019-01-29 | Hewlett Packard Enterprise Development Lp | Semantic restriction |
US10193892B2 (en) | 2014-03-14 | 2019-01-29 | Hewlett Packard Enterprise Development Lp | Resource restriction |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US10229272B2 (en) | 2014-10-13 | 2019-03-12 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9584317B2 (en) | 2014-10-13 | 2017-02-28 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
CN110176987B (zh) | 2016-02-02 | 2022-08-09 | 斑马智行网络(香港)有限公司 | 一种设备认证的方法、装置、设备和计算机存储介质 |
US10277407B2 (en) | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
US10242195B2 (en) | 2016-07-22 | 2019-03-26 | Hewlett Packard Enterprise Development Lp | Integrity values for beginning booting instructions |
EP3291087A1 (de) * | 2016-09-01 | 2018-03-07 | Nxp B.V. | Vorrichtung und zugehöriges verfahren zur authentifizierung von firmware |
US10482034B2 (en) * | 2016-11-29 | 2019-11-19 | Microsoft Technology Licensing, Llc | Remote attestation model for secure memory applications |
US10108800B1 (en) * | 2017-01-10 | 2018-10-23 | Gbs Laboratories, Llc | ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods |
US9992029B1 (en) * | 2017-04-05 | 2018-06-05 | Stripe, Inc. | Systems and methods for providing authentication to a plurality of devices |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
WO2019177563A1 (en) * | 2018-03-12 | 2019-09-19 | Hewlett-Packard Development Company, L.P. | Hardware security |
US10776460B2 (en) | 2018-10-15 | 2020-09-15 | KameleonSec Ltd. | Proactive security system based on code polymorphism |
US11372970B2 (en) * | 2019-03-12 | 2022-06-28 | Hewlett Packard Enterprise Development Lp | Multi-dimensional attestation |
US11841961B2 (en) * | 2020-07-02 | 2023-12-12 | International Business Machines Corporation | Management of computing secrets |
CN112434306A (zh) * | 2020-12-11 | 2021-03-02 | 中国科学院信息工程研究所 | 可信度量方法,装置,系统,电子设备及存储介质 |
CN113486353B (zh) * | 2021-06-24 | 2023-08-01 | 邦彦技术股份有限公司 | 可信度量方法、系统、设备及存储介质 |
CN113468615B (zh) * | 2021-06-24 | 2023-08-01 | 邦彦技术股份有限公司 | 可信度量方法、可信芯片、逻辑控制器及可信度量系统 |
Family Cites Families (160)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
US5038281A (en) * | 1986-09-19 | 1991-08-06 | International Business Machines Corporation | Acceleration of system interrupts between operating systems in guest-host relationship |
US4799156A (en) * | 1986-10-01 | 1989-01-17 | Strategic Processing Corporation | Interactive market management system |
EP0304033A3 (de) | 1987-08-19 | 1990-07-04 | Siemens Aktiengesellschaft | Verfahren zum Diagnostizieren einer von Computerviren befallenen Datenverarbeitungsanlage |
US5144660A (en) * | 1988-08-31 | 1992-09-01 | Rose Anthony M | Securing a computer against undesired write operations to or read operations from a mass storage device |
US4984272A (en) * | 1988-11-30 | 1991-01-08 | At&T Bell Laboratories | Secure file handling in a computer operating system |
US4926476A (en) * | 1989-02-03 | 1990-05-15 | Motorola, Inc. | Method and apparatus for secure execution of untrusted software |
US4962533A (en) * | 1989-02-17 | 1990-10-09 | Texas Instrument Incorporated | Data protection for computer systems |
US5278973A (en) * | 1989-03-27 | 1994-01-11 | Unisys Corporation | Dual operating system computer |
US5048085A (en) | 1989-10-06 | 1991-09-10 | International Business Machines Corporation | Transaction system security method and apparatus |
US5029206A (en) * | 1989-12-27 | 1991-07-02 | Motorola, Inc. | Uniform interface for cryptographic services |
US5261104A (en) | 1990-03-22 | 1993-11-09 | International Business Machines | Flexible computer initialization |
US5325529A (en) * | 1990-05-18 | 1994-06-28 | Compaq Computer Corporation | External boot information loading of a personal computer |
US5032979A (en) * | 1990-06-22 | 1991-07-16 | International Business Machines Corporation | Distributed security auditing subsystem for an operating system |
US5204961A (en) | 1990-06-25 | 1993-04-20 | Digital Equipment Corporation | Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols |
US5136711A (en) * | 1990-10-17 | 1992-08-04 | Ast Research | System for multiple access hard disk partitioning |
US5414860A (en) * | 1991-01-29 | 1995-05-09 | International Business Machines Incorporated | Power management initialization for a computer operable under a plurality of operating systems |
EP0510244A1 (de) | 1991-04-22 | 1992-10-28 | Acer Incorporated | Verfahren und Anordnung zum Schutz eines Computers gegen Computerviren |
JPH06214670A (ja) * | 1991-04-29 | 1994-08-05 | Intel Corp | コンピュータ装置およびそれを初期化する方法 |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
US5694590A (en) | 1991-09-27 | 1997-12-02 | The Mitre Corporation | Apparatus and method for the detection of security violations in multilevel secure databases |
JPH0736175B2 (ja) * | 1991-10-11 | 1995-04-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット |
US5448045A (en) * | 1992-02-26 | 1995-09-05 | Clark; Paul C. | System for protecting computers via intelligent tokens or smart cards |
JP2986299B2 (ja) * | 1992-04-15 | 1999-12-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 周辺装置接続検出システム |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5359659A (en) * | 1992-06-19 | 1994-10-25 | Doren Rosenthal | Method for securing software against corruption by computer viruses |
US5235642A (en) | 1992-07-21 | 1993-08-10 | Digital Equipment Corporation | Access control subsystem and method for distributed computer system using locally cached authentication credentials |
US5361359A (en) | 1992-08-31 | 1994-11-01 | Trusted Information Systems, Inc. | System and method for controlling the use of a computer |
US5379342A (en) * | 1993-01-07 | 1995-01-03 | International Business Machines Corp. | Method and apparatus for providing enhanced data verification in a computer system |
US5440723A (en) * | 1993-01-19 | 1995-08-08 | International Business Machines Corporation | Automatic immune system for computers and computer networks |
US5497494A (en) * | 1993-07-23 | 1996-03-05 | International Business Machines Corporation | Method for saving and restoring the state of a CPU executing code in protected mode |
US5548763A (en) * | 1993-07-26 | 1996-08-20 | International Business Machines Corporation | Desk top computer system having multi-level power management |
US5444850A (en) * | 1993-08-04 | 1995-08-22 | Trend Micro Devices Incorporated | Method and apparatus for controlling network and workstation access prior to workstation boot |
US5680452A (en) * | 1993-10-18 | 1997-10-21 | Tecsec Inc. | Distributed cryptographic object method |
US5404532A (en) * | 1993-11-30 | 1995-04-04 | International Business Machines Corporation | Persistent/impervious event forwarding discriminator |
US5504910A (en) * | 1994-02-02 | 1996-04-02 | Advanced Micro Devices, Inc. | Power management unit including software configurable state register and time-out counters for protecting against misbehaved software |
US5572590A (en) | 1994-04-12 | 1996-11-05 | International Business Machines Corporation | Discrimination of malicious changes to digital information using multiple signatures |
GB9408405D0 (en) * | 1994-04-28 | 1994-06-22 | Int Computers Ltd | High availibilty computer system |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5530758A (en) * | 1994-06-03 | 1996-06-25 | Motorola, Inc. | Operational methods for a secure node in a computer network |
US5483649A (en) * | 1994-07-01 | 1996-01-09 | Ybm Technologies, Inc. | Personal computer security system |
US5748964A (en) | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US5495569A (en) * | 1994-12-30 | 1996-02-27 | Compaq Computer Corp. | Circuit for ensuring that a local interrupt controller in a microprocessor is powered up active |
US5555373A (en) * | 1995-02-06 | 1996-09-10 | International Business Machines Corporation | Inactivity monitor for trusted personal computer system |
US7069451B1 (en) * | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
JP3262689B2 (ja) * | 1995-05-19 | 2002-03-04 | 富士通株式会社 | 遠隔操作システム |
US5619571A (en) * | 1995-06-01 | 1997-04-08 | Sandstrom; Brent B. | Method for securely storing electronic records |
US5787175A (en) * | 1995-10-23 | 1998-07-28 | Novell, Inc. | Method and apparatus for collaborative document control |
CA2187855A1 (en) | 1995-12-12 | 1997-06-13 | Albert Joseph Marcel Bissonnette | Method and device for securing computers |
WO1997025798A1 (en) * | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
US6012080A (en) * | 1996-03-27 | 2000-01-04 | Lucent Technologies Inc. | Method and apparatus for providing enhanced pay per view in a video server |
US5815665A (en) * | 1996-04-03 | 1998-09-29 | Microsoft Corporation | System and method for providing trusted brokering services over a distributed network |
KR100198382B1 (ko) * | 1996-05-07 | 1999-06-15 | 윤종용 | 멀티-부팅 기능을 갖는 컴퓨터 장치 |
US5809145A (en) * | 1996-06-28 | 1998-09-15 | Paradata Systems Inc. | System for distributing digital information |
US5903732A (en) * | 1996-07-03 | 1999-05-11 | Hewlett-Packard Company | Trusted gateway agent for web server programs |
US5867646A (en) * | 1996-07-12 | 1999-02-02 | Microsoft Corporation | Providing secure access for multiple processes having separate directories |
US5819087A (en) | 1996-07-19 | 1998-10-06 | Compaq Computer Corporation | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events |
US5841869A (en) | 1996-08-23 | 1998-11-24 | Cheyenne Property Trust | Method and apparatus for trusted processing |
US5692124A (en) | 1996-08-30 | 1997-11-25 | Itt Industries, Inc. | Support of limited write downs through trustworthy predictions in multilevel security of computer network communications |
US5889989A (en) * | 1996-09-16 | 1999-03-30 | The Research Foundation Of State University Of New York | Load sharing controller for optimizing monetary cost |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US6006332A (en) | 1996-10-21 | 1999-12-21 | Case Western Reserve University | Rights management system for digital media |
US6519623B1 (en) * | 1996-10-31 | 2003-02-11 | International Business Machines Corporation | Generic semaphore for concurrent access by multiple operating systems |
US6367012B1 (en) * | 1996-12-06 | 2002-04-02 | Microsoft Corporation | Embedding certifications in executable files for network transmission |
US6023765A (en) * | 1996-12-06 | 2000-02-08 | The United States Of America As Represented By The Secretary Of Commerce | Implementation of role-based access control in multi-level secure systems |
US6400823B1 (en) | 1996-12-13 | 2002-06-04 | Compaq Computer Corporation | Securely generating a computer system password by utilizing an external encryption algorithm |
US6292900B1 (en) * | 1996-12-18 | 2001-09-18 | Sun Microsystems, Inc. | Multilevel security attribute passing methods, apparatuses, and computer program products in a stream |
US5845068A (en) | 1996-12-18 | 1998-12-01 | Sun Microsystems, Inc. | Multilevel security port methods, apparatuses, and computer program products |
GB9626241D0 (en) | 1996-12-18 | 1997-02-05 | Ncr Int Inc | Secure data processing method and system |
DE69734968T2 (de) * | 1996-12-20 | 2006-07-27 | International Business Machines Corp. | Vermittlungssystem mit verteilten Elementen zur Verbindung mit Leitungsanpassern und mit Mehrfachübertragungsmöglichkeit |
US6009518A (en) * | 1997-01-15 | 1999-12-28 | Shiakallis; Peter Paul | Computer system for providing improved security for stored information |
US5922074A (en) * | 1997-02-28 | 1999-07-13 | Xcert Software, Inc. | Method of and apparatus for providing secure distributed directory services and public key infrastructure |
US5887163A (en) * | 1997-04-04 | 1999-03-23 | Compaq Computer Corporation | Method and apparatus for providing dual booting capabilities to a computer system |
US5987608A (en) | 1997-05-13 | 1999-11-16 | Netscape Communications Corporation | Java security mechanism |
US6275848B1 (en) * | 1997-05-21 | 2001-08-14 | International Business Machines Corp. | Method and apparatus for automated referencing of electronic information |
US6513156B2 (en) * | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
US6272631B1 (en) * | 1997-06-30 | 2001-08-07 | Microsoft Corporation | Protected storage of core data secrets |
EP0893751A1 (de) | 1997-07-18 | 1999-01-27 | Irdeto B.V. | Integrierte Schaltung und Verfahren zur sicheren Datenverarbeitung mittels dieser integrierten Schaltung |
DE69724946T2 (de) | 1997-07-31 | 2004-08-12 | Siemens Ag | Programmvermietungssystem und Verfahren zur Vermietung von Programmen |
US6304970B1 (en) | 1997-09-02 | 2001-10-16 | International Business Mcahines Corporation | Hardware access control locking |
US5991414A (en) * | 1997-09-12 | 1999-11-23 | International Business Machines Corporation | Method and apparatus for the secure distributed storage and retrieval of information |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6081830A (en) * | 1997-10-09 | 2000-06-27 | Gateway 2000, Inc. | Automatic linking to program-specific computer chat rooms |
US6081894A (en) * | 1997-10-22 | 2000-06-27 | Rvt Technologies, Inc. | Method and apparatus for isolating an encrypted computer system upon detection of viruses and similar data |
EP0926605A1 (de) | 1997-11-19 | 1999-06-30 | Hewlett-Packard Company | Browsersystem |
JP3427933B2 (ja) | 1997-11-28 | 2003-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | クライアント・サーバ・システムにおける長期トランザクションの処理 |
US6078948A (en) * | 1998-02-03 | 2000-06-20 | Syracuse University | Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions |
US5987605A (en) | 1998-02-28 | 1999-11-16 | Hewlett-Packard Co. | Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device |
US6360282B1 (en) * | 1998-03-25 | 2002-03-19 | Network Appliance, Inc. | Protected control of devices by user applications in multiprogramming environments |
US6446206B1 (en) * | 1998-04-01 | 2002-09-03 | Microsoft Corporation | Method and system for access control of a message queue |
US6175917B1 (en) * | 1998-04-23 | 2001-01-16 | Vpnet Technologies, Inc. | Method and apparatus for swapping a computer operating system |
US6067559A (en) * | 1998-04-23 | 2000-05-23 | Microsoft Corporation | Server architecture for segregation of dynamic content generation applications into separate process spaces |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6100738A (en) * | 1998-12-22 | 2000-08-08 | Philips Electronics North America Corporation | High-speed current switch with complementary stages |
US6289462B1 (en) * | 1998-09-28 | 2001-09-11 | Argus Systems Group, Inc. | Trusted compartmentalized computer operating system |
US6308264B1 (en) * | 1998-09-30 | 2001-10-23 | Phoenix Technologies Ltd. | Dual use master boot record |
US6591229B1 (en) | 1998-10-09 | 2003-07-08 | Schlumberger Industries, Sa | Metrology device with programmable smart card |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) * | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6393556B1 (en) * | 1998-10-30 | 2002-05-21 | Intel Corporation | Apparatus and method to change processor privilege without pipeline flush |
US6138239A (en) * | 1998-11-13 | 2000-10-24 | N★Able Technologies, Inc. | Method and system for authenticating and utilizing secure resources in a computer system |
US6530024B1 (en) * | 1998-11-20 | 2003-03-04 | Centrax Corporation | Adaptive feedback security system and method |
US6330669B1 (en) | 1998-11-30 | 2001-12-11 | Micron Technology, Inc. | OS multi boot integrator |
US6263431B1 (en) * | 1998-12-31 | 2001-07-17 | Intle Corporation | Operating system bootstrap security mechanism |
US6385721B1 (en) * | 1999-01-22 | 2002-05-07 | Hewlett-Packard Company | Computer with bootable hibernation partition |
EP1030237A1 (de) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Vertrautes Hardware-Gerät in einem Rechner |
JP4812168B2 (ja) * | 1999-02-15 | 2011-11-09 | ヒューレット・パッカード・カンパニー | 信用コンピューティング・プラットフォーム |
US20030191957A1 (en) * | 1999-02-19 | 2003-10-09 | Ari Hypponen | Distributed computer virus detection and scanning |
US20020012432A1 (en) * | 1999-03-27 | 2002-01-31 | Microsoft Corporation | Secure video card in computing device having digital rights management (DRM) system |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US7716109B1 (en) | 1999-04-29 | 2010-05-11 | Citibank, N.A. | System and method for web trading |
EP1050803B1 (de) * | 1999-05-03 | 2007-01-17 | STMicroelectronics S.A. | Geschützte Ausführung von Rechnerbefehlen |
US6446203B1 (en) | 1999-05-24 | 2002-09-03 | International Business Machines Corporation | Method and system for selecting from multiple boot code images to be loaded in a data processing system |
US6618769B1 (en) * | 1999-05-27 | 2003-09-09 | Sun Microsystems, Inc. | Module-by-module verification |
EP1056014A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System und Verfahren zur Versorgung einer vertrauenswürdigen Benutzerschnittstelle |
EP1055990A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | Registrierung von Ereignissen in einer Computerplattform |
EP1056010A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | Datenintegritätsüberwachung in einer vertrauten Rechnereinheit |
US6609248B1 (en) * | 1999-06-30 | 2003-08-19 | Microsoft Corporation | Cross module representation of heterogeneous programs |
US6948069B1 (en) * | 1999-07-02 | 2005-09-20 | Time Certain, Llc | Method and system for determining and maintaining trust in digital image files with certifiable time |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
US6892307B1 (en) * | 1999-08-05 | 2005-05-10 | Sun Microsystems, Inc. | Single sign-on framework with trust-level mapping to authentication requirements |
EP1076279A1 (de) | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computerplattformen und deren Betriebsverfahren |
US6211583B1 (en) * | 1999-09-13 | 2001-04-03 | Motorola, Inc. | High speed current switch |
EP1085396A1 (de) * | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Betrieb von gesicherten Zustand in einer Computerplattform |
US6393412B1 (en) * | 1999-09-23 | 2002-05-21 | Peter Deep | Method for allowing users to purchase professional services in a private chat room through a service brokerage via the internet |
US6487601B1 (en) | 1999-09-30 | 2002-11-26 | International Business Machines Corporation | Dynamic mac allocation and configuration |
US6359374B1 (en) * | 1999-11-23 | 2002-03-19 | Mcnc | Miniature electrical relays using a piezoelectric thin film as an actuating element |
US7213005B2 (en) | 1999-12-09 | 2007-05-01 | International Business Machines Corporation | Digital content distribution using web broadcasting services |
US6757824B1 (en) * | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
US6701440B1 (en) * | 2000-01-06 | 2004-03-02 | Networks Associates Technology, Inc. | Method and system for protecting a computer using a remote e-mail scanning device |
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US6953977B2 (en) * | 2000-02-08 | 2005-10-11 | Boston Microsystems, Inc. | Micromechanical piezoelectric device |
US6735666B1 (en) * | 2000-02-22 | 2004-05-11 | Wind River Systems, Inc. | Method of providing direct user task access to operating system data structures |
WO2001065366A1 (en) * | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
US7013481B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US20040073617A1 (en) * | 2000-06-19 | 2004-04-15 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail |
US7669238B2 (en) * | 2000-06-21 | 2010-02-23 | Microsoft Corporation | Evidence-based application security |
US6681304B1 (en) * | 2000-06-30 | 2004-01-20 | Intel Corporation | Method and device for providing hidden storage in non-volatile memory |
GB0020441D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Performance of a service on a computing platform |
US6931545B1 (en) * | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
US6587008B2 (en) * | 2000-09-22 | 2003-07-01 | Kyocera Corporation | Piezoelectric oscillator and a method for manufacturing the same |
US6757830B1 (en) * | 2000-10-03 | 2004-06-29 | Networks Associates Technology, Inc. | Detecting unwanted properties in received email messages |
GB2376763B (en) * | 2001-06-19 | 2004-12-15 | Hewlett Packard Co | Demonstrating integrity of a compartment of a compartmented operating system |
GB0102515D0 (en) * | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Network adapter management |
GB2372595A (en) * | 2001-02-23 | 2002-08-28 | Hewlett Packard Co | Method of and apparatus for ascertaining the status of a data processing environment. |
US7076804B2 (en) * | 2001-05-11 | 2006-07-11 | International Business Machines Corporation | Automated program resource identification and association |
US20020184520A1 (en) * | 2001-05-30 | 2002-12-05 | Bush William R. | Method and apparatus for a secure virtual machine |
GB2376765B (en) * | 2001-06-19 | 2004-12-29 | Hewlett Packard Co | Multiple trusted computing environments with verifiable environment identities |
GB2376764B (en) * | 2001-06-19 | 2004-12-29 | Hewlett Packard Co | Multiple trusted computing environments |
US7057251B2 (en) * | 2001-07-20 | 2006-06-06 | Reflectivity, Inc | MEMS device made of transition metal-dielectric oxide materials |
WO2003029922A2 (en) | 2001-10-01 | 2003-04-10 | Kline & Walker, Llc | Pfn/trac system faa upgrades for accountable remote and robotics control |
US20030084436A1 (en) * | 2001-10-30 | 2003-05-01 | Joubert Berger | System and method for installing applications in a trusted environment |
AU2003205066A1 (en) * | 2002-03-25 | 2003-10-13 | Guardian Industries Corp. | Anti-reflective hydrophobic coatings and methods |
US7098577B2 (en) * | 2002-10-21 | 2006-08-29 | Hrl Laboratories, Llc | Piezoelectric switch for tunable electronic components |
JP4371695B2 (ja) * | 2003-05-02 | 2009-11-25 | キヤノン株式会社 | 現像剤搬送装置 |
JP2007515306A (ja) * | 2003-12-22 | 2007-06-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子装置 |
US20060080215A1 (en) * | 2004-04-01 | 2006-04-13 | Wave Rules, Llc. | Method and system for electronic trading including transactional history |
KR20070081321A (ko) * | 2006-02-10 | 2007-08-16 | 삼성전자주식회사 | 모놀리식 rf 회로 및 이의 제조 방법 |
-
2001
- 2001-11-22 GB GB0127978A patent/GB2382419B/en not_active Expired - Fee Related
-
2002
- 2002-11-21 US US10/303,690 patent/US7376974B2/en active Active
- 2002-11-22 DE DE10254621A patent/DE10254621B4/de not_active Expired - Fee Related
-
2005
- 2005-03-25 US US11/090,964 patent/US7467370B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2382419B (en) | 2005-12-14 |
GB0127978D0 (en) | 2002-01-16 |
US7376974B2 (en) | 2008-05-20 |
DE10254621B4 (de) | 2013-09-19 |
US20030226031A1 (en) | 2003-12-04 |
GB2382419A (en) | 2003-05-28 |
US20050223221A1 (en) | 2005-10-06 |
US7467370B2 (en) | 2008-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10254621B4 (de) | Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung | |
DE60007724T2 (de) | Chipkarten-benutzerschnittstelle für eine vertraute computerplattform | |
DE10392470B4 (de) | System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung | |
DE69733123T2 (de) | Verfahren und vorrichtung zur verhinderung eines unbefugten schreibzugriffes zu einem geschützten nichtflüchtigen speicher | |
DE69837303T2 (de) | Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme | |
DE60123969T2 (de) | Rechnersystem in dem ein gesicherter zustand wiederherstellbar ist | |
DE102008011925B4 (de) | Sicheres Initialisieren von Computersystemen | |
DE69725833T2 (de) | Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz | |
DE69731714T2 (de) | Dynamische Dienstklassen für eine internationale kryptographische Struktur | |
DE102008006759B4 (de) | Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit | |
DE69921454T2 (de) | Prüfung von sofwarenagenten und aktivitäten von agenten | |
DE69724946T2 (de) | Programmvermietungssystem und Verfahren zur Vermietung von Programmen | |
DE10393456B4 (de) | Verkapselung einer TCPA-vertrauenswürdigen Plattformmodulfunktionalität innerhalb eines Server-Management-Coprozessor-Subsystems | |
DE102005040073B4 (de) | Computersicherheitssystem | |
DE112005003340B4 (de) | Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten | |
DE60314782T2 (de) | Vorrichtung zum Generieren eines verschlüsselten Programms | |
DE102020122712A1 (de) | Integritätsmanifest-zertifikat | |
DE102008021567A1 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
DE102018123710A1 (de) | Kryptografische Speicherinhaberschaftstabelle für eine sichere öffentliche Cloud | |
DE112019005701T5 (de) | Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen | |
DE102011082184A1 (de) | Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher | |
DE102007030622A1 (de) | Verfahren und Anwendung zum Verknüpfen zwischen Systemen auf der Grundlage von Hardware-Sicherheits-Einheiten | |
DE102018126136A1 (de) | Technologien zur biometrischen Authentifizierung vor dem Booten | |
DE112020003881T5 (de) | System und verfahren zur durchführung von trusted computing mit fernbescheinigung und informationsisolierung auf heterogenen prozessoren über eine offene verbindung | |
DE102016210788B4 (de) | Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |
Effective date: 20131220 |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009445000 Ipc: G06F0021570000 |