-
Die
vorliegende Erfindung bezieht sich auf das sichere Schützen von
Computerdaten, und im Besonderen auf Sicherheitsprozessoren, die
in Computersystemen zur Verfügung
gestellt werden, um Sicherheitseigenschaften zu implementieren.
-
Die
Sicherheit von Informationen, die in Computersystemen gespeichert
sind, ist ein grundlegendes Anliegen. Es sind viele unterschiedliche
Verfahren eingerichtet worden, um derartige Informationen abzusichern,
von in Computersystemen installierter Sicherheitsanwendungssoftware
bis zu Hardwareschlüsseln
die erforderlich sind, um auf Informationen zuzugreifen.
-
Ein
weiterer Weg um Informationen zu sichern, ist als die Trusted Platform
Module (TPM) Specification der Trusted Computing Group (TCG) bekannt.
In dieser Spezifikation wird ein Standardchipsatz, der einen programmierbaren
Mikrocontroller enthält,
während
der Fertigung auf der Platine eines Computers zur Verfügung gestellt,
und wird verwendet, um Informationen des Computersystems zu speichern
und zu sichern, von dem erwünscht
ist, dass es geschützt
wird, das heißt,
wirkungsvolle vertrauenswürdige
Rechnereigenschaften ermöglicht. Die
Sicherheitsarchitektur (das heißt,
die Funktionen und das Application Program Interface (API)), die
auf dem Mikrocontroller abläuft,
kann als ein TPM bezeichnet werden. Ein TPM kann eine Vielzahl von
Eigenschaften zur Verfügung
stellen, eingeschlossen einen Zufallszahlengenerator, Einrichtungen
zur sicheren Erzeugung von kryptographischen Schlüsseln, und
Befähigungen die
Verwendung der Schlüssel
einzuschränken,
zum Beispiel auf Signieren und Verifizieren, und/oder Verschlüsseln und
Entschlüsseln.
-
Da
e-commerce, e-government und e-business zusammen mit der zunehmenden
Bedrohung durch Internetkriminalität wachsen, entwickelt sich ein
Kompromiss bei der Verwendung von Sicherheitstechnologien zum Schutz
von Daten und dem Authentifizieren von Identitäten und Transaktionen. Die
Informationstechnologieeigner von Prozessen, die diese Identitäten und
Transaktionen verwenden, wünschen
spezifische Verschlüsselungsalgorithmen zu
verwenden, die auf ihre eigenen Umstände und Risikoprofile zugeschnitten
sind. Sie wollen spezifische Eigenschaften aufweisende Implementierungen von
TPMs verwenden, die zu erwünschten
Verschlüsselungsalgorithmen
zugehörig
sind, um den erforderlichen Vertrauensgrad ihrer durchgehenden Systeme
und Betriebsmodelle zu unterstützen.
Ein gewöhnliches
Mehrzweck-TPM kann zum Beispiel einen bestimmten Satz von Verschlüsselungsalgorithmen
verwenden, der den Advanced Encryption Standard (AES) beinhaltet.
Bestimmte Regierungsorganisationen können jedoch andere Algorithmen
als AES verwenden, wie zum Beispiel die Regierung von Russland,
die die GOST (Gosudarstvennyi Standart) Verschlüsselung verwendet, oder die
Regierung von China, die SMS4 Verschlüsselung verwendet. Andere,
wie zum Beispiel die National Security Agency der Vereinigten Staaten,
können
ihre eigenen Algorithmen verwenden, von denen sie nicht wünschen,
dass sie in der Öffentlichkeit
offenbart werden.
-
Derartige
unterschiedliche Anforderungen durch unterschiedliche Einheiten
würden
es üblicherweise
erforderlich machen, dass jeder TPM Chipsatz spezifisch auf die
Sicherheitsarchitektur und Algorithmen, die von seinem spezifischen
Endanwender gewünscht
werden, zugeschnitten wird. Daher muss vor der Auslieferung an den
Endanwender jeweils eine unterschiedliche Sicherheitsarchitektur,
die bestimmte Hash- und Verschlüsselungsalgorithmen und
unterschiedliche Funktionalitäten
implementiert, auf unterschiedliche TPM Chipsätze geladen werden. Dies macht
es erforderlich, dass für
jede unterschiedliche Anwenderspezifikation ein anderer TPM Chip
hergestellt wird, wodurch die Kosten für die Fertigung von TPMs immens
erhöht
werden können
und daher auch die Kosten für
den Anwender, um diese Art von Sicherheit auf ihren Systemen zu
installieren.
-
Zusätzlich dazu
haben es bisherige Implementierungen von TPM Chips nicht ermöglicht,
dass eine TPM Architektur sicher von dem Mikrocontroller entfernt
wird, um das Laden von anderen Anwendungen auf dem Chip zu ermöglichen,
noch haben sie ermöglicht,
dass die aktuellste Version einer entfernten TPM Architektur erneut
sicher in den Chip geladen wird.
-
Dementsprechend
ergibt sich die Notwendigkeit für
einen flexiblen und sicheren Ansatz um einen sicher programmierbaren
Mikrocontroller zu verwenden, um verschiedene Sicherheitsarchitekturen und
ihre Verschlüsselungsalgorithmen
zu unterstützen
und diese in die Emulation von unterschiedlichen Instanzen der TPM
Hardware einzubauen. Die vorliegende Erfindung spricht einen derartigen
Bedarf an.
-
Die
Erfindung der vorliegenden Anmeldung bezieht sich auf Anwendungen,
die in Sicherheitsprozessoren zur Verfügung gestellt werden, die in
Computersystemen zur Verfügung
gestellt werden. Bei einem Aspekt der Erfindung beinhaltet ein Verfahren zum
Bereitstellen eines Sicherheitsprozessors das Empfangen einer Vielzahl
von Werten, wobei jeder Wert eine unterschiedliche Anwendung identifiziert, die
in dem Sicherheitsprozessor ausgeführt werden kann. Zu jedem empfangenen
Wert wird ein anderer zertifizierter Endorsement Key zugeordnet,
durch Speichern der Endorsement Keys und der Werte in einem Speicher,
auf den durch den Sicherheitsprozessor zugegriffen werden kann,
wobei zumindest einer der gespeicherten Endorsement Keys und der verknüpften Werte
verwendet wird um zu ermöglichen,
dass eine der unterschiedlichen Anwendungen in dem Sicherheitsprozessor
ausgeführt
wird.
-
Unter
einem anderen Aspekt der Erfindung beinhaltet eine Sicherheitsprozessorvorrichtung
einen Prozessor und einen mit dem Prozessor gekoppelten Speicher
der betreibbar ist, um eine sichere Tabelle zu speichern. Die sichere
Tabelle speichert eine Vielzahl von unterschiedlichen zertifizierten
Endorsement Keys und eine Vielzahl von unterschiedlichen Werten,
wobei jeder Wert zu einem der Endorsement Keys zugehörig ist.
Jeder gespeicherte Wert wird von einer anderen Anwendung abgeleitet,
die durch den verknüpften
Endorsement Key zertifiziert ist, in dem Prozessor ausgeführt zu werden.
-
Bei
einem weiteren Aspekt der Erfindung beinhaltet ein Verfahren zum
sicheren Bereitstellen von Anwendungen in einem Sicherheitsprozessor
das Empfangen einer Aufforderung, eine angeforderte Anwendung in
dem Sicherheitsprozessor zu laden, und das Vergleichen eines Werts,
der durch das Verarbeiten der angeforderten Anwendung ermittelt
wurde, mit zumindest einem aus einer Vielzahl von gespeicherten
Werten, die in einem Speicher des Sicherheitsprozessors gespeichert
sind. Eine Übereinstimmung
zwischen einem gespeicherten Wert und dem Wert zeigt an, dass die
angeforderte Anwendung zertifiziert ist, in dem Sicherheitsprozessor
ausgeführt
zu werden. Die angeforderte Anwendung wird in dem Sicherheitsprozessor
ausgeführt,
wenn eine Übereinstimmung
zwischen dem Wert und einem gespeicherten Wert gefunden wird.
-
Bei
einem weiteren Aspekt der Erfindung beinhaltet ein Computersystem
eine Eingabeanordnung die betreibbar ist, um von einem Anwender
entgegengenommene Eingaben an das Computersystem zur Verfügung zu
stellen, wobei die Eingabeanordnung eine Sicherheitseingabeanordnung
beinhaltet, die den Anwender identifiziert. Ein Sicherheitsprozessor
ist mit der Eingabeanordnung gekoppelt und betreibbar, die Eingabe
von dem Anwender entgegenzunehmen und Anwendungen auszuführen, die
für den
Prozessor zertifiziert sind. Ein mit dem Sicherheitsprozessor gekoppelter
Speicher ist betreibbar, um eine sichere Tabelle zu speichern, wobei
die sichere Tabelle eine Vielzahl von unterschiedlichen zertifizierten
Endorsement Keys und eine Vielzahl von unterschiedlichen Hashwerten
speichert. Jeder Hashwert ist einem der Endorsement Keys zugeordnet,
wobei jeder Hashwert von einer anderen Anwendung abgeleitet ist,
die durch den verknüpften
Endorsement Key dazu zertifiziert ist, in den Prozessor geladen
zu werden. Die unterschiedlichen Anwendungen beinhalten unterschiedliche
Sicherheitsarchitekturanwendungen, die jeweils eine andere Sicherheitsarchitektur
in dem Sicherheitsprozessor implementieren können.
-
Die
vorliegende Erfindung stellt einen Sicherheitsprozessor zur Verfügung, der
bei der Unterstützung
verschiedener zertifizierter Sicherheitsarchitekturen und ihrer
Algorithmen Flexibilität
zur Verfügung
stellt, und es einem Anwender ermöglicht die Anwendungen auszuwählen, um
sie in dem Prozessor auszuführen.
Dies ermöglicht
es einem Anbieter einen Typ von Prozessor herzustellen, der die
Bedürfnisse
von vielen unterschiedlichen Anwendern erfüllen kann, die wünschen können unterschiedliche Architekturen
und Algorithmen zu verwenden. Die vorliegende Erfindung ermöglicht es
auch, dass eine Anwendung aus einem Sicherheitsprozessor entfernt wird
und in diesen geladen wird, und für einen Sicherheitsprozessor
installiert wird, während
die Sicherheit und neue Aktualisierungen für die Anwendung beibehalten
und unterhalten werden.
-
1 ist
ein Blockdiagramm, das ein Computersystem 10 veranschaulicht,
das das zur Verwendung mit der vorliegenden Erfindung geeignet ist;
-
2 ist
eine schematische Veranschaulichung einer sicheren Tabelle der vorliegenden
Erfindung, die in einem nichtflüchtigen
Speicher gespeichert werden kann, der mit dem Sicherheitsprozessor
nach 1 verbunden ist;
-
3 ist
ein Flussdiagramm, das ein Verfahren der vorliegenden Erfindung
zur Vorbereitung und Bereitstellung eines Sicherheitsprozessors
für Anwender
veranschaulicht;
-
4 ist
ein Flussdiagramm, das ein Verfahren der vorliegenden Erfindung
zum Laden einer Anwendung in einen Sicherheitsprozessor veranschaulicht;
und
-
5 ist
ein Flussdiagramm, das ein Verfahren der vorliegenden Erfindung
zum Installieren einer neuen Anwendung zur Verwendung durch einen
Sicherheitsprozessor veranschaulicht.
-
Die
vorliegende Erfindung bezieht sich auf das sichere Schützen von
Computerdaten, und im Besonderen auf Sicherheitsprozessoren, die
in Computersystemen zur Verfügung
gestellt werden, um Sicherheitseigenschaften zu implementieren.
Die nachfolgende Beschreibung wird angegeben, um es einer Person
mit gewöhnlichen
Kenntnissen in der Technik zu ermöglichen, die Erfindung auszuführen und
zu verwenden, und wird im Kontext einer Patentanmeldung und ihren
Anforderungen zur Verfügung gestellt.
Verschiedenartige Modifikationen der bevorzugten Ausführungsform
und der allgemeinen hierin beschriebenen Prinzipien und Eigenschaften
werden denjenigen mit Kenntnissen der Technik leicht offensichtlich
werden. Daher ist für
die vorliegende Erfindung nicht beabsichtigt, dass sie auf die gezeigten Ausführungsformen
beschränkt
ist, sondern dem breitesten Schutzumfang entspricht, der mit den
hierin beschriebenen Prinzipien und Eigenschaften übereinstimmt.
-
Die
vorliegende Erfindung wird hauptsächlich in Bezug auf bestimmte
Systeme und Verfahren beschrieben, die in bestimmten Implementierungen zur
Verfügung
gestellt werden. Eine Person mit gewöhnlichen Kenntnissen in der
Technik wird jedoch leicht erkennen, dass diese Verfahrens und Systeme in
anderen Implementierungen wirksam arbeiten werden. Zum Beispiel
können
die in Zusammenhang mit der vorliegenden Erfindung verwendbaren
Implementierungen von Computersystemen eine Anzahl von unterschiedlichen
Formen annehmen.
-
Um
die Eigenschaften der vorliegenden Erfindung genauer zu beschreiben,
sei auf die 1 bis 5 in Verbindung
mit der nachfolgenden Beschreibung verwiesen.
-
1 ist
ein Blockdiagramm, das ein Computersystem 10 veranschaulicht,
das zur Verwendung mit der vorliegenden Erfindung geeignet ist. Das
System 10 ist ein Computersystem, das eine beliebige einer
Vielfalt von Formen aufweisen kann. Das Computersystem 10 kann
zum Beispiel ein Mainframecomputer, ein Desktopcomputer, eine Workstation,
ein tragbarer Computer, oder eine elektronische Anordnung sein.
Das System 10 beinhaltet eine Sicherheitsarchitektur wie
zum Beispiel ein Trusted Platform Module (TPM) der Trusted Computing
Group (TCG), oder ein anderes Sicherheitssystem, das zur Verwendung
mit der vorliegenden Erfindung zum Sichern von Daten und Funktionen
des Systems 10 vor unautorisiertem Zugriff und Manipulation
geeignet ist. Das System 10 beinhaltet einen Eingabeteil 12,
einen Sicherheitsteil 14, und einen Standardteil 16.
-
Der
Eingabeteil 12 kann eine Vielfalt von unterschiedlichen
Eingabeanordnungen beinhalten, die es einem Anwender ermöglichen,
Daten in das System 10 einzugeben und die Identität des Anwenders für das System
zu authentifizieren. Zum Beispiel können in der gezeigten Ausführungsform
ein Kartenleser 20, eine Tastatur 22, und/oder
ein Fingerabdrucklesegerät 24 in
dem System 10 beinhaltet sein. Der Kartenleser 20 kann
magnetische oder Prozessorkarten lesen, wie zum Beispiel Smartcards,
die sichere Information beinhalten können, die den Anwender identifiziert,
und verknüpfte
Information für
den Anwender speichern können.
Die Tastatur 22 kann verwendet werden, um ein Passwort
einzugeben, das den Anwender identifiziert. Das Fingerabdrucklesegerät 24 kann
das eindeutige Fingerabdruckmuster eines Anwenders lesen, um den
Anwender zu identifizieren. Diese Eingabeanordnungen können daher für Anwenderautorisierungszwecke
verwendet werden, und für
autorisierte Anwender den Zugriff auf gesicherte Daten des Systems 10 ermöglichen.
Hierin ist beabsichtigt, dass sich der Begriff 'Anwender' auf einen beliebigen Anwender des Systems 10 bezieht, ob
autorisiert oder nicht. Der Begriff 'Inhaber' in dem TPM Standard wird verwendet,
um auf einen Anwender Bezug zu nehmen, der eine bestimmte TPM Architektur
geladen hat und die höchste
Berechtigung aufweist, um auf diese Architektur zuzugreifen.
-
Der
Sicherheitsteil 14 des Systems 10 wird verwendet,
um die Daten und Anwendungen des Systems nur für den Zugriff und die Verwendung durch
autorisierte Anwender zu sichern. In der beschriebenen Ausführungsform
ist ein in dem System enthaltener programmierbarer Sicherheitsprozessor 26 Sicherheitsfunktionen
zugeordnet (und kann in einigen Ausführungsformen auch für andere
Funktionen verwendet werden). Der Prozessor kann verschiedenartige
Anwendungen ausführen,
die in den Prozessor geladen sind. Der Prozessor 26 implementiert üblicherweise
eine 'Sicherheitsarchitektur', die sich, wie hierin
verwendet, auf die bestimmten Sicherheitseigenschaften und Funktionen
bezieht (zum Beispiel API Funktionen, Algorithmen), die für das System 10 implementiert
sind, so wie es durch eine in den Prozessor 26 geladene
Sicherheitsarchitekturanwendung bestimmt wird. Eine Instanz einer
Sicherheitsarchitektur, die normalerweise in Hardware implementiert
ist, kann in der vorliegenden Erfindung in Software emuliert werden,
um zu ermöglichen, dass
unterschiedliche Architekturen in dem Prozessor 26 unterstützt werden.
-
Der
Prozessor 26 kann zum Beispiel eine TPM Sicherheitsarchitektur
implementieren, die ein gut bekannter Standard zum Sichern von Computerdaten
ist. Eine TPM Architektur wird auf einem sicheren, dedizierten Chipsatz
implementiert, der durch den Hersteller in eine Hauptplatine oder
eine andere Schaltung eines Computers eingebunden ist. In anderen
Ausführungsformen
kann die TPM Architektur in einem anderen vorhandenen Chip des Computersystems 10 implementiert
werden. Andere Ausführungsformen
können
einen anderen Standard oder eine proprietäre Sicherheitsarchitektur verwenden, um
Sicherheitseigenschaften zu implementieren. Die üblichen Sicherheitsfunktionen
eines TPM beinhalten eine Erzeugung von Zufallszahlen, sichere Erzeugung
von kryptographischen Schlüsseln,
sichere Speicherung, Fähigkeiten
die Anwendung der Schlüssel
zu beschränken
(wie zum Beispiel zum Signieren und Verifizieren), und/oder Verschlüsselung und
Entschlüsselung.
In einer Ausführungsform
kann der Prozessor 26 zum Beispiel ein H8 Prozessor sein,
auf dem ein Java Card Open Platform (JCOP) Betriebssystem der IBM
Corporation abläuft,
ein gut bekanntes Betriebssystem, das viele Sicherheitseigenschaften
implementiert, die zur Verwendung mit der vorliegenden Erfindung
geeignet sind. Eine TPM Anwendung kann in den Prozessor 26 geladen
und durch das JCOP Betriebssystem implementiert werden, um die Sicherheitsarchitektur
zu ermöglichen.
-
Der
Prozessor 26 kann üblicherweise
mit unterschiedlichen Sicherheitsarchitekturen geladen werden, wobei
jede Architektur unterschiedliche Sicherheitsalgorithmen und mit
dieser Architektur verknüpfte
Schlüssel
verwenden kann, und kann eine unterschiedliche Reihe von Sicherheitsfunktionen
implementieren. In der vorliegenden Erfindung können unterschiedliche Sicherheitsarchitekturen
von dem Teil 16 des Systems 10 (oder einer anderen
sicheren Quelle) in den Prozessor 26 geladen werden.
-
Zusätzlich dazu
können
andere Anwendungen, die keine Sicherheitsarchitektur implementieren, in
den Prozessor 26 geladen werden und auf diesem ablaufen.
Diese Anwendungen können
an eine bestimmte Sicherheitsarchitektur 'gebunden' sein, Bezug nehmend auf die Abhängigkeit
einer Anwendung von einer bestimmten Sicherheitsarchitektur, die
in den Prozessor 26 geladen ist. Derartige Eigenschaften
werden weiter unten detaillierter beschrieben.
-
In
dem Sicherheitsteil 14 ist ein nichtflüchtiger Speicher 28 enthalten
und ist mit dem Prozessor 26 verbunden. Der Speicher 28 kann
zum Beispiel Flash-Speicher, Electrically Erasable Programmable Read
Only Memory (EEPROM), oder eine andere Art von Speicher sein. In
der beschriebenen Ausführungsform
ist der Speicher 28 ein sicherer Speicher, der nicht auf
einfache Weise betrügerisch
manipuliert werden kann, um seine Dateninhalte zu lesen. In einigen
Ausführungsformen
kann der nichtflüchtige Speicher 28 auf
dem gleichen integrierten Schaltungschip oder in der Baugruppe des
Prozessors 26 enthalten sein.
-
Bei
der vorliegenden Erfindung speichert der nichtflüchtige Speicher 28 eine
sichere Tabelle von Hashwerten und Endorsement Keys die verwendet werden,
um zu bestimmen, ob Anwendungen die in den Prozessor 26 geladen
werden sollen autorisiert sind, und ermöglicht flexible und sichere
Unterstützung
von verschiedenartigen unterschiedlichen Sicherheitsarchitekturen
und Programmen im Prozessor 26, wie in größerem Detail
weiter unten beschrieben wird. Der Speicher 28 speichert
auch andere sichere Daten sachbezogen, um die Sicherheitsfunktionen
der Sicherheitsarchitektur des Prozessors auszuführen. Der nichtflüchtige Speicher
kann in einigen Ausführungsformen
auch verwendet werden, um eine in den Prozessor 26 geladene
Sicherheitsarchitektur und/oder geladene Anwendung zu speichern.
-
In
anderen Ausführungsformen
kann zusätzlicher
Speicher (nicht gezeigt) mit dem Prozessor 26 verbunden
werden, um eine geladene Sicherheitsarchitektur, geladene Anwendungen,
oder andere Programme zu speichern. Zum Beispiel können gesichertes
Random Access Memory (RAM), zusätzlicher
nichtflüchtiger
Speicher usw. verbunden werden.
-
Ein
Standardteil 16 des Systems 10 ist mit dem Prozessor 26 verbunden
und beinhaltet verbleibende Standardkomponenten des Systems. Derartige
Komponenten beinhalten üblicherweise
einen Mikroprozessor oder eine CPU 30, Speicher 32 (Random
Access Memory (RAM), Read-only Memory (ROM), usw.), Ausgabeanordnungen 34 (Videomonitor,
Lautsprecher, Drucker usw.) und andere übliche Computerkomponenten.
Der Mikroprozessor kann eine Schnittstelle zu Speicheranordnungen
und anderen Komponenten bilden, um den Betrieb des Systems 10 zu
steuern, einschließend
das Durchführen von
Datenmanipulation, Berechnung, Eingabe/Ausgabe und anderen üblichen
Funktionen.
-
Eine
Speicheranordnung 36, wie zum Beispiel ein Festplattenlaufwerk,
ist üblicherweise
ebenfalls enthalten um Daten und Anwendungen zu speichern, die durch
das System 10 verwendet werden. Bei der vorliegenden Erfindung
können
Anwendungen, wie zum Beispiel Sicherheitsanwendungen, die in den
Prozessor 26 geladen werden sollen, wie auch andere durch
den Prozessor 26 und den Mikroprozessor 30 verwendete
Anwendungen, unter Verwendung von Verschlüsselung und anderen Sicherheitsverfahren
sicher in der Speicheranordnung 36 gespeichert werden.
In anderen Ausführungsformen kann
eine andere Speicheranordnung 36 an Stelle des Festplattenlaufwerks
verwendet werden, wie zum Beispiel Speicher, Magnetband, optischer
Speicher (CD-ROM, DVD-ROM) usw. Bei der beschriebenen Ausführungsform
ist der Standardteil 16 des Systems 10 mit dem
Prozessor 26 verbunden, und der Eingabeteil 12 ist
mit dem Prozessor 26 verbunden, so dass Eingaben, die an
den Teil 16 zur Verfügung gestellt
werden, zuerst durch den Sicherheitsteil 14 auf Authentizität und Sicherheit
untersucht werden können.
-
2 ist
eine schematische Veranschaulichung einer sicheren Tabelle 50 der
vorliegenden Erfindung, die in dem nichtflüchtigen Speicher 28 gespeichert
werden kann, der mit dem Sicherheitsprozessor 26 verbunden
ist. Die Tabelle 50 kann Information speichern, die sich
darauf bezieht zu ermöglichen,
dass zertifizierte Anwendungen in dem Prozessor 26 ausgeführt werden,
und zu bestimmen, welche Art von Sicherheitsarchitektur geladen
und ausgeführt
werden soll.
-
In
der beschriebenen Ausführungsform
beinhaltet die Tabelle 50 eine Anzahl von Endorsement Key
(EK) Werten 52. Bei dem TPM Standard wird ein Endorsement
Key (der zum Beispiel zum Zeitpunkt der Herstellung zufällig für eine TPM
Architektur erzeugt wurde) zum Beispiel verwendet, um die Ausführung von
sicheren Transaktionen zu ermöglichen und
eine authentische TPM Architektur zu erkennen, die in den Prozessor 26 geladen
werden soll. Der Endorsement Key ist ein Schlüsselpaar, das einen öffentlichen
Schlüssel
und einen privaten Schlüssel
beinhaltet; der private Teil des Endorsement Key kann in der Tabelle 50 gespeichert
werden. Alternativ dazu können
die öffentlichen
und privaten Teile der Endorsement Keys in Tabelle 50 gespeichert
werden. Obwohl in dem TPM Standard der Begriff 'Endorsement Key' zur Verwendung mit TPM Architekturen
verwendet wird, wird dieser Begriff hierin zur gleichen Verwendung
in einem beliebigen Standard allgemeingültig verwendet und kann mit
jeder Anwendung verwendet werden.
-
Nach
dem Erzeugen eines Endorsement Key für eine Anwendung veröffentlicht
der Anbieter (oder eine andere autorisierte Einheit) ein Zertifikat, das
den öffentlichen
Teil des Endorsement Key beinhaltet und stellt Information zur Verfügung, die
die Anwendung identifiziert, die zu dem Endorsement Key zugehörig ist.
Diese Information kann zum Beispiel ein Hashwert der Anwendung sein,
oder kann die Anwendung auf andere Weise beschreiben (zum Beispiel
für eine
Sicherheitsarchitekturanwendung die verwendeten Algorithmen angeben
usw.). Der Anbieter signiert das Zertifikat unter Verwendung eines
privaten Teils eines Anbieterschlüssels, was ermöglicht,
dass ein öffentlicher
Teil dieses Anbieterschlüssels
verwendet werden kann, um zu verifizieren, dass die Zertifikatinformation
authentisch und von diesem Anbieter ist. Auf diese Weise kann das Zertifikat
zum Beispiel bezeugen, dass eine identifizierte TPM Architektur
eine bestimmte Art von TPM Architektur ist, die eine verknüpfte Reihe
von Verschlüsselungs-
und Entschlüsselungsalgorithmen verwendet.
-
Bei
der vorliegenden Erfindung werden vielfache Werte der Endorsement
Keys 52 für
vielfache Endorsement Keys in der Tabelle 50 gespeichert
um zu ermöglichen,
dass jede von unterschiedlichen Sicherheitsarchitekturen oder Anwendungen
in den Prozessor 26 geladen werden kann. Jeder Endorsement
Key in der Tabelle 50 ist eindeutig und ist zur Verwendung
mit einer bestimmten Anwendung zugeordnet, wie in einem veröffentlichten
Zertifikat spezifiziert.
-
Die
Tabelle 50 speichert auch Hashwerte 54, wobei
jeder Hashwert zu einem entsprechenden gespeicherten Endorsement
Key Wert 52 zugehörig
ist. Ein Hashwert 54 ist das Ergebnis einer kryptographischen
Hashfunktion, die auf eine bestimmte Anwendung und/oder Daten angewendet
wird und die gehashte Anwendung/Daten eindeutig identifiziert. Die Zuordnung
des Hashwerts zu einem Wert 52 eines Endorsement Key durch
den Anbieter zeigt an, dass die Anwendung/Daten zur Verwendung in
diesem Prozessor 26 autorisiert und zertifiziert worden
sind. Der/die bestimmte(n) Hashalgorithmus/Hashalgorithmen die verwendet
werden, um die Hashwerte in Spalte 54 zu erzeugen, sind
zugehörig
zu und abhängig
von der bestimmten Sicherheitsarchitektur, die verwendet wird.
-
Der
Anbieter des Prozessors 26 der vorliegenden Erfindung kann
die Werte der Endorsement Keys zum Beispiel in der Tabelle 50 speichern,
von denen jeder zu einer Zertifikatautorisierung gehört und eine
andere Art von Sicherheitsarchitektur zur Verwendung in dem Prozessor 26 spezifiziert.
Der Anbieter kann auch die Hashwerte der Anwendungen speichern,
die der Hersteller zur Verwendung mit den gespeicherten Endorsement
Keys in diesem Prozessor 26 autorisiert und zertifiziert
hat. Zusätzlich
dazu kann ein Anwender in der Lage sein, neue Hashwerte in der Tabelle 50 zu
speichern, und/oder neue Endorsement Keys, die zu einem durch den
Anwender signierten Zertifikat zugehörig sind. Diese Eigenschaften
werden weiter unten in größerem Detail beschrieben.
-
3 ist
ein Flussdiagramm, das ein Verfahren 70 der vorliegenden
Erfindung zum Vorbereiten und Bereitstellen eines Sicherheitsprozessors 26 für Anwender
veranschaulicht. Das Verfahren 70 dient zur Verwendung
durch einen Hersteller des Prozessors 26, oder eine Autorisierungseinheit,
die zertifizierte Endorsement Keys in einem Prozessor 26 zur Verfügung stellen
kann; alle derartigen Hersteller oder Autorisierungseinheiten werden
hierin im Allgemeinen als 'Anbieter' des Sicherheitsprozessors 26 bezeichnet.
-
Das
Verfahren beginnt bei 72, und in Schritt 74 empfängt der
Anbieter Hashwerte von den Anwendern (zum Beispiel Kunden), die
den Prozessor 26 verwenden wollen. Jeder Hashwert repräsentiert die
bestimmte Anwendung (wie zum Beispiel eine Sicherheitsarchitekturanwendung ähnlich einer
TPM Anwendung), und jegliche verknüpfte Daten, von denen erwünscht ist,
dass sie in den Sicherheitsprozessor 26 geladen werden
und auf diesem ablaufen. Jeder Hashwert wurde unter Verwendung eines
Hashalgorithmus erzielt, der für
den Anbieter unbekannt bleiben kann; daher kann die Implementierung
der Anwendung und der durch die Anwendung verwendeten Algorithmen
für den
Anbieter unbekannt bleiben, wie es von einigen Anwendern erwünscht ist.
Alternativ dazu kann der Anbieter Hashalgorithmen auf Anwendungen
anwenden, von denen gewünscht wird,
dass sie durch den Prozessor 26 unterstützt werden, um einige oder
alle der Hashwerte zu erzielen.
-
In
Schritt 76 verknüpft
der Anbieter jeden unterschiedlichen Hashwert mit einem Endorsement Key,
der für
diesen Hashwert in dem Prozessor 26 erzeugt worden ist
(zum Beispiel kann eine Zufallszahl durch den Prozessor 26 signiert
werden, um das Endorsement Key-Paar zu bilden), und der Endorsement
Key und der Hashwert werden gespeichert. Der öffentliche Teil des Endorsement
Key kann in einem Zertifikat zur Verfügung gestellt werden, das durch eine
zertifizierende Instanz veröffentlicht
wird. Für
jeden unterschiedlichen Hashwert werden ein Wert des Endorsement
Key und der verknüpfte
Hashwert in der sicheren Tabelle 50 des sicheren nichtflüchtigen Speichers 28 gespeichert,
der mit dem Prozessor 26 verbunden ist. Der gespeicherte
Wert des Endorsement Key kann der private Teil des Endorsement Key sein
(oder alternativ dazu der öffentlicher
Teil oder beide Teile). Jeder Endorsement Key kann für jeden Hashwert
unterschiedlich sein; oder der gleiche Endorsement Key kann in alternativen
Ausführungsformen
für vielfache
Hashwerteinträge
verwendet werden. Jeder gespeicherte Hashwert identifiziert eine andere
durch den Anwender erwünschte
Anwendung; wenn zwei oder mehr Anwender in Schritt 74 die
gleichen Hashwerte zur Verfügung
gestellt haben, dann müssen
für diese
Anwendung nur ein Hashwert und ein Endorsement Key in der Tabelle 50 gespeichert
werden. In einigen Ausführungsformen können unterschiedliche
Instanzen der gleichen Anwendung unterschiedliche Hashwerte zur
Verfügung stellen
(zum Beispiel wenn sie unterschiedliche Einstellungen, Daten usw.
aufweisen), so dass jede unterschiedliche Instanz einen entsprechenden
anderen Eintrag für
den Hashwert und den Endorsement Key, gespeichert in der sicheren
Tabelle 50, aufweisen kann. Anwendungen, die an eine bestimmte
Sicherheitsarchitektur gebunden sind, können in der Sicherheitstabelle 50 als
diese Beziehung aufweisend gekennzeichnet werden durch eines von
verschiedenartigen Verfahren, zum Beispiel weist die gebunden Anwendung
einen Hashwert auf, der einen Link oder Pointer zu der erforderlichen
Sicherheitsarchitekturanwendung, einen anderen Statusindikator oder
Pointer usw. beinhaltet. In einigen Ausführungsformen kann in jedem
Eintrag der sicheren Tabelle 50 ein zusätzlicher Identifikator gespeichert
werden der verwendet wird, um wie weiter unten beschrieben den Eintrag
mit einer angeforderten Anwendung abzugleichen.
-
In
Schritt 78 stellt der Anbieter den Prozessor 26 den
Anwendern zur Verfügung
(oder bewirkt, dass der Prozessor 26 den Anwendern zur
Verfügung
gestellt wird). Der Prozessor 26 kann in einem Computersystem 10 enthalten
sein, das den Anwendern zur Verfügung
gestellt wird. Der Anwender kann dann die erwünschte(n) Anwendung(en) in
den Prozessor 26 laden, wie unter Bezugnahme auf 4 in
größerem Detail
beschrieben wird. Das Verfahren ist dann bei 80 beendet.
-
In
einigen Ausführungsformen
kann der Anbieter auch zusätzliche
zertifizierte Werte der Endorsement Keys in der Tabelle 50 speichern,
die noch nicht zu irgendwelchen Hashwerten zugehörig sind. Dies ermöglicht es
einem Anwender seinen eigenen Hashwert zu laden und ihn mit einem
gespeicherten, zertifizierten Endorsement Key zu verknüpfen. In
einigen Ausführungsformen
kann es der Anbieter einem Anwender auch ermöglichen, seine eigenen Endorsement
Keys und Hashwerte in der Tabelle 50 zu speichern.
-
Bei
dem Verfahren nach 3 ermöglicht es die vorliegende Erfindung
einem Anbieter einen Sicherheitsprozessor in einem Computersystem
zur Verfügung
zu stellen, ohne dass der Anbieter die bestimmte Implementierung
und/oder die bestimmten Algorithmen einer Anwendung kennt, die in
den Prozessor 26 geladen werden sollen. Es ist nicht notwendig,
dass ein Anwender irgendeine der tatsächlichen Anwendungen oder Algorithmen
herausgegeben hat, von denen der Anwender wünscht, dass sie in der erwünschten
Sicherheitsarchitektur implementiert werden oder mit dieser verwendet
werden, und er muss nur die Hashwerte an den Anbieter geben. Dies
ermöglicht
es dem Anbieter zur Verwendung mit dem Prozessor 26 autorisierte
Anwendungen zu authentisieren, indem jeder Anwendung Hashwerte mit einem
Endorsement Key zugeordnet werden.
-
Die
vorliegende Erfindung ermöglicht
es dem Anbieter die Herstellungskosten des Bereitstellens eines
unterschiedlichen Prozessors 26 für jede Art von Sicherheitsarchitektur
einzusparen, die von den Kunden des Anbieters gewünscht wird.
Der Anbieter kann einen Hashwert und Endorsement Key für vielfache
unterschiedliche Arten von Sicherheitsarchitekturen (oder andere
Anwendungen) speichern, wobei der Anwender seine erwünschte Architektur
auswählt,
indem er eine Sicherheitsarchitekturanwendung beim Laden hasht,
die dann mit dem passenden Hashwert und Endorsement Key in der Tabelle 50 übereinstimmt.
Der Anbieter kann auf diese Weise identische Prozessoren 26 für alle Anwender
zur Verfügung
stellen und den Anwender die erwünschte
Sicherheitsarchitektur oder Anwendung auswählen lassen und auf diese Weise
die spezifischen Algorithmen, die zu dieser Anwendung zugehörig sind.
-
4 ist
ein Flussdiagramm, das ein Verfahren 100 der vorliegenden
Erfindung zum Laden einer Anwendung in einen Sicherheitsprozessor 26 veranschaulicht.
Das Verfahren 100 (und das Verfahren 200 weiter
unten) kann durch Verwenden einer Anwendung, die auf dem Betriebssystem
des Prozessors 26 abläuft,
durch den Prozessor 26 implementiert werden. Alternativ
dazu können
die Verfahren 100 und/oder 200 unter Verwendung
von Hardware (Schaltungen, Logiksteuerelemente usw.) oder einer Kombination
aus Hardware und Software implementiert werden. Programmanweisungen,
die das Gesamte oder einen Teil der vorliegenden Erfindung implementieren,
können
auf einem computerlesbaren Medium gespeichert werden und von diesem
abrufbar sein, wie zum Beispiel auf einem elektronischen, magnetischen,
optischen, elektromagnetischen, Infrarot-, oder Halbleitermedium,
und Beispiele von diesen beinhalten Speicher (Random Access (RAM), ein
Read-only Memory (ROM) usw.), ein Festplattenlaufwerk, eine optische
Disk (CD-ROM, DVD-ROM usw.).
-
Das
Verfahren beginnt bei 102, und in Schritt 104 empfängt der Prozessor 26 eine
Aufforderung eine Anwendung in den Prozessor 26 zu laden.
Diese Anwendung ist üblicherweise
sicher in einer Speicheranordnung gespeichert, wie zum Beispiel
dem Festplattenlaufwerk 36 oder einer anderen Anordnung,
zum Beispiel in verschlüsselter
Form, oder kann von einer anderen Quelle zur Verfügung gestellt werden,
wie zum Beispiel einem verbundenen Computernetzwerk. Diese Aufforderung
kann eine Identifikation der Anwendung beinhalten, von der erwünscht ist,
dass sie geladen wird, und die Größe der Anwendung. Ein vorhandener
Hashwert der verschlüsselten
Anwendung kann zum Beispiel als eine Signatur in der Anwendungsdatei
zur Verfügung
gestellt werden, und/oder ein anderer Identifikator oder eine Referenz
auf eine bestimmte Datei, die die Anwendung enthält, können verwendet werden. Die Aufforderung
kann zum Beispiel darin bestehen, eine TPM Anwendung in den Prozessor 26 zu
laden, der gegenwärtig
keine geladene TPM Architektur aufweist. In einem anderen Beispiel
kann die Aufforderung sein, eine TPM Anwendung in den Prozessor 26 zu
laden, um eine Architektur zu installieren, die eine andere gegenwärtig geladene
TPM Architektur ersetzt. In noch einem weiteren Beispiel kann die
Aufforderung sein, eine nicht-TPM Anwendung in den Prozessor 26 zu
laden. Die Aufforderung kann zum Beispiel empfangen werden, wenn
eine Aufforderung zum Laden einer Anwendung an die Speicheranordnung 36 (oder
eine andere Quelle) gesendet wird, die die Anwendung zur Verfügung stellt,
die geladen werden soll; diese Aufforderung zum Laden kann durch einen
Filtertreiber des Betriebssystems des Prozessors 26 abgefangen
werden. Zum Beispiel kann die in der Aufforderung zum Laden spezifizierte
Anwendung identifiziert werden durch Vergleichen von dieser mit
Anwendungen, die in der sicheren Tabelle 50 aufgeführt sind,
zum Beispiel kann ein Hashwert in der verschlüsselten Anwendungsdatei mit
den Hashwerten in der Tabelle 50 verglichen werden, oder
ein anderer Anwendungsidentifikator kann mit in der Tabelle 50 gespeicherten
Identifikatoren verglichen werden.
-
Im
nächsten
Schritt 106 überprüft das Verfahren,
ob das angeforderte Laden erfordert, dass der Prozessor eine gegenwärtig geladene
Anwendung auslagert (in einigen Fällen einschließlich einer geladenen
Sicherheitsarchitektur). Üblicherweise kann
es, wenn die angeforderte Anwendung zum Ablaufen mehr Speicher erfordert
als gegenwärtig
für den
Prozessor 26 verfügbar
ist, notwendig sein, dass eine gegenwärtig geladene Anwendung aus
dem Prozessor 26 entfernt wird. Oder, wenn die angeforderte
Anwendung eine Sicherheitsarchitekturanwendung ist und gegenwärtig eine
andere Sicherheitsarchitektur geladen ist, die geladene Sicherheitsarchitektur
entfernt werden müsste,
da in einigen Ausführungsformen
zu einem Zeitpunkt nur eine Sicherheitsarchitektur auf dem Prozessor 26 ablaufen kann.
In anderen alternativen Ausführungsformen kann
der Prozessor 26 in der Lage sein zwei oder mehr Sicherheitsarchitekturen
gleichzeitig auszuführen,
wobei in diesem Fall eine andere gegenwärtig geladene Sicherheitsarchitektur
nicht entfernt werden müsste
(außer
der Anwender hat dies angefordert), wenn ausreichend Speicher verfügbar ist.
In anderen Ausführungsformen
kann die geladene Sicherheitsarchitektur als zur 'Einmalverwendung' ausgewiesen sein,
und/oder der Prozessor 26 kann eine 'Sicherung' oder ein in Hardware oder Software
gesetztes Flag aufweisen das darauf hinweist, dass es nicht erlaubt
ist, dass eine gegenwärtig
geladene Sicherheitsarchitektur aus dem Prozessor 26 entfernt wird.
Die Überprüfung nach
Schritt 106 kann zum Beispiel eine Überprüfung beinhalten, ob die angeforderte
Anwendung an eine bestimmte Sicherheitsarchitektur gebunden ist
(unter dieser laufen muss), die gegenwärtig nicht geladen ist (zum
Beispiel durch Überprüfung auf
derartige gebundene Links in der Tabelle 50). Einige Anwendungen
können
nicht an eine Sicherheitsarchitektur gebunden sein und können parallel
zu diesen ausgeführt
werden.
-
Wenn
eine gegenwärtig
geladene Anwendung aus dem Prozessor entfernt werden soll, dann fährt das
Verfahren mit einem optionalen Schritt 108 fort, in dem
der Anwender identifiziert wird. Der Anwender kann zum Beispiel
durch das Betriebssystem des Prozessors 26 aufgefordert
werden, sich auf eine gesicherte, authentisierte Weise zu identifizieren,
wie zum Beispiel durch Einsetzen einer Smartcard in den Smartcardleser 20,
wobei die Smartcard Daten speichert, die den Anwender identifizieren;
oder durch Berühren
des Fingerabdrucklesegeräts 24 mit
einem Finger; oder durch Eingeben eines Passworts unter Verwendung
der Tastatur 22; oder durch andere sichere Identifikationsverfahren
(oder durch eine Kombination aus diesen). Das angeforderte Laden
kann von der Identität
des Anwenders abhängig
sein; zum Beispiel könnte
es nur dem Inhaber eines TPM Prozessors 26 erlaubt werden,
TPM Architekturen auszulagern oder eine Anwendung zu laden. Wenn
in Schritt 108 ein entsprechender Anwender nicht identifiziert
worden ist, wird das Verfahren 100 abgebrochen. In anderen
Ausführungsformen
muss kein Schritt zur Identifikation eines Anwenders durchgeführt werden.
-
Das
Verfahren fährt
mit Schritt 110 fort, in dem die gegenwärtig geladene Anwendung und
jegliche verknüpfte
Daten gemäß einem
bekannten kryptographischen Hashalgorithmus gehasht werden, und
der Hashwert wird zusammen mit dem verknüpften Endorsement Key dieser
Anwendung in der sicheren Tabelle gespeichert. Jeglicher zuvor in
der Tabelle gespeicherter Hashwert für diese Anwendung kann mit
dem gegenwärtigen
Hashwert überschrieben
werden. Der gegenwärtige
Hashwert kann ein anderer sein als der zuvor gespeicherte Wert,
auf Grund von Veränderungen
die an der Anwendung oder ihren Daten durchgeführt worden sein können, seit
der vorherige Hashwert gespeichert wurde. Es kann zum Beispiel zugehörig zu einer
TPM Anwendung neue Passwörter
geben und/oder einen neuen Storage Root Key (SRK), die sich von
Passwörtern oder
einem SRK unterscheiden, die in einem vorherigen Hashwert dieser
Anwendung enthalten waren. Daher kann die vorliegende Erfindung
verhindern, dass unautorisierte ältere
Versionen der Anwendung in den Prozessor 26 geladen und
in diesem ausgeführt
werden, da nur die aktuellste Version mit dem in der Tabelle 50 gespeicherten
Hashwert übereinstimmen
wird, wenn eine Anwendung geladen wird (siehe Schritte 116 bis 118 weiter
unten). In einigen Ausführungsformen
kann der ursprüngliche
Hashwert für eine
Anwendung in der sicheren Tabelle 50 beibehalten werden;
dies kann es zum Beispiel möglich
machen, dass die ursprüngliche
Form einer Anwendung, wenn autorisiert, erneut installiert wird.
-
Im
nächsten
Schritt 112 verschlüsselt
das Verfahren die geladene Anwendung unter Verwendung des Verschlüsselungsalgorithmus/der
Verschlüsselungsalgorithmen,
die zu der Sicherheitsarchitektur der Anwendung zugehörig sind.
Es kann zum Beispiel ein symmetrischer Algorithmus zur Verschlüsselung
verwendet werden. Darüber
hinaus kann der von dieser Anwendung erzeugte und in Tabelle 50 gespeicherte
Hashwert in Schritt 110 auch in die verschlüsselte Datei
dieser Anwendung gespeichert werden, um ihn zum Beispiel zu identifizieren und
zu verwenden, wenn die Anwendung geladen wird. Die verschlüsselte Anwendung
wird in einer Speicheranordnung 36 des Systems 10,
wie zum Beispiel einem Festplattenlaufwerk, gespeichert. Das Verfahren
fährt dann
mit Schritt 114 fort.
-
Wenn
in Schritt 106 festgestellt wird, dass keine gegenwärtig geladene
Anwendung aus dem Prozessor 106 entfernt werden muss, um
die angeforderte Anwendung zu laden, dann fährt das Verfahren mit Schritt 114 fort.
Schritt 114 kann auch ausgeführt werden, nachdem oder während eine
gegenwärtig
geladene Anwendung entfernt worden ist und wie oben für die Schritte 108 bis 112 beschrieben
im Speicher archiviert wurde. In Schritt 114, wird die ausgewählte Anwendung
in den Speicher des Prozessors 26 geladen (wie zum Beispiel
den nichtflüchtigen
Speicher 28 oder einen anderen verfügbaren Speicher), wird unter
Verwendung entsprechender zu der Sicherheitsarchitektur der angeforderten
Anwendung zugehöriger
Algorithmen entschlüsselt,
und wird unter Verwendung einer entsprechenden kryptographischen
Hashfunktion gehasht, die zu der Sicherheitsarchitektur der angeforderten
Anwendung zugehörig
ist (die Anwendung und daher ihre Entschlüsselungs- und Hashalgorithmen
können
zum Beispiel wie oben beschrieben über ein Nachschlagen in der
sicheren Tabelle 50 identifiziert werden).
-
Der
Hash wird durchgeführt
unter Verwendung von einem Hashalgorithmus oder Hashalgorithmen,
um einen Hashwert zu erzielen, der diese bestimmte Anwendung und
Daten identifiziert. Ein für den
TPM Standard verwendeter Hashalgorithmus ist zum Beispiel SHA-1,
SHA-256, oder ein ähnlicher
Algorithmus, und ein verwendeter Verschlüsselungs-/Entschlüsselungsalgorithmus
ist der Advanced Encryption Standard (AES).
-
Die
in Schritt 114 bearbeitete 'ausgewählte Anwendung' kann die angeforderte
Anwendung nach Schritt 104 sein, oder in Abhängigkeit
von der Situation eine andere Anwendung. Die ausgewählte Anwendung
kann zum Beispiel die in Schritt 104 angeforderte Anwendung
sein, die geladen werden soll. Oder, wenn die angeforderte Anwendung
keine Sicherheitsarchitekturanwendung ist die eine gegenwärtig nicht
geladene Sicherheitsarchitektur erfordert, kann die ausgewählte Anwendung
die erforderliche Sicherheitsarchitekturanwendung sein (wie zum Beispiel
ein TPM Anwendung), dann ist die ausgewählte Anwendung in einer späteren Iteration
gemäß Schritt 114 die
angeforderte Anwendung.
-
Im
nächsten
Schritt 116 vergleicht das Verfahren den erzielten Hashwert
der ausgewählten
Anwendung mit einem oder mehreren gespeicherten Hashwerten in der
sicheren Tabelle 50. In Schritt 118 überprüft das Verfahren,
ob eine Übereinstimmung zwischen
dem erzielten Hashwert und einem Hashwert in der Tabelle gefunden
worden ist. Wenn keine Übereinstimmung
gefunden wurde, nachdem mit allen Hashwerten in der Tabelle 50 verglichen
wurde, fährt
das Verfahren mit Schritt 120 fort, um die ausgewählte Anwendung
abzulehnen (zum Beispiel die Anwendung nicht zu aktivieren und sie
aus dem Speicher zu entfernen), und das Verfahren ist bei 128 beendet.
-
Wenn
eine Übereinstimmung
für den
Hashwert gefunden wird, dann ist von der ausgewählten Anwendung bekannt, dass
sie zu einem zertifizierten Endorsement Key zugehörig ist,
der in der Tabelle gespeichert ist, und die Anwendung daher zertifiziert ist
und autorisiert ist, in diesen bestimmten Prozessor 26 geladen
und verwendet zu werden. Wie oben beschrieben, ist jeder Endorsement
Key zu einem öffentlichen
Zertifikat zugehörig,
das die Anwendung beschreibt/identifiziert (wie zum Beispiel durch
Bereitstellen des Hashwerts für
die Anwendung); auf diese Weise sind die Anwendungsspezifikationen (wie
zum Beispiel die verwendeten Algorithmen, sofern nicht geheim) von
dem Endorsement Key in der Tabelle 50 bekannt.
-
Wenn
die ausgewählte
Anwendung zum Beispiel vorher entfernt worden ist, wie oben in den Schritten 108 bis 112 beschrieben,
ist ein aktualisierter Hashwert der gegenwärtigen Version der Anwendung
in der Tabelle 50 gespeichert worden. Daher wird die entfernte
Anwendung mit dem Hashwert in der Tabelle 50 übereinstimmen
wenn sie erneut geladen wird, und ältere Versionen der Anwendung
werden nicht übereinstimmen,
wodurch eine zusätzliche Sicherheit
zur Verfügung
gestellt wird.
-
In
Schritt 122 wird die ausgewählte Anwendung in dem Prozessor 26 aktiviert,
wodurch der Anwendung ermöglicht
wird, dass sie ausgeführt
wird und durch einen Anwender verwendet wird. Wenn die ausgewählte Anwendung
eine Sicherheitsarchitekturanwendung ist, wie zum Beispiel eine
TPM Anwendung, wird die neue Architektur aktiviert. Der Endorsement
Key (EK), der zu dem übereinstimmenden Hash
zugehörig
ist, wie in der Tabelle 50 gespeichert, wird zum Beispiel
als der aktive Endorsement Key gesetzt oder in den Prozessor 26 geladen.
Darüber hinaus
können
jegliche andere Daten erzeugt oder in den Speicher des Prozessors 26 geladen
werden, die für
die Initialisierung der Anwendung benötigt werden; wenn zum Beispiel
eine TPM Architektur aktiviert wird, kann ein Storage Root Key (SRK)
erzeugt und in dem sicheren nichtflüchtigen Speicher 28 gespeichert
werden, und der Anwender kann auf die TPM Architektur zugreifen
und ihr 'Inhaber' werden.
-
In
Schritt 124 überprüft das Verfahren,
ob die angeforderte Anwendung immer noch geladen werden muss. Dies
kann zum Beispiel eintreten, wenn die gemäß Schritt 104 angeforderte
Anwendung keine Sicherheitsarchitekturanwendung ist, die eine Sicherheitsarchitektur
unterschiedlich zu der gegenwärtig
geladenen Architektur erfordert (daran gebunden ist); in einem solchen
Fall ist die erste in Schritt 122 aktivierte Anwendung
die erforderliche Sicherheitsarchitekturanwendung. Daher kehrt das
Verfahren, wenn die angeforderte Anwendung bei Schritt 124 immer
noch geladen werden muss, zu den Schritten 114 bis 122 zurück, um die
angeforderte Anwendung zu hashen, zu bestimmen, ob sie autorisiert
ist geladen zu werden, und die Anwendung zu aktivieren. Wenn die
angeforderte Anwendung bei Schritt 124 geladen und aktiviert
worden ist, dann ist das Verfahren bei 128 beendet.
-
Es
ist zu beachten, dass viele der Schritte nach 4 nicht
in der gezeigten Reihenfolge ausgeführt werden müssen. Das
Verfahren kann zum Beispiel in den Schritten 116 bis 118 zuerst überprüfen, ob
der Hashwert der ausgewählten
oder angeforderten Anwendung mit einem Hashwert in der Tabelle 50 übereinstimmt,
bevor in den Schritten 108 bis 112 irgendwelche
gegenwärtig
geladenen Anwendungen aus dem Prozessor entfernt werden, wenn ausreichend
Speicher verfügbar
ist, um die Schritte in dieser Reihenfolge durchzuführen.
-
5 ist
ein Flussdiagramm, das ein Verfahren 200 der vorliegenden
Erfindung zum Installieren einer neuen Anwendung zur Verwendung
durch den Prozessor 26 veranschaulicht. Das Verfahren beginnt
bei 202, und in Schritt 204 empfängt der
Prozessor 26 eine Aufforderung, eine neue Anwendung zu
installieren. Dies kann auftreten, wenn ein Anwender wünscht, eine
Anwendung in einer Speicheranordnung (wie zum Beispiel dem Festplattenlaufwerk 36)
zu installieren, und die Anwendung in den Prozessor 26 geladen
und durch diesen ausgeführt
werden kann. Die zu installierende Anwendung kann eine nicht-Sicherheitsarchitekturanwendung
sein, die die Vorteile der Sicherheitseigenschaften des Prozessors 26 und
seines Betriebssystems nutzen kann. Anwendungen zum Implementieren
von oder zum Bilden einer Schnittstelle mit einer Subscriber Identity Module
(SIM) Karte für
Mobiltelephone oder sichere ID Karten, oder Anwendungen zum Implementieren von
Fingerabdruckübereinstimmungsprüfungen von Anwendern,
können
zum Beispiel auf Wunsch zur Verwendung durch den Prozessor 26 und
sein in Bezug auf Sicherheit, erweitertes Betriebssystem und seinen
in der Sicherheit verbesserten Speicher installiert werden. Die
Aufforderung kann zum Beispiel festgestellt werden, wenn eine Schreibaufforderung einer
Anwendung zu der Speicheranordnung 36 gesendet wird, die
die neue Anwendung speichern wird; diese Schreibaufforderung kann
durch einen Filtertreiber des Betriebssystems des Prozessors 26 abgefangen
werden.
-
In
der Aufforderung eine Anwendung zu installieren, kann eine Identifikationsinformation
und die Größe der Anwendung
zur Verfügung
gestellt werden. In einem optionalen Schritt 206 kann der
Anwender identifiziert werden, ähnlich
wie in Schritt 108 wie oben unter Bezugnahme auf 4 beschrieben, um
festzustellen, ob der Anwender autorisiert ist, neue Anwendungen
für den
Prozessor 26 zu installieren.
-
In
einigen Ausführungsformen
wird Schritt 208 durchgeführt, in dem das Verfahren überprüft, ob die
gegenwärtig
geladene Sicherheitsarchitektur zu entfernen ist und durch eine
andere Sicherheitsarchitektur zu ersetzen ist oder nicht. Diese Überprüfung kann
zum Beispiel durch Überprüfen der
durch einen Filtertreiber des Prozessors abgefangenen Schreibaufforderung
durchgeführt
werden, und kann zum Beispiel das Vergleichen der Anwendung mit
der sicheren Tabelle 50 für eine Übereinstimmung mit an die gegenwärtig geladene
Sicherheitsarchitektur gebundenen Anwendungen beinhalten, ähnlich wie oben
für 4 beschrieben.
Einige gebundene Anwendungen können
zum Beispiel Schlüssel
verwenden oder andere Eigenschaften, die spezifisch sind für eine bestimmte
Sicherheitsarchitektur, und können
daher nur unter dieser Architektur installiert werden. Wenn die
neue Anwendung an eine andere Sicherheitsarchitektur gebunden ist
als die gegenwärtig
geladene, sollte die gegenwärtig
geladene Sicherheitsarchitektur daher entfernt werden und die erforderliche
Sicherheitsarchitektur geladen werden. Schritt 208 kann
in diesen Ausführungsformen
ausgelassen werden, wodurch nicht ermöglicht wird, dass eine Sicherheitsarchitektur
entfernt oder verändert
wird. In anderen alternativen Ausführungsformen, die es ermöglichen,
dass zwei oder mehr Sicherheitsarchitekturen gleichzeitig in dem
Prozessor 26 ablaufen, kann es sein, dass weder die Überprüfung nach
Schritt 208 durchgeführt
noch eine Sicherheitsarchitektur entfernt werden muss.
-
Wenn
die geladene Sicherheitsarchitektur entfernt werden soll (die neue
Anwendung ist zum Beispiel nicht an die gegenwärtig geladene Sicherheitsarchitektur
gebunden), fährt
das Verfahren mit Schritt 210 fort, in dem die geladene
Sicherheitsarchitekturanwendung gehasht, verschlüsselte und zu einer Speicheranordnung 36 entfernt
wird. Dieser Schritt ist ähnlich
den Schritten 108 bis 112 für 4 wie oben
beschrieben. In Schritt 212 wird die erforderliche Sicherheitsarchitektur
(an die die neue Anwendung gebunden ist) geladen, entschlüsselt, mit den
Hashwerten in der Tabelle verglichen, und aktiviert. Dieser Schritt
ist ähnlich
den Schritten 114 bis 124 nach 4 wie
oben beschrieben. Sobald die neue Architektur aktiviert ist, fährt das
Verfahren mit Schritt 214 fort. Wie in 4wird,
wenn der Hashwert der neuen Sicherheitsarchitektur nicht mit einem Hashwert
in der Tabelle 50 übereinstimmt,
die neue Architekturanwendung nicht geladen und das Verfahren beendet.
-
Wenn
in Schritt 208 die geladene Sicherheitsarchitektur nicht
entfernt werden soll (die neue Anwendung ist zum Beispiel an die
gegenwärtig
geladene Sicherheitsarchitektur gebunden), oder die erforderliche
Sicherheitsarchitektur in den Schritten 210 bis 212 geladen
worden ist, dann fährt
das Verfahren mit Schritt 214 fort, in dem die neue Anwendung
in den Speicher des Prozessors 26 geladen wird (zum Beispiel
aus einer beliebigen Quelle, die mit dem Computersystem 10 verbunden
ist, zum Beispiel einer Disk, einem optischen Speichermedium, einem
Netzwerk usw.). Wenn die neue Anwendung verschlüsselt wurde, wird sie unter
Verwendung von Algorithmen entschlüsselt, die zu der Sicherheitsarchitektur
zugehörig
sind (oder zugehörig
zu der an die Anwendung gebundene Sicherheitsarchitektur), und die
neue Anwendung wird unter Verwendung eines Hashalgorithmus gehasht,
der zu dieser Sicherheitsarchitektur zugehörig ist (zum Beispiel Algorithmen
identifiziert über
einen Identifikator oder vorhandenen Hashwert, der in der Anwendungsdatei
gespeichert ist, ähnlich
zu 4). Der daraus resultierende Hashwert wird in
dem Prozessor 26 angemeldet durch Speichern des resultierenden
Hashwerts in der sicheren Tabelle 50 zugehörig zu einem
Endorsement Key. Dieser Endorsement Key kann in der Tabelle bereits
als ein nicht zugeordneter Schlüssel
vorhanden sein, der durch den Anbieter des Prozessors zur Verfügung gestellt
und gespeichert wurde um zu Anwendungen zugehörig zu sein, die durch den
Anwender neu installiert werden. Oder, der Endorsement Key kann
durch das Betriebssystem des Prozessors 26 neu erzeugt
werden, durch Erzeugen eines privaten Teils des Endorsement Key
und Speichern von diesem in Tabelle 50, und Erzeugen eines öffentlichen
Teils des Schlüssels,
der veröffentlicht wird
oder dem Anwender zur Verfügung
gestellt wird. Ein Betriebssystem wie zum Beispiel JCOP kann seinen
eigenen Endorsement Key aufweisen, wobei das Betriebssystem unter
Verwendung des privaten Teils seines eigenen Endorsement Key den
neuen Endorsement Key für
die Anwendung erzeugen und den öffentlichen
Teil des Schlüssels
signieren kann. Alternativ dazu kann der Anwender den öffentlichen
Teil des neuen Endorsement Key signieren und ein Zertifikat zur
Verfügung
stellen.
-
Nach
der Registrierung der neuen Anwendung kann in einigen Ausführungsformen
die gesamte sichere Tabelle 50 unter Verwendung des Endorsement
Key des Betriebssystems des Prozessors 26 erneut signiert
werden, wodurch kenntlich gemacht wird, dass die Tabelle sicher
ist.
-
In
Schritt 216 wird die neue Anwendung unter Verwendung zugehöriger Verschlüsselungsalgorithmen
verschlüsselt
und installiert oder in dem Speicher des Prozessors 26 oder
der Speicheranordnung 36 des Systems 10 gespeichert.
Das Verfahren endet dann bei 218.
-
Obwohl
die vorliegende Erfindung in Übereinstimmung
mit den gezeigten Ausführungsformen beschrieben
worden ist, wird eine Person mit gewöhnlichen Kenntnissen in der
Technik leicht erkennen, dass es Veränderungen an den Ausführungsformen
geben könnte
und dass diese Veränderungen innerhalb
des Geists und des Schutzumfanges der vorliegenden Erfindung liegen
würden.
Dementsprechend können
durch eine Person mit gewöhnlichen Kenntnissen
in der Technik viele Modifikationen durchgeführt werden, ohne von Geist
und Schutzumfang der beigefügten
Ansprüche
abzuweichen.
-
Zusammenfassung
-
Vorrichtung und Verfahren zum Freigeben
von Anwendungen auf einem Sicherheitsprozessor
-
Ein
Verfahren und eine Vorrichtung zum Freigeben von Anwendungen auf
Sicherheitsprozessoren von Computersystemen. Das Computersystem (10)
beinhaltet eine Sicherheitsarchitektur, wie zum Beispiel ein Trusted
Platform Module (TPM). Das System (10) beinhaltet einen
Eingabeteil (12), einen Sicherheitsteil (14) und
einen Standardteil (16). Der Eingabeteil (12)
beinhaltet eine Vielfalt von unterschiedlichen Eingabeanordnungen,
wie zum Beispiel einen Kartenleser (20), eine Tastatur
(22) oder ein Fingerabdrucklesegerät (24). Der programmierbare Sicherheitsprozessor
(26) in dem Sicherheitsteil (14) implementiert
eine TPM Sicherheitsarchitektur. Ein nichtflüchtiger Speicher (28)
ist mit dem Prozessor (26) verbunden. Der nichtflüchtige Speicher
(28) speichert eine sichere Tabelle von Hashwerten und Endorsement
Keys die verwendet werden um zu bestimmen, ob Anwendungen, die in
den Prozessor (26) geladen werden sollen, autorisiert sind.
Jeder gespeicherte Wert ist von einer anderen Anwendung abgeleitet,
die durch den verknüpften
Endorsement Key zertifiziert ist, in dem Prozessor ausgeführt zu werden.