DE102011103218B4 - Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen - Google Patents

Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen Download PDF

Info

Publication number
DE102011103218B4
DE102011103218B4 DE102011103218.9A DE102011103218A DE102011103218B4 DE 102011103218 B4 DE102011103218 B4 DE 102011103218B4 DE 102011103218 A DE102011103218 A DE 102011103218A DE 102011103218 B4 DE102011103218 B4 DE 102011103218B4
Authority
DE
Germany
Prior art keywords
tpm
command
local
request
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102011103218.9A
Other languages
English (en)
Other versions
DE102011103218A1 (de
Inventor
Ramakrishna Saripalli
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 DE102011103218A1 publication Critical patent/DE102011103218A1/de
Application granted granted Critical
Publication of DE102011103218B4 publication Critical patent/DE102011103218B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

Vorrichtung, umfassend:einen CPU-Kern (103), um ein Softwareprogramm auszuführen;eine Verwaltungs-Engine (107), gekoppelt mit dem CPU-Kern (103), wobei die Verwaltungs-Engine (107) eingerichtet ist, wenn ein lokales Trusted Platform Modul, TPM (121), zur Verwendung nicht verfügbar ist, einen TPM-Befehl zu empfangen, der von dem Softwareprogramm angefragt wurde, und den TPM-Befehl unter Verwendung einer Verwaltungsfirmware (115) durch zumindest Erzeugen eines TPM-Netzwerkpakets zu verarbeiten, und wobei, wenn ein lokales TMP (121) zur Verwendung verfügbar ist, der TPM-Befehl an das lokale TPM (121) geleitet wird;eine Netzwerkschnittstelle (119), die mit der Verwaltungs-Engine (107) gekoppelt ist, wobei die Netzwerkschnittstelle (119) eingerichtet ist, das TPM-Netzwerkpaket zur Verarbeitung an ein entferntes TPM zu übertragen, das extern zu der Vorrichtung angeordnet ist.

Description

  • BEREICH DER OFFENBARUNG
  • Diese Offenbarung bezieht sich im Allgemeinen auf das Gebiet der Datenverarbeitung, und insbesondere auf gesicherte Datenverarbeitung.
  • HINTERGRUND DER OFFENLEGUNG
  • Die steigende Anzahl an finanziellen und persönlichen Transaktionen, die auf lokalen oder entfernten Mikrocomputern ausgeführt werden, hat den Anstoß für die Einrichtung von „vertrauenswürdigen“ oder „gesicherten“ Mikroprozessorumgebungen gegeben. Diese Umgebungen versuchen das Problem hinsichtlich Verlust der Privatsphäre oder Fälschung oder Missbrauch von Daten zu lösen. Benutzer möchten nicht, dass ihre privaten Daten öffentlich gemacht werden. Sie möchten ebenfalls nicht, dass ihre Daten verändert oder in unangemessenen Transaktionen verwendet werden. Beispiele hierfür beinhalten unbeabsichtigte Freigabe von medizinischen Berichten oder elektronischer Diebstahl von Geldmitteln von einer Online-Bank oder anderer Hinterlegungsstelle. Gleichermaßen streben Inhalt-Provider danach, digitalen Inhalt (z. B. Musik, andere Audioformen, Video oder andere Arten von Daten im Allgemeinen) davor zu schützen, ohne Autorisierung kopiert zu werden.
  • Eine Komponente eines solchen vertrauenswürdigen Mikroprozessorsystems kann ein vertrauenswürdiges Plattformmodul (trusted platform module, TPM) sein, wie offenbart in der TCG TPM-Spezifikation, Version 1.2.
  • Die Patentanmeldung US 2010/0095120 beschreibt ein Verfahren für eine vertrauliche Initialisierung eines lokalen TPMs einer Client-Vorrichtung aus der Ferne. Hierbei initiiert eine Client-Vorrichtung den Prozess zur Initialisierung seines lokalen TPMs, indem die Client-Vorrichtung ein Zertifikat von dem lokalen TPM an einen Server sendet. Der Server validiert das Zertifikat und berechnet einen Befehl zur Initialisierung des TPMs. Der Server sendet diesen Befehl verschlüsselt an die Client-Vorrichtung zurück, der den Befehl an das lokale TPM weiterleitet. Das TPM entschlüsselt den Befehl zur Initialisierung und führt diesen aus.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung liegt der Aufgabe zugrunde, vertrauenswürdige und gesicherte Transaktionen für Mikrocomputer zu ermöglichen.
  • Die vorgenannte Aufgabe wird durch Merkmale des Hauptanspruchs und ein System und ein Verfahren gemäß den nebengeordneten Ansprüchen gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Figurenliste
  • Die vorliegende Erfindung wird exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt.
    • 1 veranschaulicht ein System zum Implementieren von vertrauenswürdiger EDV.
    • 2 veranschaulicht eine Ausführungsform eines Verfahrens eines Computers, der ein TPM-befehlsbasiertes Paket erzeugt.
    • 3 veranschaulicht eine Ausführungsform eines Verfahrens zum Handhaben von eingehenden TPM-Netzwerkpaketen durch eine Management-Konsole.
    • 4 veranschaulicht eine Ausführungsform eines Verfahrens zum Handhaben weitergeleiteter TPM-Netzwerkpakete durch einen TPM-Server.
    • 5 veranschaulicht eine Ausführungsform eines Verfahrens zum Verarbeiten eines Antwortpakets durch eine Management-Konsole.
    • 6 veranschaulicht eine Ausführungsform eines Verfahrens für einen anfragenden Computer, ein Antwort-TPM-Paket zu verarbeiten.
    • 7 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 8 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 9 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung beschreibt Techniken von vertrauenswürdiger Ausführung. In der folgenden Beschreibung werden zahlreiche spezifische Details, wie z. B. Logikimplementierungen, Softwaremodulzuteilung und Operationsdetails, dargelegt, um ein besseres Verständnis von Ausführungsformen der vorliegenden Erfindung bereitzustellen. Für einen Fachmann ist es jedoch selbstverständlich, dass Ausführungsformen der vorliegenden Erfindung ohne solche spezifischen Details praktiziert werden können. In anderen Fällen werden Steuerstrukturen, Gateebenenschaltungen und gesamte Softwareanweisungssequenzen nicht im Detail gezeigt, um die Ausführungsformen der vorliegenden Erfindung nicht zu verschleiern. Der Durchschnittsfachmann wird anhand der eingebundenen Beschreibungen in der Lage sein, ohne unangemessenes Experimentieren sachgerechte Funktionalität zu realisieren.
  • Ein Datenverarbeitungssystem kann Hardwareressourcen, wie z. B. eine Zentraleinheit (central processing unit, CPU), Direktzugriffsspeicher (random access memory, RAM), Festwertspeicher (read-only memory, ROM), etc., beinhalten. Das Verarbeitungssystem kann ebenfalls Softwareressourcen, wie z. B. ein BIOS (basic input/output system), einen virtuellen Maschinenmonitor (virtual machine monitor, VMM) und ein oder mehr Betriebssysteme (operating systems, OSs), beinhalten. Wenn das Computersystem gestartet oder zurückgesetzt wird, kann es das BIOS und sodann den VMM laden. Der VMM kann auf einem Host-OS laufen, oder der VMM kann als ein Hypervisor implementiert sein, der Steuerung beinhaltet, die mehr oder weniger als ein Host-OS dienen kann. Der VMM kann eine oder mehr virtuelle Maschinen (virtual machines, VMs) erzeugen, und die VMs können zu unterschiedlichen Gast-OSs oder zu unterschiedlichen Instanzen des gleichen Gast-OSs hochfahren. Ein Gast-OS, das dem VMM Einrichtungen zum Verwalten bestimmter Aspekte des Verarbeitungssystems, Virtualisierung betreffend, bereitstellt, kann als Service-OS bezeichnet werden. Der VMM kann es deshalb mehreren OSs und Anwendungen erlauben, in unabhängigen Partitionen zu laufen.
  • Die CPU in einem Datenverarbeitungssystem kann Hardwaresupport (z. B. Anweisungen und Datenstrukturen) für Virtualisierung bereitstellen. Unterschiedliche Arten von Prozessoren können unterschiedliche Merkmale zum Unterstützen von Virtualisierung bereitstellen. Ein Verarbeitungssystem kann ebenfalls Merkmale beinhalten, die als LaGrande Technology (LT) oder Intel Trusted Execution Technology (TXT), wie von der Intel Corporation entwickelt, bezeichnet werden. Die LT/Intel TXT-Merkmale können das geschützte Messen und Starten eines VMM vorsehen. Unterschiedliche Arten von Prozessoren können unterschiedliche Merkmale bereitstellen, um das geschützte Messen und Starten eines VMM vorzusehen.
  • 1 veranschaulicht ein System zum Implementieren von vertrauenswürdiger EDV. In dem veranschaulichten Beispiel umfasst dieses System drei Hauptkomponenten: einen Computer (vertrauenswürdige Plattform) 101 (wie z. B. einen Desktop, Laptop, Netbook, etc.), eine Management-Konsole (management console, MGMT-Konsole) 123 und einen TPM-Server 125. Bei einigen Ausführungsformen sind eine oder mehr dieser Komponenten jedoch verschmolzen (beispielsweise der TPM-Server 125 und Management-Konsole 123 wären eine Einheit). Bei anderen Ausführungsformen sind diese Komponenten und ihre Unterkomponenten über zusätzliche Einheiten verstreut.
  • Der Computer 101 beinhaltet zumindest einen CPU-Kern 103, um Softwareprogramme durch Verarbeitung von Anweisungen auszuführen, einschließlich derjenigen, die gerne eine vertrauenswürdige Ausführung aufrufen würden, unter Verwendung eines TPM. Bei einigen Ausführungsformen führt der CPU-Kern 103 Anweisungen aus, die einen Hash von zumindest einem Teil der Software der Plattform 101, einschließlich Betriebssysteme, Anwendungen und virtuelle Maschinen, generieren. Der Hash wird lokal in dem TPM 121 gespeichert, wenn es verfügbar ist, und extern, wenn nicht.
  • Der CPU-Kern 103 ist mit einem Memory-Controller 105 gekoppelt. Bei einigen Ausführungsformen ist der Memory-Controller 105 auf dem gleichen Die wie der CPU-Kern 103 (ein integrierter Memory-Controller). Bei anderen Ausführungsformen ist der Memory-Controller extern zu dem Die, der den CPU-Kern 103 beherbergt (z. B. in einer Northbridge).
  • Der Memory-Controller 105 beinhaltet ebenfalls eine Verwaltungsfähigkeitsengine (manageability engine, ME) 107. Die ME 107 ist ein Mikrocontroller oder anderer Prozessor, der die ME-Firmware 115 ausfuhrt. Bei einer Ausführungsform ist ME 107 ein Baseboard-Management-Controller (baseboard management controller, BMC). Die ME 107 läuft typischerweise mit Hilfsstrom und ist für die meisten, wenn nicht alle, Energiezustände verfügbar. Bei einer weiteren Ausführungsform wird eine Mikrocontroller-ME in Kombination mit einem BMC verwendet.
  • Die ME-Firmware 115 wird in Flash-Memory 111 gespeichert. Durch die ME 107, ME-Firmware 115 und ME-Datenspeicher 117 ist entferntes OBB-(out-of-band)-Management des Computers 101 verfügbar. Beispielsweise kann eine entfernte Anwendung Plattforminstallation und -konfiguration ausführen. Bei einer Ausführungsform weist die CPU, einschließlich dem Kern 103, Register auf, die verwendet werden, um anzuzeigen, ob der gekoppelte Chipsatz die gesicherten EDV-Merkmale der ME 107, wie z. B. Weiterleiten von TPM-Befehlen, zum Vorteil nutzen kann. Die ME-Firmware 115 wird auf der ME 107 ausgeführt, und kann einen Teil von RAM, der mit der CPU 103 gekoppelt ist, während der Ausführung zum Speichern verwenden. Die ME-Firmware 115 führt eines oder mehr durch von: Verarbeiten von Anfragen in der Abwesenheit eines lokalen TPM 121, wie weiter nachstehend beschrieben, Agieren als ein Speichermanager von TPM-Anfragen (Platzieren und Abrufen von TPM-Anfragsinformationen in/aus ME-Datenspeicher 117 oder anderem Speicher), Verfolgen der DHCP-Leases des OS durch Verwenden dedizierter Filter in der Netzwerkschnittstelle 119 (wann wurde die Lease erworben, wann läuft sie aus, etc.), Interagieren mit der Netzwerkschnittstelle 119, um Verbindungen aufrechtzuerhalten oder zu erwerben, Lesen des Energiezustands des Chipsatzes und Verwenden dieser Informationen, um zu bestimmen, wann sie herunter- oder hochfahren soll (und bei einigen Ausführungsformen Steuern der Energie von anderen Komponenten, wie z. B. die ME 107 und ME-Datenspeicher 113), Speichern von Versionsnummern von Software in ME-Daten 117 oder anderem Permanentspeicher (wie z. B. Version des Antivirusschutzes), proaktiv Blockieren von eingehenden Bedrohungen (Systemverteidigung), Verifizieren, dass die gewünschten Softwareagenten (wie z. B. Antivirus) laufen, und Benachrichtigen einer Management-Konsole, wenn dies nicht der Fall ist, Entdecken von Assets der Plattform, sogar wenn der Hauptstrom abgeschaltet ist, und/oder Leiten von TPM-Befehlen zu dem lokalen TPM 121 unter typischen TPM-Prozessen unter Verwendung der ME 107.
  • Der ME-Datenspeicher 117 enthält OEM-konfigurierbare Parameter und/oder Installations- und Konfigurationsparameter, wie z. B. Passwörter, Netzwerkkonfiguration, Zertifikate und Zugriffssteuerlisten (access control lists, ACLs). Der ME-Datenspeicher 117 enthält ebenfalls andere Konfigurationsinformationen, wie z. B. Listen von Alarmsignalen und Systemverteidigungsrichtlinien, und die Hardwarekonfiguration, die von dem BIOS 113 beim Hochfahren festgehalten wurde. Das BIOS 113 speichert gesicherte Hochfahrverfahrensweisen, die in einer gemessenen Startumgebung (measured launch environment, MLE) verwendet werden können.
  • Der Memory-Controller 105 ist mit einem Eingangs-/Ausgangs-Steuerhub (input/output control hub, ICH) oder Periphäriesteuerhub (peripheral control hub, PCH) 109 gekoppelt. Der ICH/PCH 109 koppelt mit I/O-Geräten, wie z. B. Tastaturen, PCI-Geräte, PCI-Express-Geräte, etc. Eines der Geräte, die typischerweise mit dem ICH gekoppelt sind, ist eine Netzwerkschnittstelle 119, wie z. B. eine drahtlose (z. B. WLAN) oder drahtgebundene (z. B. Ethernet) Verbindung.
  • Neben der Tatsache, dass die ME bei einigen Ausführungsformen mit Hilfsstrom laufen kann, können das BIOS 113, ME-Firmware 115, ME-Datenspeicher 117, TPM 121 und/oder die Netzwerkverbindung 119 ebenfalls mit Hilfsstrom laufen. Außerdem sind Teile des oder der gesamte ICH/PCH 109 in der Lage, mit Hilfsstrom zu laufen.
  • Außerdem kann ein TPM 121 in dem Computer 101 beinhaltet sein. Bei einer Ausführungsform wird TPM 121 durch die TCG (Trusted Computing Group) in der TCG TPM-Spezifikation, Version 1.2 definiert. Das TPM 121 speichert cryptografische Schlüssel und Hashes von Software und Richtlinien. Das TPM 121 stellt ein Repositorium für Messungen und die Mechanismen bereit, um die Messungen verwenden zu können. Das System verwendet die Messungen, um sowohl über die derzeitige Plattformkonfiguration zu berichten, als auch Langzeitschutz sensibler Informationen bereitzustellen. Das TPM 121 speichert Messungen in Plattformkonfigurationsregistern (platform configuration register, PCRs). PCRs stellen einen Speicherplatz bereit, der eine unbegrenzte Anzahl an Messungen in einer festen Menge an Raum ermöglicht. Sie stellen dieses Merkmal durch eine inhärente Eigenschaft von cryptografischen Hashes bereit. Externe Einheiten schreiben niemals direkt in ein PCR-Register, sie „erweitern“ PCR-Inhalte. Die Erweiterungsoperation nimmt den derzeitigen Wert des PCR, fügt den neuen Wert hinzu, führt einen cryptografischen Hash bei dem kombinierten Wert aus, und das Hash-Ergebnis ist der neue PCR-Wert. Eine Eigenschaft von cryptografischen Hashes ist, dass diese von der Reihenfolge abhängig sind. Dies bedeutet, dass das Hashen von A und anschließend B ein Ergebnis erzeugt, das unterschiedlich zum Hashen von B und anschließend A ist. Diese Reihenfolgeneigenschaft ermöglicht es den PCR-Inhalten, die Reihenfolge von Messungen anzuzeigen.
  • Wie weiter vorstehend angedeutet wurde, bietet das TPM 121 Einrichtungen zum gesicherten Generieren von cryptografischen Schlüsseln, und Einschränken derer Verwendung, zusätzlich zu einem pseudo-willkürlichen Hardwarenummerngenerator. Es beinhaltet ebenfalls Leistungsfähigkeiten, wie z. B. entfernte Attestierung und versiegelte Speicherung. Das TPM 121 kann ebenfalls verwendet werden, um Hardwaregeräte zu authentifizieren. Da jedem TPM 121 ein einzigartiger und geheimer RSA-Schlüssel bei der Herstellung eingebrannt wird, ist es in der Lage, Plattformauthentifizierung auszuführen. Beispielsweise kann es verwendet werden, um zu verifizieren, dass ein System, das Zugriff auf das TPM 121 sucht, das erwartete System ist.
  • Andere Komponenten des Computers 101 sind nicht gezeigt. Beispielsweise kann der Computer 101 Direktzugriffsspeicher (random access memory, RAM), der mit dem Memory-Controller gekoppelt ist, einen Grafikprozessor, großen Permanentspeicher (mechanischer oder fester Zustand), etc. beinhalten. Bei einigen Ausführungsformen hält der große Permanentspeicher (oder andere Permanentspeicher) Startsteuerrichtlinien, die die Elemente der vertrauenswürdigen Plattform definieren. Diese Richtlinien werden beispielsweise von einem OEM oder VAR geschrieben und verweilen an einem Schutzort. Ein Hash dieser Richtlinien ist in dem TPM 121 gespeichert und wird während des Systemstarts verifiziert.
  • Typischerweise weisen Computer, die vertrauenswürdige Ausführung unterstützen, einen Teil von Adressraum auf, der dem lokalen TPM 121 dediziert ist, genannt der TPM-Decodierungsraum. Beispielsweise verweilt dieser Adressraum bei einigen Ausführungsformen in dem MMIO-(memory mapped I/O)-Bereich, beginnend bei 0xFED40000 bishin zu 0xFED4FFF (inklusiv). Typischerweise werden alle Zugriffe auf diesen Bereich an das TPM 121 weitergeleitet. Die Host-Software, die auf dem Computer 101 läuft, bildet Befehle gemäß der Formate, die in den TCG-(trusted computing group)-Standards definiert sind. Die Befehle werden ausgeführt, indem Lese- und Schreibbefehle in Register, die in diesem Bereich lokalisiert sind, ausgegeben werden. Im Wesentlichen bereitet die Software das Befehlspaket vor, schreibt in das/die Nutzlastregister in diesem Bereich, und schreibt Werte in die Befehlsregister. Beispielsweise schreibt ein Laufwerk Befehle an eine Standard-TPM-Speicheradresse (z. B. 0xFED4XXXX), die von einer MMIO-Trap festgehalten wird und sodann an das TPM 121 geliefert wird.
  • Leider kann die Verwendung eines lokalen TPM, wie z. B. TPM 121, Nachteile aufweisen. Ein potentieller Nachteil ist, dass Daten, die von einem Programm verschlüsselt werden, das das TPM 121 verwendet, unzugänglich oder unwiederbringlich werden, wenn eines der Folgenden auftritt: a) das Passwort, dass mit dem TPM verbunden ist, geht verloren, wodurch die verschlüsselten Daten unzugänglich werden; b) ein Laufwerk fällt aus, das verschlüsselte Daten enthält; und/oder c) die Plattform kann ausfallen, und jegliche Daten, die mit nicht-migrierbaren Schlüsseln verbunden sind, gehen verloren. Außerdem können verschlüsselte Daten an diejenigen herausgegeben werden, für die kein Zugriff beabsichtigt war, wenn die Eigentümerschaft des TPM 121 übertragen wird.
  • Bei Plattformen, die entweder das optionale lokale TPM 121 nicht aufweisen, oder sich dazu entschließen, das lokale TPM 121 nicht zu verwenden, kann eine Management-Konsole 123 und/oder TPM-Server 125 anstatt des lokalen TPM 121 verwendet werden. Die Management-Konsole 123 wird typischerweise von einem Administrator verwendet, um die Plattform 101 entfernt zu verwalten, und kann ein entfernter Computer, wie z. B. ein Server, sein. Bei einigen Ausführungsformen wird dies durch Verwenden von Intel Active Management Technology (AMT) durchgeführt. Außerdem, wenn als potentielles „entferntes“ TPM dienlich, kann die Management-Konsole 123 einen Paketspeicher 129 beinhalten, um TPM-Netzwerkpaketanfragen von der Plattform zu speichern, und Routinginformationsspeicher 131, um Informationen darüber zu speichern, welcher Computer 101 die Anfrage gestellt hat, und welcher TPM-Server 125 zum Handhaben der Anfrage gewählt worden ist. Beispielsweise kann eine Aufzeichnung in dem Routinginformationsspeicher 131 eines oder mehr der Folgenden beinhalten: ein Feld für Paketspeicherort, Zeit der Anfrage; wann das Paket empfangen wurde; wann das empfangene Paket verarbeitet wurde (entweder an einen TPM-Server gesendet oder intern gehandhabt); eine Identifizierung des TPM-Servers, dem das empfangene Paket gesendet wurde (wenn es gesendet wurde); und/oder die Identifizierung der anfragenden Plattform. Bei einigen Ausführungsformen beinhaltet die Management-Konsole 123 ein TPM 133. Die Management-Konsole beinhaltet ebenfalls Routinglogik (entweder Hardware, Software oder Firmware), die TPM-Netzwerkpakete an das angemessene TPM (lokal oder auf einem anderen Server) und zurück zu der anfragenden Plattform leitet. Der Kommunikationskanal zwischen der Netzwerkschnittstelle 119 und der Management-Konsole 123 wird typischerweise durch Verwenden von SSL/IPSEC oder anderen gesicherten Protokollen geschützt. Außerdem kann der Kommunikationskanal ebenfalls unter Verwendung von TCP/IP oder nativ über Ethernet (geeignet für ein Datencenter) geleitet werden. Während nicht gezeigt, beinhalten die Management-Konsole 123 und TPM-Server 125 ebenfalls Netzwerkschnittstellen, CPU-Kern(e), etc. Die Management-Konsole 123 beinhaltet ebenfalls Funktionalität für einen Administrator, um entfernt Informationen von entweder dem TPM-Server 125 oder Plattform 101 oder beiden zu konfigurieren oder zu empfangen.
  • Der TPM-Server 125 ist mit der Management-Konsole 123 gekoppelt, und enthält zumindest ein TPM 127, um Anfragen zu verarbeiten, die von der Management-Konsole 123 weitergeleitet wurden. Bei einigen Ausführungsformen interagiert der Computer 101 mit dem TPM-Server 125 ohne Eingriff einer Management-Konsole 123. Es kann mehr als einen TPM-Server 125 geben, der zum Interagieren mit der Management-Konsole 123 verfügbar ist. Gleichermaßen kann der Computer 101 mit mehr als einer Management-Konsole 123 interagieren, abhängig davon, wie sie vorgesehen wurde (wem/was vertraut sie, etc.). Während nicht gezeigt, beinhalten die Management-Konsole 123 und TPM-Server 125 ebenfalls Netzwerkschnittstellen, CPU-Kern(e), etc.
  • Verarbeitungssysteme, die das Vorstehende verwenden können, beinhalten eingebettete Informationstechnologie (embedded information technology, EIT), die System-Management unterstützt. Beispielsweise kann eine EIT-Plattform verifiziertes Hochfahren unter Verwendung von Intel TXT und Leistungsfähigkeiten eines TPM unterstützen. Außerdem kann eine virtuelle Maschine (virtual machine, VM) in der Plattform die Kernleistungsfähigkeiten eines TPM nutzen. Solch eine VM kann ein Benutzer-OS, wie z. B. Microsoft Windows Vista™, laufen lassen. Eine herkömmliche Plattform kann jedoch nicht in der Lage sein, ein Hardware-TPM unter mehreren VMs zu teilen, während Sicherheitsgarantien des TPM aufrechterhalten werden.
  • 2 veranschaulicht eine Ausführungsform eines Verfahrens eines Computers, wie z. B. Computer 101, der ein TPM-befehlsbasiertes Paket erzeugt. Bei 201 wird eine Anfrage durch ein Softwareprogramm, das auf dem Computer läuft, nach Zugriff des TPM-Decodierungsraums gestellt. Diese Anfrage kann in der Form eines TPM-Befehls sein.
  • Bei 203 wird bestimmt, ob ein lokales TPM verfügbar ist. Die Verfügbarkeit eines lokalen TPM, wie z. B. TPM 121 von 1, kann auf viele unterschiedliche Wege erkannt werden. Bei einigen Ausführungsformen wird ein lokales TPM bei der Plattform beim Hochfahren registriert. In diesem Fall weiß die Plattform, dass sie ein lokales TPM aufweist, das verfügbar ist (und wahrscheinlich so installiert ist, um in dem BIOS zu laufen). Bei anderen Ausführungsformen wird das lokale TPM nach dem Hochfahren gestartet und bei dem OS registriert. Bei anderen Ausführungsformen wird die Verfügbarkeit des lokalen TPM in einem Permanentspeicher (wie z. B. BIOS) gespeichert, auf den von einer ME zugegriffen werden kann, ohne dass die Plattform jegliche Hochfahrprozesse durchlaufen muss. Beispielsweise ist bekannt, dass das lokale TPM existiert, und die angemessenen Komponenten (wie z. B. die ME 107, ME-Firmware 115, ME-Daten 117, TPM 121, etc.) werden hochgefahren (zumindest teilweise). Wenn das lokale TPM für die Verwendung verfügbar ist, dann wird bei 205 die TPM-Anfrage an das lokale TPM zur Verarbeitung geleitet. Bei diesem Beispiel wird die Anfrage wie gewöhnlich verarbeitet.
  • Wenn das lokale TPM zur Verwendung nicht verfügbar ist, empfängt die ME bei 207 die Anfrage. Beispielsweise würde ME 107 die Anfrage von dem CPU-Kern 107 empfangen. Bei einigen Ausführungsformen ist der Memory-Controller 105 für das Abfangen und Leiten der Anfrage an die ME 107 verantwortlich. Beispielsweise, wenn der Memory-Controller 105 eine Zugriffsanfrage für 0xFED40001 empfangen würde, dann würde er diese Anfrage an die ME 107 bei einer MMIO-Trap weiterleiten, anstatt sie an das lokale TPM 121 zu senden. In diesem Szenario werden die Orte, die normalerweise mit dem lokalen TPM 121 verbunden werden würden, stattdessen mit der ME 107 verbunden. Bei anderen Ausführungsformen unternimmt die ME 107 das Abfangen selbst.
  • Bei Empfang einer Anfrage speichert bei 209 die ME-Firmware zumindest interne Routinginformationen (welcher CPU-Kern, Sockel, etc. die Anfrage gestellt hat). Diese Informationen können in ME-Daten 117 gespeichert werden. Die ME-Firmware kann zusätzlich die Anfrage selbst oder ihre paketierte Version speichern (nachstehend detailliert). Beispielsweise kann eines oder mehr der Folgenden gespeichert werden: die TPM-Befehlsanfrage, eine paketierte Version der TPM-Befehlsanfrage, der Zeitpunkt der Anfrage; wann die paketierte Version gesendet wurde; eine Identifizierung, wem die paketierte Version gesendet wurde (Adresse oder Name), eine Identifizierung, wer die Anfrage gestellt hat (wie z. B. das Softwareprogramm, der Kern, der Sockel, etc.) und/oder eine Identifizierung der Anfrage.
  • Ein Netzwerkpaket, basierend auf dem TPM-Befehl, wird bei 211 erzeugt. Beispielsweise führt die ME 107 die ME-Firmware 115 aus, um ein TPM-Befehlspaket zu erzeugen. Bei einigen Ausführungsformen kann dieses Paket ein TCP/IP-Paket sein, wobei der TPM-Befehl zumindest einen Teil der TCP/IP-Nutzlast ausmacht. Zusätzliche Nutzlastinformationen können einen TPM-Serveridentifikator beinhalten, wenn bekannt.
  • In lokalen Netzwerken kann es kein TCP/IP-Paket sein.
  • Die ME leitet dieses erzeugte Paket bei 213 an eine der Netzwerkschnittstellen des Computers weiter. Beispielsweise leitet die ME 107, die die ME-Firmware 115 verwendet, das TPM-Netzwerkpaket an eine NIC, WLAN, etc. weiter. Wie vorstehend angezeigt, muss die Netzwerkschnittstelle wissen, wohin die TPM-Netzwerkpakete zu senden sind (die Adresse der Management-Konsole oder TPM-Servers). Bei einigen Ausführungsformen werden diese Informationen während des Bereitstellungsprozesses installiert, wie z. B. vor dem Hochfahren. Beispielsweise wird der Computer während des Bereitstellens so eingestellt, dass er entfernte Konfiguration ermöglicht, wodurch der Bedarf an jeglicher Software beseitigt wird, auf der Plattform zu laufen. Typischerweise werden diese Parameter durch den Administrator unter entfernter Konfiguration installiert.
  • Bei 215 leitet die Netzwerkschnittstelle sodann das TPM-Netzwerkpaket zur Verarbeitung an entweder eine Management-Konsole oder einen TPM-Server weiter, abhängig von der verwendeten Implementierung. Dementsprechend wurde der originale TPM-Befehl „virtualisiert“, um an einem anderen Ort verarbeitet zu werden.
  • 3 veranschaulicht eine Ausführungsform eines Verfahrens zum Handhaben von eingehenden TPM-Netzwerkpaketen durch eine Management-Konsole. Bei 301 empfängt die Management-Konsole ein TPM-Netzwerkpaket, das von einer Plattform verarbeitet werden soll. Beispielsweise empfängt Management-Konsole 123 ein TPM-Netzwerkpaket von Plattform 101 über Netzwerkschnittstelle 119.
  • Die Management-Konsole bestimmt sodann bei 303, ob sie das TPM-Netzwerkpaket handhaben kann. Beispielsweise, nachdem sie das TPM-Netzwerkpaket zumindest teilweise decodiert hat, um zu bestimmen, ob es einen TPM-Befehl enthält, bestimmt die Management-Konsole 123, ob es ein lokales TPM 133 aufweist, um die Anfrage zu verarbeiten. Die Management-Konsole kann ebenfalls bestimmen, ob sein TPM oder TPMs die Bandbreite aufweisen, um die Anfrage zu handhaben. Bei einigen Ausführungsformen speichert die Management-Konsole das Paket vorübergehend in ihrem Paketspeicher, und erzeugt einen Eintrag hinsichtlich des TPM-Netzwerkpakets in ihrem Routinginformationsspeicher, bevor sie das Paket verarbeitet. Wenn sie die Anfrage handhaben kann, verarbeitet die Management-Konsole den Befehl des TPM-Netzwerkpakets, und sendet bei 305 eine Antwort zurück an die Plattform, die die Anfrage gestellt hat.
  • Wenn die Management-Konsole das Paket nicht handhaben kann (kein lokales TPM verfügbar), dann speichert die Management-Konsole das TPM-Netzwerkpaket (z. B. in Speicher 129), und erzeugt bei 307 einen Eintrag hinsichtlich des TPM-Netzwerks in ihrem verbundenen Routinginformationsspeicher (wie z. B. Speicher 131). Beispielsweise würde das TPM-Netzwerkpaket in Paketspeicher 129 gespeichert werden, und ein Eintrag, der detailliert aufführt, wer das TPM-Netzwerkpaket gesendet hat und wem es weitergeleitet wurde, etc., würde erzeugt werden. Während das Vorstehende das Speichern des TPM-Netzwerkpakets erörtert hat, wird bei einigen Ausführungsformen nur ein Teil des Pakets gespeichert, wie z. B. der TPM-Befehl.
  • Die Management-Konsole leitet das TPM-Netzwerkpaket bei 309 an einen angemessenen TPM-Server weiter. Die Management-Konsole kann mit dem Ort des Ziel-TPM-Servers konfiguriert sein, basierend auf der MAC-Adresse der sendenden Netzwerkschnittstelle, und/oder anderen statischen Informationen, die durch einen Netzwerkadministrator eingestellt wurden. Bei einigen Ausführungsformen, wenn das TPM-Netzwerkpaket weitergeleitet wird, werden die vormaligen Routinginformationen (wie z. B. TCP/IP) abgezogen und durch neuen Routinginformationen ersetzt, die dem TPM-Server entsprechen, der zum Handhaben der Anfrage gewählt worden ist. Außerdem wird bei einigen Ausführungsformen ein Identifikator, der das weitergeleitete Paket mit dem Original verbindet, in dem weitergeleiteten Paket platziert. Außerdem kann ein Identifikator der Management-Konsole in dem weitergeleiteten Paket beinhaltet werden. Beispielsweise wird der Ort des Pakets in Paketspeicher 129 in dem weitergeleiteten Paket beinhaltet. Diese Informationen können der Management-Konsole 123 dabei helfen, eine Antwort von dem TPM-Server 125 mit der weitergeleiteten Anfrage zu verbinden.
  • 4 veranschaulicht eine Ausführungsform eines Verfahrens zum Handhaben weitergeleiteter TPM-Netzwerkpakete durch einen TPM-Server. Bei 401 empfängt ein TPM-Server ein TPM-Netzwerkpaket von einer Management-Konsole. Beispielsweise empfängt TPM-Server 125 ein TPM-Netzwerkpaket von Management-Konsole 123, wobei das TPM-Netzwerkpaket von Plattform 101 hervorgebracht wurde.
  • Der TPM-Server verarbeitet (führt aus) sodann bei 403 den TPM-Befehl von dem TPM-Netzwerkpaket in der gleichen Art und Weise, als wenn er lokal zu der Plattform wäre, die die Anfrage gestellt hat. Wenn mit dem TPM-Befehl eine Antwort verbunden ist (Rückgabedaten, Status, etc.), paketiert der TPM-Server eine Antwort, und sendet diese bei 405 an den Management-Server. Bei einigen Ausführungsformen beinhaltet das Antwortpaket einen Identifikator, der mit der Originalanfrage verbunden ist. Beispielsweise werden diese Identifikatoren zurückgesendet, wenn das weitergeleitete Paket einen oder mehr Identifikatoren beinhaltete. Bei einigen Ausführungsformen identifiziert das Antwortpaket den Computer, der die Originalanfrage gestellt hat.
  • 5 veranschaulicht eine Ausführungsform eines Verfahrens zum Verarbeiten eines Antwortpakets durch eine Management-Konsole. Die Management-Konsole empfängt bei 501 eine Antwort auf ein TPM-Netzwerkpaket von einem TPM-Server. Beispielsweise empfängt Management-Konsole 123 eine Antwort auf ein TPM-Netzwerkpaket, das es an TPM-Server 125 weitergeleitet hat.
  • Die Management-Konsole ruft bei 503 die Routinginformationen ab, die mit dem Originalpaket verbunden sind. Bei einigen Ausführungsformen wird das Originalpaket ebenfalls abgerufen. Der Antwort von dem TPM wird die Quellenadresse der Anfrage als ihre Bestimmungsadresse gegeben. Die Management-Konsole leitet die Antwort bei 505 an die angemessene anfragende Plattform weiter.
  • 6 veranschaulicht eine Ausführungsform eines Verfahrens für einen anfragenden Computer, ein Antwort-TPM-Paket zu verarbeiten. Die anfragende Plattform empfängt bei 601 eine TPM-Antwort. Beispielsweise empfängt Netzwerkschnittstelle 119 das TPM-Antwortpaket. Die Netzwerkschnittstelle leitet diese Antwort bei 603 an die ME-Firmware weiter.
  • Die ME-Firmware ruft die internen Routinginformationen (wenn vorhanden) ab, und leitet die Antwort als eine interne Nutzlast weiter, nachdem die Antwort mit einer Anfrage verbunden wurde, die bei 605 gestellt worden ist. Beispielsweise ruft die ME-Firmware 115 die Identifizierung von dem CPU-Kern 103 ab, der die Anfrage gestellt hat, und sendet sie an diesen Kern. Die Verbindung kann gemacht werden, basierend auf einer oder mehr der gesicherten Informationen, wie z. B. die Anfrage selbst, die Identifizierung, wer die Anfrage gestellt hat, die Identifizierung der Anfrage, etc. Von der Perspektive des Kerns (oder der Software) erscheint die Antwort als eine Antwort auf das Lesen aus/Schreiben in den TPM-Decodierungsbereich. Die Software, die die Originalanfrage ausgegeben hat, empfängt aus diesem Grund die Antwort ebenfalls. Außer bei einer Verzögerung ist sich die Software nicht über die Details hinter der TPM-Implementierung bewusst. Bei einigen Ausführungsformen wird die Originalanfrage ebenfalls abgerufen.
  • Während die vorstehende Beschreibung größtenteils die Management-Konsole als einen Mittler zwischen einem anfragenden Computer und einem TPM-Server verwendet hat, gibt der TPM-Server bei einigen Ausführungsformen direkt eine Antwort an den anfragenden Computer zurück, wenn die Adresse dieses Computers bekannt ist (z. B. wenn die Adresse in dem weitergeleiteten Paket beinhaltet ist).
  • Das Vorstehende stellt viele Vorteile bereit. Ein solcher Vorteil ist die Fähigkeit, Plattformen wiederherzustellen, die aufgrund eines falsch konfigurierten TPM verloren gegangen sind. Wenn Software, die auf einer Plattform läuft, das TPM falsch konfiguriert oder dieses in einen schlechten oder ungültigen Zustand versetzt, kann die Plattform heruntergefahren werden, das TPM wiederhergestellt werden, und sodann kann die Plattform erneut hochgefahren werden. Wenn das TPM nicht wiederhergestellt werden kann, kann ein anderes TPM aktiviert, bereitgestellt, werden, und die Management-Konsole kann programmiert werden, um die Anfragen an das neue TPM umzuleiten.
  • Die Management-Konsole und verbundene Software kann auf dem TPM laufen gelassen werden, unabhängig von der Plattform, die das TPM verwendet. Außerdem können andere Management-/Wartungsaktivitäten auf dem TPM offline ausgeführt werden.
  • Ein weiterer Vorteil ist, dass Sicherungs-TPM mit einem primären TPM verwendet werden kann. Wenn das Haupt-TPM (wie z. B. ein lokales TPM oder primärer TPM-Server) offline geschaltet werden muss, kann die Management-Konsole so programmiert werden, dass sie die Anfragen an das Sicherungs-TPM umleitet, während das Haupt-TPM zur Wartung abgeschaltet ist.
  • Außerdem sind Richtlinien oder Daten, die in dem TPM gespeichert sind, verfügbar, unabhängig von dem Ort der Plattform. Wenn beispielsweise irgendwelche VM-Richtlinien in dem TPM gespeichert sind, und die VM zu einem neuen Knoten migriert wird, weist der VMM/Hypervisor sofortigen Zugriff auf die Richtlinien auf, da das TPM von der Plattform getrennt ist.
  • Unter jetziger Bezugnahme auf 5 wird ein Blockdiagramm eines Systems 700 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Das System 700 kann ein oder mehr Verarbeitungselemente 710, 715 beinhalten, die mit Grafik-Memory-Controller-Hub (graphics memory controller hub, GMCH) 720 gekoppelt sind. Die optionale Natur von zusätzlichen Verarbeitungselementen 715 ist in 5 mit gestrichelter Linie angegeben.
  • Jedes Verarbeitungselement kann ein Einzelkern sein oder kann alternativ mehrere Kerne beinhalten. Die Verarbeitungselemente können optional andere On-Die-Elemente neben Verarbeitungskernen, wie z. B. integrierten Memory-Controller und/oder integrierte I/O-Steuerlogik, beinhalten. Weiter können der/die Kem(e) der Verarbeitungselemente bei zumindest einer Ausführungsform mehrfädig (multithreaded) sein, dahingehend, dass sie mehr als einen Hardware-Thread-Kontext pro Kern beinhalten können.
  • 5 veranschaulicht, dass der GMCH 720 mit einem Speicher 740 gekoppelt sein kann, der z. B. ein dynamischer Direktzugriffsspeicher (dynamic random access memory, DRAM) sein kann. Der DRAM kann bei zumindest einer Ausführungsform mit einem Permanentcache verbunden sein.
  • Der GMCH 720 kann ein Chipsatz oder ein Teil eines Chipsatzes sein. Der GMCH 720 kann mit dem/den Prozessor(en) 710, 715 kommunizieren, und Interaktion zwischen dem/den Prozessor(en) 710, 715 und Speicher 740 steuern. Der GMCH 720 kann ebenfalls als eine akzelerierte Busschnittstelle zwischen dem/den Prozessor(en) 710, 715 und anderen Elementen des Systems 700 agieren. Bei zumindest einer Ausführungsform kommuniziert der GMCH 720 mit dem/den Prozessor(en) 710, 715 über einen Mehrpunktbus, wie z. B. ein Frontside-Bus (frontside bus, FSB) 795.
  • Des Weiteren ist GMCH 720 mit einem Display 740 (wie z. B. einem Flachbild-Display) gekoppelt. GMCH 720 kann einen integrierten Grafikakzelerator beinhalten. GMCH 720 ist weiter mit einem I/O-Controller-Hub (input/output controller hub, ICH) 750 gekoppelt, der verwendet werden kann, um verschiedene Periphäriegeräte mit System 700 zu koppeln. Bei der Ausführungsform von 5 wird beispielshalber ein externes Grafikgerät 760 gezeigt, das ein getrenntes Grafikgerät sein kann, das mit ICH 750 gekoppelt ist, gemeinsam mit einem anderen Periphäriegerät 770.
  • Alternativ können zusätzliche oder unterschiedliche Verarbeitungselemente ebenfalls in dem System 700 vorhanden sein. Beispielsweise kann/können zusätzliche Verarbeitungselement(e) 715 zusätzliche Prozessor(en) beinhalten, die gleich sind zu Prozessor 710, zusätzliche Prozessor(en), die heterogen oder asymmetrisch sind zu Prozessor 710, Akzeleratoren (wie z. B. Grafikakzeleratoren oder digitale Signalverarbeitungs-(digital signal processing, DSP)-Einheiten, feldprogrammierbare Gate-Arrays, oder jedes andere Verarbeitungselement. Es kann eine Vielfalt von Unterschieden zwischen den physischen Ressourcen 710, 715 hinsichtlich eines Metrikspektrums geben, einschließlich architektonische, mikroarchitektonische, thermische, Energiverbrauchscharakteristika und dergleichen. Diese Unterschiede können sich effektiv als Asymmetrie oder Heterogenität unter den Verarbeitungselementen 710, 715 manifestieren. Bei zumindest einer Ausführungsform können die verschiedenen Verarbeitungselemente 710, 715 in dem gleichen Die-Paket verweilen.
  • Unter jetziger Bezugnahme auf 6 wird ein Blockdiagramm eines zweiten Systems 800 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 6 gezeigt, ist Mehrprozessorsystem 800 ein System mit einer Punkt-zu-Punkt-Kopplungsstruktur und beinhaltet ein erstes Verarbeitungselement 870 und ein zweites Verarbeitungselement 880, die über eine Punkt-zu-Punkt-Kopplungsstruktur 850 gekoppelt sind. Wie in 6 gezeigt, kann jedes der Verarbeitungselemente 870 und 880 Mehrkernprozessoren sein, einschließlich einen ersten und zweiten Prozessorkern (d. h. Prozessorkerne 874a und 874b und Prozessorkerne 884a und 884b).
  • Alternativ können eines oder mehr Verarbeitungselemente 870, 880 ein Element neben einem Prozessor sein, wie z. B. ein Akzelerator oder ein feldprogrammierbares Gate-Array.
  • Während nur mit zwei Verarbeitungselementen 870, 880 gezeigt, ist es selbstverständlich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Bei anderen Ausführungsformen können ein oder mehr zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorhanden sein.
  • Erstes Verarbeitungselement 870 kann weiter einen Memory-Controller-Hub (memory controller hub, MCH) 872 und Punkt-zu-Punkt-(point-to-point, P-P)-Schnittstellen 876 und 878 beinhalten. Gleichermaßen kann das zweite Verarbeitungselement 880 einen MCH 882 und P-P-Schnittstellen 886 und 888 beinhalten.
  • Prozessoren 870, 880 können über eine Punkt-zu-Punkt-(point-to-point, PtP)-Schnittstelle 850 unter Verwendung von PtP-Schnittstellenschaltungen 878, 888 Daten austauschen. Wie in 6 gezeigt, koppeln die MCH 872 und 882 die Prozessoren mit den jeweiligen Speichern, nämlich mit einem Speicher 842 und einem Speicher 844, die Teile von Hauptspeicher sein können, der lokal an den jeweiligen Prozessoren angebracht ist.
  • Prozessoren 870, 880 können Daten mit einem Chipsatz 890 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 876, 894, 886, 898 über einzelne PtP-Schnittstellen 852, 854 austauschen. Chipsatz 890 kann ebenfalls mit einer Hochleistungsgrafikschaltung 838 über eine Hochleistungsgraphikschnittstelle 839 Daten austauschen. Erfindungsgemäße Ausführungsformen können innerhalb jedes Prozessors mit beliebiger Anzahl an Prozessorkernen oder innerhalb jedes PtP-Bus-Agenten von 6 lokalisiert werden. Bei einer Ausführungsform kann jeder Prozessorkern einen lokalen Cache-Speicher (nicht abgebildet) enthalten oder anderweitig damit in Verbindung stehen. Außerdem kann in jedem Prozessor ein gemeinsam genutzter Cache (nicht abgebildet) außerhalb von den beiden Prozessoren enthalten sein, der jedoch mit den Prozessoren über die P2P-Kopplungsstruktur derart verbunden ist, dass eine (oder beide) der lokalen Cache-Informationen der Prozessoren im gemeinsam benutzten Cache gespeichert werden können, wenn ein Prozessor in einen Energiesparmodus versetzt wird.
  • Das erste Verarbeitungselement 870 und das zweite Verarbeitungselement 880 können über P-P-Kopplungsstrukturen 876, 886 bzw. 884 mit einem Chipsatz 890 gekoppelt werden. Wie in 6 gezeigt, beinhaltet Chipsatz 890 P-P-Schnittstellen 894 und 898. Des Weiteren umfasst Chipsatz 890 eine Schnittstelle 892 für die Koppelung von Chipsatz 890 mit einer Hochleistungsgrafikengine 848. Bei einer Ausführungsform kann Bus 849 verwendet werden, um Grafikengine 848 mit Chipsatz 890 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Kopplungsstruktur 849 diese Komponenten koppeln.
  • Chipsatz 890 kann wiederum über eine Schnittstelle 896 mit einem ersten Bus 816 gekoppelt werden. Bei einer Ausfuhrungsform kann erster Bus 816 ein PCI-(peripheral component interconnect)-Bus oder ein Bus, wie z. B. ein PCI Express-Bus oder anderer I/O-Kopplungsstrukturbus dritter Generation, sein, obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • Wie in 6 gezeigt, können verschiedene I/O-Geräte 814 mit dem ersten Bus 816 gekoppelt werden, zusammen mit einer Bus-Bridge 818, die den ersten Bus 816 mit einem zweiten Bus 820 koppelt. Bei einer Ausführungsform kann zweiter Bus 820 ein LPC-(low pin count)-Bus sein. Verschiedene Geräte können mit zweitem Bus 820 gekoppelt werden, z. B. bei einer Ausführungsform u. a. mit Tastatur/Maus 822, Kommunikationsgeräten 826 und einer Datenspeichereinheit 828, wie z. B. ein Festplattenlaufwerk oder anderes Massenspeichergerät, das Code 830 beinhalten kann. Weiter kann ein Audio-I/O 824 mit zweitem Bus 820 gekoppelt werden. Es ist anzumerken, dass andere Architekturen möglich sind. Beispielsweise kann, anstatt der Punkt-zu-Punkt-Architektur von 6, ein System einen Mehrpunktbus oder andere solche Architektur implementieren.
  • Unter jetziger Bezugnahme auf 7 wird ein Blockdiagramm eines dritten Systems 900 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Gleiche Elemente in 6 und 7 tragen gleiche Referenznummern und bestimmte Aspekte von 6 wurden in 7 weggelassen, um andere Aspekte von 7 nicht zu verschleiern.
  • 7 veranschaulicht, dass die Verarbeitungselemente 870, 880 integrierten Speicher und I/O-Steuerlogik (control logic, CL) 872 bzw. 882 beinhalten können. Bei zumindest einer Ausführungsform kann die CL 872, 882 Memory-Controller-Hub-Logik (memory controller hub logic, MCH) beinhalten, wie z. B. derjenigen, die vorstehend in Verbindung mit 5 und 6 beschrieben wurde. Außerdem kann CL 872, 882 ebenfalls I/O-Steuerlogik beinhalten. 7 veranschaulicht, dass nicht nur die Speicher 842, 844 mit der CL 872, 882 gekoppelt sind, sondern dass auch I/O-Geräte 914 mit der Steuerlogik 872, 882 gekoppelt sind. Alt-I/O-Geräte 915 sind mit dem Chipsatz 890 gekoppelt.
  • Ausführungsformen der hierin offenbarten Mechanismen können in Hardware, Software, Firmware oder einer Kombination solcher Implementierungsansätze implementiert werden. Erfindungsgemäße Ausführungsformen können als Computerprogramme implementiert werden, die auf programmierbaren Systemen ausgeführt werden, umfassend zumindest einen Prozessor, ein Datenspeichersystem (einschließlich flüchtigen und Permanentspeicher und/oder Speicherelemente), zumindest ein Eingabegerät und zumindest ein Ausgabegerät.
  • Programmcode, wie z. B. Code 830, veranschaulicht in 6, kann bei Eingangsdaten angewendet werden, um die hierin beschriebenen Funktionen auszuführen, und Ausgabeinformationen zu generieren. Dementsprechend beinhalten erfindungsgemäße Ausführungsformen ebenfalls maschinenlesbare Medien, die Anweisungen zum Ausführen der Operationsausfiihrungsfonnen der Erfindung beinhalten, oder die Designdaten, wie z. B. HDL, beinhalten, die Strukturen, Schaltungen, Vorrichtungen, Prozessoren und/oder Systemmerkmale, die hierin beschrieben sind, definieren. Solche Ausführungsformen können ebenfalls als Programmprodukte bezeichnet werden.
  • Solche maschinenlesbare Speichermedien können u. a. konkrete Anordnungen von Artikeln beinhalten, die von einer Maschine oder einem Gerät hergestellt oder gebildet wurden, einschließlich Speichermedien, wie z. B. Festplatten, jede andere Art von Platten, einschließlich Floppy Disks, Optische Disks, Compact Disk Read-Only Memories (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetoptische Disks, Halbleitergeräte, wie z. B. Read-Only Memories (ROMs), Random Access Memories (RAMs), wie z. B. dynamische Random Access Memories (DRAMs), statische Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flash-Speicher, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetische oder optische Karten oder jede andere Art von Medium, das sich für die Speicherung von elektronischen Anweisungen eignet.
  • Die Ausgabeinformationen können auf bekannte Art und Weise bei einem oder mehr Ausgabegeräten angewandt werden. Zum Zweck dieser Anwendung beinhaltet ein Verarbeitungssystem jedes System, das einen Prozessor aufweist, wie z. B. einen digitalen Signalprozessor (digital signal processor, DSP), einen Mikrocontroller, eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC) oder einen Mikroprozessor.
  • Die Programme können in einer höheren verfahrensorientierten oder objektorientierten Programmiersprache implementiert sein, um mit einem Verarbeitungssystem zu kommunizieren. Die Programme können, wenn gewünscht, ebenfalls in Assembly- oder Maschinensprache implementiert werden. Tatsächlich sind die hierin beschriebenen Mechanismen nicht im Umfang auf eine bestimmte Programmiersprache eingeschränkt. Auf jeden Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein.
  • Einer oder mehrere Aspekte mindestens einer Ausführungsform können implementiert werden, indem die hier beschriebenen Techniken durch repräsentative Daten ausgeführt werden, die auf einem maschinenlesbaren Datenträger gespeichert sind, welcher verschiedene Logiken innerhalb des Prozessors repräsentiert, die beim Lesen durch eine Maschine die Maschine veranlassen, die Logik zu fabrizieren. Solche Repräsentationen, auch als „IP-Kerne“ bekannt, können auf einem konkreten, maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungsanlagen geliefert werden, wo sie in Fabrikationsmaschinen geladen werden, die tatsächlich die Logik oder den Prozessor herstellen.

Claims (21)

  1. Vorrichtung, umfassend: einen CPU-Kern (103), um ein Softwareprogramm auszuführen; eine Verwaltungs-Engine (107), gekoppelt mit dem CPU-Kern (103), wobei die Verwaltungs-Engine (107) eingerichtet ist, wenn ein lokales Trusted Platform Modul, TPM (121), zur Verwendung nicht verfügbar ist, einen TPM-Befehl zu empfangen, der von dem Softwareprogramm angefragt wurde, und den TPM-Befehl unter Verwendung einer Verwaltungsfirmware (115) durch zumindest Erzeugen eines TPM-Netzwerkpakets zu verarbeiten, und wobei, wenn ein lokales TMP (121) zur Verwendung verfügbar ist, der TPM-Befehl an das lokale TPM (121) geleitet wird; eine Netzwerkschnittstelle (119), die mit der Verwaltungs-Engine (107) gekoppelt ist, wobei die Netzwerkschnittstelle (119) eingerichtet ist, das TPM-Netzwerkpaket zur Verarbeitung an ein entferntes TPM zu übertragen, das extern zu der Vorrichtung angeordnet ist.
  2. Vorrichtung nach Anspruch 1, weiter umfassend: einen Memory-Controller (105), der eingerichtet ist, den TPM-Befehl, der von dem Softwareprogramm angefragt wurde, in einer Memory Mapped Input/Output, MMIO -Trap abzufangen und diesen TPM-Befehl an die Verwaltungs-Engine (107) weiterzuleiten.
  3. Vorrichtung nach Anspruch 1, weiter umfassend: das lokale TPM (121), das gesperrt ist, wobei das lokale TPM (121) den TPM-Befehl verarbeiten würde, wenn es freigegeben wäre.
  4. Vorrichtung nach Anspruch 1, wobei die Netzwerkschnittstelle (119) eine Wireless Local Area Network, WLAN,-Verbindung ist oder wobei die Netzwerkschnittstelle (119) eine drahtgebundene Verbindung ist.
  5. Vorrichtung nach Anspruch 1, wobei die Verwaltungs-Engine (107) ein Baseboard-Management-Controller, BMC, ist.
  6. Vorrichtung nach Anspruch 1, wobei der TPM-Befehl, der von dem Softwareprogramm angefragt wurde, versucht, auf ein Register in dem MMIO-Adressbereich von oxFED4000 bis hin zu oxFED43F zuzugreifen.
  7. System, umfassend: eine Plattform (101), die Folgendes umfasst: einen CPU-Kern (103), um ein Softwareprogramm auszuführen, eine Verwaltungs-Engine (107), gekoppelt mit dem CPU-Kern (103), wobei die Verwaltungs-Engine (107) eingerichtet ist, wenn ein lokales Trusted Platform Modul, TPM (121), zur Verwendung nicht verfügbar ist, einen TPM-Befehl zu empfangen, der von dem Softwareprogramm angefragt wurde, und den TPM-Befehl unter Verwendung einer Verwaltungsfirmware (115) durch zumindest Erzeugen eines TPM-Netzwerkpakets zu verarbeiten, wobei, wenn ein lokales TPM (121) zur Verwendung verfügbar ist, der TPM-Befehl an das lokale TPM (121) geleitet wird; eine Netzwerkschnittstelle (119), die mit der Verwaltungs-Engine (107) gekoppelt ist, um das TPM-Netzwerkpaket zur Verarbeitung an ein entferntes TPM zu übertragen, das extern zu der Vorrichtung ist; und eine Management-Konsole (123), die mit der Netzwerkschnittstelle (119) gekoppelt ist.
  8. System nach Anspruch 7, wobei die Management-Konsole (123) Folgendes umfasst: einen Paketspeicher (129), um empfangene TPM-Netzwerkpakete zu empfangen, einen Routinginformationsspeicher (131), um Informationen über die empfangenen TPM-Netzwerkpakete zu speichern, aufweisend wohin das TPM-Netzwerkpaket weitergeleitet wird, und eine Routinglogik, um empfangene TPM-Netzwerkpakete zu leiten.
  9. System nach Anspruch 8, wobei die Management-Konsole (123) weiter umfasst: ein lokales TPM (133), um empfangene TPM-Netzwerkpakete zu verarbeiten, wobei die Management-Konsole (123) jegliche Antworten, die mit den verarbeiteten empfangenen TPM-Netzwerkpaketen verbunden sind, an die Plattform (101) übertragen soll.
  10. System nach Anspruch 7 oder 8, weiter umfassend: einen TPM-Server (125), der mit der Management-Konsole (123) gekoppelt ist, um TPM-Netzwerkpakete zu verarbeiten, die von der Management-Konsole (123) empfangen wurden, wobei der TPM-Server (125) jegliche Antworten, die mit den verarbeiteten empfangenen TPM-Netzwerkpaketen verbunden sind, an die Management-Konsole (123) übertragen soll.
  11. System nach Anspruch 7 oder 8, wobei die Management-Konsole (123) Adressinformationen von den empfangenen Paketen abziehen soll und neue Adressinformationen hinzufügen soll, bevor die TPM-Netzwerkpakete an den TPM-Server (125) weitergeleitet werden.
  12. System nach Anspruch 7 oder 8, wobei die Plattform (101) weiter umfasst: einen Memory-Controller (105), der eingerichtet ist, den TPM-Befehl, der von dem Softwareprogramm angefragt wurde, in einer MMIO-Trap abzufangen und diesen TPM-Befehl an die Verwaltungs-Engine (107) weiterzuleiten.
  13. System nach Anspruch 7 oder 8, weiter umfassend: ein lokales TPM (121), das gesperrt ist, wobei das lokale TPM (121) den TPM-Befehl verarbeiten würde, wenn es freigegeben wäre.
  14. System nach Anspruch 7 oder 8, wobei die Verwaltungs-Engine (107) ein Baseboard-Management-Controller, BMC, ist.
  15. Verfahren, umfassend: Bestimmen (203), von einer Plattform, ob ein lokales Trusted Platform Modul, TPM (121), zur Verarbeitung verfügbar ist; wenn ein lokales TPM (121) zur Verarbeitung verfügbar ist, Leiten (205) einer TPM-Befehlsanfrage von einem Softwareprogramm, das auf der Plattform läuft, an das lokale TPM (121); wenn das lokale TPM nicht zur Verarbeitung nicht verfügbar ist, Empfangen (207) der TPM-Befehlsanfrage bei einer Management-Engine der Plattform; Paketisieren (211) der TPM-Befehlsanfrage, um es ihr zu ermöglichen, an das TPM (121) übertragen zu werden, das extern zu der Plattform ist.
  16. Verfahren nach Anspruch 15, weiter umfassend: Übertragen (215) der paketisierten TPM-Befehlsanfrage an eine externe Einheit, die sich eines TPM extern zu der Plattform bewusst ist, um die paketisierte TPM-Befehlsanfrage zu verarbeiten; und Speichern von Informationen, die mit der paketisierten TPM-Befehlsanfrage verbunden sind, sodass jede Antwort mit der paketisierten TPM-Befehlsanfrage verbunden wird.
  17. Verfahren nach Anspruch 15 oder 16, weiter umfassend: Bestimmen, dass ein lokales TPM die TPM-Befehlsanfrage bei Stattfinden einer MMIO-Trap nicht verarbeiten kann; und Weiterleiten der TPM-Befehlsanfrage an die Management-Engine.
  18. Verfahren nach Anspruch 15 oder 16, wobei das Bestimmen (203) von einem Memory-Controller der Plattform ausgeführt wird.
  19. Verfahren nach Anspruch 15 oder 16, wobei die paketisierte TPM-Befehlsanfrage in der Form eines TCP/IP-Pakets ist, wobei der TPM-Befehl zumindest ein Teil der Nutzlast ist.
  20. Verfahren nach Anspruch 15 oder 16, weiter umfassend: Empfangen einer Antwort auf die paketisierte TPM-Befehlsanfrage; Verbinden der Antwort auf die paketisierte TPM-Befehlsanfrage; und Weiterleiten der Antwort an das Softwareprogramm, das die Anfrage gestellt hat.
  21. Verfahren nach Anspruch 16, wobei die Informationen, die mit der paketisierten TPM-Befehlsanfrage verbunden sind, umfassen: eine Kopie der paketisierten TPM-Anfrage; eine Identifizierung der Einheit, an die die paketisierte TPM-Anfrage gesendet wurde; und eine Identifizierung, welches Softwareprogramm die Anfrage gestellt hat; oder wobei die Informationen, die mit der paketisierten TPM-Befehlsanfrage verbunden sind, umfassen: eine Identifizierung des paketisierten TPM; eine Identifizierung der Einheit, an die die paketisierte TPM-Anfrage gesendet wurde; und eine Identifizierung, welches Softwareprogramm die Anfrage gestellt hat.
DE102011103218.9A 2010-06-03 2011-06-01 Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen Expired - Fee Related DE102011103218B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/793,579 2010-06-03
US12/793,579 US8959363B2 (en) 2010-06-03 2010-06-03 Systems, methods, and apparatus to virtualize TPM accesses

Publications (2)

Publication Number Publication Date
DE102011103218A1 DE102011103218A1 (de) 2012-04-05
DE102011103218B4 true DE102011103218B4 (de) 2022-12-01

Family

ID=45053313

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011103218.9A Expired - Fee Related DE102011103218B4 (de) 2010-06-03 2011-06-01 Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen

Country Status (8)

Country Link
US (2) US8959363B2 (de)
JP (2) JP5503594B2 (de)
KR (1) KR101332135B1 (de)
CN (1) CN102271153B (de)
BR (1) BRPI1103117A2 (de)
DE (1) DE102011103218B4 (de)
TW (1) TWI483201B (de)
WO (1) WO2011153093A2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
US10176018B2 (en) * 2010-12-21 2019-01-08 Intel Corporation Virtual core abstraction for cloud computing
US8782423B2 (en) * 2012-06-19 2014-07-15 Microsoft Corporation Network based management of protected data sets
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US9183402B2 (en) * 2012-08-17 2015-11-10 Broadcom Corporation Protecting secure software in a multi-security-CPU system
US9384367B2 (en) * 2012-09-04 2016-07-05 Intel Corporation Measuring platform components with a single trusted platform module
JP6494608B2 (ja) 2013-06-18 2019-04-03 チャンベッラ・リミテッド コードの仮想化およびリモートプロセスコール生成のための方法および装置
US9830136B2 (en) * 2013-07-12 2017-11-28 Ciambella Ltd. Method and apparatus for firmware virtualization
US20150163223A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation Managing Resources In A Distributed Computing Environment
DE102014101836A1 (de) 2014-02-13 2015-08-13 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Hochfahren eines Produktions-Computersystems
JP6293880B2 (ja) * 2014-05-30 2018-03-14 株式会社東芝 情報処理装置およびトラステッド・プラットフォーム・モジュールのバージョン切り替え方法
CN104123511B (zh) * 2014-07-28 2017-05-03 浪潮集团有限公司 一种可信计算服务器中的bmc安全管理方法和系统
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
CN104410636A (zh) * 2014-12-01 2015-03-11 浪潮集团有限公司 一种云计算系统中增强bmc/smc安全性的方法
CN104484185B (zh) * 2014-12-30 2018-03-20 深圳市大疆创新科技有限公司 固件生成系统及方法
KR102411608B1 (ko) 2015-07-27 2022-06-21 삼성전자주식회사 보안 네트워크 시스템 및 그 데이터 처리 방법
US20170171176A1 (en) * 2015-12-11 2017-06-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Maintenance credential permitting performance of just maintenance-related actions when computing device requires repair and/or maintenance
EP3394743B1 (de) 2015-12-21 2023-07-12 Ciambella Ltd. Verfahren und vorrichtung zur erzeugung und verwaltung von steuergerätebasierten remote-lösungen
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
US9804905B1 (en) * 2016-08-25 2017-10-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. System, method, and computer program for communicating between a software driver and a baseboard management controller
CN106874771A (zh) * 2017-02-16 2017-06-20 浪潮(北京)电子信息产业有限公司 一种构建可信硬件信任链的方法以及装置
CN108460282A (zh) * 2017-02-22 2018-08-28 北京大学 一种基于异构多核芯片的计算机安全启动方法
US10417458B2 (en) * 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
CN110419024A (zh) 2017-03-14 2019-11-05 西安姆贝拉有限公司 用于在开发环境中自动生成和合并代码的方法和设备
JP2019022122A (ja) 2017-07-19 2019-02-07 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
CN108446564B (zh) * 2018-02-22 2020-11-03 北京航空航天大学 基于tpm模块的虚拟化度量方法及装置
US11165766B2 (en) 2018-08-21 2021-11-02 International Business Machines Corporation Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove
US11206141B2 (en) 2018-09-21 2021-12-21 International Business Machines Corporation Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
US10885197B2 (en) * 2018-09-21 2021-01-05 International Business Machines Corporation Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
CN109558149A (zh) * 2018-11-30 2019-04-02 厦门亿联网络技术股份有限公司 一种基于ubl的uboot解压缩方法及系统
US11308203B2 (en) * 2019-01-11 2022-04-19 Microsoft Technology Licensing, Llc Side-channel protection
CN110674525A (zh) * 2019-09-30 2020-01-10 联想(北京)有限公司 一种电子设备及其文件处理方法
CN113792423B (zh) * 2021-09-04 2023-10-24 苏州特比姆智能科技有限公司 一种tpm设备管理的数字孪生行为约束方法及系统
CN113987599B (zh) * 2021-12-28 2022-03-22 苏州浪潮智能科技有限公司 一种固件可信根的实现方法、装置、设备和可读存储介质
CN116126477B (zh) * 2023-04-04 2023-07-25 支付宝(杭州)信息技术有限公司 计算设备中访问tpm的方法和计算设备
CN117194286B (zh) * 2023-09-08 2024-03-26 上海合芯数字科技有限公司 微控制单元、处理器、访问方法和访问系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095120A1 (en) 2008-10-10 2010-04-15 Microsoft Corporation Trusted and confidential remote tpm initialization

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
KR100929870B1 (ko) * 2002-12-04 2009-12-04 삼성전자주식회사 컴퓨터 시스템의 바이오스 보안 유지방법
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US7484091B2 (en) 2004-04-29 2009-01-27 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20060095551A1 (en) 2004-10-29 2006-05-04 Leung John C K Extensible service processor architecture
CN1988534B (zh) 2005-12-23 2011-05-25 联想(北京)有限公司 可信计算系统和在内核态下访问tpm服务的方法
US20070239748A1 (en) * 2006-03-29 2007-10-11 Smith Ned M Management of reference data for platform verification
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US9122875B2 (en) * 2006-05-02 2015-09-01 International Business Machines Corporation Trusted platform module data harmonization during trusted server rendevous
US20100063996A1 (en) 2006-07-03 2010-03-11 Kouichi Kanemura Information processing device, information recording device, information processing system, program update method, program, and integrated circuit
US8272002B2 (en) * 2006-08-18 2012-09-18 Fujitsu Limited Method and system for implementing an external trusted platform module
US7900058B2 (en) * 2006-08-31 2011-03-01 Intel Corporation Methods and arrangements for remote communications with a trusted platform module
US20080155277A1 (en) * 2006-12-26 2008-06-26 Mallik Bulusu Hardware partitioned trust
US8099786B2 (en) 2006-12-29 2012-01-17 Intel Corporation Embedded mechanism for platform vulnerability assessment
US8108498B2 (en) * 2007-07-26 2012-01-31 Dell Products, Lp System and method of enabling access to remote information handling systems
US8060876B2 (en) * 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
KR100992184B1 (ko) 2007-12-17 2010-11-04 한국전자통신연구원 플랫폼 장착용 모듈 및 플랫폼 장착용 모듈을 위한 기능변경 방법
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US9047468B2 (en) * 2007-12-28 2015-06-02 Intel Corporation Migration of full-disk encrypted virtualized storage between blade servers
KR101069500B1 (ko) 2008-09-12 2011-09-30 포항공과대학교 산학협력단 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체
CN101493870B (zh) 2008-12-17 2010-10-27 武汉大学 可信平台模块测试方法
CN101477602A (zh) 2009-02-10 2009-07-08 浪潮电子信息产业股份有限公司 一种可信计算环境中远程证明的方法
JP2011122398A (ja) 2009-12-14 2011-06-23 Toda Constr Co Ltd 構造物における接合部のずれ防止方法とずれ防止部材、および構造物における接合部の構造
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095120A1 (en) 2008-10-10 2010-04-15 Microsoft Corporation Trusted and confidential remote tpm initialization

Also Published As

Publication number Publication date
WO2011153093A3 (en) 2012-03-29
CN102271153B (zh) 2015-02-25
JP5503594B2 (ja) 2014-05-28
CN102271153A (zh) 2011-12-07
JP5972924B2 (ja) 2016-08-17
WO2011153093A2 (en) 2011-12-08
JP2011258199A (ja) 2011-12-22
KR101332135B1 (ko) 2013-11-21
US8959363B2 (en) 2015-02-17
KR20110133004A (ko) 2011-12-09
US20110302425A1 (en) 2011-12-08
BRPI1103117A2 (pt) 2012-11-06
DE102011103218A1 (de) 2012-04-05
US20130298250A1 (en) 2013-11-07
TWI483201B (zh) 2015-05-01
JP2014135072A (ja) 2014-07-24
TW201211918A (en) 2012-03-16
US9405908B2 (en) 2016-08-02

Similar Documents

Publication Publication Date Title
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
US8214653B1 (en) Secured firmware updates
US10685119B2 (en) Trusted malware scanning
US9047468B2 (en) Migration of full-disk encrypted virtualized storage between blade servers
DE112016005833T5 (de) Datenverarbeitungsgeräte
DE112010004885T5 (de) Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung
DE112017004017T5 (de) Sichere öffentliche cloud
DE112016004330T5 (de) Prozessoren, Verfahren, Systeme und Befehle zum Zulassen sicherer Kommunikationen zwischen einem geschützten Containerspeicher und Eingabe-/Ausgabegeräten
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE102019126125A1 (de) System, vorrichtung und verfahren zum integritätsschutz von kunden-arbeitslasten in einer mehrkunden-datenverarbeitungsumgebung
US9565207B1 (en) Firmware updates from an external channel
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
US11811749B2 (en) Authentication of plugins in a virtualized computing environment
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE112020000280T5 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
DE102020128050A1 (de) Tdx-inseln mit in sich abgeschlossenem geltungsbereich, wodurch eine tdx-schlüsselkennungsskalierung ermöglicht wird
DE112020000286T5 (de) Sicheres ein-/auslagern mit seitenänderungserkennung
DE102021109189B4 (de) Verifikationsprüfung durchführen als Antwort auf Änderung im Basisregister der Seitentabelle
US20220300314A1 (en) Hypervisor-assisted secured memory sharing among host and guest operating system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee