DE10392528T5 - Microcode-Patch-Authentifizierung - Google Patents
Microcode-Patch-Authentifizierung Download PDFInfo
- Publication number
- DE10392528T5 DE10392528T5 DE10392528T DE10392528T DE10392528T5 DE 10392528 T5 DE10392528 T5 DE 10392528T5 DE 10392528 T DE10392528 T DE 10392528T DE 10392528 T DE10392528 T DE 10392528T DE 10392528 T5 DE10392528 T5 DE 10392528T5
- Authority
- DE
- Germany
- Prior art keywords
- patch
- microcode
- microcode patch
- digital signature
- hash digest
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Abstract
Maschinenlesbares
Medium, das Befehle bereitstellt, die, wenn sie von einem Satz von
einem oder mehreren Prozessoren ausgeführt werden, bewirken, daß der Satz
von Prozessoren Vorgänge
durchführt,
die Folgendes umfassen:
Erstellen eines Hash-Digests für einen Mikrocodepatch;
Verschlüsseln des Hash-Digests zum Erstellen einer digitalen Signatur; und
Kombinieren der digitalen Signatur und des Mikrocodepatchs zum Liefern an einen Zielprozessor, um Mikrocode im Zielprozessor zu patchen.
Erstellen eines Hash-Digests für einen Mikrocodepatch;
Verschlüsseln des Hash-Digests zum Erstellen einer digitalen Signatur; und
Kombinieren der digitalen Signatur und des Mikrocodepatchs zum Liefern an einen Zielprozessor, um Mikrocode im Zielprozessor zu patchen.
Description
- BESCHREIBUNG
- ALLGEMEINER STAND DER TECHNIK
- Ein typischer Befehl in einem Computerprozessor führt eine Reihe von Vorgängen aus, wobei Mikrobefehle, die jeden Vorgang definieren, in einem nichtflüchtigen Speicherbereich in Form von Mikrocode codiert werden. Der Mikrocode definiert alles oder einen Teil des ausführbaren Befehlssatzes für den Prozessor und kann auch interne Vorgänge definieren, die nicht in durch Software zugänglichen Code umgesetzt sind. Der Mikrocode wird in der Regel in einen Festspeicher (read-only memory, ROM) im Prozessor gesetzt, wenn der Prozessor gefertigt wird. Mikrocode muß jedoch manchmal modifiziert werden, nachdem der Prozessor gefertigt und sogar nachdem der Prozessor in Betrieb genommen wurde.
- Mikrocodepatches ermöglichen eine derartige Modifikation durch Einfügen neuer Mikrobefehle anstelle der ursprünglichen Mikrobefehle. Die Mikrocodepatches können über verschiedene Wege (wie beispielsweise durch Herunterladen über einen Nachrichtenkanal, Installieren durch einen Servicetechniker oder Bereitstellung mit einem Betriebssystem) dem Prozessor geliefert werden und werden dann im Prozessor zur Verwendung im Betrieb gespeichert.
- Da der Mikrocode-ROM nicht einfach verändert werden kann, werden Mikrocodepatches in der Regel in einen Patch-Speicher im Prozessor, wie beispielsweise einen Direktzugriffsspeicher (random-access memory, RAM), gesetzt und Hinweise auf die modifizierten Mikrobefehle werden zum Patch-RAM anstatt zum ROM umgeleitet. Da der Patch-RAM flüchtig sein kann, werden die Mikrocode-Patches für gewöhnlich entweder auf Festplatte oder im BIOS (Basic Input-Output System, einfaches Eingabe-/Ausgabesystem) gespeichert und werden in den Patch-RAM geladen, wenn das System gestartet wird.
- Wenn ein Prozessor in einer sicheren Umgebung verwendet werden soll, sollten verschiedene Sicherheitsvorkehrungen beim Design der Software und/oder Hardware vorgenommen werden, um einen Schutz gegen das Manipulieren des Betriebs der sicheren Funktionen bereitzustellen. Die Möglichkeit zum Einfügen von nicht autorisierten Mikrocodepatches in einen Prozessor stellt einen Weg dar, mit dem ein feindseliger Angreifer herkömmlichen Sicherheitsmaßnahmen entgegenwirken kann.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- Die Erfindung kann durch Bezugnahme auf die folgende Beschreibung und die begleitenden Zeichnungen, die zum Veranschaulichen von Ausführungsformen der Erfindung verwendet werden, verstanden werden.
-
1 zeigt ein Blockschema eines Systems zum Validieren und Installieren von Mikrocodepatches gemäß einer Ausführungsform der Erfindung. -
2 zeigt ein Blockschema eines Systems zum Umwandeln von Mikrocodepatches in eine für die Lieferung sichere Form gemäß einer Ausführungsform der Erfindung. -
3 zeigt ein Patchpaket, das vom System von2 zum System von1 gelieferte Elemente enthält, gemäß einer Ausführungsform der Erfindung. -
4 zeigt ein Ablaufdiagramm eines Gesamtprozesses zum Vorbereiten, Liefern und Validieren eines Patchpakets gemäß einer Ausführungsform der Erfindung. -
5 zeigt ein Ablaufdiagramm eines Prozesses zum Vorbereiten eines Patchpakets gemäß einer Ausführungsform der Erfindung. -
6 zeigt ein Ablaufdiagramm eines Prozesses zum Validieren eines Patchpakets gemäß einer Ausführungsform der Erfindung. - AUSFÜHRLICHE BESCHREIBUNG
- In der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten ausgeführt. Es versteht sich jedoch, daß Ausführungsformen der Erfindung ohne diese spezifischen Einzelheiten ausgeübt werden können. In anderen Beispielen sind wohl bekannte Schaltkreise, Strukturen und Techniken nicht im Detail gezeigt, um nicht ein Verständnis dieser Beschreibung zu verschleiern.
- Hinweise auf "eine Ausführungsform", "Ausführungsbeispiel", "verschiedene Ausführungsformen" usw. weisen darauf hin, daß die beschriebene(n) Ausführungsformen) ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft aufweisen kann/können, aber nicht notwendigerweise jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft beinhaltet. Des Weiteren können die für unterschiedliche Ausführungsformen beschriebenen Merkmale, Strukturen oder Eigenschaften in einer einzigen Ausführungsform kombiniert werden. Weiterhin bezieht sich die wiederholte Verwendung des Ausdrucks "in einer Ausführungsform" nicht notwendigerweise auf dieselbe Ausführungsform, was jedoch möglich ist.
- Bezugnahmen hierin auf Kryptographie können Verschlüsselung und/oder Entschlüsselung beinhalten. Bezugnahmen hierin auf "symmetrische" Kryptographie, Schlüssel, Verschlüsselung oder Entschlüsselung beziehen sich auf kryptographische Techniken, in denen derselbe Schlüssel für die Verschlüsselung und die zugehörige Entschlüsselung verwendet wird. Der wohl bekannte Data Encryption Standard (DES, Datenverschlüsselungsstandard), der 1993 als Federal Information Publishing Standard FIPS PUB 46-2 veröffentlicht wurde, und der Advanced Encryption Standard (AES, erweiterter Verschlüsselungsstandard), der 2001 als FIPS PUB 197 veröffentlicht wurde, sind Beispiele von symmetrischer Kryptographie. Bezugnahmen hierin auf "asymmetrische" Kryptographie, Schlüssel, Verschlüsselung oder Entschlüsselung beziehen sich auf kryptographische Techniken, in denen verschiedene, aber anverwandte Schlüssel für die Verschlüsselung und die zugehörige Entschlüsselung verwendet werden. Kryptographische Techniken mit sogenanntem "öffentlichen Schlüssel", einschließlich der wohl bekannten Rivest-Shamir-Adleman-Technik (RSA-Technik), sind Beispiele asymmetrischer Kryptographie. Einer von zwei anverwandten Schlüsseln eines asymmetrischen kryptographischen Prozesses wird hierin als ein privater Schlüssel (da er im Allgemeinen geheimgehalten wird) und der andere Schlüssel als ein öffentlicher Schlüssel (da er im Allgemeinen frei verfügbar gemacht wird) bezeichnet. In manchen Ausführungsform kann entweder der private oder der öffentliche Schlüssel zur Verschlüsselung verwendet werden, während der andere Schlüssel bei der zugehörigen Entschlüsselung verwendet wird.
- Ausführungsformen der Erfindung können in einer Hardware, Firmware oder Software oder einer Kombination dieser umgesetzt sein.
- Ausführungsformen der Erfindung können auch als auf einem maschinenlesbaren Medium gespeicherte Befehle umgesetzt sein, die von mindestens einem Prozessor zum Durchführen der oben beschriebenen Vorgänge gelesen und ausgeführt werden. Ein maschinenlesbares Medium kann einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form beinhalten. Ein maschinenlesbares Medium kann beispielsweise Festspeicher (read-only memory, ROM); Direktzugriffsspeicher (random-access memory, RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder eine andere Form von verbreiteten Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) und andere beinhalten.
- Verschiedene Ausführungsformen der Erfindung umfassen das Codieren und/oder Decodieren eines Mikrocodepatchs (hierin auch einfach als ein "Patch" bezeichnet), so daß der Patch als gültig authentifiziert werden kann, bevor er in einem Zielprozessor (einem Prozessor, in dem der Patch verwendet werden soll) installiert wird. Das Codieren/Decodieren kann einen oder mehrere der folgenden Vorgänge umfassen: 1) Verschlüsselung/Entschlüsselung, 2) die Verwendung von kryptographischen Hash-Funktionen, 3) die Verwendung von digitalen Signaturen, 4) usw. Ein Zielsystem ist das System, in dem der Patch installiert werden soll, während es sich bei einem Herkunftssystem um das System handelt, das den Patch für die sichere Lieferung zum Zielsystem vorbereitet. In einer Ausführungsform wird ein üblicher Satz von Patches für einen bestimmten Computersystemtyp erstellt, wobei "Typ" auf eine bestimmte Generation, eine bestimmte Modellnummer, eine beliebige Kategorie innerhalb der Modellnummer usw. hinweisen kann. Nachdem ein Patch erstellt wurde, kann er vor der Lieferung an jedes der Zielsysteme, für die er gedacht ist, auf die hierin beschriebene Art und Weise codiert werden. In jedem Zielsystem können ein oder mehrere Patches decodiert und wie hierin beschrieben installiert werden, so daß die Patches zu einem betriebsbereiten Teil des Zielsystems werden.
- Es kann ein beliebiges praktisches Verfahren zur Lieferung verwendet werden, einschließlich u. a. Lieferung über eine Nachrichtenstrecke, Installieren durch einen Techniker, Einbindung in ein Betriebssystem durch den Hersteller dieses Betriebssystems, Einbindung in ein BIOS (basic Input-output System, einfaches Eingabe-/Ausgabesystem) usw. Nachdem der Patch geliefert wurde, kann er in seiner codierten Form gespeichert werden, bis er betriebsbereit installiert wird. Die betriebsbereite Installation beinhaltet das Decodieren des codierten Patchs, das Validieren, daß der Patch autorisiert ist, und das Setzen des Patchs in einen Patch-Speicher. Das Validieren kann einen der oder beide folgenden Vorgänge beinhalten: 1) Bestimmen, daß der Patch nicht modifiziert worden ist, seit er im Herkunftssystem für die Lieferung vorbereitet wurde, und 2) Bestimmen, daß der Patch in einem autorisierten System vorbereitet wurde. In einer Ausführungsform wird der codierte Patch auf der Festplatte oder im BIOS des Zielsystems gespeichert, um jedes Mal, wenn das System gestartet wird, in einem flüchtigen Patch-RAM betriebsbereit installiert zu werden. In einer anderen Ausführungsform wird der codierte Patch in einem nichtflüchtigen Patch-Speicher betriebsbereit installiert und nicht während nachfolgender Startvorgänge neu installiert.
-
1 zeigt ein Blockschema eines Systems zum Validieren und Installieren von Mikrocodepatches gemäß einer Ausführungsform der Erfindung. In der dargestellten Ausführungsform von1 enthält das System100 einen Prozessor110 , einen Chipsatz130 , eine Festplatte140 , einen Hauptspeicher150 und eine Kommunikationsschnittstelle160 . Der Prozessor110 kann einen Mikrocode-ROM112 , einen Patch-Speicher114 , einen sicheren Speicher118 und einen oder mehrere Schlüssel116 enthalten. Der Chipsatz130 kann ein BIOS132 enthalten. Ein Patchpaket (im Folgenden beschrieben) kann auf der Festplatte140 , im BIOS132 und/oder in einem anderen Teil des Systems100 , der nichtflüchtigen Speicher enthält, gespeichert werden. - In manchen Ausführungsformen können die Vorgänge des Decodierens, Validierens und Installierens des Patchs mittels einer im Mikrocode-ROM
112 enthaltenen Sequenz von Mikro befehlen durchgeführt werden. In einer bestimmten Ausführungsform wird die Sequenz durch Ausführen eines speziellen Befehls eingeleitet, der die Ausführung auf die Einsprungstelle der Sequenz überträgt. In einer anderen bestimmten Ausführungsform wird die Sequenz als Reaktion auf das Schreiben eines vorbestimmten Werts in einen vorbestimmten Abschnitt eines maschinenspezifischen Register (MSR) eingeleitet. Es können auch andere Verfahren zum Einleiten der Sequenz verwendet werden. - Die Daten, an denen während des Decodierens, Validierens und Installierens des Patchs gearbeitet wird, können sich im sicheren Speicher
118 befinden, der so gesichert sein kann, daß er gegenüber Zugriff durch einen nicht sicheren Code nicht verfügbar ist. In manchen Ausführungsformen kann der sichere Speicher118 zu verschiedenen Zeitpunkten den codierten Patch, den decodierten Patch und Zwischenprodukte, die während der Decodierung des codierten Patchs erstellt wurden, enthalten. In einer Ausführungsform weist der sichere Speicher118 nicht genügend Speichervermögen auf, um alle zuvor erwähnten Patches und/oder Zwischenprodukte aufzunehmen, und kann gleichzeitig lediglich Teile des codierten Patchs, des decodierten Patchs und/oder der Zwischenprodukte enthalten. - In einer Ausführungsform ist der sichere Speicher
118 ein fest zugeordneter RAM-Speicher, der entweder im Prozessor110 oder außerhalb des Prozessors118 , der nur für sichere Vorgänge verwendet wird, angeordnet sein kann. In einer anderen Ausführungsform ist der sichere Speicher118 ein fest zugeordneter Cache-Speicher des Prozessors110 und der Zugriff auf den fest zugeordneten Cache-Speicher ist für alle anderen Vorgänge während des Decodierens, Validierens und Installierens des Patchs blockiert. Andere Ausführungsformen können andere Verfahren zur Bereitstellung des sicheren Speichers118 während der beschriebenen Vorgänge anwenden. - Obwohl das System
100 eine bestimmte Ausführungsform darstellt, können auch andere Ausführungsformen verwendet werden. In einer Ausführungsform beispielsweise kann das BIOS132 in den Prozessor110 eingebunden sein und eine andere Ausführungsform weist möglicherweise keinen Chipsatz130 auf. - In einer Ausführungsform sind die Schlüssel
116 ein oder mehrere Sicherheitsschlüssel (Werte, die beim Codieren und/oder Decodieren verwendet werden), die in den Prozessor110 eingebettet worden sind. Eingebettete "Schlüssel" werden im Prozessor110 auf eine derartige Weise eingebaut, daß verhindert wird, daß sie von der Software des Systems100 geändert und von nicht sicherer Software gelesen werden. In einer bestimmten Ausführungsform können eingebettete Schlüssel nicht direkt von einer beliebigen Software gelesen werden, ein oder mehrere bestimmte Befehle können jedoch bewirken, daß ein spezifischer eingebetteter Schlüssel zur Verwendung in einer Decodiersequenz in eine andere Hardware übertragen wird. - In einer Ausführungsform ist ein bestimmter eingebetteter Schlüssel einer der zwei Schlüssel für einen asymmetrischen kryptographischen Algorithmus, wobei der andere der zwei Schlüssel in dem Patch-Herkunftssystem unter sicherer Kontrolle behalten wird. In einer anderen Ausführungsform enthält ein bestimmter eingebetteter Schlüssel einen Hash-Wert eines öffentlichen Schlüssels für einen asymmetrischen kryptographischen Algorithmus, wobei der öffentliche Schlüssel mit dem zugehörigen Patch geliefert wird. Andere Ausführungsformen können andere Arten von Schlüsseln als eingebettete Schlüssel beinhalten.
- In manchen Ausführungsformen befindet sich der Mikrocode
112 in einem nichtflüchtigem Speicher, wie beispielsweise einem Festspeicher (read-only memory, ROM), und kann nach der Herstellung nicht direkt geändert werden. Ein Patch kann in den Patch-Speicher114 für den Systembetrieb gesetzt werden, so daß, als Reaktion auf einen Hinweis auf einen Abschnitt des modifizierten Mikrocodes, der Hinweis zum Patch-Speicher114 umgeleitet wird, um auf den modifizierten Mikrocode zuzugreifen. In einer Ausführungsform enthält der Patch-Speicher114 einen RAM und der Patch wird jedes Mal, wenn das System100 zurückgesetzt und/oder neu gestartet wird, im RAM des Patch-Speichers114 installiert. In einer anderen Ausführungsform enthält der Patch-Speicher114 eine nichtflüchtige Speicherform, wie beispielsweise einen Flash-Speicher, und jeder Patch bleibt, nachdem er installiert wurde, im Patch-Speicher114 intakt, bis der Patch durch einen nachfolgenden Patch ersetzt wird. - Vor der Installation kann ein codierter Patch in einem nichtflüchtigen Speicher, wie beispielsweise dem BIOS
132 oder auf der Festplatte140 , gespeichert werden, um jedes Mal, wenn der Patch im Patch-Speicher114 installiert wird, decodiert und validiert zu werden. In einer Ausführungsform kann ein Patch von einem BIOS-Anbieter im BIOS132 gespeichert und mittels BIOS-residentem Code während eines anfänglichen Startvorgangs installiert werden. In einer anderen Ausführungsform kann ein Patch von einem Betriebssystem-Anbieter auf der Festplatte gespeichert und zu einem späteren Zeitpunkt beim Startvorgang mittels eines Betriebssystemstart-Ladeprogramms installiert werden. Beide Ausführungsformen können im selben System kombiniert werden. - In einer Ausführungsform werden Patches über eine Kommunikationsverbindung (z. B. das Internet) geliefert, über die Kommunikationsschnittstelle
160 empfangen und zur Verwendung gespeichert. In anderen Ausführungsformen können Patches über andere Mittel geliefert werden. -
2 zeigt ein Blockschema eines Systems zum Umwandeln von Patches in eine für die Lieferung sichere Form gemäß einer Ausführungsform der Erfindung. In der dargestellten Ausführungsform von2 enthält das System200 einen Prozessor210 , einen Chipsatz230 , eine Festplatte240 , einen Hauptspeicher250 und eine Kommunikationsschnittstelle260 . Die grundlegenden Funktionen jeder dieser Einrichtungen können ihren Gegenstücken in1 ähnlich sein. Das System200 befindet sich jedoch, als Ausgangspunkt von Patches, in einer Ausführungsform in einer schätzbaren zentralisierten Installation, in der ein Schutz gegen Angreifer für das gesamte System200 bereitgestellt werden kann. In der dargestellten Ausführungsform kann dieser Schutz durch einen sicheren Perimeter270 bereitgestellt sein. Der Ausdruck "Perimeter" bedeutet, so wie er hierin verwendet wird, eher konzeptionell als physisch und der sichere Perimeter270 kann zahlreiche Schutzmaßnahmen enthalten, einschließlich u. a. physischem Schutz des Systems200 , beschränktem Zugriff vom Personal auf das System200 , einer Firewall oder anderer Schutzsoftwareeinrichtungen, um nicht autorisierten Eingriff in das System durch die Kommunikationsschnittstelle260 usw. zu verhindern. Das System200 kann auch interne Sicherheitsfunktionen, die den in1 gezeigten ähneln, einsetzen. In einer Ausführungsform wird das System200 zum Erstellen von Patchpaketen für eine einzige Art von Zielsystem verwendet. In einer anderen Ausführungsform wird das System200 zum Erstellen unterschiedlicher Patchpakete für mehrere Arten von Zielsystemen verwendet. - Der Code für die Patches kann entweder im System
200 erstellt werden oder an anderer Stelle erstellt und zum System200 zur Vorbereitung der zugehörigen Patchpakete geliefert werden. Zu verwendende und im System200 zu speichernde Informationen können u. a. nicht verschlüsselte Patches244 , verschlüsselte Patches242 und/oder zugehörige Schlüssel246 enthalten, die alle als auf der Festplatte240 gespeichert gezeigt sind. Da unterschiedliche Zielsysteme unterschiedliche Patches erfordern können und unterschiedliche Schlüssel umfassen, kann die Festplatte240 in verschiedene Speicherbereiche segmentiert werden, wobei jeder Speicherbereich für einen separaten Satz von Patches und zugehörigem Schlüssel/zugehörigen Schlüsseln ist. -
3 zeigt ein Patchpaket, das vom System von2 zum System von1 lieferbare Elemente enthält, gemäß einer Ausführungsform der Erfindung. In einer Ausführungsform enthält ein Patchpaket300 einen Patchkopf310 , ein Patch320 und eine digitale Signatur330 . Eine andere Ausführungsform kann auch einen oder mehrere lieferbare Schlüssel340 beinhalten. Der Patchkopf310 enthält identifizierende Informationen, die u. a. eine oder mehrere der folgenden Informationen identifizieren können: die Art des Zielsystems, für das der Patch gedacht ist, die Art des Patchs, wo der Patch verwendet werden soll, wie der Patch verwendet werden soll und eine beliebige andere relevante Information, die von dem Zielsystem100 möglicherweise benötigt wird. In einer Ausführungsform ist der Patchkopf310 nicht verschlüsselt, um die Identifizierung und Anordnung des Patchpakets300 durch das Zielsystem100 vor der Authentifizierung und/oder Entschlüsselung des Patchs zu erleichtern. Der Patch320 enthält den Mikrocode zum Setzen in den Patch-Speicher114 , obwohl der Patch320 in verschlüsselter Form sein kann, während er sich im Patchpaket300 befindet. Die Verschlüsselung des Patchs320 kann verwendet werden, um Geschäftsgeheimnisse oder andere vertrauliche Informationen, die vom Patch selbst abgeleitet sein könnten, zu schützen. Die digitale Signatur330 beinhaltet Daten zum Validieren der Authentizität des zu installierenden Patchs, so daß eine Änderung des Patchs nach der Vorbereitung des Patchpakets erkannt werden kann. In einer Ausführungsform wird die digitale Signatur330 lediglich für den Patch320 erstellt. In einer anderen Ausführungsform wird die digitale Signatur330 sowohl für den Patch320 als auch für den Patchkopf310 erstellt, so daß eine nicht autorisierte Veränderung an einem dieser beiden vom Zielsystem100 erkannt werden kann. In noch anderen Ausführungsformen kann die digitale Signatur330 auch für andere Komponenten des Patchpakets300 erstellt werden. - In einer Ausführungsform werden alle vom Zielsystem
100 benötigten Schlüssel bei der Herstellung in den Prozessor110 eingebettet. Bei einer bestimmten derartigen Ausführungsform enthält das Patchpaket300 keinerlei Schlüssel, die zum Decodieren des Patchs verwendet weiden sollen. In einer anderen bestimmten Ausführungsform werden einer oder mehrere der vom System100 zu verwendenden Schlüssel als ein Teil des Patchpakets300 an das System100 geliefert und werden hierin als lieferbare Schlüssel340 (der Plural des Ausdrucks "Schlüssel" umfasst ebenfalls Ausführungsformen, die nur einen einzigen lieferbaren Schlüssel aufweisen) bezeichnet. Die lieferbaren Schlüssel340 können anderen Schlüsseln, die entweder im Zielsystem100 oder im Herkunftssystem200 verwendet werden, zugeordnet sein. In einer bestimmten Ausführungsform beispielsweise enthält ein lieferbarer Schlüssel den öffentlichen Schlüssel eines Paars aus öffentlichem Schlüssel und privatem Schlüssel in einem asymmetrischen kryptographischen Algorithmus, wobei der private Schlüssel im Herkunftssystem200 verbleibt, und ein vom öffentlichen Schlüssel abgeleiteter Hash-Wert wird in den Prozessor100 eingebettet und zum Validieren der Authentizität des gelieferten öffentlichen Schlüssels verwendet. Ein eingebetteter Hash-Wert kann auch zum Validieren eines oder mehrerer Schlüssel verwendet werden, die durch andere Mittel bereitgestellt wurden, z. B. ein oder mehrere mit einem Betriebssystem-Upgrade auf die Festplatte gesetzte oder mit einem BIOS-Upgrade in das BIOS gesetzte Schlüssel. Andere Ausführungsformen können andere Kombinationen aus Schlüsseln und Verschlüsselungsschemata verwenden. Jedes der Elemente des Patchpakets300 wird in der Offenbarung im Folgenden ausführlicher beschrieben. - In noch einer anderen Ausführungsform kann ein eingebetteter Schlüssel oder Hash-Wert mit einer Kette von Schlüsselzertifikaten verwendet werden. In einer derartigen Ausführungsform wird der eingebettete Schlüssel bzw. Hash-Wert zum Validieren eines zweiten Schlüssels verwendet, der zum Validieren eines dritten Schlüssels verwendet wird, usw., wodurch mehrere Sicherheitsschichten bereitgestellt werden, wobei jeder Schlüssel einer bestimmten Schicht zugeordnet ist. Die Schlüssel können über eines oder mehrere der zuvor erwähnten Lieferverfahren und/oder über nicht beschriebene Verfahren geliefert werden.
-
-
4 zeigt ein Ablaufdiagramm eines Gesamtprozesses zum Vorbereiten, Liefern und Validieren eines Patchpakets gemäß einer Ausführungsform der Erfindung. In der dargestellten Ausführungsform von4 weist das Ablaufdiagramm400 zwei Teile auf. Die Blöcke410 bis430 zeigen einen Patchschaffungsprozess, in dem ein Patch-Herkunftssystem einen bestehenden Patch für eine sichere Lieferung vorbereitet. Die Blöcke440 bis495 zeigen einen Patchvalidierungs- und -installationsprozess, der im Zielsystem durchgeführt wird. - In einer Ausführungsform beginnt der Patchschaffungsprozess mit dem Verschlüsseln des Patchs in Block
410 . Wie zuvor erwähnt, verschlüsseln manche Ausführungsformen den Patch möglicherweise nicht, da der Inhalt des Patchs nicht als vertraulich erachtet wird und keinen Schutz benötigt. Gleich ob der Patch verschlüsselt ist oder nicht, können die Vorgänge der Blöcke420 und430 zum Zulassen des Erkennens einer Manipulation des Patchs vor seiner Installation im Zielsystem verwendet werden. In Block420 wird eine digitale Signatur für den Patch erstellt. In einer Ausführungsform wird die digitale Signatur sowohl für den Patchkopf als auch den Patch erstellt, so daß keiner dieser beiden manipuliert werden kann, ohne daß dies erkannt wird. In einer anderen Ausführungsform wird die digitale Signatur für den Patch, nicht jedoch für den Patchkopf erstellt. In noch einer anderen Ausführungsform wird die digitale Signatur auch für die lieferbaren Schlüssel erstellt. In Block430 werden die digitale Signatur und der Patch, zusammen mit beliebigen anderen eingebundenen Elementen, kombiniert, um ein Patchpaket zu bilden. - Wenn der Patch in Block
410 verschlüsselt wurde, wird der verschlüsselte Patch in Block430 eingebunden. - Nachdem das Patchpaket erstellt wurde, kann das Patchpaket über ein beliebiges praktikables Mittel an das Zielsystem geliefert werden. Der Patchvalidierungs- und -installationsprozess, der im Zielsystem stattfindet, beginnt in Block
440 damit, daß das Patchpaket empfangen und gespeichert wird. Das Patchpaket kann auf der Festplatte140 , im BIOS132 oder in einem beliebigen praktikablen Speicherort im Zielsystem100 gespeichert werden. - In einer Ausführungsform werden Patches nicht in einem betriebsbereiten Zustand installiert, bevor das System gestartet wird; ein Prozess, der in Block
450 beginnt. In Block460 wird die digitale Signatur aus dem Patchpaket entschlüsselt und in Block470 zum Validieren des Patchs verwendet. Die Entschlüsselung und Validierung kann eine beliebige von mehreren im Folgenden beschriebenen Formen annehmen. Wenn der Patch in Block410 verschlüsselt wurde, wird er in Block480 entschlüsselt, um den tatsächlichen Patch freizulegen. In Block490 wird der freigelegte Patch im Prozessor110 so installiert, daß er betriebsbereit gemacht wird. In Block495 kann der Prozessor110 unter Verwendung des gepatchten Mikrocodes arbeiten. -
5 zeigt ein Ablaufdiagramm eines Prozesses zum Vorbereiten eines Patchpakets gemäß einer Ausführungsform der Erfindung. Das Ablaufdiagramm500 zeigt eine detailliertere Beschreibung des Patchschaffungsprozesses von4 . Die in5 gezeigte Ausführungsform beinhaltet ein Verschlüsseln des Patchs und das Erstellen eines Digests (Auszugs), der zum Validieren, daß der empfangene Patch korrekt ist, verwendet werden soll. In einer Ausführungsform wird die Verschlüsselung des Patchs mit einem symmetrischen Verschlüsselungsalgorithmus (z. B. AES, DES usw.) durchgeführt. Ein Digest, so wie er hierin verwendet wird, ist ein Parameter, der beim Durchführen eines Vorgangs an einem Datenblock erhalten wurde, wobei identische Datenblöcke identischen Digests erzeugen, eine beliebige Änderung des Datenblocks jedoch wahrscheinlich einen anderen Digest erzeugt. In einer Ausführungsform ist der Digest ein Hash-Digest, d. h. ein Digest, der beim Anwenden eines Hashing-Algorithmußes auf den Patch erstellt wurde. In einer Ausführungsform wird zunächst der Digest erstellt und dann der Patch verschlüsselt, während in einer anderen Ausführungsform zunächst der Patch verschlüsselt und dann der Digest für den verschlüsselten Patch erstellt wird. -
5 zeigt beide Ausführungsformen. In der ersten Ausführungsform werden der unverschlüsselte Patch und der Patchkopf in Block510 einem Hash-Prozess unterzogen, um einen Digest zu erstellen. In einer bestimmten Ausführungsform verwendet der Hash-Prozess den Secure Hash Algorithm (SHA-1, sicherer Hash-Algorithmus), der 1994 unter der Bezeichnung Federal Information Publishing Standard FIPS PUB 180-1 veröffentlicht wurde. Anschließend wird der Patch in Block520 verschlüsselt. Wenn der Patch nicht verschlüsselt werden soll, kann Block520 weggelassen werden. In der zweiten Ausführungsform wird der Patch in Block530 zunächst verschlüsselt und der verschlüsselte Patch und der Patchkopf werden in Block 540 dem Hash-Prozess unterzogen, um den Digest zu erstellen. In beiden Ausführungsformen kann der Digest, wenn ein anschließender Vorgang erforderlich macht, daß der Digest aus einer bestimmten Anzahl von Bits besteht, in Block550 aufgefüllt werden (d. h. ihm werden Daten hinzugefügt), um die Anzahl von Bits nach Bedarf zu erhöhen. Die Auffüllung kann aus vorbestimmten Daten oder Zufallsdaten bestehen. Der aufgefüllte Digest wird in Block560 verschlüsselt, um eine digitale Signatur zu erstellen. In einem Beispiel wird der aufgefüllte Digest unter Verwendung des privaten Schlüssels eines Paars aus öffentlichem Schlüssel und privatem Schlüssel in einem asymmetrischen Verschlüsselungsprozess verschlüsselt. In einer bestimmten Ausführungsform hält die Verschlüsselung den RSA-Verschlüsselungsprozess unter Verwendung eines privaten Schlüssels von 2048 Bit ein. Wie wohl bekannt ist, weisen der Schlüssel und die verschlüsselte Nachricht im RSA-Verschlüsselungsprozess die gleiche Anzahl von Bits auf, was erforderlich macht, daß der Digest in Block550 aufgefüllt wird, wenn der Digest kleiner als der Schlüssel ist. In einer anderen Ausführungsform weisen der Digest und der Schlüssel bereits die gleiche Größe auf und das Auffüllen in Block550 kann eliminiert werden. In noch einer anderen Ausführungsform wird ein Verschlüsselungsverfahren verwendet, in dem der Schlüssel und die Nachricht nicht die gleiche Größe aufweisen müssen, wobei in diesem Fall das Auffüllen in Block550 ebenfalls eliminiert werden kann. Die digitale Signatur, der Patch (verschlüsselt oder unverschlüsselt) und der Patchkopf werden in Block570 zu einem Patchpaket für eine Lieferung an das Zielsystem kombiniert. In einer Ausführungsform kann das Patchpaket außerdem je nach den Systemanforderungen andere Informationen enthalten. -
6 zeigt ein Ablaufdiagramm eines Prozesses zum Validieren eines Patchpakets gemäß einer Ausführungsform der Erfindung. Das Ablaufdiagramm600 zeigt eine detailliertere Beschreibung des Patchvalidierungs- und -Installationsprozesses von4 . Das Patchpaket wird in Block610 aus dem Zielsystem bezogen. In einer Ausführungsform wurde das Patchpaket zuvor vom Zielsystem empfangen und in den Speicher gesetzt und wird aus diesem Speicher bezogen. In einer anderen Ausführungsform wird das Patchpaket in Block610 bezogen, sobald es vom Zielsystem empfangen wird, ohne daß es zwischengespeichert wird. Während in einer Ausführungsform das gesamte Patchpaket, so wie es vom Herkunftssystem geliefert wurde, bezogen wird, werden in einer anderen Ausführungsform etwaige nicht erforderliche Elemente des Pakets herausgezogen, bevor das Patchpaket bezogen wird. - In einer Ausführungsform, in der ein Schlüssel im Patchpaket geliefert wird, kann in Block
612 ein Hash-Wert für den Schlüssel berechnet werden. Wenn dieser berechnete Hash-Wert mit einem im Prozessor110 eingebetteten, zugehörigen Hash-Wert übereinstimmt, ist der Schlüssel validiert worden und kann in nachfolgenden Validierungsvorgängen verwendet werden. Wenn der berechnete Hash-Wert nicht mit dem eingebetteten Hash-Wert übereinstimmt, schlägt die Validierung fehl und die Steuerung kann zum Block690 fortschreiten, der im Folgenden beschrieben wird. In einer Ausführungsform, die keinen gelieferten Schlüssel umfasst, können die Vorgänge der Blöcke612 und614 weggelassen werden. - Die digitale Signatur wird in Block
620 entschlüsselt, um den im Herkunftssystem erstellten Digest zu beziehen. In einer Ausführungsform wurde die digitale Signatur mit einem asymmetrischen Verschlüsselungsalgorithmus unter Verwendung des privaten Schlüssels eines Paars aus öffentlichem Schlüssel und privatem Schlüssel erstellt und die Entschlüsselung des Blocks620 wird unter Verwendung des zugehörigen öffentlichen Schlüssels durchgeführt. Wenn der Digest während der Erstellung aufgefüllt wurde, bezieht der Vorgang des Blocks620 den aufgefüllten Digest und die Auffüllung wird in Block630 entfernt, um den Digest freizulegen, der zuvor in Block510 oder540 erstellt wurde. Wenn der Digest während der Erstellung nicht aufgefüllt wurde, erzeugt der Vorgang des Blocks620 einen nicht-aufgefüllten Digest und der Block630 kann weggelassen werden. - Zu diesem Zeitpunkt folgte der Prozess in Abhängigkeit davon, ob der Digest erstellt wurde, bevor oder nachdem der Patch im Ablaufdiagramm
500 verschlüsselt wurde. In einer Ausführungsform, in der der Digest vor der wie in den Blöcken510 und520 gezeigten Verschlüsselung erstellt wurde, wird der Patch in Block640 entschlüsselt und es wird in Block650 eine Hash-Funktion am entschlüsselten Patch und Patchkopf durchgeführt, um einen berechneten Digest zu erhalten. Der berechnete Digest wird in Block660 mit dem tatsächlichen, in den Blöcken620 –630 bezogenen Digest verglichen, um zu überprüfen, ob die zwei Digests übereinstimmen. Wenn die zwei Digests gleichwertig sind, ist der Patch validiert worden und kann in Block680 installiert werden. In einer Ausführungsform beinhaltet das Installieren des Patchs das Setzen des Patchs in den Patch-Speicher114 des Prozessors110 , so daß ein etwaiger versuchter Zugriff auf den gepatchten Mikrocode anstatt zum ursprünglichen Mikrocode112 zum Patch-Speicher114 geleitet wird. - Nun wieder mit Bezugnahme auf Block
630 kann in einer Ausführungsform, in der der Patch vor der Erstellung des Digests in den Blöcken530 und540 verschlüsselt wurde, der verschlüsselte Patch und Kopf in Block645 einem Hash-Vorgang unterzogen werden, um den berechneten Digest zu erhalten. Der berechnete Digest kann in Block665 mit dem tatsächlichen, in Block630 aufgedeckten Digest verglichen werden, um zu überprüfen, ob sie übereinstimmen. Wenn festgestellt wird, daß sie gleichwertig sind, ist der Patch validiert worden und kann in Block670 entschlüsselt werden. Der validierte und entschlüsselte Patch kann dann in Block680 installiert werden. In beiden Ausführungsformen handelt es sich bei dem in den Blöcken645 ,650 verwendeten Hash-Vorgang um denselben Hash-Vorgang, der in den Blöcken510 ,540 verwendet wurde. - Wenn der berechnete Digest in entweder Block
660 oder Block665 nicht mit dem tatsächlichen Digest übereinstimmt, weist dies darauf hin, daß das Patchpaket seit dessen Erstellung verändert wurde oder auf andere Weise für die Installation nicht geeignet ist. Eine derartige Veränderung/Nichteignung kann mehrere Ursachen haben, einschließlich u. a.: eines vorsätzlichen Versuchs von einer nicht autorisierten Person, den Patch zu ändern, eines nicht erkannten/nicht korrigierten Datenübertragungsfehlers während der Lieferung, der Lieferung des Patchpakets an ein falsches Zielsystem, eines Software- oder Hardwareversagens oder menschlichen Versagens. Ungeachtet der Ursache kann der Patchinstallationsprozess, wenn der tatsächliche Digest nicht mit dem berechneten Digest übereinstimmt, in Block690 abgebrochen werden, indem der nicht validierte Patch nicht installiert wird. Das Abbrechen der Patchinstallation kann mehrere Formen annehmen, einschließlich u. a.: I) des Versuchs, den Patch neu zu installieren, 2) des Auslassens des defekten Patchs, aber Installieren anderer Patches, 3) des Zurücksetzens auf eine vorherige Version des Patchs, 4) des Herunterfahrens des Systems, 5) des Neustarts des Systems, 6) usw. - In einer Ausführungsform wird der Validierungsprozess der Blöcke
610 –670 für den gesamten Patch im sicheren Speicher118 durchgeführt und der gesamte Patch wird nach der Validierung in Block 680 im Patch-Speicher114 installiert. In einer anderen Ausführungsform, in der der sichere Speicher118 nicht genügend Speichervermögen aufweist, um den gesamten Validierungsprozess auszuführen, kann der Validierungsprozess der Blöcke610 –670 schrittweise an separaten Abschnitten des Patchs durchgeführt werden. Wenn ein beliebiger Abschnitt nicht auf diese Weise validiert wird, kann der Prozess in Block690 wie zuvor beschrieben abgebrochen werden. Wenn alle Abschnitte auf diese Weise validiert werden, kann der Patch ein zweites Mal schrittweise validiert werden, wobei jeder Abschnitt im Patch-Speicher114 installiert wird, wenn er validiert wird. Wenn ein beliebiger Abschnitt des Patchs beim zweiten Durchgang nicht validiert wird (was darauf hinweisen könnte, daß er nach der ersten Validierung manipuliert wurde), kann der Prozess in Block690 abgebrochen werden. Wenn der Patch teilweise installiert worden ist, bevor in Block690 abgebrochen wurde, kann der Abbruchprozess des Blocks690 zusätzlich zu einem oder mehreren der zuvor aufgeführten Abbruchprozesse das Entfernen des neu installierten Patchs vom Patch-Speicher114 beinhalten. - Die vorhergehende Beschreibung soll veranschaulichend und nicht einschränkend sein. Fachmännern werden Variationen in den Sinn kommen. Diese Variationen sollen Teil der verschiedenen Ausführungsformen der Erfindung sein, wobei diese Erfindung nur durch den Sinn und Schutzumfang der angehängten Ansprüche eingeschränkt ist.
- ZUSAMMENFASSUNG
- Mikrocodepatches werden vor der Lieferung zu einem Zielprozessor codiert, der die Mikrocodepatches installieren soll. Der Zielprozessor validiert die Mikrocodepatches vor der Installation. Die Sicherheit des Prozessors kann durch eine oder mehrere der folgenden Maßnahmen verbessert werden: (1) Ausführen der Validierung in einem sicheren Speicher, (2) Verwenden eines öffentlich/privaten Schlüsselpaars für die Verschlüsselung und Entschlüsselung des Mikrocodepatchs, (3) Verwenden mindestens eines Schlüssels, der in dem Zielprozessor eingebettet ist und durch nicht sichere Software nicht gelesen werden kann und (4) Verwenden eines Hash-Werts, der in dem Zielprozessor eingebettet ist, um zumindest einen nicht eingebetteten Schlüssel zu validieren.
Claims (30)
- Maschinenlesbares Medium, das Befehle bereitstellt, die, wenn sie von einem Satz von einem oder mehreren Prozessoren ausgeführt werden, bewirken, daß der Satz von Prozessoren Vorgänge durchführt, die Folgendes umfassen: Erstellen eines Hash-Digests für einen Mikrocodepatch; Verschlüsseln des Hash-Digests zum Erstellen einer digitalen Signatur; und Kombinieren der digitalen Signatur und des Mikrocodepatchs zum Liefern an einen Zielprozessor, um Mikrocode im Zielprozessor zu patchen.
- Medium nach Anspruch 1, wobei: das Kombinieren das Kombinieren eines Schlüssels mit der digitalen Signatur und dem Mikrocodepatch für die Lieferung an den Zielprozessor beinhaltet.
- Medium nach Anspruch 1, wobei: das Kombinieren das Kombinieren eines Hash-Werts eines Schlüssels mit der digitalen Signatur und dem Mikrocodepatch für die Lieferung an den Zielprozessor beinhaltet.
- Verfahren, das Folgendes umfaßt: Erstellen eines Hash-Digests für einen Mikrocodepatch; Verschlüsseln des Hash-Digests mit einem privaten Schlüssel für einen asymmetrischen kryptographischen Algorithmus, um eine digitale Signatur zu erstellen; und Kombinieren der digitalen Signatur und des Mikrocodepatchs zum Liefern an einen Prozessor, um Mikrocode des Prozessors zu patchen.
- Verfahren nach Anspruch 4, das weiterhin Folgendes umfaßt: Verschlüsseln des Mikrocodepatchs; wobei das Erstellen des Hash-Digests das Erstellen des Hash-Digests vor dem Verschlüsseln des Mikrocodepatchs beinhaltet; und wobei das Kombinieren das Kombinieren der digitalen Signatur mit dem verschlüsselten Mikrocodepatch beinhaltet.
- Verfahren nach Anspruch 4, das weiterhin Folgendes umfaßt: Verschlüsseln des Mikrocodepatchs; wobei das Erstellen des Hash-Digests das Erstellen des Hash-Digests nach dem Ver schlüsseln des Mikrocodepatchs beinhaltet; und wobei das Kombinieren das Kombinieren der digitalen Signatur mit dem verschlüsselten Mikrocodepatch beinhaltet.
- Maschinenlesbares Medium, das Daten enthält, die Folgendes umfassen: einen Mikrocodepatch zum Patchen von Mikrocode in einem Zielsystem; und eine digitale Signatur, die durch Verschlüsseln eines Digests, der durch Ausführen eines Hash-Vorgangs am Mikrocodepatch erstellt wurde, erzeugt wurde.
- Medium nach Anspruch 7, wobei die Daten weiterhin Folgendes umfassen: einen Schlüssel zum Entschlüsseln der digitalen Signatur, um den Digest zu erzeugen.
- Medium nach Anspruch 7, wobei die Daten weiterhin Folgendes umfassen: einen Hash-Wert eines Schlüssels zum Validieren des Mikrocodepatchs.
- Medium nach Anspruch 7, wobei: der Mikrocodepatch verschlüsselt ist.
- Gerät, das Folgendes umfaßt: einen Prozessor, der Mikrocode aufweist; einen sicheren Speicher, der mit dem Prozessor gekoppelt ist, um einen codierten Mikrocodepatch zu decodieren; und einen Mikrocodepatch-Speicher, der an den Mikrocode gekoppelt ist, um den decodierten Mikrocodepatch zu enthalten.
- Gerät nach Anspruch 11, wobei: der Mikrocode Mikrobefehle enthält, um den codierten Mikrocodepatch zu decodieren; und der sichere Speicher den codierten Mikrocodepatch, den decodierten Mikrocodepatch und/oder Zwischenprodukte während des Decodierens des Mikrocodepatchs zu enthalten hat.
- Gerät nach Anspruch 11, wobei: der Mikrocode Mikrobefehle enthält, um den codierten Mikrocodepatch zu decodieren; und der sichere Speicher gleichzeitig nicht mehr als einen Abschnitt des codierten Mikrocodepatchs, des decodierten Mikrocodepatchs und/oder von Zwischenprodukten während des Decodierens des Mikrocodepatchs zu enthalten hat.
- Gerät nach Anspruch 11, wobei: der Prozessor einen eingebetteten Schlüssel zur Verwendung zum Decodieren des codierten Mikrocodepatchs enthält.
- Gerät nach Anspruch 14, wobei: der eingebettete Schlüssel ein öffentlicher Schlüssel in einem asymmetrischen kryptographischen Algorithmus ist.
- Verfahren, das Folgendes umfaßt: Beziehen eines Mikrocodepatchs und einer zugehörigen digitalen Signatur; Entschlüsseln der digitalen Signatur in einem sicheren Speicher, um einen ersten Hash-Digest zu erhalten; Berechnen eines zweiten Hash-Digests mit dem Mikrocodepatch; Vergleichen des ersten Hash-Digests mit dem zweiten Hash-Digest; und Installieren des Mikrocodepatchs in einem Mikrocodepatch-Speicher in Reaktion auf eine Übereinstimmung zwischen dem ersten und dem zweiten Hash-Digest.
- Verfahren nach Anspruch 16, das weiterhin Folgendes umfaßt: Entschlüsseln des Mikrocodepatchs; wobei das Berechnen des zweiten Hash-Digests das Berechnen des zweiten Hash-Digests mit einer verschlüsselten Version des Mikrocodepatchs beinhaltet.
- Verfahren nach Anspruch 16, das weiterhin Folgendes umfaßt: Entschlüsseln des Mikrocodepatchs; wobei das Berechnen des zweiten Hash-Digests das Berechnen des zweiten Hash-Digests mit einer entschlüsselten Version des Mikrocodepatchs beinhaltet.
- Verfahren nach Anspruch 16, wobei: das Entschlüsseln der digitalen Signatur das Durchführen einer asymmetrischen Entschlüsselung unter Verwendung eines öffentlichen Schlüssels beinhaltet.
- Verfahren nach Anspruch 16, wobei: das Entschlüsseln der digitalen Signatur das Verwenden eines eingebetteten Schlüssels beinhaltet.
- Verfahren nach Anspruch 16, wobei: das Entschlüsseln der digitalen Signatur das Durchführen einer asymmetrischen Entschlüsselung unter Verwendung eines mit dem Mikrocodepatch bereitgestellten Schlüssels beinhaltet.
- Maschinenlesbares Medium, das Befehle bereitstellt, die, wenn sie von einem Satz von einem oder mehreren Prozessoren ausgeführt werden, bewirken, daß der Satz von Prozessoren Vorgänge durchführt, die Folgendes umfassen: Beziehen eines Mikrocodepatchs und einer zugehörigen digitalen Signatur; Entschlüsseln der digitalen Signatur, um einen ersten Hash-Digest zu erhalten; Berechnen eines zweiten Hash-Digests mit dem Mikrocodepatch; Vergleichen des ersten Hash-Digests mit dem zweiten Hash-Digest; und Installieren des Mikrocodepatchs in Reaktion auf eine Übereinstimmung zwischen dem ersten und dem zweiten Hash-Digest.
- Medium nach Anspruch 22, das weiterhin Folgendes umfaßt: Entschlüsseln des Mikrocodepatchs; wobei das Berechnen des zweiten Hash-Digests das Berechnen des zweiten Hash-Digests mit einer verschlüsselten Version des Mikrocodepatchs beinhaltet.
- Medium nach Anspruch 22, das weiterhin Folgendes umfaßt: Entschlüsseln des Mikrocodepatchs; wobei das Berechnen des zweiten Hash-Digests das Berechnen des zweiten Hash-Digests mit einer entschlüsselten Version des Mikrocodepatchs beinhaltet.
- Medium nach Anspruch 22, wobei: das Entschlüsseln der digitalen Signatur das Durchführen einer asymmetrischen Entschlüsselung unter Verwendung eines öffentlichen Schlüssels beinhaltet.
- Medium nach Anspruch 22, wobei: das Entschlüsseln der digitalen Signatur das Durchführen einer asymmetrischen Entschlüsselung unter Verwendung eines eingebetteten Schlüssels beinhaltet.
- Medium nach Anspruch 22, wobei: das Entschlüsseln der digitalen Signatur das Durchführen einer asymmetrischen Entschlüsselung unter Verwendung eines mit dem Mikrocodepatch und der zugehörigen digitalen Signatur bereitgestellten Schlüssels beinhaltet.
- System, das Folgendes umfaßt: einen Prozessor, der Mikrocode und einen eingebetteten Schlüssel aufweist; und ein Mikrocodepatchpaket, das sich in einer Speichereinrichtung und/oder einem BIOS (basic input-output system, einfaches Eingabe/Ausgabesystem) befindet, die/das mit dem Prozessor gekoppelt ist, wobei das Mikrocodepatchpaket einen Mikrocodepatch zum Patchen des Mikrocodes und eine digitale Signatur zum Validieren des Mikrocodepatchs unter Verwendung des eingebetteten Schlüssels enthält.
- System nach Anspruch 28, wobei: der Mikrocodepatch in einer verschlüsselten Form im Mikrocodepatchpaket vorliegt.
- System nach Anspruch 28, das weiterhin Folgendes umfaßt: einen sicheren Speicher zum Enthalten des Mikrocodepatchs während der Validierung.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/121,807 | 2002-04-12 | ||
US10/121,807 US20030196096A1 (en) | 2002-04-12 | 2002-04-12 | Microcode patch authentication |
PCT/US2003/009640 WO2003088019A2 (en) | 2002-04-12 | 2003-03-28 | Microcode patch authentication |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10392528T5 true DE10392528T5 (de) | 2005-09-15 |
Family
ID=28790411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10392528T Ceased DE10392528T5 (de) | 2002-04-12 | 2003-03-28 | Microcode-Patch-Authentifizierung |
Country Status (8)
Country | Link |
---|---|
US (1) | US20030196096A1 (de) |
CN (1) | CN1659494B (de) |
AU (1) | AU2003224803A1 (de) |
DE (1) | DE10392528T5 (de) |
GB (2) | GB2403047B (de) |
HK (1) | HK1068423A1 (de) |
TW (1) | TWI268449B (de) |
WO (1) | WO2003088019A2 (de) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260555B2 (en) | 2001-12-12 | 2007-08-21 | Guardian Data Storage, Llc | Method and architecture for providing pervasive security to digital assets |
USRE41546E1 (en) | 2001-12-12 | 2010-08-17 | Klimenty Vainstein | Method and system for managing security tiers |
US10360545B2 (en) | 2001-12-12 | 2019-07-23 | Guardian Data Storage, Llc | Method and apparatus for accessing secured electronic data off-line |
US7921284B1 (en) | 2001-12-12 | 2011-04-05 | Gary Mark Kinghorn | Method and system for protecting electronic data in enterprise environment |
US7930756B1 (en) | 2001-12-12 | 2011-04-19 | Crocker Steven Toye | Multi-level cryptographic transformations for securing digital assets |
US7565683B1 (en) | 2001-12-12 | 2009-07-21 | Weiqing Huang | Method and system for implementing changes to security policies in a distributed security system |
US7921288B1 (en) | 2001-12-12 | 2011-04-05 | Hildebrand Hal S | System and method for providing different levels of key security for controlling access to secured items |
US10033700B2 (en) | 2001-12-12 | 2018-07-24 | Intellectual Ventures I Llc | Dynamic evaluation of access rights |
US7178033B1 (en) | 2001-12-12 | 2007-02-13 | Pss Systems, Inc. | Method and apparatus for securing digital assets |
US7921450B1 (en) | 2001-12-12 | 2011-04-05 | Klimenty Vainstein | Security system using indirect key generation from access rules and methods therefor |
US7681034B1 (en) | 2001-12-12 | 2010-03-16 | Chang-Ping Lee | Method and apparatus for securing electronic data |
US8065713B1 (en) | 2001-12-12 | 2011-11-22 | Klimenty Vainstein | System and method for providing multi-location access management to secured items |
US7380120B1 (en) | 2001-12-12 | 2008-05-27 | Guardian Data Storage, Llc | Secured data format for access control |
US8006280B1 (en) | 2001-12-12 | 2011-08-23 | Hildebrand Hal S | Security system for generating keys from access rules in a decentralized manner and methods therefor |
US7950066B1 (en) | 2001-12-21 | 2011-05-24 | Guardian Data Storage, Llc | Method and system for restricting use of a clipboard application |
US8176334B2 (en) | 2002-09-30 | 2012-05-08 | Guardian Data Storage, Llc | Document security system that permits external users to gain access to secured files |
US8613102B2 (en) | 2004-03-30 | 2013-12-17 | Intellectual Ventures I Llc | Method and system for providing document retention using cryptography |
US7748045B2 (en) | 2004-03-30 | 2010-06-29 | Michael Frederick Kenrich | Method and system for providing cryptographic document retention with off-line access |
DE50302617D1 (de) * | 2002-09-11 | 2006-05-04 | Giesecke & Devrient Gmbh | Geschützte kryptographische berechnung |
US7512810B1 (en) | 2002-09-11 | 2009-03-31 | Guardian Data Storage Llc | Method and system for protecting encrypted files transmitted over a network |
US7836310B1 (en) | 2002-11-01 | 2010-11-16 | Yevgeniy Gutnik | Security system that uses indirect password-based encryption |
US7440571B2 (en) * | 2002-12-03 | 2008-10-21 | Nagravision S.A. | Method for securing software updates |
US7890990B1 (en) | 2002-12-20 | 2011-02-15 | Klimenty Vainstein | Security system with staging capabilities |
US8707034B1 (en) | 2003-05-30 | 2014-04-22 | Intellectual Ventures I Llc | Method and system for using remote headers to secure electronic files |
US7730543B1 (en) | 2003-06-30 | 2010-06-01 | Satyajit Nath | Method and system for enabling users of a group shared across multiple file security systems to access secured files |
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US8127366B2 (en) | 2003-09-30 | 2012-02-28 | Guardian Data Storage, Llc | Method and apparatus for transitioning between states of security policies used to secure electronic documents |
US7703140B2 (en) | 2003-09-30 | 2010-04-20 | Guardian Data Storage, Llc | Method and system for securing digital assets using process-driven security policies |
US20050223292A1 (en) * | 2004-02-17 | 2005-10-06 | Lee Chee S | Single instruction type based hardware patch controller |
US7873831B2 (en) * | 2004-02-26 | 2011-01-18 | Microsoft Corporation | Digests to identify elements in a signature process |
EP1607821A1 (de) | 2004-06-17 | 2005-12-21 | Nagracard S.A. | Methode zur sicheren Programmaktualisierung in einem Sicherheitsmodul |
US7707427B1 (en) * | 2004-07-19 | 2010-04-27 | Michael Frederick Kenrich | Multi-level file digests |
US7353375B2 (en) * | 2004-10-07 | 2008-04-01 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing processor availability using a microcode patch |
IL164571A0 (en) * | 2004-10-14 | 2005-12-18 | Yuval Broshy | A system and method for authenticating and validating the validating the linkage between input filesand output files in a computational process |
US7689819B2 (en) * | 2005-07-29 | 2010-03-30 | Broadcom Corporation | Method and system for a self-booting Ethernet controller |
US8028154B2 (en) * | 2005-07-29 | 2011-09-27 | Broadcom Corporation | Method and system for reducing instruction storage space for a processor integrated in a network adapter chip |
US7523299B2 (en) * | 2005-07-29 | 2009-04-21 | Broadcom Corporation | Method and system for modifying operation of ROM based boot code of a network adapter chip |
US20070088939A1 (en) * | 2005-10-17 | 2007-04-19 | Dan Baumberger | Automatic and dynamic loading of instruction set architecture extensions |
US20070113064A1 (en) * | 2005-11-17 | 2007-05-17 | Longyin Wei | Method and system for secure code patching |
US20080104403A1 (en) * | 2006-09-29 | 2008-05-01 | Shay Gueron | Methods and apparatus for data authentication with multiple keys |
US9280337B2 (en) * | 2006-12-18 | 2016-03-08 | Adobe Systems Incorporated | Secured distribution of software updates |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
DE102007016170A1 (de) * | 2007-04-02 | 2008-10-09 | Francotyp-Postalia Gmbh | Sicherheitsmodul für eine Frankiermaschine |
US20090031107A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | On-chip memory providing for microcode patch overlay and constant update functions |
US20090031121A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Apparatus and method for real-time microcode patch |
US20090031108A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Configurable fuse mechanism for implementing microcode patches |
US20090031103A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Mechanism for implementing a microcode patch during fabrication |
US20090031110A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Microcode patch expansion mechanism |
US20090031090A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Apparatus and method for fast one-to-many microcode patch |
US8375219B2 (en) * | 2007-10-24 | 2013-02-12 | Microsoft Corporation | Program and operation verification |
ES2372889T3 (es) | 2008-01-20 | 2012-01-27 | Nds Limited | Utilización segura de datos. |
US8954696B2 (en) | 2008-06-24 | 2015-02-10 | Nagravision S.A. | Secure memory management system and method |
EP2310976B1 (de) * | 2008-06-24 | 2011-11-02 | Nagravision S.A. | Sicheres speicherverwaltungssystem und verfahren |
TW201009707A (en) * | 2008-08-25 | 2010-03-01 | Asustek Comp Inc | Method for loading and updating central processing unit (CPU) microcode into basic input/output system (BIOS) |
US8402279B2 (en) * | 2008-09-09 | 2013-03-19 | Via Technologies, Inc. | Apparatus and method for updating set of limited access model specific registers in a microprocessor |
US8341419B2 (en) * | 2008-09-09 | 2012-12-25 | Via Technologies, Inc. | Apparatus and method for limiting access to model specific registers in a microprocessor |
US20100180104A1 (en) * | 2009-01-15 | 2010-07-15 | Via Technologies, Inc. | Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor |
US8423779B2 (en) * | 2009-02-23 | 2013-04-16 | Wms Gaming, Inc. | Compounding security with a security dongle |
US8316243B2 (en) * | 2009-08-07 | 2012-11-20 | Via Technologies, Inc. | Apparatus and method for generating unpredictable processor-unique serial number for use as an encryption key |
US20110153944A1 (en) * | 2009-12-22 | 2011-06-23 | Klaus Kursawe | Secure Cache Memory Architecture |
TWI497344B (zh) * | 2010-05-17 | 2015-08-21 | Via Tech Inc | 微處理器及產生不可預測之鑰的方法 |
CA2804869C (en) * | 2010-07-09 | 2016-05-24 | Research In Motion Limited | Microcode-based challenge/response process |
EP2405376B1 (de) * | 2010-07-09 | 2017-01-04 | BlackBerry Limited | Verwendung eines Mikrocode-Interpreters, der in einem Prozessor eingebaut ist |
US9262631B2 (en) | 2011-11-15 | 2016-02-16 | Mstar Semiconductor, Inc. | Embedded device and control method thereof |
TWI467408B (zh) * | 2011-11-15 | 2015-01-01 | Mstar Semiconductor Inc | 嵌入式元件與控制方法 |
US10031737B2 (en) * | 2012-02-16 | 2018-07-24 | Microsoft Technology Licensing, Llc | Downloading and distribution of applications and updates to multiple devices |
ITMI20120944A1 (it) * | 2012-05-31 | 2013-12-01 | St Microelectronics Srl | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9513687B2 (en) | 2013-08-28 | 2016-12-06 | Via Technologies, Inc. | Core synchronization mechanism in a multi-die multi-core microprocessor |
CN105306505A (zh) * | 2014-07-11 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 数据更新方法、终端及服务器 |
CN104899524B (zh) * | 2015-05-25 | 2018-11-27 | 上海兆芯集成电路有限公司 | 中央处理器和验证主机板数据的方法 |
CN106709281B (zh) * | 2015-07-14 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 补丁发放和获取方法、装置 |
CN106559339B (zh) | 2015-09-30 | 2019-02-19 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN105302606A (zh) * | 2015-11-03 | 2016-02-03 | 用友网络科技股份有限公司 | 基于项目权限的补丁下载方法及系统 |
US10659234B2 (en) | 2016-02-10 | 2020-05-19 | Cisco Technology, Inc. | Dual-signed executable images for customer-provided integrity |
TWI615732B (zh) * | 2016-12-27 | 2018-02-21 | 瑞昱半導體股份有限公司 | 電子裝置之電子元件、啟動電子裝置的方法及加密方法 |
CN108052836B (zh) * | 2017-12-11 | 2021-06-04 | 北京奇虎科技有限公司 | 一种补丁包的防篡改方法、装置及服务器 |
JP2020098506A (ja) * | 2018-12-18 | 2020-06-25 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ及び半導体装置 |
US11481206B2 (en) | 2019-05-16 | 2022-10-25 | Microsoft Technology Licensing, Llc | Code update in system management mode |
US11100229B2 (en) * | 2019-07-18 | 2021-08-24 | Infineon Technologies Ag | Secure hybrid boot systems and secure boot procedures for hybrid systems |
US11385903B2 (en) * | 2020-02-04 | 2022-07-12 | Microsoft Technology Licensing, Llc | Firmware update patch |
US11681513B2 (en) * | 2020-05-14 | 2023-06-20 | Texas Instmments Incorporated | Controlled scope of authentication key for software update |
Family Cites Families (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) * | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) * | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) * | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) * | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) * | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) * | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) * | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) * | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4307214A (en) * | 1979-12-12 | 1981-12-22 | Phillips Petroleum Company | SC2 activation of supported chromium oxide catalysts |
US4319323A (en) * | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) * | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) * | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) * | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) * | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
JPS58140862A (ja) * | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4521852A (en) * | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) * | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) * | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) * | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) * | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601525B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2618002B1 (fr) * | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) * | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) * | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) * | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) * | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) * | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) * | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
JPH0617217B2 (ja) * | 1989-02-28 | 1994-03-09 | 水澤化学工業株式会社 | 非晶質シリカ・アルミナ系球状粒子及びその製法 |
US5442645A (en) * | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) * | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) * | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (ja) * | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) * | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
US5075842A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5108590A (en) * | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) * | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) * | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) * | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) * | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5455909A (en) * | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5574936A (en) * | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) * | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) * | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) * | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (ja) * | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5469557A (en) * | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) * | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) * | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) * | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) * | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) * | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5584023A (en) * | 1993-12-27 | 1996-12-10 | Hsu; Mike S. C. | Computer system including a transparent and secure file transform mechanism |
UA41387C2 (uk) * | 1994-01-13 | 2001-09-17 | Сертко, Інк | Спосіб установлення вірогідного перевірюваного зв'язку, спосіб захищеного зв'язку, спосіб оновлення мікропрограмного забезпечення, спосіб здійснення шифрованого зв'язку та спосіб надання перевіреному на справжність пристрою права на проведення електронної транзакції |
US5459869A (en) * | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) * | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
US5473692A (en) * | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
JPH0883211A (ja) * | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
US5606617A (en) * | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) * | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) * | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5802268A (en) * | 1994-11-22 | 1998-09-01 | Lucent Technologies Inc. | Digital processor with embedded eeprom memory |
US5560013A (en) * | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) * | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) * | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5717903A (en) * | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
US5757915A (en) * | 1995-08-25 | 1998-05-26 | Intel Corporation | Parameterized hash functions for access control |
US5684948A (en) * | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) * | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5657445A (en) * | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5923884A (en) * | 1996-08-30 | 1999-07-13 | Gemplus S.C.A. | System and method for loading applications onto a smart card |
US5844986A (en) * | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6463537B1 (en) * | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) * | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US7213152B1 (en) * | 2000-02-14 | 2007-05-01 | Intel Corporation | Modular bios update mechanism |
US6625730B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6976163B1 (en) * | 2000-07-12 | 2005-12-13 | International Business Machines Corporation | Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein |
US7069452B1 (en) * | 2000-07-12 | 2006-06-27 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
US6463549B1 (en) * | 2000-09-28 | 2002-10-08 | Motorola, Inc. | Device and method for patching code residing on a read only memory module utilizing a random access memory for storing a set of fields, each field indicating validity of content of a group, and for receiving an address of a memory portion of the read only memory |
US7095858B2 (en) * | 2001-05-10 | 2006-08-22 | Ranco Incorporated Of Delaware | System and method for securely upgrading firmware |
US6993648B2 (en) * | 2001-08-16 | 2006-01-31 | Lenovo (Singapore) Pte. Ltd. | Proving BIOS trust in a TCPA compliant system |
US7484105B2 (en) * | 2001-08-16 | 2009-01-27 | Lenovo (Singapore) Ptd. Ltd. | Flash update using a trusted platform module |
US7237126B2 (en) * | 2001-09-28 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preserving the integrity of a management subsystem environment |
-
2002
- 2002-04-12 US US10/121,807 patent/US20030196096A1/en not_active Abandoned
-
2003
- 2003-03-28 AU AU2003224803A patent/AU2003224803A1/en not_active Abandoned
- 2003-03-28 CN CN038133962A patent/CN1659494B/zh not_active Expired - Fee Related
- 2003-03-28 GB GB0422098A patent/GB2403047B/en not_active Expired - Fee Related
- 2003-03-28 DE DE10392528T patent/DE10392528T5/de not_active Ceased
- 2003-03-28 GB GB0602345A patent/GB2419990B/en not_active Expired - Fee Related
- 2003-03-28 WO PCT/US2003/009640 patent/WO2003088019A2/en not_active Application Discontinuation
- 2003-04-11 TW TW092108407A patent/TWI268449B/zh not_active IP Right Cessation
-
2005
- 2005-01-14 HK HK05100391A patent/HK1068423A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
AU2003224803A1 (en) | 2003-10-27 |
TWI268449B (en) | 2006-12-11 |
HK1068423A1 (en) | 2005-04-29 |
GB2419990A (en) | 2006-05-10 |
CN1659494A (zh) | 2005-08-24 |
GB2403047A (en) | 2004-12-22 |
TW200402659A (en) | 2004-02-16 |
WO2003088019A3 (en) | 2004-03-04 |
CN1659494B (zh) | 2011-06-08 |
US20030196096A1 (en) | 2003-10-16 |
WO2003088019A2 (en) | 2003-10-23 |
GB0602345D0 (en) | 2006-03-15 |
GB2419990B (en) | 2006-11-01 |
GB0422098D0 (en) | 2004-11-03 |
GB2403047B (en) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10392528T5 (de) | Microcode-Patch-Authentifizierung | |
DE60303476T2 (de) | Verfahren und server für eine programm-aktualisierung | |
DE112005001666B4 (de) | Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD | |
DE60314060T2 (de) | Verfahren und Vorrichtung zur Schlüsselverwaltung für gesicherte Datenübertragung | |
EP2899714B1 (de) | Gesichertes Bereitstellen eines Schlüssels | |
DE60202605T2 (de) | Verfahren zur sicherung eines elektronischen geräts, sicherheitssystem und elektronisches gerät | |
DE69837303T2 (de) | Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme | |
DE102008021567B4 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
DE102006046456B4 (de) | Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte | |
EP1393146B1 (de) | Verfahren und system zur verteilten erstellung eines programms für einen programmierbaren, tragbaren datenträger | |
DE102015209116A1 (de) | Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes | |
DE102005030590A1 (de) | Sicheres Korrektursystem | |
EP2567501B1 (de) | Verfahren zum kryptographischen schutz einer applikation | |
DE102009013384A1 (de) | System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung | |
DE112005001654T5 (de) | Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD | |
DE102015209108A1 (de) | Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes | |
WO2009040207A1 (de) | Verfahren und system zum schutz gegen einen zugriff auf einen maschinencode eines gerätes | |
EP2442251B9 (de) | Individuelle Aktualisierung von Computerprogrammen | |
EP3337085B1 (de) | Nachladen kryptographischer programminstruktionen | |
EP2434424B1 (de) | Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online-Diensten | |
EP3552344B1 (de) | Bidirektional verkettete blockchainstruktur | |
EP3248136B1 (de) | Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit | |
DE102005046696A1 (de) | Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt | |
DE102020216030A1 (de) | Verfahren zum abgesicherten Start einer Recheneinheit | |
DE102020206039A1 (de) | Erstellen einer Container-Instanz |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |