DE10254621B4 - Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung - Google Patents

Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung Download PDF

Info

Publication number
DE10254621B4
DE10254621B4 DE10254621A DE10254621A DE10254621B4 DE 10254621 B4 DE10254621 B4 DE 10254621B4 DE 10254621 A DE10254621 A DE 10254621A DE 10254621 A DE10254621 A DE 10254621A DE 10254621 B4 DE10254621 B4 DE 10254621B4
Authority
DE
Germany
Prior art keywords
trusted
operating
virtual
processor
virtual trusted
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.)
Expired - Fee Related
Application number
DE10254621A
Other languages
English (en)
Other versions
DE10254621A1 (de
Inventor
Graeme John Proudler
Boris Balacheff
John S. Worley
Chris D. Hyser
William S. Worley jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10254621A1 publication Critical patent/DE10254621A1/de
Application granted granted Critical
Publication of DE10254621B4 publication Critical patent/DE10254621B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2153Using hardware token as a secondary aspect

Abstract

Computervorrichtung zum Erzeugen einer vertrauenswürdigen Umgebung, mit folgenden Merkmalen: einer physischen, vertrauenswürdigen Einrichtung (24), 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, einem Prozessor (21) und einem Programmcode, der auf dem Prozessor ausführbar ist, um mehrere Betriebsumgebungen (80', 80'', 80''') einzurichten, von denen jede ihre eigene jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') aufweist, und einer Einrichtung zum Sicherstellen, dass der Zugriff der Betriebsumgebungen (80', 80'', 80''') auf die Ressourcen eingeschränkt ist, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') verfügbar sind, wobei jede virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') angeordnet ist, um sowohl das erste Integritätsmaß als auch ein zweites Integritätsmaß zu erwerben, wobei das zweite Integritätsmaß eine Bestimmung darüber ermöglicht, ob die Betriebsumgebung, die dieser virtuellen vertrauenswürdigen Einrichtung (37', 37'', 37''') zugeordnet ist, auf eine vertrauenswürdige Weise arbeitet.

Description

  • Die vorliegende Erfindung bezieht sich auf eine Computervorrichtung, ein Verfahren und ein Computersystem 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.
  • Die WO01/27722A1 bezieht sich beispielsweise auf eine Operation eines vertrauenswürdigen Zustands in einer Computerplattform. Eine Computerentität umfasst eine vertrauenswürdige Überwachungskomponente mit einer ersten Verarbeitungseinrichtung und einer ersten Speichereinrichtung, wobei die vertrauenswürdige Überwachungskomponente eine eigenständige, autonome Datenverarbeitungseinheit aufweist, und eine Computerplattform mit einer Hauptverarbeitungseinrichtung und einem Hauptspeicherbereich, zusammen mit einer Mehrzahl von zugeordneten physikalischen und logischen Ressourcen, wie zum Beispiel peripheren Geräten einschließlich Druckern, Modems, Anwendungsprogrammen, Betriebssystemen und dergleichen. Die Computerplattform ist in der Lage, in eine Mehrzahl von unterschiedlichen Betriebszuständen einzutreten, wobei jeder Betriebszustand eine unterschiedliche Sicherheits- und Vertrauenswürdigkeitsebene aufweist. Ausgewählte Zustände weisen vertrauenswürdige Zustände auf, bei denen ein Benutzer sensitive vertrauliche Informationen mit einem hohen Maß an Sicherheit eingeben kann, dass die Computerplattform nicht durch äußere Einflüsse, wie zum Beispiel Viren, Hacker oder feindliche Attacken in Mitleidenschaft gezogen worden ist. Um in einen vertrauenswürdigen Zustand einzutreten, werden Bezugnahmen automatisch auf die vertrauenswürdige Komponente gemacht, wobei zum Verlassen eines vertrauenswürdigen Zustands eine Referenz zu der vertrauenswürdigen Komponente hergestellt werden muss. Beim Verlassen des vertrauenswürdigen Zustands werden alle Referenzen zu dem vertrauenswürdigen Zustand aus der Computerplattform gelöscht. Beim Eintreten in den vertrauenswürdigen Zustand wird in den Zustand auf eine reproduzierbare und bekannte Art und Weise mit einer reproduzierbaren bekannten Konfiguration, die durch die vertrauenswürdige Komponente bestätigt wird, eingetreten.
  • Die US 6,185,678 B1 bezieht sich auf eine Architektur zum Initialisieren eines Computersystems. Diese Architektur soll die Sicherheit des Boot-Prozesses erhöhen, indem die Integrität eines Bootstrap-Codes (Bootstrap = Vorladen) sichergestellt wird. Dies soll erreicht werden, indem eine Kette von Integritätsüberprüfungen aufgebaut wird, beginnend beim Einschalten und solange fortgesetzt, bis der abschließende Transfer der Steuerung von den Bottstrap-Komponenten zu dem Betriebssystem selbst stattgefunden hat. Die Integritätsüberprüfungen vergleichen einen berechneten kryptographischen Hash-Wert mit einer gespeicherten digitalen Signatur, die jeder Komponente zugeordnet ist. Dies wird mittels Modifikationen und Hinzufügungen zu dem BIOS erreicht. Die Architektur umfasst ferner einen Wiederherstellungsmechanismus zum Reparieren von Integritätsfehlern, wodurch ein Schutz gegenüber einigen Klassen von Dienstverweigerungen (Ablehnungen) und Modifikationen an Komponenten erreicht werden soll. Bei dem Bootprozess wird entweder der Betriebssystemkern gestartet oder es wird in einen Wiederherstellungsprozess eingetreten, um jeglichen erfassten Integritätsfehler zu reparieren. Sobald die Reparatur abgeschlossen ist, wird das System erneut gestartet, um sicherzustellen, dass das System bootet. Dieser gesamte Prozess findet ohne einen Benutzereingriff statt.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Computervorrichtung, ein Verfahren und ein Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung zu schaffen.
  • Diese Aufgabe wird durch eine Computervorrichtung gemäß Anspruch 1, ein Verfahren gemäß Anspruch 17 und ein Computersystem 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 vertrauenswü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 di 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:
  • 1 ein System, das in der Lage ist, Ausführungsbeispiele der vorliegenden Erfindung zu implementieren;
  • 2 eine Hauptplatine, die eine vertrauenswürdige Einrichtung umfaßt;
  • 3 Privilegebenen eines Prozessors;
  • 4 die vertrauenswürdige Einrichtung detaillierter;
  • 5 die Schritte, die beim Erwerben eines Integritätsmaßes der Rechenvorrichtung umfaßt sind;
  • 6 ein System, das in der Lage ist, Ausführungsbeispiele der vorliegenden Erfindung zu implementieren;
  • 7 eine virtuelle vertrauenswürdige Einrichtung;
  • 8 ein Ausführungsbeispiel der vorliegenden Erfindung.
  • Das vorliegende Ausführungsbeispiel liefert die Einlagerung einer physischen, vertrauenswürdigen Einrichtung und einer Softwarevertrauensroutine (d. h. einer virtuellen, vertrauenswürdigen Einrichtung) in eine Rechenplattform. Die Funktion der tatsächlichen vertrauenswü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 vertrauenswürdigen Einrichtung und der virtuellen vertrauenswü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 vertrauenswürdigen Einrichtung und der virtuellen vertrauenswürdigen Einrichtung. (Optional lehnen die vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 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 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 vertrauenswürdigen Einrichtung 24, einem Datenbus 26 und jeweiligen Steuerleitungen 27 und Leitungen 27-1, 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 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 Betriebssystembild/ern 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 vertrauenswürdigen Einrichtungen 37 innerhalb des SPK 32 zu ermöglichen. Die eine oder mehreren virtuellen vertrauenswü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 vertrauenswürdigen Einrichtung, innerhalb des SPK-Codes eingelagert zu sein, der Code kann anderswo gehäust sein, z. B. in der vertrauenswürdigen Einrichtung 24.
  • Um sicherzustellen, daß der virtuellen vertrauenswü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 Feinkornbasis 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 portiert (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 vertrauenswü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 4 gezeigt ist, folgende Merkmale auf: eine Steuerung 40, die programmiert ist, um die Gesamtoperation der vertrauenswürdigen Einrichtung 24 zu steuern und mit den anderen Funktionen auf der vertrauenswü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 vertrauenswürdigen Einrichtung 24 mit dem Datenbus 26, den Steuerungsleitungen 27 bzw. den Adreßleitungen 27-1 der Hauptplatine 20 aufweist. Jeder der Blöcke in der vertrauenswürdigen Einrichtung 24 hat Zugriff (üblicherweise über die Steuerung 40) zu den geeigneten flüchtigen Speicherbereichen 4 und/oder nicht-flüchtigen Speicherbereichen 3 der vertrauenswü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 vertrauenswürdigen Einrichtung 24 gespeichert ist, ist ein Zertifikat 350. Das Zertifikat 350 enthält zumindest einen öffentlichen Schlüssel 351 der vertrauenswü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 vertrauenswü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 3 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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswürdigen Einrichtung 24 initialisiert. Dies wird vorzugsweise durch eine sichere Kommunikation mit der vertrauenswürdigen Einrichtung 24 durchgeführt, nachdem dieselbe in der Hauptplatine 20 installiert wurde. Das Verfahren des Schreibens des Zertifikats zu der vertrauenswü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 vertrauenswü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 vertrauenswü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 360a360n 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 41 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 5 beschrieben.
  • Bei Schritt 500, 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 27-1), um zu bestimmen, ob die vertrauenswürdige Einrichtung 24 der erste Speicher ist, auf den zugegriffen wurde. Der Prozessor 21 wird zu der vertrauenswürdigen Einrichtung 24 gerichtet, die als ein Speicher agiert. Bei Schritt 505, wenn die vertrauenswürdige Einrichtung 24 der erste zugegriffene Speicher ist, schreibt die Meßfunktion 41 bei Schritt 510 einen Boolschen Wert in den flüchtigen Speicher 4, der anzeigt, daß die vertrauenswürdige Einrichtung 24 der erste zugegriffene Speicher war. Anderweitig schreibt die Meßfunktion bei Schritt 515 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 520, wenn (oder falls) durch den Hauptprozessor 21 auf die vertrauenswürdige Einrichtung 24 als ein Speicher zugegriffen wird, liest der Hauptprozessor 21 die gespeicherten, systemeigenen Hash-Befehle 354 aus der Meßfunktion 41 bei Schritt 525. Die Hash-Befehle 354 werden zum Verarbeiten durch den Hauptprozessor 21 über den Datenbus 26 weitergeleitet. Bei Schritt 530 führt der Hauptprozessor 21 die Hash-Befehle 354 aus und verwendet dieselben bei Schritt 535, 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 540 schreibt der Hauptprozessor 21 die berechnete Auswahl 361 in die geeignete, flüchtige Speicherposition 4 in der vertrauenswü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 3 in der vertrauenswürdigen Einrichtung 24 gespeichert ist. Die Meßfunktion 41 ruft dann bei Schritt 545 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 Coprozessoren, auf der Plattform verifiziert werden, durch Ausführen fester Challenge/Response-Interaktionen (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 vertrauenswü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 6 gezeigt ist, ist ein Systemverwaltungsrat (SMC = system management counsel) 60 mit der Computerplattform 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 60 implementiert. 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 Vertrauenskette durch die Initialisierung der Betriebsdomänen beibehalten wird. Daher, zusätzlich zur Verwendung der vertrauenswü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 EFI.
  • 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 (EFI-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 vertrauenswü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 32 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 25 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 vertrauenswü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 vertrauenswü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 vertrauenswürdigen Einrichtungen von einer nicht-vertrauenswürdigen Software abgeschirmt sind.
  • Jede virtuelle vertrauenswürdige Einrichtung 37 weist wie in 7 gezeigt ist eine zentrale Routine 70 zum Steuern der Gesamtoperation der virtuellen vertrauenswü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 vertrauenswü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 vertrauenswü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 versehen, das dem Benutzer der Betriebsumgebung zugeordnet ist.
  • Jedes Zertifikat der virtuellen vertrauenswürdigen Einrichtungen 37 wird in einem lokalen Speicher in der PL0-Ebene gespeichert. Das Zertifikat enthält einen öffentlichen Schlüssel der jeweiligen virtuellen vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswürdigen Einrichtung/en 37 zugeordnet sind zu einer gegebenen Zeit nicht in mehr als einer aktiven vertrauenswü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 vertrauenswü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 vertrauenswürdigen Einrichtung 37 die permanente, sichere und geheime Zerstörung der Geheimnisse der virtuellen vertrauenswü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 vertrauenswürdigen Einrichtung 37 gehören, könnten in der tatsächlichen vertrauenswü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 vertrauenswürdigen Einrichtungen 37 können sicher unter Verwendung des Beibehaltungsprozesses der vertrauenswürdigen Computerplattformzuordnung (TCPA = 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 vertrauenswürdigen Einrichtungen geliefert werden). Der TCPA-Beibehaltungsprozeß wird verwendet, um die angemessenen Geheimnisse der virtuellen vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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 vertrauenswü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.
  • 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 Challenge/Response-Prozesses („Aufruf-/Antwort”-Prozesses).
  • Die jeweilige virtuelle vertrauenswürdige Einrichtung 37', 37'', 37''' 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 vertrauenswürdigen Einrichtung 24 empfangen und mit dem privaten Schlüssel der vertrauenswü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 vertrauenswü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 vertrauenswürdigen Einrichtungen 37', 37'', 37''' und das Zertifikat 350 der vertrauenswürdigen Einrichtung 24, an den Benutzer zurück.
  • Der Benutzer empfängt die Challenge-Response (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 vertrauenswürdigen Einrichtung 37', 37'', 37''' und den öffentlichen Schlüssel der vertrauenswü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 37', 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, mit folgenden Merkmalen: einer physischen, vertrauenswürdigen Einrichtung (24), 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, einem Prozessor (21) und einem Programmcode, der auf dem Prozessor ausführbar ist, um mehrere Betriebsumgebungen (80', 80'', 80''') einzurichten, von denen jede ihre eigene jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') aufweist, und einer Einrichtung zum Sicherstellen, dass der Zugriff der Betriebsumgebungen (80', 80'', 80''') auf die Ressourcen eingeschränkt ist, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') verfügbar sind, wobei jede virtuelle vertrauenswürdige Einrichtung (37', 37'', 37''') angeordnet ist, um sowohl das erste Integritätsmaß als auch ein zweites Integritätsmaß zu erwerben, wobei das zweite Integritätsmaß eine Bestimmung darüber ermöglicht, ob die Betriebsumgebung, die dieser virtuellen vertrauenswürdigen Einrichtung (37', 37'', 37''') zugeordnet ist, auf eine vertrauenswürdige Weise arbeitet.
  2. Computervorrichtung gemäß Anspruch 1, wobei der Prozessor (21) die Einrichtung zum Sicherstellen, dass ein Zugriff der Betriebsumgebungen auf Ressourcen, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung verfügbar sind, eingeschränkt ist, aufweist und angeordnet ist, um die Ausführung der virtuellen vertrauenswürdigen Einrichtungen in einer ersten Privilegebene (PL1) des Prozessors (21) zu ermöglichen und die Ausführung der jeweilig zugeordneten Betriebsumgebung in einer zweiten Privilegebene des Prozessors zu ermöglichen, derart, daß für einen Code, der in der zweiten Privilegebene (PL2) ausgeführt wird, der Zugriff auf die Ressourcen beschränkt ist, die für einen Code verfügbar sind, der in der ersten Privilegebene ausgeführt wird.
  3. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der die physische, vertrauenswürdige Einrichtung (24) eine fälschungsresistente Einrichtung ist.
  4. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der der Prozessor (21) angeordnet ist, um eine Ausführung einer Mehrzahl von virtuellen vertrauenswürdigen Einrichtungen 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 virtuelle vertrauenswürdige Einrichtung 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.
  5. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der die virtuellen vertrauenswürdigen Einrichtungen angeordnet sind, um eine kryptographische Funktionalität zum Sicherstellen, dass der Zugriff auf Daten, die den virtuellen vertrauenswürdigen Einrichtungen zugeordnet sind, eingeschränkt ist, aufzunehmen.
  6. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der die physische, vertrauenswürdige Einrichtung (24) angeordnet ist, um eines oder mehrere Geheimnisse zu speichern.
  7. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der den virtuellen vertrauenswürdigen Einrichtungen eines oder mehrere Geheimnisse zugeordnet sind.
  8. Computervorrichtung gemäß Anspruch 6 oder 7, bei der zumindest ein Geheimnis ein privater asymmetrischer Verschlüsselungsschlüssel ist.
  9. Computervorrichtung gemäß Anspruch 7 oder 8, bei der die physische, vertrauenswürdige Einrichtung (24) angeordnet ist, um beim Herunterfahren der Computervorrichtung Geheimnisse zu speichern, die durch eine der virtuellen vertrauenswürdigen Einrichtungen verwendet werden.
  10. Computervorrichtung gemäß einem der Ansprüche 2 bis 9, bei der der Code, der in der zweiten Privilegebene (PL2) ausgeführt wird, einen eingeschränkten Zugriff auf Daten aufweist, die einer der virtuellen vertrauenswürdigen Einrichtungen zugeordnet sind, die in der ersten Privilegebene (PL1) ausgeführt wird.
  11. Computervorrichtung gemäß einem der Ansprüche 2 bis 10, bei der Daten, die den virtuellen vertrauenswürdigen Einrichtungen zugeordnet sind, vor einer Änderung durch den Code geschützt werden, der in der zweiten Privilegebene (PL2) ausgeführt wird.
  12. Computervorrichtung gemäß einem der Ansprüche 2 bis 11, bei der Geheimnisse, die den virtuellen vertrauenswürdigen Einrichtungen zugeordnet sind, für einen Code nicht zugreifbar sind, der in der zweiten Privilegebene (PL2) ausgeführt wird.
  13. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der die physische, vertrauenswürdige Einrichtung (24) für einen öffentlichen Schlüssel bürgt, der einem Vertrauensmodul zugeordnet ist, unter Verwendung eines privaten Schlüssels der physischen, vertrauenswürdigen Einrichtung (24).
  14. Computervorrichtung gemäß einem der Ansprüche 1 bis 12, 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.
  15. Computervorrichtung gemäß einem der vorangehenden Ansprüche, bei der die physische, vertrauenswürdige Einrichtung (24) angeordnet ist, um Bootsequenzbefehle zu übertragen, um eine Initiierung des Bootens der Computervorrichtung zu ermöglichen.
  16. Computervorrichtung gemäß Anspruch 15, 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.
  17. Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung, mit folgenden Schritten: Erwerben eines ersten Integritätsmaßes, um eine Bestimmung darüber zu ermöglichen, ob eine Computervorrichtung auf eine vertrauenswürdige Weise arbeitet, Einrichten mehrerer Betriebsumgebungen, von denen jede ihre eigene jeweilige zugeordnete virtuelle vertrauenswürdige Einrichtung aufweist, Sicherstellen, dass der Zugriff der Betriebsumgebungen auf die Ressourcen eingeschränkt ist, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung verfügbar sind, und Anordnen jeder virtuellen vertrauenswürdigen Einrichtung, um das erste Integritätsmaß und ein zweites Integritätsmaß zu erwerben, wobei das zweite Integritätsmaß eine Bestimmung darüber ermöglicht, ob die Betriebsumgebung, die dieser virtuellen vertrauenswürdigen Einrichtung zugeordnet ist, auf eine vertrauenswürdige Weise arbeitet.
  18. Verfahren nach Anspruch 17, bei dem das Ausführen von virtuellen vertrauenswürdigen Einrichtungen in einer ersten Privilegebene eines Prozessors ausgeführt wird, und das Ausführen der zugeordneten Betriebsumgebungen in einer zweiten Privilegebene des Prozessors ausgeführt wird, und wobei das Sicherstellen, das der Zugriff der Betriebsumgebungen auf Ressourcen, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung verfügbar sind, eingeschränkt ist, ferner für einen Code, der in der zweiten Privilegebene ausgeführt wird, ein Einschränken des Zugriffs auf die Ressourcen, die für einen Code verfügbar sind, der in der ersten Privilegebene ausgeführt wird aufweist.
  19. Verfahren nach Anspruch 17, bei dem das erste Integritätsmaß erworben wird, um eine Bestimmung darüber zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet und die virtuellen vertrauenswürdigen Einrichtungen in der ersten Privilegebene (PL1) des Prozessors (21) ausführt und die zugeordnete Betriebsumgebungen in der zweiten Privilegebene (PL2) des Prozessors (21) ausführt, bei dem sichergestellt wird, das der Zugriff 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, beschränkt ist, und bei dem das erste Integritätsmaß und ein zweites Integritätsmaß erworben wird, um eine Bestimmung darüber zu ermöglichen, ob die Betriebsumgebungen auf eine vertrauenswürdige Weise arbeitet.
  20. Verfahren nach Anspruch 17, bei dem das erste Integritätsmaß erworben wird, um eine Bestimmung darüber zu ermöglichen, ob die Computervorrichtung auf eine vertrauenswürdige Weise arbeitet und die virtuellen vertrauenswürdigen Einrichtungen und die zugeordneten Betriebsumgebungen ausführt, und bei dem sichergestellt wird, dass der Zugriff der Betriebsumgebungen auf die Ressourcen beschränkt ist, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung verfügbar sind, und bei dem das erste Integritätsmaß und ein zweites Integritätsmaß erworben wird, um eine Bestimmung darüber zu ermöglichen, ob die Betriebsumgebung, die dieser virtuellen vertrauenswürdigen Einrichtung zugeordnet ist, auf eine vertrauenswürdige Weise arbeitet.
  21. Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung, mit folgenden Merkmalen: einer physischen, vertrauenswürdigen 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, einem Prozessor und einem Programmcode, der auf dem Prozessor ausführbar ist, um mehrere Betriebsumgebungen einzurichten, von denen jede ihre eigene jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung aufweist, und einer Einrichtung zum Einschränken des Zugriffs der Betriebsumgebungen auf die Ressourcen, die für die jeweilig zugeordnete virtuelle vertrauenswürdige Einrichtung verfügbar sind, wobei jede virtuelle vertrauenswürdige Einrichtung angeordnet ist, um sowohl das erste Integritätsmaß als auch ein zweites Integritätsmaß zu erwerben, wobei das zweite Integritätsmaß eine Bestimmung darüber ermöglicht, ob die Betriebsumgebung, die dieser virtuellen vertrauenswürdigen Einrichtung zugeordnet ist, auf eine vertrauenswürdige Weise arbeitet.
DE10254621A 2001-11-22 2002-11-22 Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung Expired - Fee Related DE10254621B4 (de)

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 DE10254621A1 (de) 2003-06-12
DE10254621B4 true 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)

* Cited by examiner, † Cited by third party
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 邦彦技术股份有限公司 可信度量方法、可信芯片、逻辑控制器及可信度量系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009518A (en) * 1997-01-15 1999-12-28 Shiakallis; Peter Paul Computer system for providing improved security for stored information
JP2000215065A (ja) * 1999-01-22 2000-08-04 Hewlett Packard Co <Hp> ブ―ト可能プログラムを備えたコンピュ―タ
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
WO2001027722A1 (en) * 1999-09-17 2001-04-19 Hewlett-Packard Company Operation of trusted state in computing platform
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
WO2001063415A2 (en) * 2000-02-22 2001-08-30 Wind River Systems, Inc. Operating system having a system page and method for using same

Family Cites Families (154)

* Cited by examiner, † Cited by third party
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
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
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
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
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
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 회로 및 이의 제조 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009518A (en) * 1997-01-15 1999-12-28 Shiakallis; Peter Paul Computer system for providing improved security for stored information
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
JP2000215065A (ja) * 1999-01-22 2000-08-04 Hewlett Packard Co <Hp> ブ―ト可能プログラムを備えたコンピュ―タ
WO2001027722A1 (en) * 1999-09-17 2001-04-19 Hewlett-Packard Company Operation of trusted state in computing platform
WO2001063415A2 (en) * 2000-02-22 2001-08-30 Wind River Systems, Inc. Operating system having a system page and method for using same

Also Published As

Publication number Publication date
GB2382419B (en) 2005-12-14
GB0127978D0 (en) 2002-01-16
US7376974B2 (en) 2008-05-20
US20030226031A1 (en) 2003-12-04
GB2382419A (en) 2003-05-28
US20050223221A1 (en) 2005-10-06
DE10254621A1 (de) 2003-06-12
US7467370B2 (en) 2008-12-16

Similar Documents

Publication Publication Date Title
DE10254621B4 (de) Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung
DE69733123T2 (de) Verfahren und vorrichtung zur verhinderung eines unbefugten schreibzugriffes zu einem geschützten nichtflüchtigen speicher
DE10392470B4 (de) System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung
DE60007724T2 (de) Chipkarten-benutzerschnittstelle für eine vertraute computerplattform
DE60002893T2 (de) Computerplattformen und deren betriebsverfahren
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE69725833T2 (de) Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE60123969T2 (de) Rechnersystem in dem ein gesicherter zustand wiederherstellbar ist
DE10393456B4 (de) Verkapselung einer TCPA-vertrauenswürdigen Plattformmodulfunktionalität innerhalb eines Server-Management-Coprozessor-Subsystems
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
DE102005040073B4 (de) Computersicherheitssystem
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE102008021567A1 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE102020122712A1 (de) Integritätsmanifest-zertifikat
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE112011104496T5 (de) Validieren von virtuellen Maschinen
DE112005002949T5 (de) System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems
DE112019005701T5 (de) Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
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

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