DE102010054614A1 - Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule - Google Patents

Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule Download PDF

Info

Publication number
DE102010054614A1
DE102010054614A1 DE102010054614A DE102010054614A DE102010054614A1 DE 102010054614 A1 DE102010054614 A1 DE 102010054614A1 DE 102010054614 A DE102010054614 A DE 102010054614A DE 102010054614 A DE102010054614 A DE 102010054614A DE 102010054614 A1 DE102010054614 A1 DE 102010054614A1
Authority
DE
Germany
Prior art keywords
master
code module
authenticated
processor
individual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102010054614A
Other languages
English (en)
Inventor
Sham M. Oreg. Datta
Ernie F. Oreg. Brickell
Mohan J. Oreg. Kumar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010054614A1 publication Critical patent/DE102010054614A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

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

Abstract

Systeme, Vorrichtungen und Verfahren zum Eindringen in eine gesicherten Systemumgebung unter Verwendung mehrerer authentifizierter Codemodule sind offenbart. Bei einer Ausführungsform beinhaltet ein Prozessor einen Decoder und Steuerlogik. Der Decoder soll einen gesicherten Zugangsbefehl dekodieren. Die Steuerlogik soll einen Eintrag finden, der dem Prozessor in einer Match-Tabelle in einem authentifizierten Master-Codemodul entspricht, und soll einen Master-Header und ein individuelles authentifiziertes Codemodul aus dem authentifizierten Master-Codemodul in Antwort auf ein Dekodieren des gesicherten Zugangsbefehls lesen.

Description

  • HINTERGRUND
  • 1. Gebiet
  • Die vorliegende Offenbarung bezieht sich auf das Gebiet der Informationsverarbeitung; spezieller auf die Sicherheit eines Informationsverarbeitungssystems.
  • 2. Beschreibung verwandter Technik
  • Informationsverarbeitungssysteme, wie z. B. diejenigen, die einen Prozessor der Intel® Pentium® Prozessorfamilie der Intel Corporation beinhalten, können Betrieb in einer gesicherten Systemumgebung unterstützen. Eine gesicherte Systemumgebung kann eine gesicherte Partition und eine ungesicherte Partition beinhalten. Die bloße Plattform-Hardware des Systems und der gesicherten Software kann in der gesicherten Partition beinhaltet sein. Direkter Zugriff von der ungesicherten Partition auf die Ressourcen der gesicherten Partition kann verhindert werden, um jegliche Geheimnisse, die das System enthalten kann, davor zu bewahren, dass sie entdeckt oder geändert werden. Diese Geheimnisse können Kennwörter, Schlüssel und private oder vertrauliche Informationen beinhalten, die auf dem Informationsverarbeitungssystem generiert werden oder gespeichert sind.
  • Die bloße Plattform-Hardware des Systems kann durch die Ausführung eines gesicherten Systemzugangsprotokolls in der gesicherten Partition oder Domain beinhaltet sein. Beispielsweise kann ein initiierender Prozessor einen gesicherten (secured enter, „SENTER”) Zugangsbefehl ausführen, auf den alle Agenten in dem System angemessen antworten müssen, damit das Protokoll erfolgreich ist. Die antwortenden Agenten können davon abgehalten werden, irgendwelche Programmbefehle auszuführen oder irgendwelche externen Transaktionen während des gesicherten Zugangsprozesses zu verarbeiten, sodass der initiierende Prozessor ein signiertes Codemodul als authentisch und gesichert validieren kann, das signierte Codemodul ausführen kann, um das System zu konfigurieren, um gesicherte Operationen zu unterstützen, (kryptografisch unter Verwendung einer erweiterten Hash-Funktion) bemessen und dann die Ausführung eines bemessenen Virtual Machine Monitors (measured virtual machine monitor, „MVMM”) initiieren kann. Der MVMM kann ein oder mehr virtuelle Maschinenumgebungen erzeugen, in denen ungesicherte Software laufen soll, sodass ungesicherte Software keinen direkten Zugriff auf Systemressourcen hat.
  • Kurze Beschreibung der Figuren
  • Die vorliegende Erfindung wird beispielhaft und in keiner Weise einschränkend in den begleitenden Figuren veranschaulicht.
  • 1 veranschaulicht ein Informationsverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 veranschaulicht einen Prozessor gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 veranschaulicht einen Chipsatz gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 veranschaulicht ein authentifiziertes Master-Codemodul gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 veranschaulicht ein Verfahren zum Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • Ausführungsformen der vorliegenden Erfindung in Systemen, Vorrichtungen und Verfahren zum Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule (jedes ein authenticated code module, „ACM”) werden beschrieben. In der Beschreibung können spezifische Details, wie z. B. Prozessor- und Systemkonfigurationen angeführt sein, um ein gründlicheres Verständnis der vorliegenden Erfindung bereitzustellen. Für einen Fachmann ist es jedoch offensichtlich, dass die Erfindung auch ohne solch spezifischen Details umgesetzt werden kann. Zusätzlich wurden einige wohlbekannte Strukturen, Schaltungen und dergleichen nicht im Detail gezeigt, um die vorliegende Erfindung nicht unnötig in den Hintergrund rücken zu lassen. Des Weiteren kann sich diese Beschreibung auf Befehle durch Namen beziehen, die gemäß einer Ausführungsform verwendet werden können (d. h. „SENTER”); bei anderen Ausführungsformen können diese Befehle oder ähnliche Befehle andere Namen haben.
  • Ausführungsformen der vorliegenden Erfindung berücksichtigen ein Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer ACMs. Die Verwendung mehrerer ACMs kann erwünscht sein, da ein Informationsverarbeitungssystem mehrere Prozessoren oder Prozessorpakete beinhalten kann, und ein einzelner ACM kann nicht ausreichend sein, um all diese Prozessoren oder Prozessorpakete zum Zugang in die gesicherte Umgebung zu initiieren, wenn diese Prozessoren oder Prozessorpakete eventuell nicht identisch sind.
  • 1 veranschaulicht eine Ausführungsform der vorliegenden Erfindung bei Informationsverarbeitungssystem 100. Informationsverarbeitungssystem 100 kann ein Personalcomputer, ein Mainframe-Computer, ein tragbarer Computer, ein Handheld-Gerät, eine Set-Top-Box, ein Server oder jedes andere Computersystem sein. Bei dieser Ausfürungsform beinhaltet System 100 bloße Plattform-Hardware 110, die wiederum Prozessoren 120, 130 und 140 beinhaltet, Systemspeicher 150, Chipsatz 160, Token 170, Gerät 180 und Permanentspeicher 190.
  • Jeder Prozessor 120, 130 und 140 kann eine Komponente mit ein oder mehr Ausführungskernen darstellen, wobei jeder Ausführungskern auf einer jeglichen einer Vielfalt unterschiedlicher Typen von Prozessoren basieren kann, einschließlich einem Universal-Mikroprozessor, wie z. B. einem Prozessor der Intel® Pentium® Prozessorfamilie, der Itanium® Prozessorfamilie oder einer anderen Prozessorfamilie der Intel® Corporation oder einem weiteren Prozessor einer anderen Firma, oder einem Spezialprozessor oder Mikrocontroller, oder der Ausführungskern kann ein rekonfigurierbarer Kern (z. B. ein Field Programmable Gate Array) sein. Obwohl 1 drei solche Prozessoren zeigt, kann System 100 eine beliebige Anzahl an Prozessoren beinhalten, wobei jeder eine beliebige Anzahl an Ausführungskernen und Ausführungs-Threads in beliebiger Kombination beinhalten kann. Bei einigen Ausführungsformen kann jeder oder alle Prozessoren 120, 130 oder 140 einen separaten Hardware-Ausführungs-Thread oder „logischen Prozessor” darstellen, der auf ein oder mehr physikalischen Prozessoren läuft.
  • Systemspeicher 150 kann jegliches Medium sein, auf dem Informationen, wie z. B. Daten und/oder Programmcode, gespeichert sein können, wie z. B. dynamischer Direktzugriffsspeicher, oder jede andere Art Medium, das von Prozessoren 120, 130 und 140 gelesen werden kann, oder jede Kombination solcher Medien.
  • Chipsatz 160 kann eine beliebige Gruppe von Schaltungen und Logik darstellen, die Speicheroperationen, Eingabe/Ausgabe-(Input/Output, „I/O”)-Operationen, Konfiguration, Steuerung, interne oder externe Schnittstelle, Verbindung oder Kommunikationsfunktionen (z. B. „Glue-Logik” und Bus-Bridges) und/oder irgendwelche ähnlichen Funktionen für Prozessoren 120, 130 und 140 und/oder System 100 unterstützt. Individuelle Elemente von Chipsatz 160 können zusammen auf einem einzelnen Chip gruppiert sein, einem Chip-Paar, verteilt über mehrere Chips und/oder teilweise, vollständig, redundant oder gemäß einem verteilten Ansatz in ein oder mehr Prozessoren, einschließlich jedem Prozessor 120, 130 und/oder 140, integriert sein.
  • Token 170 kann gesichertes Plattform-Modul (trusted platform module, „TPM”) 172 und Plattform-Konfigurationsregister (platform configuration register, „PCR”) 174 beinhalten. TPM 172 kann eine Komponente sein, einschließlich ein Mikrocontroller, um Schlüssel, Kennwörter, digitale Zertifikate und andere Informationen sicher zu speichern, die verwendet werden, um Sicherheit einzurichten und beizubehalten. PCR 174 kann eine beliebige Anzahl von Registern und/oder anderen Speicherorten beinhalten, um Systemkonfigurationsinformationen zu speichern. TPM 172 und/oder PCR 174 sind konfiguriert, damit lediglich bestimmte Agenten darauf zugreifen können und/oder unter bestimmten Bedingungen darauf zugegriffen werden kann. Token 170 und/oder entweder TPM 172 oder PCR 174 oder beide, können in Chipsatz 160 oder einer anderen Komponente in System 100 beinhaltet sein.
  • Gerät 180 kann eine beliebige Anzahl irgendeines Typs von I/O-, Peripherie- oder anderen Gerätes, wie z. B. eine Tastatur, Maus, Trackball, Zeigegerät, Monitor, Drucker, Mediakarte, Netzwerk-Interface, Informationsspeichergerät etc. darstellen. Gerät 180 kann in einer separaten Komponente ausgeführt sein, oder kann in einer integrierten Komponente mit jedem anderen Geräten beinhaltet sein. Bei einer Ausführungsform kann Gerät 180 eine einzige Funktion in einem multifunktionalen I/O-, Peripherie- oder anderen Gerät darstellen.
  • Prozessoren 120, 130 und 140, Systemspeicher 150, Chipsatz 160, Token 170 und Gerät 180 können miteinander gekoppelt sein oder gemäß einem beliebigen bekannten Ansatz miteinander kommunizieren, wie z. B. direkt oder indirekt durch ein oder mehr parallele, sequentielle, Pipeline-artige, asynchrone, synchrone, drahtgebundene, drahtlose oder andere Bus- oder Punkt-zu-Punkt-Verbindungen. System 100 kann ebenfalls eine beliebige Anzahl zusätzlicher Geräte, Agenten, Komponenten oder Verbindungen beinhalten.
  • 2 veranschaulicht Prozessor 200, der jeden Prozessor 120, 130 oder 140 in 1, oder einen beliebigen anderen Prozessor gemäß einer Ausführungsform der vorliegenden Erfindung darstellen kann.
  • Prozessor 200 kann Cache 210 beinhalten, der ein statischer Direktzugriffsspeicher sein kann, oder jede andere Form von Speicher für Informationen, wie z. B. Daten, die von Systemspeicher 150 kopiert werden. Prozessor 200 (oder Cache 210) kann ebenfalls Cache-Steuerlogik 220 beinhalten, um zu steuern, ob Cache 210 in Normalmodus oder in Cache-als-Direktzugriffsspeicher-Modus (Cache-as-random-access-memory, „CRAM”) arbeitet. Im Normalmodus befriedigt Cache 210 Speicheranfragen in Antwort auf Cache-Hits, tauscht Cache-Lines in Antwort auf Cache-Misses aus und kann Cache-Lines ungültig machen oder in Antwort auf Snoop-Anfragen austauschen. Im CRAM-Modus arbeitet Cache 210 als Direktzugriffsspeicher, in dem Anfragen innerhalb des Speicherbereichs des Cache-Speichers vom Cache-Speicher befriedigt werden und Cache-Lines werden in Antwort auf Snoop-Anfragen nicht ausgetauscht oder ungültig gemacht.
  • Prozessor 200 kann ebenfalls Befehlseinheit 230, Steuereinheit 240, Ausführungseinheit 250 und Messaging-Einheit 260 beinhalten. Befehlseinheit 230 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, wie z. B. einen Decoder, um Befehle zu empfangen, zu erkennen, zu dekodieren oder anderweitig zu empfangen. Steuereinheit 240 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, wie z. B. Mikrocode, Zustandsmaschinenlogik, programmierbare Logik oder jede andere Form von Steuerlogik, um Steuersignale für Prozessor 200 in Antwort auf Befehle zu generieren, die von Befehlseinheit 230 empfangen wurden und/oder Nachrichten, die von Messaging-Einheit 260 empfangen wurden, oder um Prozessor 200 anderweitig zu steuern.
  • Ausführungseinheit 250 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, um Befehle auszuführen, die von Befehlseinheit 230 empfangen wurden. Ausführungseinheit 250 kann basierend auf Steuersignalen arbeiten, die von Steuereinheit 240 generiert wurden. Messaging-Einheit 260 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, um Nachrichten zu generieren, die von Prozessor 200 an andere Komponenten oder Agenten in System 100 gesendet werden sollen, und um Nachrichten zu empfangen, die an Prozessor 200 von anderen Komponenten oder Agenten in System 100 gesendet wurden.
  • Bei einer Ausführungsform von Prozessor 200 kann Befehlseinheit 210 dazu dienen, einen Befehl (einen „SENTER”-Befehl) für Prozessor 200 zu empfangen, um einen Prozess zu beginnen, um eine gesicherte Umgebung in System 100 (ein Prozess) einzurichten. einzurichten. In Antwort auf den SENTER-Befehl generiert Steuereinheit 240 Steuersignale, um Messaging-Einheit 260 zu veranlassen, eine „SENTER”-Bus-Nachricht zu generieren (oder eine andere Art von Nachricht in einem System, in dem Prozessoren und andere Agenten auf andere Weise als durch einen Bus kommunizieren), die von den Messaging-Einheiten anderer Prozessoren und Agenten als eine SENTER-Bus-Nachricht erkannt wird. Der Prozessor oder Ausführungs-Thread, der den SENTER-Befehl ausführt und die SENTER-Bus-Nachricht sendet, wird als der „initiierende logische Prozessor” („initiating logical processor”, „ILP”) bezeichnet.
  • Jeder Prozessor, Ausführungs-Thread oder andere Agent in dem System, das die SENTER-Bus-Nachricht empfangt, wird als ein „antwortender logischer Prozessor” („responding logical processor”, „RLP”) bezeichnet. In Antwort auf die SENTER-Bus-Nachricht führt jeder RLP Aktionen durch, um sich auf die Einrichtung der gesicherten Umgebung vorzubereiten und es dem ILP zu erlauben, mit der Inbetriebnahme der gesicherten Umgebung fortzufahren. Eine dieser Aktionen kann für deren Messaging-Einheiten bestimmt sein, um eine „ACK”-Bus-Nachricht zu generieren, um den Erhalt der SENTER-Bus-Nachricht zu bestätigen.
  • 3 veranschaulicht Chipsatz 300, der Chipsatz 160 darstellen kann, oder jeden anderen Chipsatz oder Komponente, der/die die Funktion von Chipsatz 160 gemäß einer Ausführungsform der vorliegenden Erfindung durchführt. Chipsatz 300 kann Messaging-Einheit 310, Steuereinheit 320, „EXISTS”-Speicherort 330, „JOINS”-Speicherort 340 und „ALL_JOINED”-Speicherort 350 beinhalten.
  • Messaging-Einheit 310 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, um Nachrichten zu generieren, die von Chipsatz 300 an andere Komponenten oder Agenten in System 100 gesendet werden sollen, und um Nachrichten zu empfangen, die von anderen Komponenten oder Agenten in System 100 gesendet wurden. Steuereinheit 320 kann beliebige Schaltkreise, Logik oder andere Hardware oder Strukturen beinhalten, wie z. B. Mikrocode, Zustandsmaschinenlogik, programmierbare Logik oder jede andere Form von Steuerlogik, um Steuersignale für Chipsatz 200 in Antwort auf Nachrichten zu generieren, die von Messaging-Einheit 310 empfangen wurden, oder um Chipsatz 200 anderweitig zu steuern.
  • Jeder „EXISTS”-Speicherort 330, „JOINS”-Speicherort 340 und „ALL_JOINED”-Speicherort 350 kann ein Register oder jede andere Form von Speicher für Informationen beinhalten, und kann Speicher für eine beliebige Anzahl an Bit beinhalten. Bei einer Ausführungsform kann Steuereinheit 320 EXISTS-Speicherort 330 verwenden, um alle logischen Prozessoren und anderen Agenten nachzuverfolgen, die in System 100 arbeiten, und JOINS-Speicherort 340, um alle logischen Prozessoren und anderen Agenten nachzuverfolgen, die eine SENTER-Bus-Nachricht bestätigt haben. Wenn alle Prozessoren und anderen Agenten in System 100, wie in EXISTS-Speicherort 330 widergespiegelt, die SENTER-Bus-Nachricht bestätigt haben, wie in JOINS-Speicherort 340 widergespiegelt, dann kann Steuereinheit 320 einen Indikator in „ALL_JOINED”-Speicherort 350 setzen, um dem ILP anzuzeigen, dass die Inbetriebnahme einer gesicherten Umgebung weitergehen kann. Es ist zu beachten, dass in dieser Beschreibung des SENTER-Prozesses wie im Rest dieser Beschreibung, viele Details, die nicht erforderlich sind, um Ausführungsformen der vorliegenden Erfindung zu beschreiben und zu ermöglichen, weggelassen wurden und viele Varianten des Prozesses möglich sind. Beispielsweise können, wo ILP und RLPs durch einen Frontside-Prozessor-Bus (front-side processor bus, „FSB”) verbunden sind, FSB-Transaktionen einen Kennzeichner des Initiators einer jeder Transaktion beinhalten, und Chipsatz 300 kann mit dem FSB verbunden sein, um alle FSB logischen Prozessoren oder andere Bus-Agenten nachzuverfolgen.
  • Zurückkehrend zu 1 kann Permanentspeicher 190 eine beliebige Anzahl separater Permanentspeichermedien in System 100 darstellen, wie z. B. Halbleiter-Flash-Memory oder magnetische oder optische Disks. Permanentspeicher 190 kann verwendet werden, um Softwarekomponenten zu speichern, die bei Ausführungsformen der vorliegenden Erfindung verwendet werden. Beispielsweise kann Permanentspeicher 190 authentifiziertes Codemodul (authenticated code module, „ACM”) 192 und bemessenen Virtual Machine Monitor (measured virtual machine monitor, „MVMM”) 194 speichern.
  • ACM 192 kann von einem Prozessor oder Prozessoren während des SENTER-Prozesses ausgeführt werden, um eine beliebige Anzahl von Aktionen, die bei der Einrichtung einer gesicherten Umgebung beteiligt sind, durchzuführen. Beispielsweise kann ACM 192 verwendet werden, um Komponenten innerhalb System 100 für deren Beteiligung an der gesicherten Umgebung zu initiieren, konfigurieren und zu testen. Bei einer Ausführungsform kann ACM 192 verwendet werden, um, wie durch Memory-Controller-Funktionen bei jedem Prozessor, Chipsatz oder jeder anderen Komponente in System 100 gesteuert, die Speicherkonfiguration von System 100 zu testen, um sicherzustellen, dass Zugriff auf gewisse Seiten oder Teile von Systemspeicher 150 derart eingeschränkt oder gesteuert werden können, dass MVMM 194 und/oder andere Software, die zum Sichern von System 100 verwendet wird, bei einem Speichern in Systemspeicher 150 geschützt sein kann. Bei einer weiteren Ausführungsform kann ACM 192 verwendet werden, um MVMM 194 und jegliche andere Software, die innerhalb der gesicherten Umgebung verwendet werden soll, zu authentifizieren und die Ausführung von MVMM 194 zu starten.
  • MVMM 194 kann ein beliebiger Virtual Machine Monitor, Hypervisor oder anderes solches Softwareprogramm sein, das eine gesicherte Entität ist, die während eines SENTER-Prozesses aktiviert wird, um ein oder mehr virtuelle Maschinen zu steuern, um andere Softwareprogramme auszuführen (oft als eine bemessene Inbetriebnahmeumgebung oder „MLE” – measured launch environment – bezeichnet), wobei einige davon gesichert und einige davon ungesichert sind.
  • Um eine gesicherte Umgebung in System 100 einzurichten, kann Systemsoftware, wie z. B. ein Betriebssystem (operating system, „OS”) oder ein Basic Input/Output System („BIOS”), das auf jedem Prozessor 120, 130, 140 oder jedem anderen Prozessor in System 100 läuft, ACM 192 und MVMM 194 von Permanentspeicher 190 auf Systemspeicher 150 transferieren und dann einen dieser Prozessoren (z. B. Prozessor 120) veranlassen, einen SENTER-Befehl auszuführen. Eine Ausführung des SENTER-Befehls kann Prozessor 120, wie den ILP, veranlassen, eine SENTER-Bus-Nachricht auszugeben, ALL_JOINED-Speicherort 350 abzufragen, bis alle RLPs die SENTER-Bus-Nachricht bestätigt haben, Cache 122 zu konfigurieren, um in CRAM-Modus zu arbeiten, und ACM 192 (oder einen Teil von ACM 192 gemäß einer Ausführungsform der vorliegenden Erfindung wie nachstehend beschrieben) in Cache 122 zu laden. Cache 122 kann konfiguriert sein, um in CRAM-Modus zu arbeiten, sodass Cache 122 als ein privater, sicherer Speicher dienen kann, in dem Prozessor 120 ACM 192 (oder einen Teil von ACM 192 gemäß einer Ausführungsform der vorliegenden Erfindung wie nachstehend beschrieben) authentifizieren kann.
  • Ein ACM kann für einen spezifischen Prozessor und/oder Chipsatz geschrieben, und vom Hersteller oder Händler des Prozessors und/oder Chipsatzes digital signiert werden. Aufgrund der Komplexität der verschiedenen Aktionen, die unternommen werden müssen, um jeden Prozessor in einem System in einen stabilen Zustand zu versetzen, bei dem der Prozessor Teil eines SENTER-Prozesses werden soll, kann es für RLPs, zusätzlich zum ILP, wünschenswert sein, ein ACM oder einen Teil eines ACM auszuführen. Des Weiteren kann ein System, wie z. B. System 100, zwei oder mehr Prozessoren unterschiedlicher Staffelungen, Versionen oder Typen beinhalten. Es kann daher wünschenswert sein, den Code für unterschiedliche Prozessoren in einem ACM zu kombinieren, sodass jeder der unterschiedlichen Prozessoren als der ILP dienen kann, und/oder sodass ein RLP ein ACM oder einen Teil eines ACMs ausführen kann. Die Größe des ACMs kann jedoch auf die Größe des Cache-Speichers (z. B. 64 Kilobyte), in den das ACM zur Authentifizierung geladen werden kann, beschränkt sein. Ausführungsformen der vorliegenden Erfindung berücksichtigen daher, dass mehr als ein ACM in einem SENTER-Prozess verwendet wird oder zur Verwendung verfügbar ist.
  • 4 zeigt Master-ACM 400 gemäß einer Ausführungsform der vorliegenden Erfindung, welches als ACM 192 in System 100 verwendet werden kann. Master-ACM 400 beinhaltet Master-Header 410, ACM 420, ACM 430 und ACM 440. Jedes ACM 420, 430 und 440 kann für eine unterschiedliche Staffelung, Version oder einen Typ von Prozessor geschrieben werden. Beispielsweise können ACM 420, ACM 430 und ACM 440 für Prozessoren 120, 130 bzw. 140 in System 100 geschrieben werden.
  • Jedes ACM 420, 430 und 440 kann einen Abschnitt beinhalten, der Code und Daten enthält (z. B. Abschnitte 422, 432 bzw. 442), und einen Abschnitt, der einen Header enthält (z. B. Abschnitte 424, 434 bzw. 444). Jeder der Code- und Datenabschnitte beinhaltet den Code, der von einem Prozessor während eines SENTER-Prozesses ausgeführt werden soll, zusammen mit Daten, die während einer Ausführung dieses Codes verwendet werden sollen und/oder Notizblockspeicherorte für Daten, die während einer Ausführung dieses Codes generiert werden. Jeder der Header-Abschnitte beinhaltet eine Digest- und/oder digitale Signatur (einen „Hash”) und/oder anderen Wert, der von dem entsprechenden ACM, das durch Hashing und/oder andere kryptografische Funktionen generiert wurde, abgeleitet ist oder das entsprechende ACM anderweitig darstellt. Jeder der Header-Abschnitte kann ebenfalls Informationen bezüglich des Autors, Größe, Version etc. des ACM beinhalten. Die Informationen in diesen Header-Abschnitten können verwendet werden, das entsprechende ACM zu authentifizieren (z. B. die Authentizität davon zu bestätigen).
  • Master-Header 410 kann Match-Tabelle 412 und Master-Hash 414 beinhalten. Match-Tabelle 412 kann eine Tabelle beinhalten, die jeden Prozessor identifiziert, der in System 100 beinhaltet ist, z. B. basierend auf einem eindeutigen Prozessorkennzeichner, der aus einem Register oder anderen Speicherort gelesen werden kann, das/der sich innerhalb eines jeden Prozessors („CPU ID”) befindet oder damit verbunden ist. Die Match-Tabelle gibt für jeden CPU ID an, welches ACM, das in Master-ACM 400 beinhaltet ist, von diesem Prozessor basierend auf einer Staffelung, Version, einem Typ oder anderen Informationen bezüglich des Prozessors ausgeführt werden soll.
  • Master-Hash 414 beinhaltet einen Hash, der von einer Verknüpfung von Match-Tabelle 412 und Headern 424, 434 und 444 (oder einem Teil eines jeden Headers 424, 434 und 444) abgeleitet ist oder diese Verknüpfung anderweitig darstellt. Master-Hash 414 kann durch ein Hashing und/oder eine andere kryptografische Funktion generiert werden, das/die auf der Verknüpfung von Match-Tabelle 412 und den Hashes von ACM 420, 430 und 440 durchgeführt werden. Master-Hash 414 kann daher verwendet werden, um alle Informationen, die in Master-ACM 400 beinhaltet sind, zu authentifizieren.
  • 5 veranschaulicht eine Verfahrensausführungsform der vorliegenden Erfindung, speziell Verfahren 500 zum Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule. Obwohl erfindungsgemäße Verfahrensausführungsformen in dieser Hinsicht nicht eingeschränkt sind, kann auf Elemente von System 100, Prozessor 200, Chipsatz 300 oder Master-ACM 400 Bezug genommen werden, um Verfahren 500 von 5 zu beschreiben. Des Weiteren kann Verfahren 500 eine Aufstellung separater Verfahren darstellen, wobei jedes Verfahren potentiell an unterschiedlichen Orten von einer unterschiedlichen Entität oder Person oder automatisch durchgeführt wird.
  • Des Weiteren können bestimmte bei Verfahren 500 durchgeführte Aktionen von Prozessor 200 in Antwort auf Steuersignale, die von Steuereinheit 240 generiert werden (z. B. Boxen 550 bis 558), oder von Chipsatz 300 in Antwort auf Steuersignale, die von Steuereinheit 320 generiert werden, durchgeführt werden. Steuersignale in Prozessor 200 können wiederum in Antwort auf Befehlseinheit 230 generiert werden, die einen Befehl in ein oder mehr Mikrobefehle oder Mikrooperationen dekodiert, und/oder in Antwort auf Messaging-Einheit 260, die eine Bus-Nachricht oder andere Transaktion empfangt, und Steuersignale in Chipsatz 300 können wiederum in Antwort auf Messaging-Einheit 310 generiert werden, die eine Bus-Nachricht oder andere Transaktion empfängt.
  • Bei Box 502 von 5 kann Verfahren 500 beginnen.
  • Bei Box 510 kann eine beliebige Anzahl individueller ACMs, wie z. B. ACM 420, 430 und 440, geschrieben oder anderweitig beispielsweise von oder für Hersteller oder Händler von Prozessoren oder anderen Komponenten von Informationsverarbeitungssystemen erzeugt werden. Bei Box 512 kann ein Hash für jedes ACM erzeugt werden, indem ein Hashing oder anderer solcher Algorithmus auf den Code, Daten und/oder andere Abschnitte des ACM angewendet wird. Bei Box 514 kann jeder Hash durch Anwenden eines kryptografischen Algorithmus unter Verwendung beispielsweise eines öffentlichen/privaten Schlüsselpaares verschlüsselt werden. Bei Box 516 kann jeder Hash dem Header des entsprechenden ACM hinzugefügt werden.
  • Bei Box 520 kann ein Master-ACM, wie z. B. Master-ACM 400, für ein Informationsverarbeitungssystem, wie z. B. System 100, erzeugt werden. Das Master-ACM kann beispielsweise von oder für den Systemhersteller oder Händler unter Verwendung einer beliebigen Anzahl individueller ACMs, wie z. B. ACM 420, 430 und 440, erzeugt werden. Bei Box 522 kann eine Match-Tabelle, wie z. B. Match-Tabelle 412, erzeugt werden, indem ein Eintrag für jeden Prozessor oder anderen Agenten in System 100 einschließlich eines Kennzeichners eines jeden Prozessors zusammen mit einer Anzeige, welches ACM von diesem Prozessor ausgeführt werden soll, erzeugt wird.
  • Bei Box 524 kann die Match-Tabelle mit den Hashes für jedes individuelle ACM, das in dem Master-ACM beinhaltet ist, verknüpft sein. Bei Box 526 kann ein Master-Hash, wie z. B. Master-Hash 414, erzeugt werden, indem ein Hashing oder anderer solcher Algorithmus auf die Verknüpfung der Match-Tabelle und individuellen ACM-Hashes angewendet wird. Bei Box 528 kann der Master-Hash verschlüsselt werden, indem ein kryptografischer Algorithmus unter Verwendung beispielsweise eines öffentlichen/privaten Schlüsselpaares angewendet wird.
  • Bei Box 530 kann das Master-ACM ausgeführt werden, indem der Master-Hash und die Match-Tabelle in einem Master-Header verknüpft werden, und der Master-Header mit den individuellen ACMs verknüpft wird. Bei Box 532 kann das Master-ACM in das System geladen oder anderweitig darin installiert werden, beispielsweise in einem Permanentspeicher, wie z. B. Permanentspeicher 190.
  • Bei Box 540 kann das Master-ACM von Permanentspeicher zu Systemspeicher, wie z. B. Systemspeicher 150, beispielsweise durch ein BIOS, einen Bootloader oder ein OS, das in System 100 läuft, kopiert werden. Bei Box 542 kann der Zugang von System 100 in eine gesicherte Systemumgebung beispielsweise durch ein BIOS, einen Bootloader oder ein OS, das einen SENTER-Befehl an Prozessor 120 ausgibt, initiiert werden. Bei Box 544 kann Prozessor 120 eine SENTER-Bus-Nachricht senden. Bei Box 546 kann jeder RLP in System 100, beispielsweise Prozessoren 130 und 140, ACK-Bus-Nachrichten senden. Bei Box 548 kann eine Anzeige, dass sich alle RLPs in dem SENTER-Prozess vereinigt haben, beispielsweise in ALL_JOINED-Speicherort 350, abgegeben werden.
  • Bei Box 550 kann ein Prozessor (z. B. der ILP oder/und RLP) in System 100 die Match-Tabelle in dem Master-ACM lesen, um einen entsprechenden Eintrag zu finden. Wird kein Match gefunden werden, dann kann der Prozessor bei Box 552 einen Fehlercode-Wert an einen Permanentspeicher schreiben und ein System-Reset veranlassen. Wird jedoch ein Match gefunden, dann kann der Prozessor bei Box 554 seinen Cache konfigurieren, um in CRAM-Modus zu arbeiten und den Master-Header und das passende individuelle ACM in seinen Cache laden.
  • Bei Box 556 kann der Prozessor versuchen, den Master-Header und das passende ACM durch jeweiliges Hashing und durch Vergleichen der sich ergebenden Hashes mit dem Master-Hash und dem individuellen ACM-Hash, der aus dem Master-ACM gelesen wurde, zu authentifizieren. Wenn beide Vergleiche fehlschlagen, dann kann der Prozessor bei Box 552 einen Fehlercode-Wert an einen Permanentspeicher schreiben und ein System-Reset veranlassen. Wenn jedoch sowohl der Master-Header als auch das passende individuelle ACM erfolgreich authentifiziert werden, dann kann der Master-Hash bei Box 558 an einen Token, wie z. B. Token 170, gesendet werden, um in einem PCR zur Verwendung beim Ver- und Entsiegeln von Geheimnissen in der bemessenen Inbetriebnahmeumgebung oder gesicherten Systemumgebung gespeichert zu werden.
  • Bei Box 560 können Boxen 550 bis 558 von jedem anderen Prozessor in System 100 wiederholt werden. Bei Box 562 können ein oder mehr Prozessoren in System 100 beginnen, sein ACM auszuführen. Bei Box 564 kann ein Prozessor, der ein ACM ausführt, einen MVMM in Betrieb nehmen. Bei Box 566 kann ein Zugang von System 100 in eine bemessene Inbetriebnahmeumgebung (measured launch environment, „MLE”) oder eine gesicherte Systemumgebung ausgeführt werden.
  • Bei Box 598 kann Verfahren 500 enden.
  • Im Rahmen der vorliegenden Erfindung kann es für Verfahren 500 möglich sein, in anderer Reihenfolge durchgeführt zu werden, wobei ein veranschaulichter Block gleichzeitig durchgeführt wird, wobei veranschaulichte Blöcke weggelassen werden, wobei zusätzliche Blöcke hinzugefügt werden oder mit einer Kombination von neu geordneten, kombinierten, weggelassenen oder zusätzlichen Blöcken. Viele Variationen von Verfahrensausführungsformen der vorliegenden Erfindung können möglich sein, können aber aus der Beschreibung von Verfahren 500 nicht offensichtlich sein. Beispielsweise kann ein Erzeugen des Master-ACM bei Boxen 520 bis 530 außerhalb von System 100 oder innerhalb von System 100 stattfinden.
  • Somit wurden Systeme, Vorrichtungen und Verfahren, und Systeme zum Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule offenbart. Obwohl bestimmte Ausführungsformen beschrieben und in den begleitenden Zeichnungen gezeigt wurden, sollte es selbstverständlich sein, dass solche Ausführungsformen rein veranschaulichend sind und die weit gefasste Erfindung in keiner Weise einschränken, und dass diese Erfindung nicht auf die spezifischen gezeigten und beschriebenen Gestaltungen und Anordnungen beschränkt ist, da Fachleuten beim Studieren dieser Offenbarung verschiedene andere Modifizierungen einfallen können. In einem technologischen Bereich wie diesem, der von schnellem Wachstum und schwer vorhersehbaren zukünftigen Entwicklungen geprägt ist, können die offenbarten Ausführungsformen in Anordnung und Detail leicht modifiziert werden, wie es durch den Einsatz technologischer Entwicklungen ermöglicht wird, ohne von den Grundsätzen der vorliegenden Offenbarung oder dem Rahmen der begleitenden Ansprüche abzuweichen.

Claims (20)

  1. Prozessor, umfassend: einen Decoder, um einen gesicherten Zugangsbefehl zu dekodieren; Steuerlogik, um einen Eintrag zu finden, der dem Prozessor in einer Match-Tabelle in einem authentifizierten Master-Codemodul entspricht, und um einen Master-Header und ein individuell authentifiziertes Codemodul aus dem authentifizierten Master-Codemodul in Antwort auf ein Dekodieren des gesicherten Zugangsbefehls zu lesen.
  2. Prozessor nach Anspruch 1, weiter umfassend einen Cache, der in einem sicheren Modus konfiguriert sein soll, wobei die Steuerlogik den Master-Header und das individuelle Codemodul in den Cache, der in dem sicheren Modus konfiguriert ist, lesen soll.
  3. Prozessor nach Anspruch 2, wobei die Steuerlogik ebenfalls den Master-Header und das individuelle authentifizierte Codemodul veranlassen soll, innerhalb des Caches authentifiziert zu werden.
  4. Prozessor nach Anspruch 1, wobei das individuelle authentifizierte Codemodul eines einer Vielzahl individueller authentifizierter Codemodule innerhalb des authentifizierten Master-Codemoduls ist.
  5. Prozessor nach Anspruch 4, wobei die Steuerlogik ebenfalls das eine der Vielzahl individueller authentifizierter Codemodule basierend auf dem Eintrag in der Match-Tabelle auswählen soll.
  6. Prozessor nach Anspruch 3, wobei die Steuerlogik nach Authentifizierung des Master-Headers und des individuellen authentifizierten Codemoduls ebenfalls einen Master-Hash an einen Token senden soll.
  7. Verfahren, umfassend: einen ersten Eintrag zu finden, der einem ersten Prozessor in einer Match-Tabelle in einem authentifizierten Master-Codemodul entspricht; einen Master-Header aus dem authentifizierten Master-Codemodul in einen ersten sicheren Speicher zu laden; und ein erstes individuelles authentifiziertes Codemodul für den ersten Prozessor aus einem Master-Codemodul in den ersten sicheren Speicher zu laden.
  8. Verfahren nach Anspruch 7, weiter umfassend einen gesicherten Zugangsbefehl auszugeben, wobei ein Finden des ersten Eintrags, Laden des Master-Headers und Laden des ersten individuellen authentifizierten Codemoduls in Antwort auf ein Ausgeben des gesicherten Zugangsbefehls durchgeführt werden.
  9. Verfahren nach Anspruch 7, wobei der erste sichere Speicher ein Cache-Speicher des ersten Prozessors ist.
  10. Verfahren nach Anspruch 7, weiter umfassend ein Authentifizieren des Master-Headers und des ersten individuellen authentifizierten Codemoduls innerhalb des ersten sicheren Speichers.
  11. Verfahren nach Anspruch 7, weiter umfassend das erste individuelle authentifizierte Codemodul aus einer Vielzahl von individuellen authentifizierten Codemodulen in dem authentifizierten Master-Codemodul auszuwählen.
  12. Verfahren nach Anspruch 11, wobei ein Auswählen des ersten individuellen authentifizierten Codemoduls auf dem ersten Eintrag in der Match-Tabelle basiert.
  13. Verfahren nach Anspruch 10, weiter umfassend einen Master-Hash nach Authentifizieren des Master-Headers und des ersten individuellen authentifizierten Codemoduls an einen Token zu senden.
  14. Verfahren nach Anspruch 7, weiter umfassend: einen zweiten Eintrag zu finden, der einem zweiten Prozessor in der Match-Tabelle in dem authentifizierten Master-Codemodul entspricht; den Master-Header aus dem authentifizierten Master-Codemodul in einen zweiten sicheren Speicher zu laden; und ein zweites individuelles authentifiziertes Codemodul für den zweiten Prozessor aus dem Master-Codemodul in den zweiten sicheren Speicher zu laden.
  15. Verfahren nach Anspruch 14, wobei der zweite sichere Speicher ein Cache-Speicher des zweiten Prozessors ist.
  16. Verfahren nach Anspruch 14, weiter umfassend den Master-Header und das zweite individuelle authentifizierte Codemodul innerhalb des zweiten sicheren Speichers zu authentifizieren.
  17. System, umfassend: einen ersten Prozessor, einschließlich: einen Decoder, um einen gesicherten Zugangsbefehl zu dekodieren; Messaging-Logik, um eine gesicherte Zugangsnachricht zu senden; und erste Steuerlogik, um einen ersten Eintrag zu finden, der dem ersten Prozessor in einer Match-Tabelle in einem authentifizierten Master-Codemodul entspricht, und um einen Master-Header und ein erstes individuelles authentifiziertes Codemodul aus dem authentifizierten Master-Codemodul in Antwort auf ein Dekodieren des gesicherten Zugangsbefehls zu lesen; und einen zweiten Prozessor, einschließlich: Messaging-Logik, um die gesicherte Zugangsnachricht zu empfangen; und zweite Steuerlogik, um einen zweiten Eintrag zu finden, der dem zweiten Prozessor in der Match-Tabelle in dem authentifizierten Master-Codemodul entspricht, und um den Master-Header und ein zweites individuelles authentifiziertes Codemodul aus dem authentifizierten Master-Codemodul in Antwort auf ein Empfangen der gesicherten Zugangsnachricht zu lesen.
  18. System nach Anspruch 17, weiter umfassend Permanentspeicher, um das authentifizierte Master-Codemodul einschließlich der Match-Tabelle, dem ersten individuellen authentifizierten Codemodul, dem zweiten individuellen authentifizierten Codemodul und einem Master-Hash basierend auf der Match-Tabelle, dem ersten individuellen authentifizierten Codemodul und dem zweiten authentifizierten Codemodul zu speichern.
  19. System nach Anspruch 17, weiter umfassend einen Systemspeicher, um das authentifizierte Master-Codemodul in den Permanentspeicher zu laden.
  20. System nach Anspruch 19, weiter umfassend einen Token, um einen Master-Hash des authentifizierten Master-Codemoduls nach Authentifizieren des Master-Headers und des ersten authentifizierten Codemoduls innerhalb eines sicheren Speichers des ersten Prozessors zu laden.
DE102010054614A 2009-12-31 2010-12-15 Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule Withdrawn DE102010054614A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/650,579 2009-12-31
US12/650,579 US9202015B2 (en) 2009-12-31 2009-12-31 Entering a secured computing environment using multiple authenticated code modules

Publications (1)

Publication Number Publication Date
DE102010054614A1 true DE102010054614A1 (de) 2011-07-07

Family

ID=44188915

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010054614A Withdrawn DE102010054614A1 (de) 2009-12-31 2010-12-15 Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule

Country Status (6)

Country Link
US (2) US9202015B2 (de)
JP (2) JP5373753B2 (de)
CN (1) CN102122327B (de)
BR (1) BRPI1005586A2 (de)
DE (1) DE102010054614A1 (de)
TW (1) TWI582632B (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US9596082B2 (en) 2011-12-15 2017-03-14 Intel Corporation Secure debug trace messages for production authenticated code modules
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US20150082006A1 (en) * 2013-09-06 2015-03-19 Futurewei Technologies, Inc. System and Method for an Asynchronous Processor with Asynchronous Instruction Fetch, Decode, and Issue
CN105335672B (zh) * 2014-06-16 2020-12-04 华为技术有限公司 一种安全模式提示方法及装置
US9734313B2 (en) 2014-06-16 2017-08-15 Huawei Technologies Co., Ltd. Security mode prompt method and apparatus
US11087006B2 (en) 2014-06-30 2021-08-10 Nicira, Inc. Method and apparatus for encrypting messages based on encryption group association
US10181027B2 (en) 2014-10-17 2019-01-15 Intel Corporation Interface between a device and a secure processing environment
US10079880B2 (en) * 2015-06-07 2018-09-18 Apple Inc. Automatic identification of invalid participants in a secure synchronization system
US10798073B2 (en) 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
DE102018120347A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62126451A (ja) * 1985-11-27 1987-06-08 Mitsubishi Electric Corp 分散処理装置のイニシヤルプログラムロ−ド方式
JPS62128354A (ja) 1985-11-29 1987-06-10 Fuji Electric Co Ltd マルチプロセツサシステムの起動方式
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JP2000215093A (ja) * 1999-01-27 2000-08-04 Fuji Photo Film Co Ltd 画像ファイル装置および方法
US7360076B2 (en) 2001-06-13 2008-04-15 Itt Manufacturing Enterprises, Inc. Security association data cache and structure
TW583568B (en) 2001-08-27 2004-04-11 Dataplay Inc A secure access method and system
US20030126454A1 (en) 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7627753B2 (en) 2002-03-19 2009-12-01 Microsoft Corporation Secure digital data format and code enforced policy
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
EP2309411A3 (de) 2002-04-23 2011-06-15 Panasonic Corporation Verfahren und System zur gesteuerten Verteilung von Softwareprogrammen
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7698552B2 (en) * 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
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
US7752428B2 (en) * 2005-03-31 2010-07-06 Intel Corporation System and method for trusted early boot flow
US7831778B2 (en) 2006-03-30 2010-11-09 Silicon Image, Inc. Shared nonvolatile memory architecture
US8458726B2 (en) * 2007-12-03 2013-06-04 Intel Corporation Bios routine avoidance
FR2918830B1 (fr) 2007-07-13 2009-10-30 Viaccess Sa Verification de code mac sans revelation.
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules

Also Published As

Publication number Publication date
US20110161676A1 (en) 2011-06-30
JP2011141870A (ja) 2011-07-21
CN102122327A (zh) 2011-07-13
TW201140367A (en) 2011-11-16
TWI582632B (zh) 2017-05-11
CN102122327B (zh) 2016-05-25
JP2013251016A (ja) 2013-12-12
US9208292B2 (en) 2015-12-08
BRPI1005586A2 (pt) 2012-02-28
US20130212673A1 (en) 2013-08-15
JP5373753B2 (ja) 2013-12-18
JP5752767B2 (ja) 2015-07-22
US9202015B2 (en) 2015-12-01

Similar Documents

Publication Publication Date Title
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE202019005671U1 (de) Koexistenz von Vertrauensdomänenarchitektur mitMehrschlüssel-Gesamtspeicherverschlüsselungstechnologieauf Servern
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
DE10392320B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE102018115491A1 (de) System, vorrichtung und verfahren zur seitengranularen, softwaregesteuerten speicherverschlüsselung mit mehreren schlüsseln
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
DE102018005180A1 (de) Flexible Bescheinigung von Containern
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112017001766T5 (de) Power-side-channel-angriffsresistenter advanced-encryption-standard-beschleunigungsprozessor
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE112016004330T5 (de) Prozessoren, Verfahren, Systeme und Befehle zum Zulassen sicherer Kommunikationen zwischen einem geschützten Containerspeicher und Eingabe-/Ausgabegeräten
DE112010004885T5 (de) Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung
DE112006001933B4 (de) Stillegen eines Prozessorbusagenten
DE102008011925A1 (de) Computersysteme mit sicherem Initialisierungsmechanismus
DE102018115670A1 (de) Technologien für die Ausführung von nicht vertrauenswürdigem Code mit Prozessor-Sandbox-Unterstützung
DE112017005005T5 (de) Systeme, vorrichtungen, und verfahren zur plattformsicherheit
DE112006002072T5 (de) Mechanismus zum Aktivieren einer Eigenschaft eines Rechnersystems
DE112007000363T5 (de) Verfahren zum Bereitstellen sicherer Firmware
DE202019005672U1 (de) System zum Verhindern eines unautorisierten Zugriffs auf verschlüsselten Speicher
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE102019128261A1 (de) Datenfreigabesteuerung auf der Basis von Authentifizierung und Verbindungsstreckenschutz
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021440000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021440000

Effective date: 20130315

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee