DE10392470B4 - System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung - Google Patents
System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung Download PDFInfo
- Publication number
- DE10392470B4 DE10392470B4 DE10392470T DE10392470T DE10392470B4 DE 10392470 B4 DE10392470 B4 DE 10392470B4 DE 10392470 T DE10392470 T DE 10392470T DE 10392470 T DE10392470 T DE 10392470T DE 10392470 B4 DE10392470 B4 DE 10392470B4
- Authority
- DE
- Germany
- Prior art keywords
- secure
- bus message
- logical processor
- initialization
- chipset
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N23/00—Investigating or analysing materials by the use of wave or particle radiation, e.g. X-rays or neutrons, not covered by groups G01N3/00 – G01N17/00, G01N21/00 or G01N22/00
- G01N23/22—Investigating or analysing materials by the use of wave or particle radiation, e.g. X-rays or neutrons, not covered by groups G01N3/00 – G01N17/00, G01N21/00 or G01N22/00 by measuring secondary emission from the material
- G01N23/223—Investigating or analysing materials by the use of wave or particle radiation, e.g. X-rays or neutrons, not covered by groups G01N3/00 – G01N17/00, G01N21/00 or G01N22/00 by measuring secondary emission from the material by irradiating the sample with X-rays or gamma-rays and by measuring X-ray fluorescence
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N33/00—Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
- G01N33/48—Biological material, e.g. blood, urine; Haemocytometers
- G01N33/50—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing
- G01N33/5005—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing involving human or animal cells
- G01N33/5008—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing involving human or animal cells for testing or evaluating the effect of chemical or biological compounds, e.g. drugs, cosmetics
- G01N33/502—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing involving human or animal cells for testing or evaluating the effect of chemical or biological compounds, e.g. drugs, cosmetics for testing non-proliferative effects
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N33/00—Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
- G01N33/48—Biological material, e.g. blood, urine; Haemocytometers
- G01N33/50—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing
- G01N33/68—Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing involving proteins, peptides or amino acids
- G01N33/6872—Intracellular protein regulatory factors and their receptors, e.g. including ion channels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N2223/00—Investigating materials by wave or particle radiation
- G01N2223/07—Investigating materials by wave or particle radiation secondary emission
- G01N2223/076—X-ray fluorescence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
System
mit wenigstens zwei logischen Prozessoren und einem Secure Virtuel
Machine Monitor, wobei
ein erster der logischen Prozessoren einen sicheren Speicher umfaßt, um zur Initiierung einer vertrauenswürdigen Operation einen gesicherten Eingabebefehl auszuführen, wobei der gesicherte Eingabebefehl dazu dient, den ersten logischen Prozessor zu veranlassen, eine Spezialbusnachricht an den zweiten logischen Prozessor auszugeben, um den zweiten logischen Prozessor mit dem ersten logischen Prozessor in sicheren Operationen zu synchronisieren, und das System ferner
einen Chipsatz umfaßt, um vor einem Zugriff auf den Secure Virtuel Machine Monitor durch eine vom ersten logischen Prozessor verschiedene Einrichtung zu schützen.
ein erster der logischen Prozessoren einen sicheren Speicher umfaßt, um zur Initiierung einer vertrauenswürdigen Operation einen gesicherten Eingabebefehl auszuführen, wobei der gesicherte Eingabebefehl dazu dient, den ersten logischen Prozessor zu veranlassen, eine Spezialbusnachricht an den zweiten logischen Prozessor auszugeben, um den zweiten logischen Prozessor mit dem ersten logischen Prozessor in sicheren Operationen zu synchronisieren, und das System ferner
einen Chipsatz umfaßt, um vor einem Zugriff auf den Secure Virtuel Machine Monitor durch eine vom ersten logischen Prozessor verschiedene Einrichtung zu schützen.
Description
- Gebiet der Erfindung
- Die vorliegende Erfindung betrifft allgemein Mikroprozessorsysteme und insbesondere Mikroprozessorsysteme, die in einer vertrauenswürdigen oder gesicherten Umgebung betrieben werden.
- Hintergrund
- Die wachsende Zahl von finanziellen und personengebundenen Transaktionen, die auf lokalen oder entfernten Mikrocomputern ausgeführt werden, gaben einen Anstoß zum Aufbauen von "vertrauenswürdigen" oder "gesicherten" Mikroprozessor-Umgebungen. Das Problem, das diese Umgebungen zu lösen versuchen, ist der Verlust der Geheimhaltung oder daß Daten verfälscht oder mißbraucht werden. Benutzer wollen nicht, daß ihre Privatdaten öffentlich werden. Sie wollen außerdem nicht, daß ihre Daten verändert werden oder in unangebrachten Transaktionen benutzt werden. Beispiele davon umfassen eine unabsichtliche Abgabe von medizinischen Aufzeichnungen oder einen elektronischer Diebstahl von Finanzmitteln aus einer Online-Bank oder anderen Hinterlegungsstellen. In ähnlicher Weise versuchen Provider von Inhalten, den digitalen Inhalt (zum Beispiel Musik, andere Audio- oder Videodaten oder allgemein andere Arten von Daten) vor einem Kopieren ohne Autorisierung zu schützen.
- Existierende vertrauenswürdige Systeme können einen vollständig geschlossenen Satz vertraulicher Software benutzen. Dieses Verfahren ist relativ einfach zu implementieren, hat jedoch den Nachteil, daß es die gleichzeitige Verwendung von üblichen, kommerziell erhältlichen Betriebssystemen und Anwendungssoftware nicht gestattet. Dieser Nachteil beschränkt die Akzeptanz solcher vertraulicher Systeme.
- Die Erfindung betrifft ein System nach Anspruch 1 und ein Verfahren nach Anspruch 26 Die Unteransprüche geben bevorzugte Ausführungsformen der Erfindung an.
- Kurze Beschreibung der Zeichnungen
- Die vorliegende Erfindung wird im Wege von Beispielen, und nicht mittels einer Einschränkung, in den Figuren und den beigefügten Zeichnungen dargestellt, wobei gleiche Bezugszeichen sich auf ähnliche Elemente beziehen und die Figuren Folgendes zeigen:
-
1 ist ein Diagramm einer beispielhaften Softwareumgebung, die in einem Mikroprozessorsystem ausgeführt wird. -
2 ist ein Diagramm von bestimmten beispielhaften vertrauenswürdigen oder gesicherten Softwaremodulen und eine beispielhafte Systemumgebung gemäß einer Ausführungsform der vorliegenden Erfindung. -
3 ist ein Diagramm einer beispielhaften vertrauenswürdigen oder gesicherten Softwareumgebung gemäß einer Ausführungsform der vorliegenden Erfindung. -
4A ist ein schematisches Diagramm eines beispielhaften Mikroprozessorssystems, das dafür eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen, gemäß einer Ausführungsform der vorliegenden Erfindung. -
4B ist ein schematisches Diagramm eines beispielhaften Mikroprozessorsystems, das dafür eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen, gemäß einer alternativen Ausführungsform der vorliegenden Erfindung. -
5 ist ein schematisches Diagramm eines beispielhaften Mikroprozessorsystems, das dafür eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen, gemäß einer alternativen Ausführungsform der vorliegenden Erfindung. -
6 ist eine Darstellung einer Zeitrahmenleiste der Ausführung von Softwarekomponenten gemäß einer Ausführungsform der vorliegenden Erfindung. -
7 ist ein Ablaufdiagramm der Software und anderer Prozeßblöcke gemäß einer Ausführungsform der vorliegenden Erfindung. - Detailliere Beschreibung
- Die nachfolgende Beschreibung beschreibt Techniken zum Initiieren einer vertrauenswürdigen oder gesicherten Umgebung in einem Mikroprozessorsystem. In der nachfolgenden Beschreibung werden zahlreiche spezielle Details, wie Logikimplementierungen, Softwaremodulzuordnungen, Verschlüsselungstechniken, Bussignalisierungstechniken und Details des Ablauf dargestellt, um ein vollständigeres Verständnis der vorliegenden Erfindung zu liefern. Ein Fachmann wird jedoch erkennen, daß die Erfindung auch ohne diese speziellen Details ausgeführt werden kann. In anderen Fällen werden Steuerstrukturen, Gatelevel-Schaltungen und vollständige Softwarebefehlsequenzen nicht im Detail gezeigt, um nicht von der Erfindung abzulenken. Die Durchschnittsfachleute werden jedoch mit den eingefügten Beschreibungen in der Lage sein, die geeigneten Funktionen ohne unverhältnismäßiges Experimentieren zu implementieren. Die Erfindung wird in Form eines Mikroprozessorsystems offenbart. Die Erfindung kann jedoch auch in anderen Prozessorformen ausgeführt werden, wie mit einem Digitalsignalprozessor, einem Minicomputer oder einem Großrechner.
- Bezug nehmend auf
1 wird eine Diagramm einer beispielhaften Softwareumgebung gezeigt, die in einem Mikroprozessorsystem ausgeführt wird. Die in1 gezeigte Software ist nicht vertrauenswürdig (unzuverlässig). Beim Betreiben in einem Level mit hoher Berechtigung macht es die Größe und das ständige Aktualisieren des Betriebsystems150 sehr schwierig, irgendeine Vertrauenswürdigkeitsanalysen in einer zeitnahen Weise auszuführen. Viele der Betriebssysteme sitzen in einem Berechtigungsring null (0), dem höchsten Berechtigungslevel. Die Anwendungen152 ,154 und156 besitzen eine viel geringere Berechtigung und befinden sich typischerweise in einem Berechtigungsring drei (3). Die Existenz der verschiedenen Berechtigungsringe und die Aufteilung des Betriebssystems150 und der Anwendung152 ,154 und156 in diesen verschiedenen Berechtigungsringe macht es scheinbar möglich, die Software der1 in einem vertrauenswürdigen Modus zu betreiben, basierend auf einer Beschlußfassung, den Einrichtungen, die von dem Betriebssystem150 zur Verfügung gestellt werden, zu vertrauen. In der Praxis ist die Fassung einer solchen Vertrauensentscheidung jedoch oft unpraktikabel. Faktoren, die zu diesem Problem beitragen, umfassen die Größe (Zahl der Zeilen des Codes) des Betriebssystems150 , die Tatsache, daß das Betriebssystem150 zahlreiche Updates (neue Codemodule und Korrekturprogramme) empfangen haben kann, und die Tatsache, daß das Betriebssystem150 auch Codemodule enthalten kann, wie Treiber für Einrichtungen, die von Seiten geliefert werden, die von dem Betriebssystementwickler verschieden sind. Das Betriebssystem150 kann ein herkömmliches sein, wie Microsoft®, Linux oder Solaris® oder kann ein anderes einschlägig bekanntes oder ein anderweitig erhältliches Betriebssystem sein. Die speziellen Arten oder Namen der Anwendungen oder der Betriebssysteme, die ausgeführt werden oder ablaufen, sind nicht kritisch. - Bezug nehmend auf
2 wird ein Diagramm von bestimmten beispielhaften vertrauenswürdigen oder gesicherten Softwaremodulen und einer beispielhaften Systemumgebung200 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform der2 sind ein Prozessor202 , ein Prozessor212 , ein Prozessor222 und optional andere Prozessoren (nicht gezeigt) als separate Hardwareeinheiten gezeigt. In anderen Ausführungsformen kann die Anzahl der Prozessoren anders sein, sowie die Grenzen der verschiedenen Komponenten und der funktionellen Einheiten. In einigen Ausführungsformen können die Prozessoren durch separate Hardwareausführungsthreads oder durch "logische Prozessoren" ersetzt werden, die auf einem oder mehreren physikalischen Prozessoren ablaufen. - Die Prozessoren
202 ,212 ,222 können verschiedene spezielle Schaltungen oder logische Elemente enthalten, um sichere oder vertrauenswürdige Operationen zu unterstützen. Zum Beispiel kann der Prozessor202 eine Sicherheitseingabe (SENTER)-Logik204 enthalten, um die Ausführung spezieller SENTER-Befehle zu unterstützen, die vertrauenswürdige Operationen initiieren können. Der Prozessor202 kann auch eine Busnachrichtenlogik206 enthalten, um Spezialbusnachrichten auf einem Systembus230 in Unterstützung spezieller SENTER-Operationen zu unterstützen. In alternativen Ausführungsformen können Speichersteuerfunktionen eines Chipsatzes240 Schaltungen in den Prozessoren zugeordnet sein und mehrere Prozessoren können auf einem einzelnen Chip enthalten sein. In diesen Ausführungsformen können Spezialbusnachrichten auch auf Bussen innerhalb der Prozessoren gesendet werden. Die Benutzung von Spezialbusnachrichten kann die Sicherheit oder Vertrauenswürdigkeit des Systems aus verschiedenen Gründen erhöhen. Schaltungselemente, wie die Prozessoren202 ,212 und222 oder der Chipsatz240 , können nur solche Nachrichten ausgeben oder beantworten, wenn diese geeignete Logikelemente von Ausführungsformen der vorliegenden Offenbarung enthalten. Daher kann ein erfolgreicher Austausch der Spezialbusnachrichten dabei helfen, eine korrekte Systemkonfiguration sicherzustellen. Spezialbusnachrichten können auch Aktivitäten ermöglichen, die normalerweise verboten werden sollten, wie das Zurücksetzen eines Plattformkonfigurationsregisters278 . Die Möglichkeit, potentiell gefährlichen, nicht vertrauenswürdigen Code auf verschiedenen Bustransaktionen ausfindig zu machen, kann eingeschränkt werden, indem ermöglicht wird, daß Spezialbusnachrichten nur in Antwort auf spezielle Sicherheitsbefehle ausgegeben werden. - Zusätzlich kann der Prozessor
202 einen sicheren Speicher208 enthalten, um Sicherheitsinitialisierungsoperationen zu unterstützen. In einer Ausführungsform kann der sicheren Speicher208 ein interner Cache des Prozessors202 sein, der etwa in einem speziellen Modus betrieben wird. In anderen Ausführungsformen kann der sichere Speicher208 ein Spezialspeicher sein. Andere Prozessoren, wie der Prozessor212 und der Prozessor222 , können auch eine SENTER-Logik214 ,224 , eine Busnachrichtenlogik216 ,226 und sichere Speicher218 ,228 umfassen. - Ein "Chipsatz" kann als eine Gruppe von Schaltungen und Logiken definiert sein, die einen Speicher und Eingabe/Ausgabe (I/O)-Operationen für einen oder mehrere angeschlossene Prozessoren unterstützen. Einzelne Elemente eines Chipsatzes können zusammen auf einem einzelnen Chip, oder auf einem Paar von Chips gruppiert sein, oder über viele Chips, einschließlich von Prozessoren, verteilt sein. In der Ausführungsform der
2 kann der Chipsatz240 einen Schaltkreis und eine Logik umfassen, um einen Speicher und I/O-Operationen zu unterstützen, um die Prozessoren202 ,212 und222 zu unterstützen. In einer Ausführungsform kann der Chipsatz240 mit einer Anzahl von Speicherseiten250 bis262 in einer Einrichtungszugriffseitentabelle248 verbunden sein, die Steuerinformationen enthält, welche angeben, ob Nichtprozessor-Einrichtungen auf die Speicherseiten250 bis262 zugreifen können. Der Chipsatz240 kann eine Speicherzugriffslogik247 umfassen, die einen direkten Speicherzugriff (DMA) aus I/O-Einrichtungen zum Auswählen von Teilen der Speicherseiten250 bis262 erlauben oder verbieten kann. In einigen Ausführungsformen kann die Einrichtungszugriffslogik247 alle relevanten Informationen enthalten, um solche Zugriffe zu erlauben oder abzulehnen. In anderen Ausführungsformen kann die Einrichtungszugriffslogik247 auf solche Informationen zugreifen, die in der Einrichtungszugriffsseitentabelle248 enthalten sind. Die tatsächliche Zahl der Speicherseiten ist nicht wichtig und wird sich abhängig von den Systemerfordernissen ändern. In anderen Ausführungsformen können die Speicherzugriffsfunktionen außerhalb des Chipsatzes240 sein. Die Funktionen des Chipsatzes240 können in alternativen Ausführungsformen weiterhin auf eine oder mehrere physikalische Einrichtungen verteilt sein. - Der Chipsatz
240 kann zusätzlich seine eigene Busnachrichtenlogik242 umfassen, um Spezialbusnachrichten auf einem Systembus230 in Unterstützung der Spezial-SENTER-Operationen zu unterstützen. Einige dieser Spezialbusnachrichten können eine Übertragung der Inhalte eines Schlüsselregisters240 zu einem Prozessor202 ,212 oder222 umfassen oder ermöglichen ein spezielles ALL_JOINED-Flag274 , das von einem Prozessor202 ,212 oder222 untersucht wird. Zusätzliche Merkmale der Busnachrichtenlogik242 können darin bestehen, Busaktivitäten durch die Prozessoren in einem "EXISTS"-Register272 zu registrieren und eine bestimmte Spezialbusnachrichtaktivität durch die Prozessoren in einem "JOINS"-Register272 zu speichern. Eine Übereinstimmung der Inhalte des EXISTS-Register272 und des JOINS-Registers272 kann benutzt werden, um das spezielle ALL_JOINED-Flag274 zu setzen, um anzuzeigen, daß alle Prozessoren in dem System in dem Sicherheitseingabeprozeß teilnehmen. - Der Chipsatz
240 kann standardisierte I/O-Operationen auf I/O-Bussen unterstützen, wie Peripheral Component Interconnect (PCI), Accelerated Graphics Pon (AGP), Universal Serial Bus (USB), Low Pin Count (LPC) Bus oder andere Arten eines I/O-Busses (nicht gezeigt). Eine Schnittstelle290 kann benutzt werden, um den Chipsatz240 mit einem Token276 zu verbinden, der eine oder mehrere Plattformkonfigurationsregister (PCR)287 ,797 enthält. In einer Ausführungsform kann die Schnittstelle290 der LPC-Bus (Low Pin Count (LPC) Interface Specification, Intel Corporation, rev. 1.0, 29. Dezember 1997) sein, der mit dem Zusatz bestimmter Sicherheitsverbesserungen modifiziert ist. Ein Beispiel einer solchen Sicherheitsverbesserung wäre eine Ortsbestätigungsnachricht, die einen vorher reservierten Nachrichtenkopf und Adressinformationen verwendet, die auf ein Plattformkonfigurationsregister (PCR)278 in dem Token276 zeigen. In einer Ausführungsform kann der Token276 Spezialsicherheitsmerkmale enthalten, und in einer Ausführungsform kann er ein Vertrautheitsplattformmodul (TPM)281 umfassen, das in Trusted Computing Platform Alliance (TCPA) Main Specification, Version 1.1a, 1. Dezember 2001, erschienen von TCPA, offenbart ist (zur Zeit der Einreichung der vorliegenden Anmeldung erhältlich über www.trustedpc.com). - Zwei Softwarekomponenten, die in der Systemumgebung
200 identifiziert sind, sind ein Secure Virtual Machine Monitor (SVMM)282 Modul und ein Secure Initialization Authenticated Code (SINIT-AC)280 Modul. Das Modul SVMM282 kann in einer Systemdiskette oder in einem anderen Massenspeicher gespeichert sein und, falls notwendig, an andere Orte verschoben oder kopiert werden. In einer Ausführungsform kann vor dem Beginn des Sicher heitsstartprozesses das SVMM282 auf eine oder mehrere der Speicherseiten250 bis262 verschoben oder kopiert werden. Nach dem Sicherheitseingabeprozeß kann eine virtuelle Maschinenumgebung erzeugt werden, in der das SVMM282 als der Code mit der höchsten Berechtigung in dem System betrieben wird, und kann benutzt werden, um den direkten Zugriff auf bestimmte Systemressourcen durch das Betriebssystem oder Anwendungen innerhalb der erzeugten virtuellen Maschinen zu erlauben oder abzulehnen. - Einige der Aktionen, die von dem Sicherheitseingabeprozeß benötigt werden, können außerhalb des Umfangs einfacher Hardwareimplementierungen liegen und können statt dessen vorteilhafterweise ein Softwaremodul verwenden, dessen Ausführung uneingeschränkt vertrauenswürdig sein kann. In einer Ausführungsform können diese Aktionen durch einen Sicherheitsinitialisierungs (SINIT)-Code ausgeführt werden. Drei beispielhafte Aktionen werden hier dargestellt. Diese Aktionen sollten jedoch nicht als Beschränkung betrachtet werden. Eine Aktion kann es erforderlich machen, daß verschiedene Steuerungen, die kritische Punkte der Systemkonfiguration darstellen, getestet werden, um sicherzustellen, daß die Konfiguration die korrekte Instantiierung der Sicherheitsumgebung unterstützt. In einer Ausführungsform kann ein erforderlicher Test sein, daß die Speichersteuerkonfiguration, die von dem Chipsatz
240 zur Verfügung gestellt wird, nicht zuläßt, daß zwei oder mehr unterschiedliche Systembusadressen den gleichen Ort in den Speicherseiten250 bis262 berühren. Eine zweite Aktion kann darin bestehen, die Einrichtungszugriffsseitentabelle248 und die Einrichtungszugriffslogik247 zu konfigurieren, um jene Speicherseiten, die von der speicheransässigen Kopie des SVMM282 benutzt werden, vor einer Beeinflussung durch Nicht-Prozessor-Einrichtungen zu schützen. Eine dritte Aktion kann darin bestehen, die Identität des SVMM282 Moduls zu berechnen und zu registrieren und ihm eine Systemsteuerung zu übertragen. Hierin bedeutet "Registrieren" das Einsetzen einer Vertrauenswürdigkeitsmaßeinheit des SVMM282 in ein Register, zum Beispiel in das PCR278 oder in das PCR279 . Wenn diese letztere Aktion vorgenommen wird, kann die Vertrauenswürdigkeit des SVMM282 durch einen potentiellen Systembenutzer überprüft werden. - Der SINIT-Code kann von dem Hersteller der Prozessoren oder der Chipsätze produziert werden. Zu diesem Zweck kann der SINIT-Code vertrauenswürdig sein, um bei den Sicherheitsstarts des Chipsatzes
240 zu helfen. Um den SINIT-Code zu verteilen, wird in einer Ausführungsform ein gut bekannter Verschlüsselungshash aus dem gesamten SINIT-Code gemacht, wodurch ein als "Digest" bekannter Wert erzeugt wird. Eine Ausführungsform erzeugt einen 160-Bit-Wert für das Digest. Das Digest kann anschließend durch einen privaten Schlüssel verschlüsselt werden, der in einer Ausführungsform von dem Hersteller des Prozessors aufbewahrt wird, um eine digitale Signatur zu bilden. Wenn der SINIT-Code mit der entsprechenden Digitalsignatur verknüpft wird, kann die Kombination als SINIT-Authentifizierungscode (SINIT-AC)280 bezeichnet werden. Kopien des SINIT-AC280 können später überprüft werden, wie nachfolgend erläutert wird. - Der SINIT-AC
280 kann auf einer Systemdiskette oder einem anderen Massenspeicher in einem festen Medium gespeichert werden und, falls notwendig, an andere Orte verschoben oder kopiert werden. In einer Ausführungsform kann vor dem Beginn des Sicherheitsstartprozesses der SINIT-AC280 in die Speicherseiten250 bis262 verschoben oder kopiert werden, um eine speicheransässige Kopie des SINIT-AC zu bilden. - Ein beliebiger logischer Prozessor kann den Sicherheitsstartprozeß initiieren und kann dann als initiierender logischer Prozessor (ILP) bezeichnet werden. In dem vorliegenden Beispiel wird der Prozessor
202 der ILP, obgleich ein beliebiger Prozessor auf dem Bussystem230 der ILP werden könnte. Weder die speicheransässige Kopie des SINIT-AC280 noch die speicheransässige Kopie des SVMM282 können zu dieser Zeit als vertrauenswürdig betrachtet werden, da, neben anderen Gründen, die anderen Prozessoren oder die DMA-Einrichtungen die Speicherseiten250 bis262 überschreiben können. - Der ILP (Prozessor
202 ) führt einen Spezialbefehl aus. Dieser Spezialbefehl wird als ein Sicherheitseingabe (SENTER)-Befehl bezeichnet und kann von einer SENTER-Logik204 unterstützt werden. Die Ausführung des SENTER-Befehls kann bewirken, daß der ILP (Prozessor202 ) Spezialbusnachrichten auf dem Systembus230 ausgibt und anschließend erhebliche Zeitintervalle auf nachfolgende Systemaktionen wartet. Nachdem die Ausführung von SENTER beginnt, wird eine dieser Spezialnachrichten (eine SENTER BUS NACHRICHT), auf dem Systembus230 verbreitet. Jene von dem ILP verschiedene Prozessoren, die als antwortende logische Prozessoren (RLPs) bezeichnet werden können, antworten auf die SENTER BUS NACHRICHT mit einem internen, nicht maskierbaren Ereignis. In dem vorliegenden Beispiel umfassen die RLPs den Prozessor212 und den Prozessor222 . Alle RLPs müssen aktuelle Operationen beenden, eine RLP-Bestätigung (ACK)-Spezialbusnachricht auf dem Systembus230 senden und dann einen Wartezustand einnehmen. Es wird darauf hingewiesen, daß der ILP auch seine eigene ACK-Nachricht über den Systembus230 sendet. - Der Chipsatz
240 kann ein Paar von Registern enthalten, das "EXISTS"-Register270 und das "JOINS"-Register272 . Diese Register können benutzt werden, um zu verifizieren, daß der ILP und alle RLPs korrekt auf die SENTER BUS NACHRICHT antworten. In anderen Ausführungsformen kann der Chipsatz240 allen operationellen logischen Prozessoren in dem System nachgehen, indem er eine "1" in das entsprechende Bit des EXISTS-Register270 auf jeder Systembustransaktion schreibt, die von dem Prozessor ausgeführt wird. In dieser Ausführungsform enthält jede Transaktion auf dem Systembus230 ein Identifizierungsfeld, das die Kennung des logischen Prozessors enthält. In einer Ausführungsform besteht dies aus einer physikalischen Prozessorkennung und einer Kennung für den Hardwareausführungsthread in jedem physikalischen Prozessor. Wenn beispielsweise ein Thread, der auf dem Prozessor222 ausgeführt wird, eine Bustransaktion auf dem Systembus230 hervorruft, würde der Chipsatz240 diese logische Prozessorkennung in der Transaktion sehen und eine "1" an den entsprechenden Ort286 in dem EXISTS-Register270 schreiben. Während des Sicherheitsstartprozesses, wenn der gleiche Thread auf dem Prozessor222 seine ACK-Nachricht auf dem Systembus230 sendet, würde der Chipsatz240 auch dies sehen und könnte eine "1" an den entsprechenden Ort288 in dem JOINS-Register272 schreiben. (Im Beispiel der2 ist zur Verdeutlichung jeder physikalische Prozessor mit nur einem einzelnen ausgeführten Thread gezeigt. In alternativen Ausführungsformen können die physikalischen Prozessoren mehrere Threads unterstützen und dabei mehrere logische Prozessoren). Wenn die Inhalte des JOINS-Registers272 zu den Inhalten des EXISTS-Registers270 passen, kann der Chipsatz240 eine ALL_JOINED-Flag246 setzen, das anzeigt, daß alle Prozessoren korrekt auf die SENTER BUS NACHRICHT geantwortet haben. - In einer anderen Ausführungsform können das EXISTS-Register
270 und das JOINS-Register272 damit fortfahren, nach dem Setzen des ALL_JOINED-Flags246 zur Sicherheit beizutragen. Während der Zeit nach dem Setzen des ALL_JOINED-Flags246 bis zum Ende der Vertrauenswürdigkeits- oder Sicherheitsoperationen, kann der Chipsatz240 damit fortfahren, die Buszyklen zu überwachen und mit dem JOINS-Register272 zu vergleichen. Wenn der Chipsatz während dieser Periode eine Bustransaktion von einem logischen Prozessor sieht, die nicht aktuell in dem JOINS-Register272 identifiziert ist, kann der Chipsatz240 annehmen, daß dieser logische Prozessor etwas spät "erschienen" ist. Dies würde implizieren, daß ein solcher logischer Prozessor nicht an dem Sicherheitsstartprozeß teilgenommen hat und daher einen Angreifer (Sicherheitsbedrohung) darstellen könnte. Unter solchen Umständen kann der Chipsatz240 entsprechend antworten, um diesen Angreifer aus der gesicherten Umgebung herauszuhalten. In einer Ausführungsform kann der Chipsatz240 ein Systemreset unter solchen Umständen betreiben. In einer zweiten Ausführungsform kann eine ähnliche Ermittlung eines "verspäteten" Prozessors durch jeden logischen Prozessor erreicht werden, der ein spezielles reserviertes Signal auf dem Systembus nach jeder Transaktion ausgibt, die der Verbreitung der ACK-Busnachricht folgt. Wenn in dieser Ausführungsform der Chipsatz240 nach dem Setzen des ALL_JOINED-Flags246 Bustransaktion beobachtet, die von einem Prozessor ohne ein bestätigtes Spezialsignal initiiert wurde, kann der Chipsatz240 wieder annehmen, daß dieser logische Prozessor irgendwie "verspätet" erschienen ist und einen Angreifer darstellen kann. - Nach dem Erscheinen der SENTER BUS NACHRICHT fragt der ILP (Prozessor
202 ) die ALL_JOINED-Flag246 ab, um zu sehen, wann und ob alle Prozessoren korrekt mit ihren ACKs geantwortet haben. Wenn das Flag246 nie gesetzt ist, sind verschiedene Implementierungen möglich. Ein Überwachungstimer in dem ILP oder dem Chipsatz oder einem anderen Ort können ein Systemreset hervorrufen. Alternativ kann das System hängen, was einen Reset durch den Betreiber erforderlich macht. In beiden Fällen wird die Beanspruchung einer Sicherheitsumgebung geschützt (dadurch daß der Sicherheitsstartprozeß nicht beendet wird, bis alle Prozessoren teilnehmen), obgleich das System möglicherweise nicht weiterarbeitet. Im normalen Betrieb wird nach kurzer Zeit die ALL_JOINED-Flag246 gesetzt und der ILP kann sicherstellen, daß alle anderen logischen Prozessoren in einen Wartezustand eingetreten sind. - Wenn das ALL_JOINED-Flag
246 gesetzt ist, kann der ILP (Prozessor202 ) sowohl eine Kopie des SINIT-AC280 als auch einen Schlüssel284 in einen sicherer Speicher208 verschieben, um den SINIT-Code, der in dem SINIT-AC280 enthalten ist, zu authentifizierten und nachfolgend auszuführen. In einer Ausführungsform kann dieser Sicherheitsspeicher208 ein interner Cache des ILP (Prozessor202 ) sein, der etwa in einem speziellen Modus betrieben wird. Der Schlüssel284 stellt einen öffentlichen Schlüssel dar, der dem privaten Schlüssel entspricht, der zum Verschlüsseln der digitalen Signatur benutzt wird, die in dem SINIT-AC280 Modul enthalten ist, und wird benutzt, um die digitale Signatur zu überprüfen und dabei den SINIT-Code zu authentifizieren. In einer Ausführungsform kann der Schlüssel284 bereits in dem Prozessor gespeichert sein, etwa als ein Teil der SENTER-Logik204 . In einer anderen Ausführungsform kann der Schlüssel in einem Nur-Lese-Schlüsselregister204 des Chipsatzes240 gespeichert sein, der von dem ILP gelesen wird. In noch einer anderen Ausführungsform kann das Schlüsselregister244 von entweder dem Prozessor oder dem Chipsatz tatsächlich ein Verschlüsselungs-Digest des Schlüssels284 enthalten, wobei der Schlüssel284 selbst in dem SINIT-AC280 Modul enthalten ist. In dieser letzteren Ausführungsform liest der ILP das Digest aus dem Schlüsselregister244 , berechnet einen äquivalenten Verschlüsselungshash über den Schlüssel284 , der in dem SINIT-AC280 eingebettet ist, und vergleicht die zwei Digests, um sicherzustellen, daß der zur Verfügung gestellte Schlüssel284 tatsächlich vertrauenswürdig ist. - Eine Kopie des SINIT-AC und eine Kopie des öffentlichen Schlüssels können sich dann in dem sicheren Speicher
208 befinden. Der ILP kann nun die Kopie des SINIT-AC durch Entschlüsseln der digitalen Signatur, die in der Kopie des SINIT-AC enthalten ist, unter Verwendung der Kopie des öffentlichen Schlüssels überprüfen. Diese Entschlüsselung erzeugt eine Originalkopie eines Digest des Verschlüsselungshashs. Wenn ein neu berechneter Digest zu diesem Originaldigest paßt, kann die Kopie des SINIT-AC und der darin enthaltene SINIT-Code als vertrauenswürdig betrachtet werden. - Der ILP kann nun eine andere Spezialbusnachricht, eine SENTER CONTINUE NACHRICHT, über den Systembus
230 ausgeben, die den wartenden RLPs (Prozessor212 , Prozessor222 ) und dem Chipsatz240 signalisiert, daß gesicherte Operationen initiiert werden. Der ILP kann nun die eindeutige Identität des SINIT-AC-Moduls registrieren, indem er den Wert des Verschlüsselungsdigits des SINIT-AC-Moduls in ein Plattformkonfigurationsregister272 in dem Sicherheitstoken276 schreibt, wie nachfolgend dargestellt. Die Ausführung des SENTER-Befehls des ILPs kann nun durch Übertragen der Ausführungssteuerung auf der vertrauenswürdige Kopie des SINIT-Codes, der in dem sicherer Speicher208 des ILP gehalten ist, beendet werden. Der vertrauenswürdige SINIT-Code kann anschließend seinen Systemtest und Konfigurationsaktionen ausführen und die speicheransässige Kopie des SVMM registrieren gemäß der obigen Definition von "Registrieren". - Die Registrierung der speicheransässigen Kopie des SVMM kann auf verschiedene Weisen ausgeführt werden. In einer Ausführungsform schreibt der SENTER-Befehl, der auf dem ILP abläuft, das berechnete Digest des SINIT-AC in das PCR
278 in dem Sicherheitstoken276 . Nachfolgend kann der vertrauenswürdige SINIT-Code das berechnete Digest des speicheransässigen SVMM zu dem gleichen PCR278 oder in ein anderes PCR279 in dem Sicherheitstoken276 schreiben. Wenn das SVMM-Digest in das gleiche PCR278 geschrieben wird, zerhackt der Sicherheitstoken276 die Originalinhalte (SINIT-Digest) mit den neuen Wert (SVMM-Digest) und schreibt das Ergebnis zurück in das PCR278 . In Ausführungsformen, bei denen das erste (initiierende) Schreiben in das PCR278 auf den SENTER-Befehl beschränkt ist, kann das resultierende Digest als eine Wurzelvertrauenswürdigkeit für das System benutzt werden. - Wenn der vertrauenswürdige SINIT-Code seine Ausführung beendet hat und die Identität des SVMM in einem PCR registriert hat, kann der SINIT-Code eine ILP-Ausführungssteuerung zu dem SVMM übertragen. In einer typischen Ausführungsform können die ersten SVMM-Befehle, die von dem ILP ausgeführt werden, Selbstinitialisierungsroutinen für das SVMM darstellen. Das ILP kann in einer Ausführungsform einzelne Spezialbusnachrichten einer RLP JOIN NACHRICHT zu jedem RLP senden, wodurch jeder der RLPs bei Operationen unter Überwachung der nun ausgeführten Kopie des SVMM teilnimmt. Von diesem Punkt an wird das gesamte System in einem vertrauenswürdigen Modus betrieben, wie bei der Erläuterung der
3 nachfolgend dargestellt wird. - Bezug nehmend auf
3 wird ein Diagramm einer beispielhaften vertrauenswürdigen oder gesicherten Softwareumgebung gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform der3 kann vertrauenswürdige und nicht vertrauenswürdige Software gleichzeitig geladen werden und kann gleichzeitig auf einem einzelnen Computersystem ausgeführt werden. Ein SVMM350 erlaubt oder verhindert selektiv den direkten Zugriff auf Hardwareressourcen380 von einem oder mehreren nicht vertrauenswürdigen Betriebssystemen340 und nicht vertrauenswürdigen Anwendungen310 bis330 . In diesem Zusammenhang bedeutet "nicht vertrauenswürdig" nicht notwendigerweise, daß das Betriebssystem oder die Anwendungen absichtlich nicht richtig funktionieren, aber daß die Größe und die Auswahl eines interagierenden Codes es unmöglich machen, zuverlässig festzustellen, daß sich die Software wie gewünscht verhält und daß keine Viren oder anderer fremder Code bei seiner Ausführung stört. In einer typischen Ausführungsform kann der nicht vertrauenswürdige Code aus dem normalen Betriebssystem und Anwendungen bestehen, die auf heutigen Personalcomputern zu finden sind. - Das SVMM
350 erlaubt oder verhindert außerdem selektiv einen direkten Zugriff auf Hardwareressourcen380 aus einem oder mehreren vertrauenswürdigen oder sicheren Kernen360 und einem oder mehreren vertrauenswürdigen Anwendungen370 . Ein solcher vertrauenswür diger oder sicherer Kern360 und solche vertrauenswürdigen Anwendungen370 können in der Größe und in der Funktionalität begrenzt sein, um bei der Möglichkeit zu helfen, an ihnen eine Vertrauenswürdigkeitsanalyse vorzunehmen. Die vertrauenswürdige Anwendung370 kann ein beliebiger Softwarecode, ein Programm, eine Routine oder ein Satz von Routinen sein, der in einer sicheren Umgebung ausführbar ist. Daher kann die vertrauenswürdige Anwendung370 eine Auswahl von Anwendungen oder Codesequenzen sein oder kann eine relativ kleine Anwendung, wie ein Java-Applet, sein. - Befehle oder Operationen, die normalerweise von einem Betriebssystem
340 oder einem Kern360 ausgeführt werden und einem Systemressourcenschutz oder Berechtigungen umwandeln könnten , können von der SVMM350 abgefangen werden und selektiv erlaubt, teilweise erlaubt oder zurückgewiesen werden. Als ein Beispiel würden in einer typischen Ausführungsform Befehle, welche die Seitentabelle des Prozessors ändern, die normalerweise von dem Betriebssystem340 oder dem Kern360 ausgeführt würden, statt dessen von dem SVMM350 abgefangen werden, wodurch sichergestellt wird, daß die Aufforderung nicht versucht, Seitenberechtigungen außerhalb der Domain in der virtuellen Maschine zu ändern. - Bezug nehmend auf
4A wird eine Ausführungsform eines Mikroprozessorsystems400 gezeigt, der dazu eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen. Eine CPU A410 , eine CPU B414 , eine CPU C418 und eine CPU D422 können mit einem zusätzlichen Mikrocode oder einer Logikschaltung ausgestattet sein, um die Ausführung der Spezialbefehle zu unterstützen. In einer Ausführungsform kann dieser zusätzliche Mikrocode oder die logische Schaltung die SENTER-Logik204 der2 sein. Diese Spezialbefehle können die Ausgabe von Spezialbusnachrichten auf dem Systembus420 unterstützen, welche eine korrekte Synchronisation der Prozesse ermöglichen, während die Sicherheitsumgebung gestartet wird. In einer Ausführungsform kann die Ausgabe von Spezialbusnachrichten von einer Schaltung unterstützt werden, wie der Busnachrichtenlogik206 der2 . In gleicher Weise kann der Chipsatz430 ähnlich zu dem Chipsatz240 sein und kann die oben erwähnten Spezialzyklen auf dem Systembus420 unterstützen. Die Zahl der physikalischen Prozessoren kann bei der Implementierung bei einer speziellen Ausführungsform variieren. In einer Ausführungsform können die Prozessoren Mikroprozessoren der Klasse Intel® Pentium® sein. Der Chipsatz430 kann mit Massenspeichereinrichtungen, wie einem festen Medium444 oder einem entfernbaren Medium448 , über einen PCI-Bus446 oder alternativ über USB442 , einem Integrated Controller Electronics (IDE)-Bus (nicht gezeigt), einem Small Computer Sy stems Interconnect (SCSI)-Bus (nicht gezeigt) oder anderen I/O-Bussen verbunden sein. Die festen Medien444 oder die entfernbaren Medien448 können Magnetplatten, ein Magnetband, magnetische Disketten, magneto-optische Laufwerke, CD-ROM, DVD-ROM, Flash Memory Cards oder ändere Formen von Massenspeichern sein. - In der Ausführungsform der
4A sind vier Prozessoren CPU A410 , CPU B414 , CPU C418 und CPU D422 als vier separate Hardwareeinheiten gezeigt. In anderen Ausführungsformen kann die Zahl der Prozessoren differieren. Allerdings können die physikalisch diskreten Prozessoren durch separate Hardwareausführungsthreads ersetzt werden, die auf einen oder mehreren physikalischen Prozessoren ablaufen. Im letzteren Fall bearbeiten diese Threads viele der Attribute der zusätzlichen physikalischen Prozessoren. Um einen allgemeinen Ausdruck zur Beschreibung zu haben, wenn eine beliebige Mischung von mehreren physikalischen Prozessoren und mehreren Threads auf Prozessoren verwendet wird, kann der Ausdruck "logischer Prozessor" benutzt werden, um entweder einen physikalischen Prozessor oder einen Thread, der in einem oder mehreren physikalischen Prozessoren ausgeführt wird, zu beschreiben. Damit kann ein Prozessor mit einem einzelnen Thread als ein einzelner logischer Prozessor betrachtet werden und Prozessoren mit mehreren Threads oder mehreren Kernen können als mehrere logische Prozessoren betrachtet werden. - In einer Ausführungsform ist der Chipsatz
430 mit einem modifizierten LPC-Bus450 verbunden. Der modifizierte LPC-Bus450 kann benutzt werden, um den Chipsatz430 mit einem Sicherheitstoken454 zu verbinden. Der Token454 kann in einer Ausführungsform das TPM471 umfassen, das von der Trusted Computing Platform Alliance (TCPA) zur Verfügung gestellt wird. - Bezug nehmend auf die
4B wird eine alternative Ausführungsform eines Mikrocomputersystems490 gezeigt, das dazu eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen. Im Unterschied zu der Ausführungsform der4A kann die CPU A410 und die CPU B414 mit dem Chipsatz428 über einen Systembus A402 verbunden sein, während die CPU C418 und die CPU D422 mit dem Chipsatz428 über einen Systembus B404 verbunden sein kann. In anderen Ausführungsformen können mehr als zwei Systembusse verwendet werden. In anderen alternativen Ausführungsformen können Punkt-zu-Punkt-Busse benutzt werden. Spezialbefehle können die Ausgabe von Spezialbusnachrichten auf dem Systembus A402 und auf dem Systembus B404 unterstützen, die eine korrekte Synchronisie rung der Prozessoren ermöglichen während dem Starten der Sicherheitsumgebung. In einer Ausführungsform kann die Ausgabe einer Spezialbusnachricht von einer Schaltung unterstützt werden, wie von der Busnachrichtenlogik206 der2 . - In einer Ausführungsform ist der Chipsatz
428 zur Aufrechterhaltung der Übereinstimmung und der Kohärenz zwischen dem Systembus A402 und dem Systembus B404 verantwortlich. Wenn eine standardisierte oder eine Spezialbusnachricht über den Systembus A402 gesendet wird, spiegelt der Chipsatz428 diese Nachricht (falls geeignet) auf dem Systembus B404 wider und umgekehrt. - In einer alternativen Ausführungsform behandelt der Chipsatz
428 den Systembus A402 und den Systembus B404 als unabhängige Untersysteme. Beliebige Spezialbusnachrichten, die auf dem Systembus A402 ausgegeben werden, wirken nur auf Prozessoren an diesem Bus. In gleicher Weise wirken Spezialbusnachrichten, die auf dem Systembus B404 ausgegeben werden, nur auf Prozessoren an diesem Bus. Jeglicher geschützter Speicher, der gegenüber dem Systembus A402 aufgebaut ist, ist nur von Prozessoren ansprechbar, die mit dem Systembus A402 verbunden sind, und die Prozessoren an dem Systembus B404 werden als nichtvertrauenswürdige Einrichtungen behandelt. Um Zugriff auf irgendeinen geschützten Speicher zu erlangen, der für die CPU A410 und die CPU B414 auf dem Systembus A402 aufgebaut wurde, müssen die Prozessoren CPU C418 und CPU D422 auf dem Systembus B404 ihre eigene SENTER-Prozesse ausführen, wodurch eine registrierte Umgebung erzeugt wird, die gleich zu der von den Prozessoren auf dem Systembus A402 erzeugten ist. - Bezug nehmend auf
5 wird ein schematisches Diagramm eines beispielhaften Mikroprozessorsystems500 , das dafür eingerichtet ist, die gesicherte Softwareumgebung der3 zu unterstützen, gemäß einer alternativen Ausführungsform der vorliegenden Erfindung gezeigt. Im Unterschied zu der Ausführungsform der4A an kann jeder Prozessor (zum Beispiel die CPU510 ) bestimmte Chipsatzfunktionen (zum Beispiel die Chipsatzfunktionen594 ) umfassen, die zum Beispiel Speichersteuerfunktionen und Einrichtungszugriffslogikfunktionen ausführen. Diese Chipsatzfunktionen ermöglichen dabei die direkte Verbindung von Speicher (zum Beispiel dem Speicher A502 ) mit dem Prozessor. Andere Chipsatzfunktionen können in einem separaten Chipsatz530 verbleiben. Spezialbusnachrichten können über den Systembus520 ausgegeben werden. - Jeder Prozessor kann einen indirekten Zugriff auf einen Speicher vornehmen, der mit anderen Prozessoren verbunden ist. Diese Zugriffe können jedoch erheblich langsamer, im Vergleich zu Zugriffen auf prozessoreigenen Speicher sein. Vor dem Start des SENTER-Prozesses kann die Software Kopien von SINIT-AC
566 und SVMM574 von einem festen Medium544 in einem lokalen Speicher504 verschieben, und dabei eine Kopie des SINIT-AC556 und eine Kopie des SVMM572 bilden. In dieser Ausführungsform kann der Speicher504 ausgewählt werden, da direkt von dem Prozessor auf ihn zugegriffen werden kann, der dafür bestimmt ist, der ILP zu sein. Im Beispiel der5 ist dies die CPU B514 . Alternativ können die Kopien des SINIT-AC566 und der SVMM574 in anderen Speichern plaziert werden, die mit anderen (nicht-ILP) Prozessoren verknüpft sind, so lange der ILP514 die Möglichkeit hat, auf diese Speicher zuzugreifen. Die CPU B ILP514 startet den Sicherheitseingabeprozeß durch Abgeben des SENTER-Befehls, wie bereist bei2 beschrieben, und mit ähnlichen Konsequenzen und ausgegeben Buszyklen. Der Chipsatz530 kann das EXISTS-Register576 , das JOINS-Register580 und das ALL_JOINED-Flag584 , wie im Zusammenhang mit2 beschrieben, verwenden, um zu bestimmen, ob alle Prozessoren korrekt auf die SENTER BUS NACHRICHT geantwortet haben, und signalisiert diese Information an den ILP. Der ILP (CPU B514 ) kann wieder die speicheransässige Kopie des SINIT-AC556 in einen sicheren Speicher560 zusammen mit einer Kopie des öffentlichen Schlüssels564 verschieben. Nach der Überprüfung und Registrierung des SINIT-AC556 kann der ILP damit fortfahren, die speicheransässige Kopie des SVMM572 zu überprüfen und zu registrieren. - Bezug nehmend auf die
6 wird eine Zeichnung einer Zeitrahmenleiste von verschiedenen Operationen gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Die Zeitrahmenleiste der6 zeigt den gesamten Zeitablauf der Operationen, die im Zusammenhang mit dem beispielhaften System diskutiert wurden, das im Zusammenhang mit2 vorhergehend diskutiert wurde. Wenn die Software festlegt, daß sichere oder vertrauenswürdige Operationen gewünscht sind, lokalisiert eine Software ein SINIT-AC280 und ein SVMM282 , die für einen nachfolgenden SENTER-Befehl verfügbar sind, und macht eine Kopie davon. In diesem Beispiel lädt die Software eine Kopie der SINIT-AC280 und eine Kopie des SVMM282 in eine oder mehrere Speicherseiten250 bis262 . Ein Prozessor, in dem vorliegenden Beispiel der Prozessor202 , wird dann als der ILP ausgewählt, welcher den SENTER-Befehl zur Zeit612 ausgibt. Zu der Zeit614 gibt der SENTER-Befehl des ILP die SENTER BUS NACHRICHT616 aus. Der ILP gibt dann sein eigenes SENTER-ACK608 zur Zeit618 aus, bevor er einen Zustand zum Warten auf das Chipsatz-Flag zur Zeit628 einnimmt. - Jeder RLP, wie der Prozessor
222 , antwortet auf die SENTER BUS NACHRICHT616 durch Abschließen des aktuellen Befehls während der Zeit620 . Der RLP gibt dann seinen SENTER-ACK622 aus und nimmt einen Zustand634 ein, bei dem er auf eine SENTER CONTINUE NACHRICHT wartet. - Der Chipsatz
240 verbringt die Zeit624 damit, das JOINS-Register272 in Reaktion auf die SENTER-ACK Nachrichten, die auf dem Systembus230 beobachtet werden, zu setzen. Wenn die Inhalte des JOINS-Registers272 zu den Inhalten des EXISTS-Registers270 passen, setzt der Chipsatz240 die ALL_JOINED-Flag246 zur Zeit626 . - Zu dieser Zeit bleibt der ILP in einer Schleife während er die ALL_JOINED-Flag
246 abruft. Wenn die ALL_JOINED-Flag246 gesetzt ist und der ILP feststellt, daß die ALL_JOINED-Flag246 zur Zeit630 gesetzt ist, kann der ILP die SENTER CONTINUE NACHRICHT während der Zeit632 ausgeben. Wenn die SENTER CONTINUE NACHRICHT auf dem Systembus230 zur Zeit636 verbreitet ist, können die RLPs in einen Wait-for-Join-Zustand eintreten. Zum Beispiel tritt der RLP des Prozessors222 in einen Wait-for-Join-Zustand in der Zeitperiode638 ein. - Nach dem Ausgeben der SENTER CONTINUE NACHRICHT kann der ILP (in der Zeitperiode
640 ) den öffentlichen Schlüssel des Schlüsselregisters244 des Chipsatzes240 und eine Kopie des SINIT-AC in seinen sicheren Speicher208 geben, um eine Kopie des Schlüssels und eine Kopie des SINIT-AC zu bilden. In anderen Ausführungsformen kann das Schlüsselregister244 ein Digest des öffentlichen Schlüssels enthalten und der tatsächliche öffentliche Schlüssel kann in oder mit der SINIT-AC enthalten sein. Nach der Authentifizierung der Kopie des SINIT-AC, wie oben in Verbindung mit2 beschrieben, kann der ILP tatsächlich die Kopie des SINIT-AC in dem sicheren Speicher208 ausführen. - Nachdem die Kopie des SINIT-AC in dem sicheren Speicher
208 die Ausführung beginnt, überprüft und registriert sie die speicheransässige Kopie des SVMM (während der Zeitperiode640 ). Nachdem die Kopie des SVMM dem PCR278 des Sicherheitstoken276 registriert ist, beginnt die speicheransässige Kopie des SVMM selbst mit der Ausführung. Zu dieser Zeit, während die Zeitperiode650 anhält, werden SVMM-Operationen in dem ILP aufgebaut. - Unter den ersten Dingen, welche die ILP SVMM-Operation macht, ist die Ausgabe einer einzelnen RLP JOIN NACHRICTH an den Systembus
230 . Ein Beispiel ist eine JOIN NACHRICHT644 des Prozessors222 . Diese Nachricht kann den Ort in dem Speicher enthalten, an dem der RLP Prozessor222 bei der Ausführung der registrierten speicheransässigen Kopie des SVMM anknüpft. Alternativ können die ILP SVMM-Operationen einen Speicherort an einem vorbestimmten Ort in dem Chipsatz oder dem Speicher registriert haben, und nach dem Empfangen der JOIN NACHRICHT ruft der RLP seine Startadresse von diesem Ort auf. Nach dem Empfangen der JOIN NACHRICHT des Prozessors222 und der Ermittlung seiner Startadresse springt der RLP Prozessor222 (während der Zeitperiode646 ) an diesen Ort und verknüpft die Ausführung der registrierten, speicheransässigen Kopie des SVMM. - Nachdem alle RLPs die registrierte, speicheransässige Kopie des SVMM verknüpft haben, werden gesicherte Operationen über das Mikrocomputersystem
200 aufgebaut. - Bezug nehmend auf
7 wird ein Ablaufdiagramm der Software und anderer Prozeßblöcke gemäß einer Ausführungsform der Erfindung gezeigt. Zur Klarheit zeigt die7 nur Prozeßblöcke für einen einzelnen beispielhaften RLP. In anderen Ausführungsformen können verschiedene antwortende logische Prozessoren vorhanden sein. - Der Prozeß
700 beginnt beim Block710 , wenn ein logischer Prozessor eine Kopie der SINIT-AC und der SVMM-Module macht, die für einen Zugriff durch einen nachfolgenden SENTER-Befehl verfügbar sind. In diesem Beispiel lädt der ILP im Block712 den SINIT-AC und den SVMM-Code aus einem Massenspeicher in einen physikalischen Speicher. In alternativen Ausführungsformen kann dies ein beliebiger logischer Prozessor tun, und nicht nur der ILP. Ein Prozessor wird der ILP durch Ausführen des SENTER-Befehls, wie im Block714 gezeigt. Im Block716 gibt der ILP SENTER-Befehl eine SENTER BUS NACHRICHT aus. Der ILP gibt dann Block718 seine eigene SENTER-ACK Nachricht an den Chipsatz aus. Der ILP nimmt dann einen Wartezustand ein, der als Entscheidungsblock720 gezeigt ist, und wartet darauf, daß der Chipsatz sein ALL_JOINED-Flag setzt. - Nachdem jeder RLP die SENTER BUS NACHRICHT im Block
770 empfängt, stoppt er die Ausführung mit dem Ende des aktuellen Befehls und gibt im Block772 seinen eigenen SENTER-ACK aus. Jeder RLP nimmt dann einen Wartezustand ein, als Entscheidungsblock774 gezeigt, und wartet, daß eine SENTER CONTINUE NACHRICHT von dem ILP ankommt. - Der Chipsatz setzt die entsprechenden Bits in dem JOINS-Register, wenn die SENTER ACK Nachricht empfangen ist. Wenn die Inhalte des JOINS-Registers gleich zu den Inhalten des EXISTS-Registers sind, setzt der Chipsatz sein ALL_JOINED-Flag, die dem ILP signalisiert, von dem Entscheidungsblock
720 fortzufahren. Nach Verlassen des Entscheidungsblocks720 über den JA-Pfad, gibt der ILP dann eine SENTER CONTINUE NACHRICHT im Block722 aus. Dies signalisiert jedem RLP, von dem Entscheidungsblock774 fortzufahren. Jeder RLP nimmt dann einen zweiten Wartezustand ein, der als Entscheidungsblock776 gezeigt ist, und wartet auf eine SENTER JOIN NACHRICHT. - In der Zwischenzeit verschiebt der ILP Block
724 den öffentlichen Schlüssel des Chipsatzes und die speicheransässige Kopie des SINIT-AC in seinen eigenen sicheren Speicher zur sicheren Ausführung. Der ILP benutzt im Block726 den Schlüssel, um die sicherheitsspeicheransässige Kopie des SINIT-AC zu überprüfen und führt sie dann aus. Die Ausführung des SINIT-AC kann Tests der Systemkonfigurationen und der SVMM-Kopie vornehmen, registriert dann die SVMM-Identität und beginnt schließlich mit der Ausführung des SVMM im Block728 . Als Teil der Aktionen, die in Block728 ausgeführt werden, kann der ILP SINIT-Code die Einrichtungszugriffsseitentabelle248 und die Einrichtungszugriffslogik247 des Speichers und des Chipsatzes konfigurieren, um jene Speicherseiten, die von der speicheransässigen Kopie des SVMM282 benutzt werden, vor einem Eingriff durch Nicht-Prozessor-Einrichtungen zu schützen, wie in Block754 gezeigt. - Nachdem der ILP die Ausführung unter der Steuerung des SVMM beginnt, sendet der ILP-Block
730 eine individuelle SENTER JOIN NACHRICHT zu jedem RLP. Nach dem Ausgeben der SENTER JOIN NACHRICHT beginnt der ILP im Block732 mit den SVMM-Operationen. - Der Empfang der SENTER JOIN NACHRICHT bewirkt, daß jeder RLP den Wartezustand, der in dem Block
776 dargestellt ist, entlang dem JA-Pfad verläßt und beginnt mit den SVMM-Operationen im Block780 . Die SENTER JOIN NACHRICHT kann die SVMM-Einsprungstelle enthalten, zu der der RLP beim Verknüpfen der SVMM-Operationen abzweigt. Alternativ kann der ILP SVMM-Code die geeignete RLP-Einsprungstelle in einem Systemort (zum Beispiel in dem Chipsatz) registrieren, der von der RLP nach dem Empfang der SENTER JOIN NACHRICHT abgerufen wird. - Obgleich verschiedene offenbarte Ausführungsformen ein oder mehrer Prozessoren enthalten (entweder logische oder physikalische Prozessoren), ist zu verstehen, daß solche Mehrfachprozessoren und/oder Systeme mit mehreren Threads in größerem Detail beschrieben werden, um die zusätzliche Komplexität zu erklären, die mit dem Sichern eines Systems mit mehreren logischen oder physikalischen Prozessoren verbunden ist. Eine Ausführungsform, die wahrscheinlich auch in weniger komplexen Systemen vorteilhaft ist, kann nur einen Prozessor benutzen. In einigen Fällen kann der eine physikalische Prozessor mehrere Threads aufweisen und daher mehrere logische Prozessoren umfassen (und demgemäß einen ILP und einen RLP, wie beschrieben). In anderen Fällen kann jedoch ein System mit einem einzelnen Prozessor und einem einzelnen Thread benutzt werden und immer noch die offenbarten Sicherheitsbearbeitungstechniken anwenden. In solchen Fällen ist möglicherweise kein RLP vorhanden. Die Sicherheitsbearbeitungstechniken wirken jedoch immer noch, um die Wahrscheinlichkeit zu verringern, daß Daten gestohlen oder in einer nichtautorisierter Weise manipuliert werden können.
- In der vorhergehenden Beschreibung wurde die Erfindung in Bezug auf bestimmte beispielhafte Ausführungsformen davon beschrieben. Es wird jedoch deutlich, daß verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Gedanken und dem Umfang der Erfindung, wie er in den nachfolgenden Ansprüchen dargelegt ist, abzuweichen. Die Beschreibung und die Zeichnungen sind daher eher in einem beispielhaften Sinne als in einem beschränkenden Sinne zu verstehen.
Claims (41)
- System mit wenigstens zwei logischen Prozessoren und einem Secure Virtuel Machine Monitor, wobei ein erster der logischen Prozessoren einen sicheren Speicher umfaßt, um zur Initiierung einer vertrauenswürdigen Operation einen gesicherten Eingabebefehl auszuführen, wobei der gesicherte Eingabebefehl dazu dient, den ersten logischen Prozessor zu veranlassen, eine Spezialbusnachricht an den zweiten logischen Prozessor auszugeben, um den zweiten logischen Prozessor mit dem ersten logischen Prozessor in sicheren Operationen zu synchronisieren, und das System ferner einen Chipsatz umfaßt, um vor einem Zugriff auf den Secure Virtuel Machine Monitor durch eine vom ersten logischen Prozessor verschiedene Einrichtung zu schützen.
- System nach Anspruch 1, bei dem sich der sichere Speicher in einem Cache des ersten logischen Prozessors befindet.
- System nach Anspruch 1, bei dem der sichere Speicher vor einem Zugriff durch Schaltungen geschützt ist, die von dem ersten logischen Prozessor verschieden sind.
- System nach Anspruch 1, das weiterhin einen Sicherheitstoken umfaßt, der ein Plattformkonfigurationsregister aufweist, um ein Digest zu speichern.
- System nach Anspruch 1, bei dem der zweite logische Prozessor dazu dient, die Ausführung eines aktuellen Befehls abzuschließen und eine zweite Spezialbusnachricht in Antwort auf die erste Spezialbusnachricht auszugeben.
- System nach Anspruch 5, bei dem der Chipsatz dazu dient, ein Flag in Antwort auf den Empfang der zweiten Spezialbusnachricht zu setzen.
- System nach Anspruch 6, bei dem der zweite logische Prozessor an einen Einsprungspunkt des Secure Virtual Machine Monitor in Reaktion auf eine dritte Spezialbusnachricht springt.
- System nach einem der Ansprüche 1 bis 7, wobei einer der Prozessoren folgendes umfaßt: eine sichere Eingabelogik zum Ausführen eines ersten Befehls zum Aufrufen einer sicheren Operationsinitialisierung und zum Ermitteln eines Zeitpunktes, um mit einer Ausführung eines Secure Initialization Authenticated Code fortzufahren, und eine Busnachrichtenlogik, um eine erste Spezialbusnachricht in Reaktion auf den ersten Befehl zu senden und um eine zweite Spezialbusnachricht in Reaktion auf den ermittelten Zeitpunkt zu senden.
- System nach Anspruch 8, bei dem der Zeitpunkt einer Ausgabe einer Bestätigung eines ersten logischen Prozessor nachfolgt.
- System nach Anspruch 8, bei dem die sichere Eingabelogik weiterhin dazu dient, ein Flag-Register in einem Chipsatz aufzurufen, um den Zeitpunkt zu ermitteln.
- System nach Anspruch 8, bei dem die sichere Eingabelogik weiterhin dazu dient, einen Schlüssel einzugeben und ein Codemodul nach dem Zeitpunkt zu authentifizieren.
- System nach Anspruch 8, bei dem die Busnachrichtenlogik weiterhin dazu dient, eine dritte Spezialbusnachricht zu senden, die einen Codeeinsprungspunkt umfaßt.
- System nach einem der vorhergehenden Ansprüche, wobei der Chipsatz folgendes umfaßt: eine Busnachrichtenlogik, die auf eine erste Spezialbusnachricht von dem ersten logischen Prozessor reagiert, um eine Sicherheitsoperation vorzubereiten, und ein Register, um eine Bestätigung von einem zweiten logischen Prozessor in Reaktion auf die erste Spezialbusnachricht zu speichern.
- System nach Anspruch 13, bei dem der Chipsatz dazu dient, das Register mit einer logischen Prozessoraktivität zu vergleichen, um zu ermitteln, wann dem ersten logischen Prozessor zu signalisieren ist, mit einer Sicherheitsoperationsinitialisierung fortzufahren.
- System nach Anspruch 14, bei dem das Signal das Setzen eines Flags umfaßt.
- System nach Anspruch 13, der weiterhin eine Einrichtungszugriffslogik umfaßt, um einen Secure Virtual Machine Monitor zu sperren.
- System nach Anspruch 13, der weiterhin ein Schlüsselregister umfaßt, um einen Schlüssel zu dem ersten logischen Prozessor nach der ersten Spezialbusnachricht zu senden.
- System nach einem der vorhergehenden Ansprüche wobei einer der logischen Prozessoren eine sichere Eingabelogik und eine erste Busnachrichtenlogik, die auf die sichere Eingabelogik reagiert, umfaßt und der Chipsatz eine zweite Busnachrichtenlogik, um eine erste Spezialbusnachricht von dem ersten Busnachrichtensystem zu empfangen, und ein Flag, das in Reaktion auf eine Bestätigung gesetzt wird, umfaßt.
- System nach Anspruch 18, das weiterhin einen Secure Initialization Authenticated Code umfaßt, um Sicherheitsoperationen in Reaktion auf die sichere Eingabelogik zu initiieren.
- System nach Anspruch 19, das weiterhin einen Schlüssel umfaßt, der von dem logischen Prozessor zum Authentifizieren des Secure Initialization Authenticated Code benutzt wird.
- System nach Anspruch 19, bei dem die erste Busnachrichtenlogik eine zweite Spezialbusnachricht ausgibt, und bei dem der logische Prozessor den Secure Initialization Authenticated Code in einem sicheren Speicher nach der zweiten Spezialbusnachricht verschiebt.
- System nach Anspruch 1, bei dem der Secure Initialization Authenticated Code eine Initialisierung des Secure Virtual Machine Monitors ausführt.
- System nach Anspruch 22, bei dem die Initialisierung eine Authentifizierung umfaßt, und bei dem der Chipsatz eine Einrichtungszugriffslogik umfaßt, um vor einem Nicht-Prozessor-Zugriff auf den Secure Virtual Machine Monitor in Reaktion auf die Initialisierung zu schützen.
- System nach Anspruch 22, bei dem die erste Busnachrichtenlogik eine dritte Spezialbusnachricht in Reaktion auf die Initialisierung ausgibt.
- System nach Anspruch 24, bei dem die dritte Spezialbusnachricht einen Codeeinsprungpunkt für den Secure Virtual Machine Monitor umfaßt.
- Verfahren zur Herstellung einer gesicherten Softwareumgebung in einem System nach einem der vorhergehenden Ansprüche, das folgendes umfaßt: Synchronisieren eines ersten logischen Prozessors und eines zweiten logischen Prozessors, Authentifizieren eines Initialisierungscodemoduls, Authentifizieren des Secure Virtuel Machine Monitor und Ausführen des Secure Virtuel Machine Monitor.
- Verfahren nach Anspruch 26, das weiterhin ein Senden einer Spezialbusnachricht zu dem zweiten logischen Prozessor umfaßt, um den Secure Virtuel Machine Monitor auf dem zweiten logischen Prozessor reagierend auszuführen.
- Verfahren nach Anspruch 26, bei dem das Synchronisieren eine Spezialbusnachricht umfaßt, um den zweiten logischen Prozessor zu veranlassen, eine Ausführung anzuhalten und eine Bestätigung zu senden.
- Verfahren nach Anspruch 28, bei dem das Synchronisieren ein Setzen eines Flags in dem Chipsatz in Reaktion auf die Bestätigung umfaßt.
- Verfahren nach Anspruch 26, bei dem das Authentifizieren eines Initialisierungscodemoduls ein Verschieben einer Kopie des Initialisierungscodemoduls und eines öffentlichen Schlüssels in einem sicheren Speicher umfaßt.
- Verfahren nach Anspruch 30, bei dem das Authentifizieren eines Initialisierungscodemoduls ein Vergleichen eines ersten Digest des Initialisierungscodemoduls mit einem zweiten Digest des Initialisierungscodemoduls umfaßt.
- Verfahren nach Anspruch 26, bei dem das Authentifizieren eines Secure Virtual Machine Monitors ein Ausführen des Initialisierungscodemoduls umfaßt.
- Verfahren nach Anspruch 32, bei dem das Authentifizieren eines Secure Virtual Machine Monitors ein Registrieren des Virtual Machine Monitors in einem Plattformkonfigurationsregister umfaßt.
- Verfahren nach Anspruch 26, das folgendes umfaßt: Übertragen einer Spezialbusnachricht, Authentifizieren eines Initialisierungscodes in dem ersten logischen Prozessor, Authentifizieren des Secure Vitual Machine Monitor und Ausführen des Secure Vitual Machine Monitor in dem ersten logischen Prozessor.
- Verfahren nach Anspruch 34, das weiterhin ein Übertragen einer Bestätigung in Reaktion auf die erste Busnachricht umfaßt.
- Verfahren nach Anspruch 34, das weiterhin ein Anhalten einer Ausführung in dem zweiten logischen Prozessor und ein Senden einer Bestätigung umfaßt.
- Verfahren nach Anspruch 36, das weiterhin ein Setzen eines Flags in einem Chipsatz in Reaktion auf die Bestätigung umfaßt.
- Verfahren nach Anspruch 34, bei dem die Authentifizierung eines Initialisierungscodes ein Verschieben einer Kopie des Initialisierungscodes und eines öffentlichen Schlüssels in einen sicheren Speicher umfaßt.
- Verfahren nach Anspruch 38, bei dem die Authentifizierung eines Initialisierungscodes ein Vergleichen eines ersten Digests des Initialisierungscodes mit einem zweiten Digest des Initialisierungscodes umfaßt.
- Verfahren nach Anspruch 34, bei dem die Authentifizierung des Secure Virtual Machine Monitors ein Ausführen des Initialisierungscodes umfaßt.
- Verfahren nach Anspruch 40, bei dem die Authentifizierung des Secure Virtual Machine Monitors ein Registrieren des virtuellen Maschinenmonitors in einem Plattformkonfigurationsregister umfaßt.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/112,169 US7069442B2 (en) | 2002-03-29 | 2002-03-29 | System and method for execution of a secured environment initialization instruction |
US10/112,169 | 2002-03-29 | ||
PCT/US2003/008762 WO2003085497A2 (en) | 2002-03-29 | 2003-03-20 | System and method for execution of a secured environment initialization instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10392470T5 DE10392470T5 (de) | 2005-04-07 |
DE10392470B4 true DE10392470B4 (de) | 2007-02-15 |
Family
ID=28453267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10392470T Expired - Lifetime DE10392470B4 (de) | 2002-03-29 | 2003-03-20 | System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung |
Country Status (10)
Country | Link |
---|---|
US (10) | US7069442B2 (de) |
JP (9) | JP4823481B2 (de) |
KR (1) | KR100634933B1 (de) |
CN (11) | CN102855441B (de) |
AU (1) | AU2003224737A1 (de) |
DE (1) | DE10392470B4 (de) |
GB (5) | GB2419988B (de) |
HK (1) | HK1068430A1 (de) |
TW (3) | TWI433033B (de) |
WO (1) | WO2003085497A2 (de) |
Families Citing this family (118)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7076669B2 (en) * | 2002-04-15 | 2006-07-11 | Intel Corporation | Method and apparatus for communicating securely with a token |
EP1495394B1 (de) * | 2002-04-18 | 2008-07-23 | Advanced Micro Devices, Inc. | Rechnersystem mit einem für einen sicheren ausführungsmodus geeigneten cpu und einem sicherheitsdienst-prozessor die über einen gesicherten kommunikationsweg miteinander verbunden sind |
US20040141461A1 (en) * | 2003-01-22 | 2004-07-22 | Zimmer Vincent J. | Remote reset using a one-time pad |
US7210034B2 (en) * | 2003-01-30 | 2007-04-24 | Intel Corporation | Distributed control of integrity measurement using a trusted fixed token |
US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US7334123B2 (en) * | 2003-05-02 | 2008-02-19 | Advanced Micro Devices, Inc. | Computer system including a bus bridge for connection to a security services processor |
US7725740B2 (en) * | 2003-05-23 | 2010-05-25 | Nagravision S.A. | Generating a root key for decryption of a transmission key allowing secure communications |
US8086844B2 (en) * | 2003-06-03 | 2011-12-27 | Broadcom Corporation | Online trusted platform module |
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US7698552B2 (en) * | 2004-06-03 | 2010-04-13 | Intel Corporation | Launching a secure kernel in a multiprocessor system |
EP1607821A1 (de) | 2004-06-17 | 2005-12-21 | Nagracard S.A. | Methode zur sicheren Programmaktualisierung in einem Sicherheitsmodul |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
JP4447977B2 (ja) | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US8271976B2 (en) * | 2004-06-30 | 2012-09-18 | Microsoft Corporation | Systems and methods for initializing multiple virtual processors within a single virtual machine |
EP1628235A1 (de) * | 2004-07-01 | 2006-02-22 | Texas Instruments Incorporated | Verfahren und System zur Integritätssicherstellung des Wechsels in einem sicheren Modus |
US7886293B2 (en) | 2004-07-07 | 2011-02-08 | Intel Corporation | Optimizing system behavior in a virtual machine environment |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US8176564B2 (en) | 2004-11-15 | 2012-05-08 | Microsoft Corporation | Special PC mode entered upon detection of undesired state |
US8464348B2 (en) * | 2004-11-15 | 2013-06-11 | Microsoft Corporation | Isolated computing environment anchored into CPU and motherboard |
DE102004062203B4 (de) * | 2004-12-23 | 2007-03-08 | Infineon Technologies Ag | Datenverarbeitungseinrichtung, Telekommunikations-Endgerät und Verfahren zur Datenverarbeitung mittels einer Datenverarbeitungseinrichtung |
US7360253B2 (en) * | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
US8533777B2 (en) * | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
JP4606339B2 (ja) | 2005-02-07 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | セキュアなプロセッサの処理の移行を実施する方法および装置 |
WO2006082985A2 (en) | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
WO2006082994A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating a secure session between a processor and an external device |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
US8353046B2 (en) | 2005-06-08 | 2013-01-08 | Microsoft Corporation | System and method for delivery of a modular operating system |
US20060294380A1 (en) * | 2005-06-28 | 2006-12-28 | Selim Aissi | Mechanism to evaluate a token enabled computer system |
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 |
US7822978B2 (en) * | 2005-07-22 | 2010-10-26 | Intel Corporation | Quiescing a manageability engine |
US7752436B2 (en) * | 2005-08-09 | 2010-07-06 | Intel Corporation | Exclusive access for secure audio program |
CN101366004A (zh) * | 2005-12-06 | 2009-02-11 | 波士顿电路公司 | 用于带有专用线程管理的多核处理的方法和设备 |
US7836303B2 (en) | 2005-12-09 | 2010-11-16 | University Of Washington | Web browser operating system |
US8196205B2 (en) | 2006-01-23 | 2012-06-05 | University Of Washington Through Its Center For Commercialization | Detection of spyware threats within virtual machine |
US8286158B2 (en) | 2006-02-06 | 2012-10-09 | Imation Corp. | Method and system for installing portable executable applications |
ATE504448T1 (de) * | 2006-04-28 | 2011-04-15 | Telecom Italia Spa | Tintenstrahldruckkopfplatte und herstellungsverfahren dafür |
US8973094B2 (en) * | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
US7840795B2 (en) * | 2006-10-17 | 2010-11-23 | Zachary Nathaniel Joseph Peterson | Method and apparatus for limiting access to sensitive data |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
GB0624582D0 (en) | 2006-12-08 | 2007-01-17 | Visible Computing Ltd | USB autorun devices |
WO2008078564A1 (ja) * | 2006-12-22 | 2008-07-03 | Panasonic Corporation | 情報処理装置、集積回路、方法、およびプログラム |
US8209542B2 (en) * | 2006-12-29 | 2012-06-26 | Intel Corporation | Methods and apparatus for authenticating components of processing systems |
US20080263256A1 (en) * | 2007-04-20 | 2008-10-23 | Motorola, Inc. | Logic Device with Write Protected Memory Management Unit Registers |
US8285958B1 (en) * | 2007-08-10 | 2012-10-09 | Mcafee, Inc. | System, method, and computer program product for copying a modified page table entry to a translation look aside buffer |
US7984449B2 (en) * | 2007-08-15 | 2011-07-19 | International Business Machines Corporation | In-band communication with virtual machines via a hypervisor message bus |
JP5608081B2 (ja) * | 2007-08-31 | 2014-10-15 | 4361423・カナダ・インコーポレーテッド | 安全な金融取引を行うための装置および方法 |
US8250641B2 (en) | 2007-09-17 | 2012-08-21 | Intel Corporation | Method and apparatus for dynamic switching and real time security control on virtualized systems |
US8583908B2 (en) * | 2007-12-31 | 2013-11-12 | Intel Corporation | Enhanced network and local boot of Unified Extensible Firmware Interface images |
US8069228B2 (en) * | 2009-05-08 | 2011-11-29 | Hewlett-Packard Development Company, L.P. | Preventing access of a network facility in response to an operation |
US8312272B1 (en) * | 2009-06-26 | 2012-11-13 | Symantec Corporation | Secure authentication token management |
EP2278514B1 (de) * | 2009-07-16 | 2018-05-30 | Alcatel Lucent | System und Verfahren zur Bereitstellung von sicheren virtuellen Maschinen |
US8286164B2 (en) | 2009-08-07 | 2012-10-09 | International Business Machines Corporation | Secure recursive virtualization |
US20110153944A1 (en) * | 2009-12-22 | 2011-06-23 | Klaus Kursawe | Secure Cache Memory Architecture |
US8776245B2 (en) * | 2009-12-23 | 2014-07-08 | Intel Corporation | Executing trusted applications with reduced trusted computing base |
US9202015B2 (en) * | 2009-12-31 | 2015-12-01 | Intel Corporation | Entering a secured computing environment using multiple authenticated code modules |
CN102195940A (zh) * | 2010-03-12 | 2011-09-21 | 北京路模思科技有限公司 | 一种基于虚拟机技术安全输入和提交数据的方法和系统 |
US8458490B2 (en) * | 2010-05-28 | 2013-06-04 | Dell Products, Lp | System and method for supporting full volume encryption devices in a client hosted virtualization system |
US8938774B2 (en) | 2010-05-28 | 2015-01-20 | Dell Products, Lp | System and method for I/O port assignment and security policy application in a client hosted virtualization system |
US8589702B2 (en) * | 2010-05-28 | 2013-11-19 | Dell Products, Lp | System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system |
US8719557B2 (en) | 2010-05-28 | 2014-05-06 | Dell Products, Lp | System and method for secure client hosted virtualization in an information handling system |
US8990584B2 (en) | 2010-05-28 | 2015-03-24 | Dell Products, Lp | System and method for supporting task oriented devices in a client hosted virtualization system |
CN103080944B (zh) * | 2010-08-27 | 2016-04-13 | 惠普发展公司,有限责任合伙企业 | 操作计算机的方法和电子设备 |
WO2012102725A1 (en) * | 2011-01-28 | 2012-08-02 | Hewlett-Packard Development Company, L.P. | Authenticate a hypervisor with encoded information |
US10496824B2 (en) | 2011-06-24 | 2019-12-03 | Microsoft Licensing Technology, LLC | Trusted language runtime on a mobile platform |
US8843764B2 (en) | 2011-07-15 | 2014-09-23 | Cavium, Inc. | Secure software and hardware association technique |
US8788763B2 (en) * | 2011-10-13 | 2014-07-22 | International Business Machines Corporation | Protecting memory of a virtual guest |
EP2788911A4 (de) * | 2011-12-08 | 2015-07-29 | Intel Corp | Verfahren und vorrichtung für richtlinienbasierte gemeinsame inhaltsnutzung in einer peer-to-peer-weise mit root-of-trust auf hardwarebasis |
RU2472215C1 (ru) | 2011-12-28 | 2013-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ выявления неизвестных программ с использованием эмуляции процесса загрузки |
WO2013101034A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Software modification for partial secure memory processing |
US9069598B2 (en) | 2012-01-06 | 2015-06-30 | International Business Machines Corporation | Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core |
US20130254906A1 (en) * | 2012-03-22 | 2013-09-26 | Cavium, Inc. | Hardware and Software Association and Authentication |
GB2506195A (en) | 2012-09-25 | 2014-03-26 | Ibm | Managing a virtual computer resource |
US9342695B2 (en) * | 2012-10-02 | 2016-05-17 | Mordecai Barkan | Secured automated or semi-automated systems |
US8924741B2 (en) | 2012-12-29 | 2014-12-30 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
KR101432721B1 (ko) | 2013-08-21 | 2014-08-21 | 주식회사 엑스엔시스템즈 | 용도별 가상환경을 제공하는 컴퓨팅 장치 및 그 제공방법 |
US9407638B2 (en) | 2013-08-26 | 2016-08-02 | The Boeing Company | System and method for trusted mobile communications |
US9547767B2 (en) * | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
US9344439B2 (en) * | 2014-01-20 | 2016-05-17 | The Boeing Company | Executing unprotected mode services in a protected mode environment |
US9413765B2 (en) | 2014-03-25 | 2016-08-09 | Intel Corporation | Multinode hubs for trusted computing |
US9912481B2 (en) | 2014-03-27 | 2018-03-06 | Intel Corporation | Method and apparatus for efficiently executing hash operations |
US9317719B2 (en) | 2014-09-04 | 2016-04-19 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9658854B2 (en) | 2014-09-26 | 2017-05-23 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
US9575802B2 (en) * | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
GB2539436B (en) * | 2015-06-16 | 2019-02-06 | Advanced Risc Mach Ltd | Secure initialisation |
US10083306B2 (en) * | 2015-06-26 | 2018-09-25 | Intel Corporation | Establishing hardware roots of trust for internet-of-things devices |
CN105046138A (zh) * | 2015-07-13 | 2015-11-11 | 山东超越数控电子有限公司 | 一种基于飞腾处理器的可信管理系统及方法 |
EP3343419A1 (de) * | 2015-08-25 | 2018-07-04 | Seltech Corporation | System mit hypervisor |
US9935945B2 (en) * | 2015-11-05 | 2018-04-03 | Quanta Computer Inc. | Trusted management controller firmware |
CN106888451B (zh) * | 2015-12-15 | 2020-02-18 | 中国移动通信集团公司 | 可信执行环境tee初始化方法及设备 |
US11416421B2 (en) | 2016-07-19 | 2022-08-16 | Cypress Semiconductor Corporation | Context-based protection system |
CN107870788B (zh) * | 2016-09-26 | 2020-10-02 | 展讯通信(上海)有限公司 | 多可信执行环境下终端设备的启动方法和终端设备 |
CN108270910A (zh) * | 2016-12-30 | 2018-07-10 | 展讯通信(上海)有限公司 | 移动终端 |
US20190087580A1 (en) * | 2017-09-19 | 2019-03-21 | Microsoft Technology Licensing, Llc | Secure launch for a hypervisor |
CN107832244B (zh) * | 2017-10-18 | 2020-10-20 | 北京全路通信信号研究设计院集团有限公司 | 一种安全计算机的处理器系统 |
US11245550B2 (en) * | 2017-12-24 | 2022-02-08 | Technion Research & Development Foundation Limited | Message authentication based on a physical location on a bus |
CN109960520B (zh) * | 2017-12-25 | 2022-07-19 | 浙江宇视科技有限公司 | 程序加载方法、装置及电子设备 |
US10942798B2 (en) * | 2018-05-31 | 2021-03-09 | Microsoft Technology Licensing, Llc | Watchdog timer hierarchy |
DE102018120347A1 (de) * | 2018-08-21 | 2020-02-27 | Pilz Gmbh & Co. Kg | Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses |
US11176054B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
US11283800B2 (en) * | 2019-03-08 | 2022-03-22 | International Business Machines Corporation | Secure interface control secure storage hardware tagging |
US11182192B2 (en) | 2019-03-08 | 2021-11-23 | International Business Machines Corporation | Controlling access to secure storage of a virtual machine |
US11455398B2 (en) | 2019-03-08 | 2022-09-27 | International Business Machines Corporation | Testing storage protection hardware in a secure virtual machine environment |
US11068310B2 (en) | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
CN110109731B (zh) * | 2019-04-19 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种云环境下虚拟可信根的管理方法与系统 |
US11574060B2 (en) | 2019-04-24 | 2023-02-07 | International Business Machines Corporation | Secure initial program load |
US11425920B2 (en) | 2019-06-28 | 2022-08-30 | Drinkwell Llc | Methods and systems for producing frozen cocktail ice structures |
US11099878B2 (en) * | 2019-06-28 | 2021-08-24 | Intel Corporation | Scalable virtual machine operation inside trust domains within the trust domain architecture |
US11449601B2 (en) * | 2020-01-08 | 2022-09-20 | Red Hat, Inc. | Proof of code compliance and protected integrity using a trusted execution environment |
CN112800431B (zh) * | 2020-08-28 | 2023-09-29 | 支付宝(杭州)信息技术有限公司 | 超线程场景下安全进入可信执行环境的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5764889A (en) * | 1996-09-26 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for creating a security environment for a user task in a client/server system |
WO2001016722A1 (en) * | 1999-09-01 | 2001-03-08 | Intel Corporation | Branch instruction for processor |
Family Cites Families (323)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US607160A (en) * | 1898-07-12 | Charles s | ||
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4147905A (en) * | 1977-05-17 | 1979-04-03 | Chicago Lock Co. | Sleeve and terminal holder assembly for an axial split-pin tumbler-type switch lock mechanism |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4307214A (en) * | 1979-12-12 | 1981-12-22 | Phillips Petroleum Company | SC2 activation of supported chromium oxide catalysts |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
US4516205A (en) * | 1982-11-09 | 1985-05-07 | Eing A Hubert I | Access control of data transmission network |
JPS59111561A (ja) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601535B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601476B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
US5123101A (en) | 1986-11-12 | 1992-06-16 | Xerox Corporation | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss |
US4823481A (en) | 1986-12-03 | 1989-04-25 | Trotter Johnny L | Mop head spreader attachment for enhanced drying |
US4914657A (en) * | 1987-04-15 | 1990-04-03 | Allied-Signal Inc. | Operations controller for a fault tolerant multiple node processing system |
FR2618002B1 (fr) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
JP2714818B2 (ja) | 1988-06-17 | 1998-02-16 | 株式会社芝浦製作所 | フアン装置 |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
JPH0198876A (ja) | 1988-08-05 | 1989-04-17 | Hitachi Ltd | 冷蔵庫 |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
CN1019044B (zh) | 1988-11-21 | 1992-11-11 | 中国人民解放军后勤工程学院 | 控制管道增压速率和最大压力泄放阀 |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
DE3918049A1 (de) | 1989-06-02 | 1990-12-13 | Honeywell Regelsysteme Gmbh | Ringlaserkreisel mit drehschwingeinrichtung |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
JP2901358B2 (ja) | 1991-02-21 | 1999-06-07 | 富士写真フイルム株式会社 | 画像読取装置 |
IL97894A0 (en) * | 1991-04-17 | 1992-06-21 | Ibm | Multi-processor computer system |
US5551033A (en) * | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
JPH04348434A (ja) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
JPH06236284A (ja) | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5610981A (en) | 1992-06-04 | 1997-03-11 | Integrated Technologies Of America, Inc. | Preboot protection for a data security system with anti-intrusion capability |
US5396614A (en) * | 1992-06-25 | 1995-03-07 | Sun Microsystems, Inc. | Method and apparatus for a secure protocol for virtual memory managers that use memory objects |
US5436028A (en) | 1992-07-27 | 1995-07-25 | Motorola, Inc. | Method and apparatus for selectively applying solder paste to multiple types of printed circuit boards |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
JPH06119250A (ja) | 1992-10-08 | 1994-04-28 | Nitsuko Corp | メモリ情報保護回路及びメモリ情報保護方法 |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
JP2765411B2 (ja) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (ja) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US6356989B1 (en) | 1992-12-21 | 2002-03-12 | Intel Corporation | Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
US5628023A (en) * | 1993-04-19 | 1997-05-06 | International Business Machines Corporation | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5892944A (en) | 1993-07-20 | 1999-04-06 | Kabushiki Kaisha Toshiba | Program execution and operation right management system suitable for single virtual memory scheme |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JP3740195B2 (ja) | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
DE69534757T2 (de) | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften |
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
GB9502864D0 (en) | 1995-02-14 | 1995-04-05 | Digicash Bv | Cryptographic reduced instruction set processor |
FR2731536B1 (fr) | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
JP3085899B2 (ja) * | 1995-06-19 | 2000-09-11 | 株式会社東芝 | マルチプロセッサシステム |
JP3502216B2 (ja) * | 1995-07-13 | 2004-03-02 | 富士通株式会社 | 情報処理装置 |
US5684948A (en) | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US6093213A (en) | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
WO1997025798A1 (en) * | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
IL117085A (en) | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure computer system |
US5835594A (en) * | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6178509B1 (en) * | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) * | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US6205550B1 (en) * | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
ES2117945B1 (es) | 1996-06-20 | 1999-04-01 | Alcatel Standard Electrica | Dispositivo convertidor de energia alterna/continua. |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
WO1998012620A1 (fr) | 1996-09-20 | 1998-03-26 | Mitsubishi Denki Kabushiki Kaisha | Micro-ordinateur possedant une fonction de commande de remise a zero |
US6055637A (en) * | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (ja) | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) * | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5889947A (en) * | 1996-12-16 | 1999-03-30 | International Business Machines Corporation | Apparatus and method for executing instructions that select a storage location for output values in response to an operation count |
US5818939A (en) | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) * | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US6148401A (en) | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
KR100543268B1 (ko) * | 1997-02-13 | 2006-01-20 | 헬빅, 월터 에이. 시니어 | 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서 |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US5935249A (en) * | 1997-02-26 | 1999-08-10 | Sun Microsystems, Inc. | Mechanism for embedding network based control systems in a local network interface device |
JP4000654B2 (ja) | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | 半導体装置及び電子機器 |
EP0970411B1 (de) | 1997-03-27 | 2002-05-15 | BRITISH TELECOMMUNICATIONS public limited company | Datenkopierschutz |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
JPH10301773A (ja) * | 1997-04-30 | 1998-11-13 | Sony Corp | 情報処理装置および情報処理方法、並びに記録媒体 |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
JP3293760B2 (ja) * | 1997-05-27 | 2002-06-17 | 株式会社エヌイーシー情報システムズ | 改ざん検知機能付きコンピュータシステム |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) * | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6188995B1 (en) | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (de) * | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
JP3546678B2 (ja) * | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
US6704871B1 (en) | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6708273B1 (en) | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US5935247A (en) | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
US6182089B1 (en) * | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
US6061794A (en) * | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) * | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US5987604A (en) | 1997-10-07 | 1999-11-16 | Phoenix Technologies, Ltd. | Method and apparatus for providing execution of system management mode services in virtual mode |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6076160A (en) * | 1997-11-20 | 2000-06-13 | Advanced Micro Devices, Inc. | Hardware-based system for enabling data transfers between a CPU and chip set logic of a computer system on both edges of bus clock signal |
JPH11155064A (ja) | 1997-11-21 | 1999-06-08 | Canon Inc | 画像処理方法及び装置 |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6192455B1 (en) * | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) * | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6173417B1 (en) * | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6339826B2 (en) | 1998-05-05 | 2002-01-15 | International Business Machines Corp. | Client-server system for maintaining a user desktop consistent with server application user access permissions |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
DE69942712D1 (de) | 1998-05-29 | 2010-10-14 | Texas Instruments Inc | Sichere Rechnervorrichtung |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
WO1999065579A1 (en) | 1998-06-17 | 1999-12-23 | Aristocrat Technologies Australia Pty. Ltd. | Software verification and authentication |
US6505279B1 (en) * | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
US6339815B1 (en) * | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
JP2000076139A (ja) | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 携帯型情報記憶媒体 |
US7409694B2 (en) | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US6363485B1 (en) * | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6230248B1 (en) | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
GB2343269A (en) * | 1998-10-30 | 2000-05-03 | Ericsson Telefon Ab L M | Processing arrangements |
US6445797B1 (en) | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6418521B1 (en) | 1998-12-23 | 2002-07-09 | Intel Corporation | Hierarchical fully-associative-translation lookaside buffer structure |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) * | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
EP1030237A1 (de) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Vertrautes Hardware-Gerät in einem Rechner |
US6272533B1 (en) | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
CN2359735Y (zh) * | 1999-03-12 | 2000-01-19 | 深圳市欧迪科技发展有限公司 | 能共享微计算机主机资源的多用户连接装置 |
US6327646B1 (en) | 1999-03-12 | 2001-12-04 | Intel Corporation | Translation look-aside buffer utilizing high-order bits for fast access |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
CA2368858A1 (en) | 1999-04-12 | 2000-10-19 | Digital Media On Demand, Inc. | Secure electronic commerce system |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6275933B1 (en) | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
EP1056014A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System und Verfahren zur Versorgung einer vertrauenswürdigen Benutzerschnittstelle |
EP1055989A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System zum digitalen Unterschreiben von einem Dokument |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
JP2001051858A (ja) | 1999-06-18 | 2001-02-23 | Fiinikkusu Technologies Ltd | 基本入出力システム(bios)サービスを安全に使用するためのシステムおよび方法 |
TW479194B (en) | 1999-06-18 | 2002-03-11 | Phoenix Tech Ltd | Method and apparatus for execution of an application during computer pre-boot operation |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
US6584612B1 (en) * | 1999-07-15 | 2003-06-24 | International Business Machines Corporation | Transparent loading of resources from read-only memory for an application program |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
EP1076279A1 (de) * | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computerplattformen und deren Betriebsverfahren |
US7124170B1 (en) * | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
US6457068B1 (en) * | 1999-08-30 | 2002-09-24 | Intel Corporation | Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (ja) * | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
EP1085396A1 (de) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Betrieb von gesicherten Zustand in einer Computerplattform |
US6535988B1 (en) * | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
AU1430901A (en) * | 1999-10-01 | 2001-05-10 | Infraworks Corporation | Method and system for providing data security using file spoofing |
US6374317B1 (en) * | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
GB9923802D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | User authentication |
GB9923804D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | Electronic commerce system |
JP3749640B2 (ja) * | 1999-10-15 | 2006-03-01 | 株式会社東芝 | Icカード利用装置、icカード及び記憶媒体 |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
FR2801118B1 (fr) * | 1999-11-17 | 2001-12-21 | Bull Cp8 | Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque |
KR100363839B1 (ko) | 1999-12-24 | 2002-12-06 | 주식회사 하이닉스반도체 | 반도체 소자의 층간 절연막 형성 방법 |
CN1157660C (zh) * | 2000-02-03 | 2004-07-14 | 英业达集团(上海)电子技术有限公司 | 多用户的安全性操作文件方法 |
WO2001063994A2 (en) | 2000-02-23 | 2001-08-30 | Iridian Technologies, Inc. | Tamper proof case for electronic devices having memories with sensitive information |
AU2001251701A1 (en) | 2000-02-25 | 2001-09-03 | Identix Incorporated | Secure transaction system |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
JP3710671B2 (ja) | 2000-03-14 | 2005-10-26 | シャープ株式会社 | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6754815B1 (en) * | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6795905B1 (en) * | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US7082615B1 (en) | 2000-03-31 | 2006-07-25 | Intel Corporation | Protecting software environment in isolated execution |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6760441B1 (en) * | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6769058B1 (en) * | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US7013484B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
JP2001309350A (ja) | 2000-04-17 | 2001-11-02 | Sony Corp | 情報提供システム、情報受信装置及びその方法。 |
JP3630087B2 (ja) * | 2000-05-10 | 2005-03-16 | 日本電気株式会社 | 自動データ処理装置 |
US6990663B1 (en) * | 2000-06-08 | 2006-01-24 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
US6510508B1 (en) | 2000-06-15 | 2003-01-21 | Advanced Micro Devices, Inc. | Translation lookaside buffer flush filter |
US6604187B1 (en) | 2000-06-19 | 2003-08-05 | Advanced Micro Devices, Inc. | Providing global translations with address space numbers |
US6981281B1 (en) | 2000-06-21 | 2005-12-27 | Microsoft Corporation | Filtering a permission set using permission requests associated with a code assembly |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US20020062452A1 (en) | 2000-08-18 | 2002-05-23 | Warwick Ford | Countering credentials copying |
EP1182568A3 (de) | 2000-08-21 | 2004-07-21 | Texas Instruments Incorporated | Auf Task-Kennzeichnung basierte TLB-Operation |
JP3576945B2 (ja) * | 2000-09-13 | 2004-10-13 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステムにおける命令実行方法及びその装置 |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US6938164B1 (en) * | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US6948065B2 (en) | 2000-12-27 | 2005-09-20 | Intel Corporation | Platform and method for securely transmitting an authorization secret |
US7631160B2 (en) | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US8909555B2 (en) | 2001-04-24 | 2014-12-09 | Hewlett-Packard Development Company, L.P. | Information security system |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
US7065654B1 (en) | 2001-05-10 | 2006-06-20 | Advanced Micro Devices, Inc. | Secure execution box |
US20020184520A1 (en) * | 2001-05-30 | 2002-12-05 | Bush William R. | Method and apparatus for a secure virtual machine |
EP1271277A3 (de) | 2001-06-26 | 2003-02-05 | Redstrike B.V. | Sicherheitssystem und Verfahren zur Verhinderung der unbefugten Benutzung eines Rechners |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US7036020B2 (en) | 2001-07-25 | 2006-04-25 | Antique Books, Inc | Methods and systems for promoting security in a computer system employing attached storage devices |
DE60132378D1 (de) | 2001-09-21 | 2008-02-21 | Ericsson Telefon Ab L M | Anordnung und verfahren zur ausführung von code |
US7103529B2 (en) * | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
AU2002328726A1 (en) | 2001-09-28 | 2003-04-14 | Codagen Technologies Corp. | A system and method for managing architectural layers within a software model |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US7024555B2 (en) * | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
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 |
US20030126453A1 (en) | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7305675B1 (en) | 2002-01-11 | 2007-12-04 | Advanced Micro Devices, Inc. | Processing tasks with failure recovery |
US7313705B2 (en) * | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US7107460B2 (en) | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7111086B1 (en) * | 2002-02-22 | 2006-09-19 | Vmware, Inc. | High-speed packet transfer in computer systems with multiple interfaces |
US7631196B2 (en) | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7343493B2 (en) | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7127548B2 (en) | 2002-04-16 | 2006-10-24 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
US7073042B2 (en) | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7409487B1 (en) | 2003-06-30 | 2008-08-05 | Vmware, Inc. | Virtualization system for computers that use address space indentifiers |
US7552255B1 (en) | 2003-07-30 | 2009-06-23 | Intel Corporation | Dynamically partitioning pipeline resources |
US7552254B1 (en) | 2003-07-30 | 2009-06-23 | Intel Corporation | Associating address space identifiers with active contexts |
US8312452B2 (en) | 2005-06-30 | 2012-11-13 | Intel Corporation | Method and apparatus for a guest to access a privileged register |
WO2008100500A2 (en) * | 2007-02-12 | 2008-08-21 | Porex Corporation | Porous barrier media comprising color change indicators |
JP2011155064A (ja) * | 2010-01-26 | 2011-08-11 | Elpida Memory Inc | 半導体装置およびその製造方法 |
-
2002
- 2002-03-29 US US10/112,169 patent/US7069442B2/en not_active Expired - Lifetime
-
2003
- 2003-03-06 TW TW098118881A patent/TWI433033B/zh not_active IP Right Cessation
- 2003-03-06 TW TW103100721A patent/TWI518593B/zh not_active IP Right Cessation
- 2003-03-06 TW TW092104811A patent/TWI315487B/zh not_active IP Right Cessation
- 2003-03-20 AU AU2003224737A patent/AU2003224737A1/en not_active Abandoned
- 2003-03-20 CN CN201210162765.6A patent/CN102855441B/zh not_active Expired - Lifetime
- 2003-03-20 CN CN201710096210.9A patent/CN106845249B/zh not_active Expired - Lifetime
- 2003-03-20 GB GB0601323A patent/GB2419988B/en not_active Expired - Lifetime
- 2003-03-20 CN CN201510995651.3A patent/CN105608384B/zh not_active Expired - Lifetime
- 2003-03-20 KR KR1020047015567A patent/KR100634933B1/ko active IP Right Grant
- 2003-03-20 CN CN2010101619843A patent/CN101833632B/zh not_active Expired - Lifetime
- 2003-03-20 DE DE10392470T patent/DE10392470B4/de not_active Expired - Lifetime
- 2003-03-20 CN CN201510622256.0A patent/CN105184172B/zh not_active Expired - Lifetime
- 2003-03-20 GB GB0601326A patent/GB2419989B/en not_active Expired - Lifetime
- 2003-03-20 CN CN201210159237.5A patent/CN102841995B/zh not_active Expired - Lifetime
- 2003-03-20 WO PCT/US2003/008762 patent/WO2003085497A2/en active Application Filing
- 2003-03-20 JP JP2003582616A patent/JP4823481B2/ja not_active Expired - Lifetime
- 2003-03-20 GB GB0422078A patent/GB2402788B/en not_active Expired - Lifetime
- 2003-03-20 CN CN038114542A patent/CN101410772B/zh not_active Expired - Lifetime
- 2003-03-20 CN CN2011100308767A patent/CN102103671B/zh not_active Expired - Lifetime
- 2003-03-20 GB GB0601321A patent/GB2419986B/en not_active Expired - Lifetime
- 2003-03-20 CN CN201310419555.5A patent/CN103559448B/zh not_active Expired - Lifetime
- 2003-03-20 CN CN201210159183.2A patent/CN102841994B/zh not_active Expired - Lifetime
- 2003-03-20 CN CN201210056872.0A patent/CN102708333B/zh not_active Expired - Lifetime
- 2003-03-20 GB GB0601322A patent/GB2419987B/en not_active Expired - Lifetime
-
2005
- 2005-01-20 HK HK05100531A patent/HK1068430A1/xx not_active IP Right Cessation
- 2005-03-31 US US11/096,618 patent/US7546457B2/en not_active Expired - Lifetime
-
2008
- 2008-09-16 JP JP2008236958A patent/JP5020911B2/ja not_active Expired - Lifetime
-
2009
- 2009-06-08 US US12/455,844 patent/US8185734B2/en not_active Expired - Lifetime
-
2011
- 2011-07-13 JP JP2011155064A patent/JP5714437B2/ja not_active Expired - Lifetime
-
2012
- 2012-04-11 US US13/444,450 patent/US8645688B2/en not_active Expired - Lifetime
- 2012-04-13 JP JP2012092142A patent/JP5452656B2/ja not_active Expired - Lifetime
-
2013
- 2013-03-15 US US13/835,997 patent/US9043594B2/en not_active Expired - Fee Related
- 2013-07-25 JP JP2013154700A patent/JP2013235612A/ja active Pending
-
2014
- 2014-01-10 JP JP2014003431A patent/JP5852145B2/ja not_active Expired - Lifetime
- 2014-03-24 US US14/222,939 patent/US9361121B2/en not_active Expired - Lifetime
- 2014-10-02 JP JP2014203765A patent/JP5944461B2/ja not_active Expired - Lifetime
- 2014-12-02 JP JP2014244044A patent/JP6033828B2/ja not_active Expired - Lifetime
-
2015
- 2015-09-24 US US14/864,450 patent/US10031759B2/en not_active Expired - Lifetime
-
2016
- 2016-08-23 JP JP2016162738A patent/JP6404283B2/ja not_active Expired - Lifetime
-
2017
- 2017-01-10 US US15/402,661 patent/US10042649B2/en not_active Expired - Lifetime
- 2017-01-10 US US15/402,663 patent/US9990208B2/en not_active Expired - Lifetime
- 2017-01-10 US US15/402,666 patent/US10175994B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5764889A (en) * | 1996-09-26 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for creating a security environment for a user task in a client/server system |
WO2001016722A1 (en) * | 1999-09-01 | 2001-03-08 | Intel Corporation | Branch instruction for processor |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10392470B4 (de) | System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung | |
DE112005003340B4 (de) | Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten | |
DE112007001321T5 (de) | Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem | |
DE69725833T2 (de) | Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz | |
DE112018002031B4 (de) | Sichern einer betriebssystemkonfiguration unter verwendung von hardware | |
DE102008011925B4 (de) | Sicheres Initialisieren von Computersystemen | |
DE69815599T2 (de) | Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen | |
DE10394383B4 (de) | Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems | |
DE69531112T2 (de) | Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer | |
DE102008021567B4 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
DE10254621A1 (de) | Vorrichtung und Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung | |
DE10296798B4 (de) | SMM-Lader und -Ausführungsmechanismus für Komponentensoftware für mehrere Architekturen | |
DE112010003971B4 (de) | Vorübergehende Bereitstellung höherer Vorrechte für ein Rechensystem für eine Benutzerkennung | |
DE102008006759B4 (de) | Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit | |
DE69731714T2 (de) | Dynamische Dienstklassen für eine internationale kryptographische Struktur | |
DE112007000363T5 (de) | Verfahren zum Bereitstellen sicherer Firmware | |
DE112005002949T5 (de) | System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems | |
DE112006001933B4 (de) | Stillegen eines Prozessorbusagenten | |
DE102012210887B4 (de) | Verfahren zum Einrichten einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine und eine Computervorrichtung | |
DE112009004762T5 (de) | System und verfahren zum durchführen einer verwaltunosoperation | |
DE112019005701T5 (de) | Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen | |
DE112005002985T5 (de) | Verfahren zum Einrichten einer vertrauenswürdigen Ablaufumgebung in einem Computer | |
DE112011102876T5 (de) | Ressourcenverwaltungs- und Sicherheitssystem | |
DE112020000792T5 (de) | Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung | |
WO2013131728A2 (de) | Pc absicherung durch bios/(u) efi erweiterungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10392470 Country of ref document: DE Date of ref document: 20050407 Kind code of ref document: P |
|
8125 | Change of the main classification |
Ipc: G06F 1214 |
|
8364 | No opposition during term of opposition | ||
R081 | Change of applicant/patentee |
Owner name: TAHOE RESEARCH, LTD., IE Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US |
|
R082 | Change of representative |
Representative=s name: DENNEMEYER & ASSOCIATES S.A., DE |
|
R071 | Expiry of right |