DE112007001321T5 - Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem - Google Patents

Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem Download PDF

Info

Publication number
DE112007001321T5
DE112007001321T5 DE112007001321T DE112007001321T DE112007001321T5 DE 112007001321 T5 DE112007001321 T5 DE 112007001321T5 DE 112007001321 T DE112007001321 T DE 112007001321T DE 112007001321 T DE112007001321 T DE 112007001321T DE 112007001321 T5 DE112007001321 T5 DE 112007001321T5
Authority
DE
Germany
Prior art keywords
processor
chipset
point
secure
module
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.)
Withdrawn
Application number
DE112007001321T
Other languages
English (en)
Inventor
Shamanna Hillsboro Datta
Mohan Aloha Kumar
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112007001321T5 publication Critical patent/DE112007001321T5/de
Withdrawn legal-status Critical Current

Links

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

System mit:
einem ersten Prozessor zum Ausführen eines Sichere-Eingabe-Befehls und
einem Chipsatz zum Veranlassen, dass das System während der Ausführung des Sichere-Eingabe-Befehls in einen Ruhezustand geht.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Mikroprozessorsysteme und insbesondere Mikroprozessorsysteme, die in einer vertrauenswürdigen oder sicheren Umgebung arbeiten können.
  • Hintergrund der Erfindung
  • Die wachsende Anzahl von Finanz- und privaten Transaktionen, die an lokalen oder entfernten Mikrocomputern ausgeführt werden, hat der Schaffung von „vertrauenswürdigen" oder „sicheren" Mikroprozessor-Umgebungen Aufschwung verliehen. Das Problem, das diese Umgebungen zu lösen versuchen, ist das des Verlusts der Privatsphäre oder dass Daten korrumpiert oder missbraucht werden. Nutzer wollen nicht, dass ihre privaten Daten veröffentlicht werden. Auch wollen sie nicht, dass ihre Daten geändert oder in unpassenden Transaktionen verwendet werden. Beispiele hierfür sind unbeabsichtigte Freigabe von Krankenblättern oder elektronischer Diebstahl von Geldern von einer Online-Bank oder einem anderen Aufbewahrungsort. Ebenso wollen Content Provider digitale Inhalte (im Allgemeinen zum Beispiel Musik-, andere Audio-, Video- oder andere Arten von Daten) vor dem Kopieren ohne Genehmigung schützen.
  • Vorhandene vertrauenswürdige Systeme können einen vollständigen abgeschlossenen Satz von vertrauenswürdiger Software verwenden. Dieses Verfahren ist zwar relativ einfach zu realisieren, hat aber den Nachteil, dass eine gleichzeitige Verwendung von normaler, handelsüblicher Betriebssystem- und Anwendungssoftware nicht möglich ist. Dieser Nachteil begrenzt die Akzeptanz eines solchen vertrauenswürdigen Systems.
  • Bei anderen Lösungsansätzen müssen die Prozessoren der Systeme über einen Bus miteinander verbunden werden.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird in den Figuren der beigefügten Zeichnungen beispielhaft und nicht beschränkend beschrieben, und ähnliche Bezugssymbole bezeichnen ähnliche Elemente.
  • 1 ist ein Diagramm einer beispielhaften Software-Umgebung, die in einem Mikroprozessorsystem arbeitet.
  • 2 ist ein Diagramm bestimmter beispielhafter vertrauenswürdiger oder sicherer Software-Module und einer beispielhaften Software-Umgebung nach einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Diagramm einer beispielhaften vertrauenswürdigen oder sicheren Software-Umgebung nach einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Ablaufdiagramm mit Software- und anderen Prozessblöcken nach einer Verfahrensausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • Nachstehend werden Verfahren zum Initiieren einer vertrauenswürdigen oder sicheren Umgebung in einem Mikroprozessorsystem beschrieben. In der nachstehenden Beschreibung werden zahlreiche spezielle Einzelheiten, wie etwa Logik-Implementierungen, Softwaremodulzuweisung, Verschlüsselungsverfahren und Bussignalisierungsverfahren, und Einzelheiten zum Betrieb beschrieben, um ein besseres Verständnis der vorliegenden Erfindung zu ermöglichen. Fachleuten dürfte jedoch klar sein, dass die Erfindung auch ohne diese speziellen Einzelheiten genutzt werden kann. In anderen Fällen sind Steuerstrukturen, Gate-Level-Schaltkreise und komplette Software-Befehlsfolgen nicht näher dargelegt worden, um das Verständnis der Erfindung nicht zu erschweren. Fachleute dürften mit den beigefügten Beschreibungen in der Lage sein, die entsprechende Funktionalität ohne übermäßiges Experimentieren zu realisieren. Die Erfindung wird in Form eines Mikroprozessorsystems beschrieben. Die Erfindung kann jedoch auch in anderen Formen genutzt werden, wie etwa in einem digitalen Signalprozessor, einem Minicomputer oder einem Großrechner.
  • Kommen wir nun zu 1. Hier ist ein Diagramm einer beispielhaften Software-Umgebung gezeigt, die in einem Mikroprozessorsystem arbeitet. Die in 1 gezeigte Software ist nicht vertrauenswürdig. Beim Arbeiten auf einer hohen Privileg-Ebene machen es die Größe und die ständige Aktualisierung des Betriebssystems 150 sehr schwierig, eine Vertrauensanalyse zeitnah durchzuführen. Ein großer Teil des Betriebssystems sitzt im Privilegring null (0), der höchsten Privileg-Ebene. Anwendungen 152, 154 und 156 haben ein stark reduziertes Privileg und stehen normalerweise in dem Privilegring drei (3). Das Vorhandensein verschiedener Privilegringe und die Trennung des Betriebssystems 150 und der Anwendungen 152, 154 und 156 in diese verschiedenen Privilegringe scheinen es aufgrund einer Entscheidung, den von dem Betriebssystem 150 versorgten Einrichtungen zu trauen, zu ermöglichen, dass die Software von 1 in einem vertrauenswürdigen Modus arbeitet. In der Praxis ist jedoch das Treffen einer solchen Vertrauensentscheidung oft nicht realisierbar. Faktoren, die zu diesem Problem beitragen, sind unter anderem die Größe (Anzahl von Code-Leitungen) des Betriebssystems 150, der Umstand, dass das Betriebssystem 150 der Empfänger von zahlreichen Updates (neue Code-Module und – Patches) sein kann, und der Umstand, dass das Betriebssystem 150 auch Code-Module, wie etwa Gerätetreiber, enthalten kann, die von anderen Parteien als dem Entwickler des Betriebssystems geliefert werden. Das Betriebssystem 150 kann ein häufiges Betriebssystem wie Microsoft® Windows®, Linux oder Solaris® sein oder es kann ein anderes geeignetes bekanntes oder in anderer Weise erhältliches Betriebssystem sein. Die speziellen Arten oder Bezeichnungen von Anwendungen oder Betriebssystemen, die abgearbeitet werden oder arbeiten, sind nicht entscheidend.
  • Kommen wir nun zu 2. Hier ist ein Diagramm bestimmter beispielhafter vertrauenswürdiger oder sicherer Software-Module und einer beispielhaften Software-Umgebung 200 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform von 2 sind ein Prozessor 202, ein Prozessor 212, ein Prozessor 222 und optionale weitere Prozessoren (nicht dargestellt) als gesonderte Hardware-Einheiten gezeigt. 2 zeigt zwar drei Prozessoren, aber Ausführungsformen der Erfindung können jede Anzahl von Prozessoren, unter anderem nur einen einzigen Prozessor, haben.
  • Das System 200 hat auch einen Chipsatz 240, der ein Eingabe-/Ausgabe(E/A)-Steuergerät oder -Hub umfassen kann, sowie ein anderes System oder eine andere Logik, wie nachstehend dargelegt wird. Weitere Ausführungsformen können andere Komponenten statt der oder zusätzlich zu den in 2 gezeigten Komponenten enthalten, und die Anzahl von Prozessoren oder anderen Komponenten kann verschieden sein, genauso wie ihre Anordnung zueinander.
  • Die Prozessoren 202, 212 und 222 können einen oder mehrere Ausführungskerne haben, wie etwa Kerne 203, 205, 213, 215, 223 und 225. Bei einigen Ausführungsformen können die Prozessoren oder Kerne durch einzelne Hardware-Ausführungsthreads ersetzt werden, die auf einem oder mehreren physischen Prozessoren oder Kernen laufen. Diese Threads besitzen viele der Attribute von weiteren physischen Prozessoren. Um einen Oberbegriff für die Diskussion zu haben, der ein Gemisch aus mehreren physischen Prozessoren und mehreren Threads auf Prozessoren verwendet, kann der Ausdruck „logischer Prozessor" verwendet werden, um entweder einen physischen Prozessor oder einen Thread zu beschreiben, der in einem oder mehreren physischen Prozessoren arbeitet. Daher kann ein Single-Thread-Prozessor als logischer Prozessor angesehen werden, und Multi-Thread- oder Mehrkernprozessoren können als mehrere logische Prozessoren angesehen werden.
  • Die Prozessoren 202, 212 und 222 können auch eine „Nicht-Kern"-Logik, wie etwa eine Nicht-Kern-Logik 201, 211 und 221, haben, wobei „Nicht-Kern"-Logik eine Logik ist, die von einem der Ausführungskerne getrennt ist. Eine Nicht-Kern-Logik kann Register oder andere Speicherzellen umfassen, wie etwa Register 207, 217 und 227, die zum Speichern von Informationen zu dem Prozessor verwendet werden können, auf dem sie läuft. Diese Register oder Speicherzellen können programmierbar oder hartkodiert sein, und diese Informationen können die Anzahl von Kernen und/oder logischen Prozessoren umfassen, die in dem entsprechenden Prozessor enthalten sind. Die Register 207, 217 und 227 können gemappte Register eines normalen Globalspeichers sein, die beim Einschalt-Reset aktualisiert werden.
  • Die Prozessoren 202, 212 und 222 können auch bestimmte Spezialschaltkreise oder Logik-Elemente zum Unterstützen von sicheren oder vertrauenswürdigen Operationen haben. Zum Beispiel kann der Prozessor 202 eine Sichere-Eingabe-Logik (SENTER-Logik) 204 zum Unterstützen der Ausführung von speziellen SENTER-Befehlen haben, die vertrauenswürdige Operationen initiieren können. Der Prozessor 202 kann auch eine Verbindungsnachrichtenlogik 206 zum Unterstützen von speziellen Verbindungsnachrichten zwischen Prozessoren und anderen Komponenten zur Unterstützung spezieller SENTER-Operationen haben. Die Verwendung spezieller Verbindungsnachrichten kann aus mehreren Gründen die Sicherheit oder Vertrauenswürdigkeit des Systems erhöhen. Schaltkreiselemente, wie etwa die Prozessoren 202, 212 und 222 oder der Chipsatz 204, können diese Nachrichten nur ausgeben oder darauf antworten, wenn sie die entsprechenden Logikelemente von Ausführungsformen der vorliegenden Erfindung enthalten. Daher kann ein erfolgreicher Austausch der speziellen Verbindungsnachrichten zur Gewährleistung der richtigen Systemkonfiguration beitragen. Spezielle Verbindungsnachrichten können auch Aktivitäten zulassen, die normalerweise verboten sein dürften, wie etwa das Resetten eines Plattformkonfigurationsregisters 278. Die Fähigkeit eines potentiell feindlichen nichtvertrauenswürdigen Codes, bestimmte Verbindungstransaktionen auszuspionieren, kann dadurch eingeschränkt werden, dass es ermöglicht wird, dass spezielle Verbindungsnachrichten nur in Reaktion auf spezielle Sicherheitsbefehle ausgegeben werden. Die SENTER-Logik 204, die Verbindungsnachrichtenlogik 206 und jede andere Logik, die in Ausführungsformen der Erfindung verwendet wird, können unter Verwendung von bekannten Lösungen implementiert werden, unter anderem Logikschaltungen, Mikrocodes und Firmware.
  • Darüber hinaus kann der Prozessor 202 einen sicheren Speicher 208 zum Unterstützen von sicheren Initialisierungsoperationen haben. Bei einer Ausführungsform kann der sichere Speicher 208 ein Primär-Cache des Prozessors 202 sein, der möglicherweise in einem speziellen Modus arbeitet. Bei alternativen Ausführungsformen kann der sichere Speicher 208 ein spezieller Speicher sein. Andere Prozessoren, wie etwa der Prozessor 212 und der Prozessor 222, können auch eine SENTER-Logik 214, 224, eine Busnachrichtenlogik 216, 226 und einen sicheren Speicher 218, 228 haben.
  • Ein „Chipsatz" kann als Gruppe von Schaltkreisen und Logiken definiert werden, die Speicher- und/oder E/A-Operationen für einen oder mehrere angeschlossene Prozessoren unterstützen. Einzelne Elemente eines Chipsatzes können auf einem einzigen Chip oder einem Chip-Paar zusammengefasst werden oder können auf mehrere Chips, unter anderem Prozessoren, verteilt werden. Bei der Ausführungsform von 2 kann der Chipsatz 240 einen Schaltkreis und eine Logik zum Unterstützen von E/A-Operationen für die Prozessoren 202, 212 und 222 haben, wobei jeder Prozessor einen Schaltkreis und eine Logik zum Unterstützen von Speicher-Operationen hat. Alternativ kann der Chipsatz 240 auch einen Schaltkreis und eine Logik zum Unterstützen von Speicher-Operationen für die Prozessoren 202, 212 und 222 haben. Die Funktionen des Chipsatzes 240 können bei alternativen Ausführungsformen unter einer oder mehreren physischen Vorrichtungen zugewiesen werden.
  • Der Chipsatz 240 kann zusätzlich seine eigene Verbindungsnachrichtenlogik 242 zum Unterstützen spezieller Verbindungsnachrichten in einem PTP-Netz 230 (PTP: Point-to-Point) zur Unterstützung spezieller SENTER-Operationen haben. Einige dieser speziellen Verbindungsnachrichten können das Senden des Inhalts eines Schlüsselregisters 244 an den Prozessor 202, 212 oder 222 beinhalten, wodurch ein Prozessor einen speziellen „QUIESCE"-Indikator 246 (quiesce: in den Ruhezustand setzen) setzen oder löschen kann, um den Chipsatz 240 zu veranlassen, das System 200 in den Ruhezustand zu versetzen oder aus dem Ruhezustand zu holen (wie nachstehend beschrieben wird) oder wodurch ein spezielles „QUIESCED"-Flag 248 (quiesced: im Ruhezustand) von einem Prozessor geprüft werden kann. Eine weitere Funktion der Busnachrichtenlogik 242 kann das Registrieren des Vorhandenseins oder der Beteiligung von Prozessoren in/an dem System 200 in einem „EXISTS"-Register 270 sein.
  • Die Prozessoren 202, 212 und 222 können miteinander, mit dem Chipsatz 240 und mit anderen Komponenten oder Agenten über das PTP-Interconnection-Netz 230 verbunden werden. Die Prozessoren 202, 212 und 222 und der Chipsatz 240 können Schnittstellen-Einheiten 209, 219, 229 bzw. 239 haben, um eine Verbindung zu dem PTP-Netz 230 herzustellen und Nachrichten an- und voneinander und an und von andere(n) Agenten zu senden und zu empfangen, die in dem System 200 vorhanden sind oder an diesem System beteiligt sind. Jede der Schnittstellen-Einheiten 209, 219, 229 und 239 kann eine Anzahl von unidirektionalen und/oder bidirektionalen Ports für die Kommunikation mit einer Anzahl von anderen Komponenten haben. Die Kommunikation kann über das PTP-Netz 230 nach einer mehrschichtigen Punkt-zu-Punkt-Verbindungsarchitektur erfolgen, zum Beispiel wenn Pakete, die Signale enthalten, die Nachrichten und/oder Daten darstellen, die mit einem oder allen der Elemente Verbindungsschicht, Protokollschicht, Routing-Schicht, Transportschicht und physische Schicht und mit einer anderen derartigen Schicht geframt sind, von einem Agenten an einen anderen Agenten (Punkt-zu-Punkt, direkt) gesendet werden. Daher kann jede der Schnittstellen-Einheiten 209, 219, 229 und 239 eine Schaltung oder Logik zum Erzeugen von Signalen haben, die jeder Schicht entsprechen. Die Pakete können auch redundante oder andere Informationen zum Erkennen oder Korrigieren von Fehlern enthalten.
  • Ein Token 276, das ein oder mehrere Plattformkonfigurationsregister (PCR) 278, 279 enthält, kann mit dem Chipsatz 230 verbunden werden. Bei einer Ausführungsform kann das Token 276 spezielle Sicherheitsmerkmale enthalten, und es kann bei einer Ausführungsform das Vertrauenswürdige-Plattform-Modul (TPM) 281 haben, das beschrieben ist in „Trusted Compu ting Platform Alliance (TCPA) Main Specification" („Hauptspezifikation der TCPA"), Version 1.1a, 01.12.2001, herausgegeben von der TCPA (erhältlich bei www.trustedpc.com).
  • Zwei Software-Komponenten, die in der System-Umgebung 200 identifiziert werden, sind ein Modul eines Sichere-Virtuelle-Maschine-Monitor („Secure Virtual Machine Monitor”; SVMM) 282 und ein Modul zur sicheren Initialisierung eines authentisierten Codes („Secure Initialization Authenticated Code"; SINIT-AC) 280. Das Modul SVMM 282 kann auf einem Systemdatenträger oder einem anderen Massenspeicher gespeichert werden und kann gegebenenfalls zu/in andere(n) Speicherstellen verschoben oder kopiert werden. Bei einer Ausführungsform kann der SVMM 282 vor Beginn des sicheren Startprozesses zu/in eine(r) oder mehreren Speicherseiten in dem System 200 verschoben oder kopiert werden. Nach dem sicheren Eingabeprozess kann eine Virtuelle-Maschine-Umgebung erzeugt werden, in der der SVMM 282 als der am stärksten privilegierte Code in dem System arbeiten kann, und diese Umgebung kann zum Zulassen oder Verwehren des direkten Zugriffs auf bestimmte Systemressourcen durch das Betriebssystem oder Anwendungen in den erzeugten virtuellen Maschinen verwendet werden.
  • Einige der Aktionen, die für den sicheren Eingabeprozess erforderlich sind, können über einfache Hardware-Implementierungen hinausgehen und können stattdessen vorteilhaft ein Software-Modul verwenden, dessen Abarbeitung absolut vertrauenswürdig sein kann. Bei einer Ausführungsform können diese Aktionen mit dem Sichere-Initialisierungs(SINIT)-Code ausgeführt werden. Eine beispielhafte Aktion kann es erfordern, verschiedene Steuergeräte, die entscheidende Teile der Systemkonfiguration darstellen, zu prüfen, um zu gewährleisten, dass die Konfiguration die richtige Instanziierung der sicheren Umgebung unterstützt. Eine zweite beispielhafte Aktion kann es sein, die Identität des Moduls SVMM 282 zu berechnen und zu registrieren und ihm die Systemsteuerung zu übertragen. Hier bedeutet „registrieren", einen Vertrauensmesswert des SVMM 282 in einem Register oder einer anderen Speicherzelle, zum Beispiel in dem PCR 278 oder in dem PCR 279, abzuspeichern. Wenn diese zweite Aktion ausgeführt wird, kann die Vertrauenswürdigkeit des SVMM 282 von einem potentiellen Nutzer des Systems geprüft werden.
  • Der SINIT-Code kann von dem Hersteller der Prozessoren oder der Chipsätze erzeugt werden. Aus diesem Grund kann darauf vertraut werden, dass der SINIT-Code den sicheren Start des Chipsatzes 240 unterstützt. Um den SINIT-Code zu verteilen, besteht bei einer Ausführungsform ein bekannter Verschlüsselungs-Hash aus dem vollständigen SINIT-Code, wo durch ein Wert entsteht, der als Digest bekannt ist. Bei einer Ausführungsform wird ein 160-Bit-Wert für den Digest erzeugt. Der Digest kann dann mit einem privaten Schlüssel verschlüsselt werden, der bei einer Ausführungsform von dem Hersteller des Prozessors gehalten wird, um eine digitale Signatur zu erzeugen. Wenn der SINIT-Code mit der entsprechenden digitalen Signatur gebündelt wird, kann die Kombination als authentisierter SINIT-Code (SINIT-AC) 280 bezeichnet werden. Kopien des SINIT-AC 280 können später validiert werden, wie nachstehend dargelegt wird.
  • Der SINIT-Code 280 kann auf dem Systemdatenträger oder in einem anderen Massenspeicher oder in einem Festmedium gespeichert werden und kann gegebenenfalls zu/in anderen) Speicherstellen verschoben oder kopiert werden. Bei einer Ausführungsform kann der SI-NIT-AC 280 vor Beginn des sicheren Startprozesses zu/in eine(r) oder mehrere(n) Speicherseiten des Systems 200 verschoben oder kopiert werden, um eine speicherresidente Kopie des SINIT-AC herzustellen.
  • Eine privilegierte Software, die auf dem System 200 läuft, wie etwa ein Betriebssystem, kann den sicheren Startprozess auf einem Logikprozessor initiieren, der dann als initiierender Logikprozessor (initiating logical processor; ILP) bezeichnet werden kann. In dem vorliegenden Beispiel ist der Prozessor 202 der ILP, obwohl jeder der Prozessoren in dem PTP-Netz 230 der ILP sein könnte. Zu diesem Zeitpunkt kann weder die speicherresidente Kopie des SI-NIT-AC 280 noch die speicherresidente Kopie des SVMM 282 als vertrauenswürdig angesehen werden.
  • Der ILP (der Prozessor 202) führt einen speziellen Befehl aus, um den sicheren Startprozess zu initiieren. Dieser spezielle Befehl kann als Sichere-Eingabe(SENTER)-Befehl bezeichnet werden und kann von der SENTER-Logik 204 unterstützt werden. Der SENTER-Befehl kann zunächst verifizieren, dass jeder Logikprozessor in dem System 200 in dem Chipsatz 240 registriert ist, zum Beispiel in dem EXISTS-Register 270. Jeder Prozessor und andere Agent, der mit dem PTP-Netz 230 verbunden ist, hat ein Register oder eine andere Speicherzelle, wie etwa die Register 207, 217 und 227, um die Anzahl von Logikprozessoren anzugeben, die er hat. Diese Register werden gelesen, um zu verifizieren, dass die Systemtopologie in dem Chipsatz 240 exakt dargestellt ist.
  • Nach dieser Verifikation schreibt der SENTER-Befehl an den QUIESCE-Indikator 246, um den Chipsatz 240 zu veranlassen, das System 200 in den Ruhezustand zu setzen. Der Chipsatz 240 beginnt eine Handshake-Sequenz in dem PTP-Netz 230, um zu veranlassen, dass alle Prozessoren und anderen Agenten in dem PTP-Netz 230 mit Ausnahme eines Prozessors (des im Ruhezustand befindlichen Hauptprozessors) in einen Ruhezustand gehen. Bei dieser Ausführungsform ist der Prozessor 202 der Hauptprozessor im Ruhezustand und gleichzeitig der ILP. Die Ruhezustandssequenz kann das Senden eines „STOP_REQ"-Signals an jeden Nicht-Hauptprozessor beinhalten, um sie veranlassen, ihre Ereignisverarbeitung zu beenden, ihre Puffer zu leeren und ein „STOP_ACK"-Signal zurück an den Chipsatz 240 zu senden, um ihr Eintreten in einen Ruhezustand zu quittieren. Der Ruhezustand ist ein Zustand, in dem sie keine Befehle ausführen und keine Transaktionen in dem PTP-Netz 230 erzeugen. Nachdem der Chipsatz 240 ein STOP ACK-Signal von jedem Agenten für jeden in dem Chipsatz 240 registrierten Logikprozessor erhalten hat, kann das QUIESCED-Flag 248 gesetzt werden.
  • Nachdem das System in den Ruhezustand versetzt worden ist, kann/können mit dem SENTER-Befehl das/die Sicherheitsmodul(e) abgearbeitet werden, wie nachstehend beschrieben wird. Hierzu ist das PTP-Netz 230 noch immer funktionsfähig, und der Prozessor im Ruhezustand kann noch immer auf das TPM 281 zugreifen. Nachdem die Abarbeitung des/der Sicherheitsmodul(e) beendet ist, kann der Prozessor im Ruhezustand den QUIESCE-Indikator 246 löschen, um den Chipsatz 240 zu veranlassen, das System 200 aus dem Ruhezustand zu holen.
  • Um das/die Sicherheitsmodul(e) abzuarbeiten, kann der ILP (der Prozessor 202) zunächst eine Kopie des SINIT-AC 280 und des Schlüssels 284 in den sicheren Speicher 208 verschieben, um den in dem SINIT-AC 280 enthaltenen SINIT-Code zu authentisieren und anschließend abzuarbeiten. Bei einer Ausführungsform kann dieser sichere Speicher 208 ein Primär-Cache des ILP (des Prozessors 202) sein, der möglicherweise in einem speziellen Modus arbeitet. Der Schlüssel 284 stellt den öffentlichen Schlüssel dar, der dem privaten Schlüssel entspricht, der zum Verschlüsseln der in dem Modul SINIT-AC 280 enthaltenen digitalen Signatur verwendet wird und zum Verifizieren der digitalen Signatur und somit zum Authentisieren des SINIT-Codes dient. Bei einer Ausführungsform kann der Schlüssel 284 bereits in dem Prozessor gespeichert sein, möglicherweise als Teil der SENTER-Logik 204. Bei einer anderen Ausführungsform kann der Schlüssel 284 in einem Nur-Lese-Schlüsselregister 244 des Chipsatzes 240 gespeichert werden, das von dem ILP gelesen wird. Bei einer weiteren Ausführungsform kann entweder der Prozessor oder das Schlüsselregister 244 des Chipsatzes einen Verschlüsselungs- Digest des Schlüssels 284 tatsächlich halten, wobei der Schlüssel 284 selbst in dem Modul SI-NIT-AC 280 enthalten ist. Bei dieser letzten Ausführungsform liest der ILP den Digest aus dem Schlüsselregister 244, berechnet einen äquivalenten Verschlüsselungs-Hash über den in dem SINIT-AC 280 eingebetteten Schlüssel 284 und vergleicht die beiden Digests, um zu gewährleisten, dass der bereitgestellte Schlüssel 284 tatsächlich vertrauenswürdig ist.
  • Eine Kopie des SINIT-AC und eine Kopie eines öffentlichen Schlüssels können dann in dem sicheren Speicher 208 vorliegen. Der ILP kann nun die Kopie des SINIT-AC dadurch validieren, dass er die in der Kopie des SINIT-AC enthaltene digitale Signatur unter Verwendung der Kopie eines öffentlichen Schlüssels entschlüsselt. Durch diese Entschlüsselung wird eine Original-Kopie des Verschlüsselungs-Digests eines Hashs erzeugt. Wenn ein neu berechneter Digest mit diesem Original-Digest übereinstimmt, können die Kopie des SINIT-AC und der darin enthaltene SINIT-Code als vertrauenswürdig angesehen werden.
  • Der ILP kann nun die eindeutige Identität des Moduls SINIT-AC dadurch registrieren, dass er den Verschlüsselungs-Digest-Wert des Moduls SINIT-AC in ein Plattformkonfigurationsregister 272 in dem Sicherheits-Token 276 schreibt, wie nachstehend dargelegt wird. Die Ausführung des SENTER-Befehls durch den ILP kann nun dadurch beendet werden, dass die Ausführungssteuerung auf die in dem sicheren Speicher 208 des ILP gehaltene vertrauenswürdige Kopie des SINIT-Codes übertragen wird. Der vertrauenswürdige SINIT-Code kann dann seine Systemprüfung und Konfigurationsaktionen durchführen und kann die speicherresidente Kopie des SVMM entsprechend der vorstehenden Definition von „registrieren" registrieren.
  • Die Registrierung der speicherresidenten Kopie des SVMM kann auf verschiedene Weise erfolgen. Bei einer Ausführungsform schreibt der SENTER-Befehl, der in dem ILP ausgeführt wird, den berechneten Digest des SINIT-AC in das PCR 278 in dem Sicherheits-Token 276. Anschließend kann der vertrauenswürdige SINIT-Code den berechneten Digest des Speicherresidenten SVMM in dieses PCR 278 oder ein anderes PCR 279 in dem Sicherheits-Token 276 schreiben. Wenn der SVMM-Digest in dieses PCR 278 geschrieben wird, hasht das Sicherheits-Token 276 den Original-Inhalt (SINIT-Digest) mit dem neuen Wert (SVMM-Digest) und schreibt das Ergebnis in das PCR 278 zurück. Bei Ausführungsformen, bei denen das erste (initiierende) Schreiben in das PCR 278 auf den SENTER-Befehl beschränkt wird, kann der resultierende Digest als Wurzel des Vertrauens für das System verwendet werden.
  • Wenn der vertrauenswürdige SINIT-Code seine Abarbeitung beendet hat und die Identität des SVMM in einem PCR registriert hat, kann der SINIT-Code die ILP-Abarbeitungssteuerung auf den SVMM übertragen. Bei einer typischen Ausführungsform können die ersten SVMM-Befehle, die von dem ILP ausgeführt werden, eine Selbstinitialisierungsroutine für dem SVMM darstellen. Das System 200 kann dann unter der Überwachung der Kopie des SVMM, der gerade abgearbeitet wird, in einem vertrauenswürdigen Modus betrieben werden, wie nachstehend bei der Diskussion von 3 dargelegt wird. Von diesem Punkt an arbeitet das gesamte System in einem vertrauenswürdigen Modus, wie nachstehend bei der Diskussion von 3 dargelegt wird.
  • Kommen wir nun zu 3. Hier ist ein Diagramm einer beispielhaften vertrauenswürdigen oder sicheren Software-Umgebung nach einer Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform von 3 können vertrauenswürdige und nichtvertrauenswürdige Software gleichzeitig geladen werden und können gleichzeitig auf einem einzigen Computersystem laufen. Ein SVMM 350 lässt den direkten Zugriff auf Hardware-Ressourcen 380 von einem oder mehreren nicht-vertrauenswürdigen Betriebssystemen 340 und von nicht-vertrauenswürdigen Anwendungen 310 bis 330 aus zu oder verhindert ihn selektiv. In diesem Zusammenhang bedeutet „nicht-vertrauenswürdig" nicht unbedingt, dass sich das Betriebssystem oder Anwendungen absichtlich falsch verhalten, sondern dass es die Größe und die Vielfalt von interagierenden Codes unmöglich machen, zuverlässig zu behaupten, dass sich die Software gerade wie gewünscht verhält und dass es keine Viren oder anderen fremden Codes gibt, die ihre Abarbeitung stören. Bei einer typischen Ausführungsform könnte der nichtvertrauenswürdige Code aus dem normalen Betriebssystem und Anwendungen bestehen, die auf heutigen Personal Computern zu finden sind.
  • Der SVMM 350 lässt auch einen direkten Zugriff auf die Hardware-Ressourcen 380 von einem oder mehreren vertrauenswürdigen oder sicheren Kernels 360 und von einer oder mehreren vertrauenswürdigen Anwendungen 37 aus zu oder verhindert ihn selektiv. Ein solcher vertrauenswürdiger Kernel 360 und solche vertrauenswürdigen Anwendungen 370 können hinsichtlich der Größe und Funktionalität begrenzt werden, um die Fähigkeit zur Durchführung einer Vertrauensanalyse auf ihnen zu unterstützen. Die vertrauenswürdige Anwendung 370 kann ein Software-Code, ein Programm, eine Routine oder ein Routinensatz sein, der in einer sicheren Umgebung abgearbeitet werden kann. Daher kann die vertrauenswürdige Anwendung 370 eine Palette von Anwendungen oder Codesequenzen sein oder kann eine relativ kleine Anwendung sein, wie etwa ein Java-Applet.
  • Befehle oder Operationen, die normalerweise von dem Betriebssystem 340 oder dem Kernel 360 ausgeführt werden und den Systemressourcenschutz oder Privilegien ändern könnten, können von dem SVMM 350 erfasst werden und selektiv zugelassen, teilweise zugelassen oder zurückgewiesen werden. Als Beispiel werden bei einer typischen Ausführungsform Befehle, die die Seitentabelle des Prozessors ändern, was normalerweise von dem Betriebssystem 340 oder dem Kernel 360 durchgeführt wird, stattdessen von dem SVMM 350 erfasst, was gewährleisten würde, dass die Anforderung nicht versucht hat, Seitenprivilegien außerhalb der Domain seiner virtuellen Maschine zu ändern.
  • Kommen wir nun zu 4. Hier ist ein Ablaufdiagramm mit Software- und anderen Prozessblöcken nach einer Ausführungsform der vorliegenden Erfindung bei einem Verfahren 400 gezeigt.
  • Bei einem Block 410 des Verfahrens 400 erstellt ein Logikprozessor eine Kopie der Module SINIT-AC und SVMM, die für den Zugriff mittels eines nachfolgenden SENTER-Befehls verfügbar sind. In diesem Beispiel lädt ein ILP den SINIT-AC- und SVMM-Code aus dem Massenspeicher in den physischen Speicher. Bei alternativen Ausführungsformen kann das jeder Logikprozessor tun, nicht nur der ILP. Ein Prozessor wird dadurch zum ILP, dass er den SENTER-Befehl ausführt, wie in einem Block 412 angegeben.
  • In einem Block 420 verifiziert der SENTER-Befehl, dass jeder Logikprozessor in dem System 200 in dem Chipsatz 240 registriert ist, zum Beispiel in dem EXISTS-Register 270. In einem Block 422 schreibt der SENTER-Befehl an den QUIESCE-Indikator 246, um den Chipsatz 240 zu veranlassen, das System 200 in den Ruhezustand zu versetzen. In einem Block 424 sendet der Chipsatz 240 „STOP_REQ"-Signale an jeden Nicht-Hauptprozessor, um sie zu veranlassen, ihre Ereignisverarbeitung zu beenden, ihre Puffer zu leeren und ein „STOP_ACK"-Signal zurück an den Chipsatz 240 zu senden, um ihr Eintreten in einen Ruhezustand zu quittieren. In einem Block 426 wird das QUIESCED-Flag 248 gesetzt, um anzugeben, dass der Chipsatz 240 ein STOP_ACK-Signal von jedem Agenten für jeden in dem Chipsatz 240 registrierten Logikprozessor erhalten hat.
  • In einem Block 430 verschiebt der ILP den öffentlichen Schlüssel des Chipsatzes und die speicherresidente Kopie des SINIT-AC in seinen sicheren Speicher zur sicheren Abarbeitung. In einem Block 432 verwendet der ILP den Schlüssel zum Validieren der in dem sicheren Speicher residenten Kopie des SINIT-AC und arbeitet ihn dann ab. Bei der Abarbeitung des SINIT-AC können Tests der Systemkonfiguration und der SVMM-Kopie durchgeführt werden, dann wird die SVMM-Identität registriert, und schließlich wird in einem Block 434 mit der Abarbeitung des SVMM begonnen. In einem Block 436 löscht der Hauptprozessor im Ruhezustand den QUIESCE-Indikator 246, um den Chipsatz 240 zu veranlassen, das System 200 in einem Block 438 aus dem Ruhezustand zu holen.
  • In der vorstehenden Beschreibung ist die Erfindung unter Bezugnahme auf spezielle beispielhafte Ausführungsformen der Erfindung beschrieben worden. Es ist jedoch klar, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von den allgemeinen Grundgedanken und dem allgemeinen Schutzumfang der Erfindung abzuweichen, die in den beigefügten Ansprüchen dargelegt sind. Die Beschreibung und die Zeichnungen sind daher in einem erläuternden und nicht in einem beschränkenden Sinn zu sehen.
  • Zusammenfassung
  • Es werden Verfahren und eine Vorrichtung zum Initiieren von sicheren Operationen in einem Mikroprozessorsystem beschrieben. Bei einer Ausführungsform hat ein System einen Prozessor zum Ausführen eines Sichere-Eingabe-Befehls und einen Chipsatz zum Veranlassen des Systems, während der Ausführung des Sichere-Eingabe-Befehls in einen Ruhezustand zu gehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - www.trustedpc.com [0021]

Claims (20)

  1. System mit: einem ersten Prozessor zum Ausführen eines Sichere-Eingabe-Befehls und einem Chipsatz zum Veranlassen, dass das System während der Ausführung des Sichere-Eingabe-Befehls in einen Ruhezustand geht.
  2. System nach Anspruch 1, das weiterhin ein Punkt-zu-Punkt-Netz zum Verbinden des ersten Prozessors mit dem Chipsatz aufweist.
  3. System nach Anspruch 2, das weiterhin einen zweiten Prozessor aufweist, der durch das Punkt-zu-Punkt-Netz mit dem Chipsatz verbunden ist, wobei der Chipsatz auch veranlassen soll, dass der zweite Prozessor während der Ausführung des Sichere-Eingabe-Befehls in den Ruhezustand geht.
  4. System nach Anspruch 2, dadurch gekennzeichnet, dass der Chipsatz auch veranlassen soll, dass das System in den Ruhezustand geht, in dem nur der erste Prozessor und der Chipsatz über das Punkt-zu-Punkt-Netz kommunizieren.
  5. System nach Anspruch 1, das weiterhin ein Vertrauenswürdige-Plattform-Modul aufweist, wobei das Vertrauenswürdige-Plattform-Modul während des Ruhezustands auf den ersten Prozessor zugreifen kann.
  6. System nach Anspruch 1, dadurch gekennzeichnet, dass der erste Prozessor auch ein Modul zur sicheren Initialisierung eines authentisierten Codes ausführen soll.
  7. System nach Anspruch 1, dadurch gekennzeichnet, dass der erste Prozessor auch ein Modul eines Sichere-virtuelle-Maschine-Monitor abarbeiten soll.
  8. System nach Anspruch 1, dadurch gekennzeichnet, dass der Chipsatz einen Indikator aufweist, der auf den ersten Prozessor zugreifen kann, damit der Chipsatz das System veranlasst, in den Ruhezustand zu gehen.
  9. System nach Anspruch 3, dadurch gekennzeichnet, dass der Chipsatz Folgendes aufweist: einen Indikator, der auf den ersten Prozessor zugreifen kann, damit der Chipsatz das System veranlasst, in den Ruhezustand zu gehen; und eine erste Speicherzelle zum Angeben der Identität jedes Prozessors in dem System, wobei der zweite Prozessor eine zweite Speicherzelle zum Angeben aufweist, dass der zweite Prozessor mit dem Punkt-zu-Punkt-Netz verbunden ist, und der erste Prozessor eine Logik zum Verifizieren aufweist, dass die Identität des zweiten Prozessors in der ersten Speicherzelle angegeben ist, bevor auf den Indikator zugegriffen wird, damit der Chipsatz das System veranlasst, in den Ruhezustand zu gehen.
  10. Verfahren mit den folgenden Schritten: Starten der Ausführung eines Sichere-Eingabe-Befehls an einem ersten Prozessor, der über ein Punkt-zu-Punkt-Netz mit einem Chipsatz verbunden ist; und Veranlassen des Chipsatzes, dass er einen mit dem Punkt-zu-Punkt-Netz verbundenen zweiten Prozessor veranlasst, während der Ausführung eines Sichere-Eingabe-Befehls in einen Ruhezustand zu gehen.
  11. Verfahren nach Anspruch 10, das weiterhin das Unterhalten, durch den Chipsatz, einer Liste mit Agenten aufweist, die mit dem Punkt-zu-Punkt-Netz verbunden sind.
  12. Verfahren nach Anspruch 11, das weiterhin das Lesen einer Speicherzelle in dem zweiten Prozessor zum Identifizieren der Anzahl von Agenten aufweist, die über den zweiten Prozessor mit dem Punkt-zu-Punkt-Netz verbunden sind.
  13. Verfahren nach Anspruch 10, das weiterhin das Zugreifen des ersten Prozessors auf ein Vertrauenswürdige-Plattform-Modul während des Ruhezustands aufweist.
  14. Verfahren nach Anspruch 13, das weiterhin das Abarbeiten eines Moduls zur Sichere-Initialisierungs-Authentisierung aufweist.
  15. Verfahren nach Anspruch 14, das weiterhin das Lesen eines Indikators in dem Chipsatz zum Verifizieren aufweist, dass der Eintritt in den Ruhezustand erfolgt ist, bevor das Moduls zur Sichere-Initialisierungs-Authentisierung ausgeführt wird.
  16. Verfahren nach Anspruch 13, das weiterhin das Abarbeiten eines Moduls des Sicherevirtuelle-Maschine-Monitors aufweist.
  17. Verfahren nach Anspruch 16, das weiterhin das Lesen eines Indikators in dem Chipsatz zum Verifizieren aufweist, dass der Eintritt in den Ruhezustand erfolgt ist, bevor das Modul des Sichere-virtuelle-Maschine-Monitors abgearbeitet wird.
  18. Verfahren nach Anspruch 10, das weiterhin das Veranlassen des zweiten Prozessors aufweist, seine Ereignisverarbeitung zu beenden und seine Puffer zu leeren, bevor er in den Ruhezustand geht.
  19. Verfahren nach Anspruch 18, das weiterhin das Senden, durch den zweiten Prozessor, eines Signals an den Chipsatz aufweist, um seinen Eintritt in den Ruhezustand zu quittieren.
  20. Prozessor mit: einer Sichere-Eingabe-Logik zum Ausführen eines ersten Befehls zum Aufrufen einer Sichere-Operationen-Initialisierung und einer Verbindungsnachrichtenlogik, damit ein Chipsatz einen Agenten, der über ein Punkt-zu-Punkt-Netz mit dem Chipsatz verbunden ist, veranlasst, in einen Ruhezustand zu gehen.
DE112007001321T 2006-05-26 2007-05-25 Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem Withdrawn DE112007001321T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/442,230 US8973094B2 (en) 2006-05-26 2006-05-26 Execution of a secured environment initialization instruction on a point-to-point interconnect system
US11/442,230 2006-05-26
PCT/US2007/069742 WO2007140300A1 (en) 2006-05-26 2007-05-25 Execution of a secured environment initialization instruction on a point-to-point interconnect system

Publications (1)

Publication Number Publication Date
DE112007001321T5 true DE112007001321T5 (de) 2009-04-23

Family

ID=38750970

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007001321T Withdrawn DE112007001321T5 (de) 2006-05-26 2007-05-25 Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem

Country Status (7)

Country Link
US (3) US8973094B2 (de)
JP (4) JP4883459B2 (de)
KR (1) KR101263061B1 (de)
CN (1) CN101454751B (de)
DE (1) DE112007001321T5 (de)
TW (1) TWI431533B (de)
WO (1) WO2007140300A1 (de)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8973094B2 (en) * 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
US9304964B2 (en) * 2006-06-30 2016-04-05 Intel Corporation Separable transport layer in cache coherent multiple component microelectronic systems
WO2009139779A1 (en) * 2008-05-16 2009-11-19 Hewlett-Packard Development Company, L.P. System and method for providing a system management command
US8989705B1 (en) 2009-06-18 2015-03-24 Sprint Communications Company L.P. Secure placement of centralized media controller application in mobile access terminal
US8578138B2 (en) 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
GB2481563B (en) * 2009-12-22 2017-07-19 Intel Corp Method and apparatus to provide secure application execution
US9921967B2 (en) * 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
EP2817755B1 (de) * 2012-02-20 2021-03-24 Intel Corporation Gerichtetes aufwecken in einer gesicherten systemumgebung
US8712407B1 (en) 2012-04-05 2014-04-29 Sprint Communications Company L.P. Multiple secure elements in mobile electronic device with near field communication capability
US9027102B2 (en) 2012-05-11 2015-05-05 Sprint Communications Company L.P. Web server bypass of backend process on near field communications and secure element chips
US8862181B1 (en) 2012-05-29 2014-10-14 Sprint Communications Company L.P. Electronic purchase transaction trust infrastructure
US9282898B2 (en) 2012-06-25 2016-03-15 Sprint Communications Company L.P. End-to-end trusted communications infrastructure
US9053042B2 (en) * 2012-06-27 2015-06-09 Intel Corporation Method, system, and device for modifying a secure enclave configuration without changing the enclave measurement
US9066230B1 (en) 2012-06-27 2015-06-23 Sprint Communications Company L.P. Trusted policy and charging enforcement function
US8649770B1 (en) * 2012-07-02 2014-02-11 Sprint Communications Company, L.P. Extended trusted security zone radio modem
US8667607B2 (en) 2012-07-24 2014-03-04 Sprint Communications Company L.P. Trusted security zone access to peripheral devices
US8863252B1 (en) 2012-07-25 2014-10-14 Sprint Communications Company L.P. Trusted access to third party applications systems and methods
US9183412B2 (en) 2012-08-10 2015-11-10 Sprint Communications Company L.P. Systems and methods for provisioning and using multiple trusted security zones on an electronic device
US9215180B1 (en) 2012-08-25 2015-12-15 Sprint Communications Company L.P. File retrieval in real-time brokering of digital content
US9015068B1 (en) 2012-08-25 2015-04-21 Sprint Communications Company L.P. Framework for real-time brokering of digital content delivery
US8954588B1 (en) 2012-08-25 2015-02-10 Sprint Communications Company L.P. Reservations in real-time brokering of digital content delivery
US8752140B1 (en) 2012-09-11 2014-06-10 Sprint Communications Company L.P. System and methods for trusted internet domain networking
US9323686B2 (en) * 2012-12-28 2016-04-26 Intel Corporation Paging in secure enclaves
US9747102B2 (en) 2012-12-28 2017-08-29 Intel Corporation Memory management in secure enclaves
US9189411B2 (en) 2012-12-28 2015-11-17 Intel Corporation Logging in secure enclaves
US20140189246A1 (en) * 2012-12-31 2014-07-03 Bin Xing Measuring applications loaded in secure enclaves at runtime
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9161227B1 (en) 2013-02-07 2015-10-13 Sprint Communications Company L.P. Trusted signaling in long term evolution (LTE) 4G wireless communication
US9104840B1 (en) 2013-03-05 2015-08-11 Sprint Communications Company L.P. Trusted security zone watermark
US8881977B1 (en) 2013-03-13 2014-11-11 Sprint Communications Company L.P. Point-of-sale and automated teller machine transactions using trusted mobile access device
US9613208B1 (en) 2013-03-13 2017-04-04 Sprint Communications Company L.P. Trusted security zone enhanced with trusted hardware drivers
US9049013B2 (en) 2013-03-14 2015-06-02 Sprint Communications Company L.P. Trusted security zone containers for the protection and confidentiality of trusted service manager data
US9049186B1 (en) 2013-03-14 2015-06-02 Sprint Communications Company L.P. Trusted security zone re-provisioning and re-use capability for refurbished mobile devices
US9191388B1 (en) 2013-03-15 2015-11-17 Sprint Communications Company L.P. Trusted security zone communication addressing on an electronic device
US8984592B1 (en) 2013-03-15 2015-03-17 Sprint Communications Company L.P. Enablement of a trusted security zone authentication for remote mobile device management systems and methods
US9374363B1 (en) 2013-03-15 2016-06-21 Sprint Communications Company L.P. Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device
US9021585B1 (en) 2013-03-15 2015-04-28 Sprint Communications Company L.P. JTAG fuse vulnerability determination and protection using a trusted execution environment
US9324016B1 (en) 2013-04-04 2016-04-26 Sprint Communications Company L.P. Digest of biographical information for an electronic device with static and dynamic portions
US9171243B1 (en) 2013-04-04 2015-10-27 Sprint Communications Company L.P. System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device
US9454723B1 (en) 2013-04-04 2016-09-27 Sprint Communications Company L.P. Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device
US9838869B1 (en) 2013-04-10 2017-12-05 Sprint Communications Company L.P. Delivering digital content to a mobile device via a digital rights clearing house
US9443088B1 (en) 2013-04-15 2016-09-13 Sprint Communications Company L.P. Protection for multimedia files pre-downloaded to a mobile device
US9069952B1 (en) 2013-05-20 2015-06-30 Sprint Communications Company L.P. Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory
US9560519B1 (en) 2013-06-06 2017-01-31 Sprint Communications Company L.P. Mobile communication device profound identity brokering framework
US9183606B1 (en) 2013-07-10 2015-11-10 Sprint Communications Company L.P. Trusted processing location within a graphics processing unit
US9208339B1 (en) 2013-08-12 2015-12-08 Sprint Communications Company L.P. Verifying Applications in Virtual Environments Using a Trusted Security Zone
US9185626B1 (en) 2013-10-29 2015-11-10 Sprint Communications Company L.P. Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning
US9191522B1 (en) 2013-11-08 2015-11-17 Sprint Communications Company L.P. Billing varied service based on tier
US9161325B1 (en) 2013-11-20 2015-10-13 Sprint Communications Company L.P. Subscriber identity module virtualization
US9118655B1 (en) 2014-01-24 2015-08-25 Sprint Communications Company L.P. Trusted display and transmission of digital ticket documentation
US9226145B1 (en) 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation
US9703733B2 (en) 2014-06-27 2017-07-11 Intel Corporation Instructions and logic to interrupt and resume paging in a secure enclave page cache
US9230085B1 (en) 2014-07-29 2016-01-05 Sprint Communications Company L.P. Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
US9779232B1 (en) 2015-01-14 2017-10-03 Sprint Communications Company L.P. Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
US9838868B1 (en) 2015-01-26 2017-12-05 Sprint Communications Company L.P. Mated universal serial bus (USB) wireless dongles configured with destination addresses
US9473945B1 (en) 2015-04-07 2016-10-18 Sprint Communications Company L.P. Infrastructure for secure short message transmission
US9819679B1 (en) 2015-09-14 2017-11-14 Sprint Communications Company L.P. Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers
US10282719B1 (en) 2015-11-12 2019-05-07 Sprint Communications Company L.P. Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit
US9817992B1 (en) 2015-11-20 2017-11-14 Sprint Communications Company Lp. System and method for secure USIM wireless network access
KR101780636B1 (ko) * 2016-05-16 2017-09-21 주식회사 코인플러그 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
KR101799343B1 (ko) * 2016-05-16 2017-11-22 주식회사 코인플러그 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
US10499249B1 (en) 2017-07-11 2019-12-03 Sprint Communications Company L.P. Data link layer trust signaling in communication network
US10552344B2 (en) 2017-12-26 2020-02-04 Intel Corporation Unblock instruction to reverse page block during paging

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
US5339405A (en) 1992-03-30 1994-08-16 International Business Machines Corporation Command quiesce function
US5758141A (en) * 1995-02-10 1998-05-26 International Business Machines Corporation Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register
US5694617A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
US5659750A (en) * 1995-05-15 1997-08-19 Nvidia Corporation Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs
US5905861A (en) * 1996-12-02 1999-05-18 Lovell; William S. Data authentication circuit
JP3546678B2 (ja) 1997-09-12 2004-07-28 株式会社日立製作所 マルチos構成方法
JP2000076216A (ja) * 1998-09-02 2000-03-14 Nec Corp マルチプロセッサシステム及びそのプロセッサ二重化方法並びにその制御プログラムを記録した記録媒体
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
JP3749640B2 (ja) * 1999-10-15 2006-03-01 株式会社東芝 Icカード利用装置、icカード及び記憶媒体
US6754829B1 (en) * 1999-12-14 2004-06-22 Intel Corporation Certificate-based authentication system for heterogeneous environments
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
JP3576945B2 (ja) 2000-09-13 2004-10-13 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステムにおける命令実行方法及びその装置
JP2002197047A (ja) * 2000-10-31 2002-07-12 Hewlett Packard Co <Hp> 入力/出力読出しデータがプロセッサローカルキャッシュに直接配置されるコンピュータシステム
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
GB0205046D0 (en) * 2002-03-05 2002-04-17 Bitarts Ltd Security arrangement
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7379418B2 (en) * 2003-05-12 2008-05-27 International Business Machines Corporation Method for ensuring system serialization (quiesce) in a multi-processor environment
US20050114687A1 (en) * 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US9189230B2 (en) * 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
US20060059269A1 (en) * 2004-09-13 2006-03-16 Chien Chen Transparent recovery of switch device
US8145816B2 (en) 2004-09-15 2012-03-27 Intel Corporation System and method for deadlock free bus protection of resources during search execution
US7934076B2 (en) 2004-09-30 2011-04-26 Intel Corporation System and method for limiting exposure of hardware failure information for a secured execution environment
US20060288209A1 (en) * 2005-06-20 2006-12-21 Vogler Dean H Method and apparatus for secure inter-processor communications
US7822978B2 (en) * 2005-07-22 2010-10-26 Intel Corporation Quiescing a manageability engine
US8286002B2 (en) * 2005-12-02 2012-10-09 Alcatel Lucent Method and apparatus for providing secure remote access to enterprise networks
US8973094B2 (en) * 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
www.trustedpc.com

Also Published As

Publication number Publication date
TWI431533B (zh) 2014-03-21
JP2012089147A (ja) 2012-05-10
CN101454751A (zh) 2009-06-10
JP4883459B2 (ja) 2012-02-22
KR20090005219A (ko) 2009-01-12
KR101263061B1 (ko) 2013-05-09
US8973094B2 (en) 2015-03-03
US20130212672A1 (en) 2013-08-15
TW200820081A (en) 2008-05-01
JP6026462B2 (ja) 2016-11-16
US20070277223A1 (en) 2007-11-29
JP2014194804A (ja) 2014-10-09
JP6012166B2 (ja) 2016-10-25
US20160085965A1 (en) 2016-03-24
CN101454751B (zh) 2016-01-20
JP2016197436A (ja) 2016-11-24
JP2009534763A (ja) 2009-09-24
WO2007140300A1 (en) 2007-12-06

Similar Documents

Publication Publication Date Title
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE10392470B4 (de) System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE10254621B4 (de) Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung
US10467386B2 (en) Software development and deployment in multiple environments
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
US8024564B2 (en) Automating configuration of software applications
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE10292364T5 (de) Sichere Maschinenplattform, die mit Betriebssystemen und awendungsspezifischen Steuerprogrammen eine Schnittstelle bildet
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE10196007B4 (de) Plattform und Verfahren zum Fernattestieren einer Plattform
DE102018115489A1 (de) Krypto-erzwungene rechte für isolation
DE112016005833T5 (de) Datenverarbeitungsgeräte
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
DE202019005671U1 (de) Koexistenz von Vertrauensdomänenarchitektur mitMehrschlüssel-Gesamtspeicherverschlüsselungstechnologieauf Servern
US9916205B2 (en) Secure live virtual machine guest based snapshot recovery
DE102007057901A1 (de) Anordnung und Verfahren zur sicheren Aktualisierung von Firmwarevorrichtungen unter Verwendung eines Hypervisor
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE10297273T5 (de) Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation
DE112005002949T5 (de) System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20131203