-
Die offenbarte Erfindung bezieht sich im Allgemeinen auf das Gebiet der Datensicherheit, und bezieht sich im Besonderen auf das Gebiet der Verbesserung der Sicherheitsmerkmale von Komponenten einer vertrauenswürdigen Plattform.
-
E-Commerce, e-Government und e-Business wachsen alle im Gleichschritt mit einer Zunahme der Internetkriminalität. Viele hochtechnologische Sicherheitstechnologien sind eingerichtet worden, um der wachsenden Bedrohung durch Internetkriminalität zu begegnen, aber es entwickelt sich ein Kompromiss bei der Verwendung von Sicherheitstechnologien zum Schutz von Daten und zur Authentifikation von Identitäten und Transaktionen. IT Eigentümer von Verfahren, die diese Identitäten und Transaktionen umfassen, wünschen sich, eine bestimmte Authentifikation und Verschlüsselungsalgorithmen zu verwenden, die auf ihre Risikoprofile zugeschnitten sind. Verbunden mit diesen Algorithmen wollen sie spezifische Implementierungen von Komponenten einer vertrauenswürdigen Plattform (Trusted Platform Modules – TPMs) mit festgelegten Merkmalen verwenden, um den erforderlichen Sicherheitsgrad ihrer durchgehenden Anordnungen und operativen Komponenten zu unterstützen. TPMs sind Mikrochips, ausgestaltet, um bestimmte grundlegende sicherheitsbedingte Funktionen an die Software zur Verfügung zu stellen, die vom TPM Gebrauch macht. Als eine auf Hardware basierende Sicherheitsanordnung ist ein TPM viel sicherer als ein softwarebasiertes Sicherheitsmerkmal, aber diese erhöhte Sicherheit kommt zu einem hohen Preis und normalerweise mit mehr Verwaltungsaufwand. 1 zeigt ein vereinfachtes Blockdiagramm eines grundlegenden TPM 100. Die Hardwarekomponenten des TPM 100 umfassen: eine Hardwareengine 120, eine Hashengine 140, einen Zufallszahlgenerator 160 und einen internen hardwaregeschützten Speicher 180. Gegenwärtig erfordern TPMs bestimmte kryptographische Algorithmen, wie zum Beispiel RSA SHA-1 und HMAC (Hash function based Message Authentication Code). RSA wurde von R. L. Rivest, A. Shamir und L. M. Adleman entwickelt. SHA-1 ist ein Standard für einen sicheren Hashalgorithmus.
-
Trusted Computing GroupTM „Trusted Platform Modules Strengthen User and Platform Authenticity” (Januar 2005) offenbart TPMs als Special-Purpose Integrierte Schaltungen, die in einer Vielzahl von Plattformen eingesetzt werden können, um Benutzer- und Maschinenauthentifizierung zu stärken, was wesentlich ist, um unerlaubten Zugriff auf vertrauliche Informationen, auch durch kompromittierte Netzwerke, zu unterbinden. Durch TPMs können Schlüssel, die für kryptographische Algorithmen benötigt werden, in hardwaregeschützten Speicherbereichen gespeichert werden, im Gegensatz zu ansonsten lediglich durch softwarebasierte Verschlüsselung geschützten Speicherbereichen.
-
In 2 wird dort ein TPM Softwarestack gezeigt. Auf der untersten Ebene befindet sich das TPM Hardwarebauelement 210, das ein Chip ist, der sich normalerweise auf einem Motherboard befindet. Auf das TPM wird über eine TPM Bauelementtreiberbibliothek 220 zugegriffen. Anwendungen verwenden das TPM durch Standardschnittstellen oder durch direktes Durchführen der Kommunikation mit dem ISS 230. Das ISS 230 ist der TCPA (Trusted Computing Platform Alliance) Software Stack, der die unterstützende Funktionalität für das TPM zur Verfügung stellt. Die nächst höhere Ebene ist der Kryptographiedienstanbieter 240, wie zum Beispiel das CAPI von Microsoft®. Auf der höchsten Ebene befinden sich die Anwendungen 250, die das TPM 210 verwenden.
-
Die Druckschrift
US 2006/0005015 A1 offenbart ein Verfahren zur Aufrechterhaltung der Vertrauenswürdigkeit bzw. Integrität von sensibler Kommunikation von einem Ursprungsprogramm zu seinem Zielprogramm innerhalb einer Plattform, zwischen Plattformen, oder dem gleichen Programm das von Zeit zu Zeit aufgerufen wird. Dazu wird ein Mechanismus offenbart um das der Verschlüsselung zu Grunde liegende Datenmaterial in einem versteckten Prozessormodus zu sichern. Dabei werden Ring 0 Programme verwendet um die Kommunikation mit den Plattformkomponenten zu sichern und Authentifizierungsprozesse fälschungssicher zu machen. Außerdem kann durch den offenbarten Mechanismus der innere Zustand eines Programms zu jeder Aufrufzeit verifiziert werden.
-
Die Druckschrift
US 2005/0138393 A1 offenbart ein Verfahren bei dem gesicherte Hardware benutzt wird, um den Zugriff auf kryptographische Schlüssel zu kontrollieren. Zugriff zu den kryptographischen Schlüsseln wird nur gewährt, wenn ein entsprechender Wert in einem Special Purpose Register der Hardware gefunden wird. Das Special Purpose Register ist in Verbindung mit der Hardware fähig den Systemstatus zu verifizieren. Der Wert, der in dem Register gespeichert wird, ist eine Funktion einer Benutzeridentifikationsmetrik, wie in etwa einem Passwort, biometrischen Daten, oder andere Sicherheitsmerkmale, die zur Verifikation der Benutzeridentität benutzt werden können. Die Benutzeridentifikationsmetrik kann dabei genutzt werden, um eine Tabelle zu indizieren, die speziellen Werten der Metrik einen Sicherheitswert zuweist, der benutzt werden kann um den Inhalt des Registers zu beeinflussen. Zugang zu den kryptographischen Schlüsseln wird nur gewährt, wenn das Special Purpose Register einen entsprechenden Wert trägt.
-
Der typische Ansatz, verschiedene Algorithmen und TPMs zu implementieren, wie er in allein stehenden oder integrierten Hardwarebauelementen ausgeliefert wird, lässt die Sicherheitskosten ansteigen. Was erforderlich ist, ist ein flexibler, dennoch sicherer Ansatz, der einen sicher programmierbaren Mikrocontroller verwendet, um verschiedene auswählbare Authentifikations- und Verschlüsselungsalgorithmen zu unterstützen, und diese auch mit der Emulation von unterschiedlichen Instanzen der TPM Hardware zu verwenden. Wenn Ausführungscode in einen programmierbaren Mikrocontroller für verschiedene Operationen aus einem Cachespeicher geladen und entladen wird, kann die Integrität einer bestimmten Sicherheitsoperation nicht jedes Mal validiert werden, wenn diese verwendet wird. Massenverschlüsselung (oder Blockverschlüsselung) ist eine Lösung für dieses Problem, aber sie wird als zu langsam erachtet.
-
Deshalb gibt es einen Bedarf an einer Sicherheitsanordnung, die die Mängel nach dem Stand der Technik überwindet.
-
Kurz gesagt umfasst ein Verfahren zur Authentifikation von verdächtigem Code entsprechend einer Ausführungsform der Erfindung die Schritte oder Aktionen: Empfangen des verdächtigen Codes für eine erste Instanz einer Komponente einer vertrauenswürdigen Plattform; Laden des verdächtigen Codes in eine funktionsfähig mit einem Prozessor verknüpfte Bauteilkomponente einer vertrauenswürdigen Plattform, wobei der verdächtige Code außerhalb eines geschützten Speicherbereichs innerhalb der Bauteilkomponente der vertrauenswürdigen Plattform geladen wird; Abrufen eines öffentlichen Schlüssels zur Validierung aus einer ersten Tabelle und Speichern von diesem in einem indizierten Register in der Bauteilkomponente der vertrauenswürdigen Plattform, wobei der öffentliche Schlüssel zur Validierung durch den verdächtigen Code indiziert wird; und Abrufen eines Hashalgorithmus aus einer Tabelle, wobei der Hashalgorithmus durch den verdächtigen Code indiziert wird. Das Verfahren fährt weiterhin fort durch: Ausführen des mit dem verdächtigen Code verknüpften Hashalgorithmus, um einen ersten Hashwert abzuleiten; Entschlüsseln, unter Verwendung des öffentlichen Schlüssels zur Validierung, eines zweiten in der Tabelle gespeicherten verschlüsselten Hashwerts, um einen zweiten Hashwert abzuleiten, wobei der zweite Hashwert durch den verdächtigen Code indiziert wird; Vergleichen des zweiten entschlüsselten Hashwerts mit dem ersten Hashwert, um zu bestimmen, ob sie gleich sind; und beim Feststellen, dass die ersten und zweiten Hashwerte gleich sind, Laden des verdächtigen Codes in den geschützten Bereich des Prozessors zur Ausführung durch den Prozessor.
-
Das Verfahren umfasst weiterhin die Schritte oder Aktionen: Abrufen eines privaten Schlüssels zur Bestätigung der Vertrauenswürdigkeit; Speichern des privaten Schlüssels zur Bestätigung der Vertrauenswürdigkeit in einem Register innerhalb der Bauteilkomponente der vertrauenswürdigen Plattform; und das Ausführen des verdächtigen Codes aus dem Ausführungsraum.
-
Eine Anordnung zur Validierung des Codes entsprechend einer Ausführungsform der vorliegenden Erfindung umfasst die folgenden Bauelemente für das Ausführen der obigen Verfahrensschritte: einen Prozessor einschließlich eines Ausführungsraums; eine Bauteilkomponente einer vertrauenswürdigen Plattform, die Komponentenregister einer vertrauenswürdigen Plattform umfasst; ein Schlüsselpaar zur Bestätigung der Vertrauenswürdigkeit für jede Instanz von Komponenten einer vertrauenswürdigen Plattform, wobei der Schlüssel zur Bestätigung der Vertrauenswürdigkeit einen privaten Schlüssel zur Bestätigung der Vertrauenswürdigkeit und einen öffentlichen Schlüssels zur Bestätigung der Vertrauenswürdigkeit umfasst; öffentliche Schlüssel zur Validierung und verschlüsselte Hashwerte für jede Instanz der Komponenten einer vertrauenswürdigen Plattform; einen gesicherten Speicherbereich einschließlich mindestens einer Tabelle zur Abspeicherung von Validierungssoftware. Die Anordnung umfasst weiterhin: eine Eingabe-/Ausgabe-Schnittstelle, einen Datenspeicher der Anordnung und ein Massenspeichergerät.
-
Entsprechend einer weiteren Ausführungsform der vorliegenden Erfindung umfasst ein computerlesbares Medium Software zum Ausführen der obigen Verfahrensschritte.
-
Um die vorhergehenden und anderen beispielhaften Zwecke, Aspekte und Vorteile zu beschreiben, verwenden wir die folgende detaillierte Beschreibung einer beispielhaften Ausführungsform der Erfindung mit Bezug auf die Figuren, in denen:
-
1 ein vereinfachtes Blockdiagramm einer typischen Komponente einer vertrauenswürdigen Plattform entsprechend dem Stand der Technik ist.
-
2 ein vereinfachtes Blockdiagramm eines Softwarestacks einer Komponente einer vertrauenswürdigen Plattform entsprechend dem Stand der Technik ist.
-
3 ein Blockdiagramm eines Informationsverarbeitungssystems auf höchster Ebene ist, das gestaltet ist, um entsprechend einer Ausführungsform der Erfindung zu arbeiten.
-
4 ein Ablaufdiagramm eines Verfahrens entsprechend einer Ausführungsform der Erfindung ist.
-
5 ein vereinfachtes Diagramm einer Tabelle von Schlüsseln entsprechend einer Ausführungsform der vorliegenden Erfindung ist.
-
6 ein vereinfachtes Diagramm einer weiteren Tabelle von Schlüsseln entsprechend einer Ausführungsform der vorliegenden Erfindung ist.
-
7 ein vereinfachtes Blockdiagramm einer weiteren Konfiguration des Informationsverarbeitungssystems gemäß 3 entsprechend einer weiteren Ausführungsform der vorliegenden Erfindung ist.
-
8 ein vereinfachtes Blockdiagramm einer Tabelle von Schlüsseln ist, die sowohl die Schlüssel zur Bestätigung der Vertrauenswürdigkeit als auch den öffentlichen Schlüssel zur Validierung entsprechend einer weiteren Ausführungsform der vorliegenden Erfindung in einer Tabelle zeigt.
-
9 ein vereinfachtes Blockdiagramm einer noch weiteren Konfiguration des Informationsverarbeitungssystems gemäß 3 entsprechend einer weiteren Ausführungsform der vorliegenden Erfindung ist.
-
10 ein vereinfachtes Diagramm einer Tabelle von Schlüsseln mit dem Emulationscode entsprechend einer weiteren Ausführungsform der vorliegenden Erfindung ist, wobei sich der öffentlichen Schlüssel zur Validierung und die Schlüssel zur Bestätigung der Vertrauenswürdigkeit zusammen in einer Tabelle befinden.
-
Während die Erfindung, so wie sie beansprucht wird, in alternative Ausführungsformen abgeändert werden kann, werden bestimmte Ausführungsformen von dieser auf dem Weg des Beispiels in den Figuren gezeigt und werden hierin im Detail beschrieben. Es sollte jedoch verstanden werden, dass die Figuren und die detaillierte Beschreibung zu diesen nicht beabsichtigt sind, um die Erfindung auf die bestimmte offenbarte Form zu beschränken, sondern im Gegenteil dazu es die Absicht ist, alle Abänderungen, Äquivalente und Alternativen abzudecken, die innerhalb des Schutzumfangs der vorliegenden Erfindung fallen.
-
Wir beschreiben ein flexibles, aber sicheres Verfahren dafür, einen programmierbaren Mikrocontroller zu verwenden, um verschiedene auswählbare Authentifikations- und Verschlüsselungsalgorithmen zu unterstützen und diese auch mit der Emulation von unterschiedlichen Instanzen der TPM Hardware zu verwenden. Dies wird durch die neuartige Verwendung von Tabellen aus Schlüsseln erreicht, die durch den Emulationscode indiziert werden.
-
Was folgt ist ein Glossar von Bezeichnungen (aus ”TCG Glossary of Technical Terms”) das auf jede Beschreibung bezüglich TPMs anwendbar ist:
Schlüssel zur Bestätigung der Vertrauenswürdigkeit (Endorsement Key) – EK; ein RSA Schlüsselpaar bestehend aus einem öffentlicher (EKpu) und einem privaten (EKpr) Schlüssel (Public Key und Private Key). Der EK wird verwendet, um ein authentisches TPM zu erkennen. Der EK wird verwendet, um eine in den Privacy CA und den DAA Protokollen an das TPM geschickte Information zu entschlüsseln, und während der Installation eines Eigentümers im TPM.
-
Endorsement Key Credential – ein Berechtigungsnachweis, der das EKpu enthält, das bestätigt, dass der Halter des EKprs ein TPM entsprechend der TCG Spezifikation ist. Die meisten TPMs sind in Hardware ausgeführt, dies ist aber nicht obligatorisch.
-
Nichtflüchtig (Shielded Location) – ein geschützter Speicherplatz (Shielded Location), für dessen Inhalt garantiert wird, dass dieser zwischen Verwendungen durch Protected Capabilities erhalten bleibt.
-
Platform – eine Plattform ist eine Sammlung von Ressourcen, die einen Dienst zur Verfügung stellt.
-
Protected Capabilities – der Satz von Befehlen mit exklusiver Erlaubnis dafür, auf Shielded Locations zuzugreifen.
-
Root Of Trust (Bauelement) – ein Bauelement, das sich immer auf die erwartete Art verhalten muss, weil sein nicht konformes Verhalten nicht wahrgenommen werden kann. Der vollständige Satz von Roots Of Trust ist mindestens der Minimalsatz von Funktionen, um eine Beschreibung der Plattformmerkmale zu ermöglichen, die die Vertrauenswürdigkeit der Plattform beeinflussen.
-
RSA – ein kryptographischer Algorithmus, der die Nachnamensinitialen seiner Entwickler, R. L. Rivest, A. Shamir und L. M. Adleman trägt.
-
RTS – ”Root of Trust for Storage” – eine EDV-Maschine, die dazu fähig ist, eine genaue Zusammenfassung von Werten von Integritätsextrakten und die Abfolge von Extrakten aufrecht zu erhalten.
-
RTR – ”Root of Trust for Reporting” – eine EDV-Maschine, die dazu fähig ist, zuverlässig die Information auszuweisen, die von der RTS gehalten wird.
-
SHA-1 – ein Standard für sichere Hashalgorithmen.
-
Shielded Location – eine Stelle (Datenspeicher, Register, usw.), an der es sicher ist, mit sensitiven Daten zu arbeiten; Datenorte, auf die nur durch ”Protected Capabilities” zugegriffen werden kann.
-
Vertrauenswürdigkeit ist die Erwartung, dass sich ein Bauelement für einen bestimmten Zweck auf eine bestimmte Weise verhält.
-
Eine Trusted Computing Platform ist eine Berechnungsplattform, der vertraut werden kann, dass sie ihre Eigenschaften berichtet.
-
TPM – Trusted Platform Module (Komponente einer vertrauenswürdigen Plattform) – eine Implementierung der in der TCG Trusted Platform Module Specification definierten Funktionen; der Satz von Roots Of Trust mit Shielded Locations und Protected Capabilities umfasst normalerweise nur die RTS und die RTR.
-
TSS – Trusted Software Stack (vertrauenswürdiger Softwarestack) – Softwaredienste, die die Verwendung des TPM erleichtern, aber nicht den Schutz erfordern, der für den TPM geleistet wird.
-
Die Anordnung.
-
Sich jetzt im spezifischen Detail auf die Zeichnungen und besonders die 3 beziehend wird ein vereinfachtes Blockdiagramm eines Informationsverarbeitungssystems 300 veranschaulicht, das eingerichtet ist, um entsprechend einer Ausführungsform der Erfindung bedient zu werden.
-
Gemäß 3 umfasst die Informationshandhabungsanordnung 300: einen Prozessor 302, einen TPM Chip 309, einen Anordnungsdatenspeicher 304 und ein Ein-/Ausgabe-(I/O)Subsystem 306. Ein Speichermedium wie ein CDROM 305 ist funktionsfähig mit dem I/O Subsystem 306 verknüpft. Der Prozessor 302 und Bauelemente des Anordnungsdatenspeichers 304 können physisch verknüpft oder funktionsfähig zusammengeschaltet sein. Der TPM Chip 309 kann gesondert vom Prozessor 302 angeordnet sein, oder er kann Teil des Prozessors 302 sein, der ein Kernchipset umfasst. Der Prozessor 302 kann ein Mikroprozessor sein. Der Prozessor 302 umfasst eine Mikroprozessor-CPU 350 und einen Ausführungsraum 322. Der Ausführungsraum 322 ist ein sicherer Bereich, in dem die Daten unabhängig von ihrer Ausführungsform gegen Störung und Neugier geschützt sind. Er wird als eine Shielded Location betrachtet. Nur verifizierter Code wird in den Ausführungsraum 322 geladen.
-
Sicherer Datenspeicher 312 befindet sich im Allgemeinen innerhalb des TPM Chips 309. Der sichere Datenspeicher 312 enthält auch eingebettete Anweisungen in der Form von Mikrocode. Systemspeicher 308 ist ebenfalls außerhalb der Shielded Location verfügbar. TPM Emulationscode 314 kann innerhalb des Mikroprozessors 302 oder im Systemspeicher 308 abgespeichert werden, wie in 3 dargestellt.
-
Der TPM Chip 309 ist entsprechend einer Ausführungsform der vorliegenden Erfindung ein generischer TPM Chip, der unter Verwendung des TPM Emulationscodes 314 unterschiedliche TPMs emulieren kann. Der Emulationscode 314 ermöglicht dem Mikroprozessor 302, jede beliebige Komponente einer vertrauenswürdigen Plattform zu simulieren, und ermöglicht es auf diese Weise, dass ein relativ preisgünstiger generischer TPM Chip mit einem breiten Bereich von Plattformen arbeitet. Dies ist wichtig, weil TPMs sich von Organisation zu Organisation unterscheiden können, und es gibt viele unterschiedliche verfügbare Formate. Zum Beispiel verwendet die Regierung der Vereinigten Staaten eine Art von TPM, und die chinesische Regierung verwendet eine andere Art. TPM Emulationscode ist in der Industrie bekannt. Die Herausforderung besteht darin, den Emulationscode 314 zu schützen, so dass ein nicht vertrauenswürdiger Code nie ausgeführt wird. Dieses Verfahren wird in der Beschreibung bezüglich 4 weiter unten erläutert.
-
Gemäß 3 ist eine Tabelle 332 aus Hashwerten innerhalb des gesicherten Speicherbereichs 312 abgespeichert und wirkt als Nachschlagetabelle. Dieser gesicherte Speicherbereich 312 befindet sich, wie in 3 gezeigt, im Allgemeinen im TPM Chip 309; er könnte jedoch an anderer Stelle abgespeichert werden, etwa im Prozessor 302. Die Werte in der Tabelle 332 werden, wie in 5 gezeigt, vom TPM Code 314 indiziert. Außerdem hält eine weitere Tabelle 342 alle für jedes TPM erzeugte Schlüssel zur Bestätigung der Vertrauenswürdigkeit. Eine zweite Tabelle, die Tabelle 342, wird auch als innerhalb des TPM Chips 309 abgespeichert gezeigt, sie kann aber, um Platz zu sparen, außerhalb des sicheren Bereichs 312 abgespeichert werden, wie in 3 gezeigt. Es ist anzumerken, dass die zwei Tabellen 332 und 342 in 3 veranschaulicht sind. Dies ist lediglich deshalb so, um eine Ausführungsform zu veranschaulichen; die tatsächliche Konfiguration und die Anzahl von Tabellen können jedoch in Abhängigkeit von der abgespeicherten Information, der Hardwarekonfiguration und den individuellen Platzbeschränkungen der Anordnung entsprechend der vorliegenden Erfindung variieren.
-
Entweder zum Herstellungs- oder Installationszeitpunkt wird für jede Instanz des Ausführungscodes ein Hashwert für ein TPM erzeugt. Normalerweise wird dies vom Informationstechnologie-(IT)Eigentümer ausgeführt. Für jede Plattform gibt es eine bekannte Liste von unterstützten TPMs. Jedes der unterstützten TPMs weist seinen eigenen zugehörigen Hashwert auf. Jeder Hashwert (Hash) ist mit dem Schlüssel zur Bestätigung der Vertrauenswürdigkeit (EK) für dieses bestimmte TPM verknüpft. Ein Schlüssel zur Bestätigung der Vertrauenswürdigkeit ist ein kryptographisches Schlüsselpaar, das den RSA Algorithmus verwendet. Zusätzlich zu diesem Schlüsselpaar wird auch ein öffentlicher Schlüssel erzeugt, der die Signatur enthält, mit der der TPM Emulationscode signiert wurde. Dieser öffentliche Schlüssel, der öffentlichen Schlüssel zur Validierung (PK), ist in Tabelle 332 gespeichert. Nur die Hashtabelle 332 muss, um Platz zu sparen, in sicherem Speicher gespeichert werden. Gleichzeitig wird auch ein Hashwert für jeden der Verschlüsselungsalgorithmen für das TPM erzeugt. Der tatsächliche TPM Emulationscode 314 und der Verschlüsselungsalgorithmencode und der entsprechende öffentliche Schlüssel des Verschlüsselungscodes können unverschlüsselt im Systemspeicher 308 abgespeichert werden, um Platz innerhalb des Mikroprozessors 302 zu sparen. Der private Schlüssel des EK (EKprs) kann jedoch nicht im Systemspeicher 308 gespeichert werden.
-
Gemäß 5 speichert die Tabelle 332 auch die signierten Hashwerte (Hashes) ab, die mit dem EK und den öffentlichen Schlüsseln zur Validierung (PK) verknüpft sind. Die Tabelle 332 speichert außerdem den Hashalgorithmus (Alg) für jeden TPM Code ab. Alle diese Werte werden durch den TPM Code indiziert. In dieser Ausführungsform enthält die erste Spalte der Tabelle 332 im Besonderen einen eindeutigen Kennzeichner, der mit dem TPM Code verknüpft ist. Andere Ausführungsformen können die Schlüssel ein wenig unterschiedlich indizieren, bleiben jedoch innerhalb des Schutzumfangs der vorliegenden Erfindung.
-
In 7 wird eine alternative Konfiguration für das Informationsverarbeitungssystem 300 gemäß 3 gezeigt. Die Anordnung 700 zeigt nur eine Tabelle 352, die sich in sicherem Speicher 312 innerhalb des TPM Chips 309 befindet. Diese Tabelle 352 wird in 8 gezeigt. Es ist zu beachten, dass im Gegensatz zu der Tabelle gemäß 5, die Tabelle 352 die öffentlichen Schlüssel zur Validierung (PK), die Hashalgorithmen, die Hashwerte und die Schlüssel zur Bestätigung der Vertrauenswürdigkeit enthält.
-
Eine weitere Ausführungsform innerhalb des Schutzumfangs der vorliegenden Erfindung wird im Blockdiagramm gemäß 9 gezeigt. Das Informationsverarbeitungssystem 900 zeigt wieder nur einer Tabelle 362, die sich in sicherem Speicher 312 befindet. Diese Tabelle 362 hält jedoch im Gegensatz zu Tabelle 352 gemäß 7 die TPM Codes, wie auch die Schlüssel zur Bestätigung der Vertrauenswürdigkeit, die öffentlichen Schlüssel zur Validierung und die Hashinformation. Diese Tabelle 362 wird in 10 gezeigt. Es ist anzumerken, dass der Emulationscode 314 Firmware der Anordnung ist. Andere Konfigurationen von Tabellen und Schlüsseln sind innerhalb des Geists und des Schutzumfangs der vorliegenden Erfindung möglich.
-
Das Verfahren.
-
Das Codevalidierungverfahren validiert entsprechend einer Ausführungsform der vorliegenden Erfindung TPM Emulationscode, ohne seinen eigenen internen Code offen zu legen. Dies ist so, weil die Authentifikation durch die Verwendung von Tabellen und ihre indizierten Werte vor dem Laden des Emulationscodes in den Mikrocontrollerausführungsraum 322 ausgeführt wird. Es wird angenommen, dass hardwareresidente Sicherheitsmaßnahmen die zuverlässigsten sind, und es wird deshalb bevorzugt, so viel Information wie möglich in dem Mikroprozessor und/oder dem Chipset fest zu verdrahten. Platzbedarf wird dabei ein Thema; deshalb muss eine Entscheidung darüber getroffen werden, welche der Informationen fest verdrahtet wird, und was an anderer Stelle abgespeichert werden kann. Die Flexibilität dieses Codevalidierungsverfahrens ermöglicht, dass der TPM Emulationscode 314 auch entweder innerhalb des Mikroprozessors 302 oder außerhalb des Mikroprozessors 302 abgespeichert wird. In diesem Beispiel für 3 wird der Code 314 im Systemspeicher 308 außerhalb des Mikroprozessors 302 abgespeichert. Das hier weiter unten beschriebene Authentifizierungsverfahren gewährleistet die Gültigkeit des Codes, bevor er ausgeführt wird, obwohl er außerhalb eines geschützten Speicherbereichs abgespeichert worden ist. Das Authentifizierungsverfahren ist dazu in der Lage, leicht einen Code zu identifizieren, der verfälscht worden ist.
-
In 4 wird ein Ablaufdiagramm 400 des Codevalidierungsverfahrens entsprechend einer Ausführungsform der vorliegenden Erfindung gezeigt. Das Verfahren beginnt bei Schritt 410, wenn ein Anwender einen TPM Code wählt, um diesen aus dem zuvor geladenen Satz des Emulationscodes 314 im Systemspeicher 308 auszuführen. Der Anwender interagiert mit der Anordnung 300 durch das Ein-/Ausgabesubsystem 306. Der Anwender wählt einen TPM Code aus den verschiedenen verfügbaren TPM Codes aus. Diese Codes sind im Allgemeinen im Systemspeicher, nicht im TPM Chip 309 gespeichert. Der TPM Code, den der Anwender auswählt, ist Code, den der Anwender als einen TPM Emulator ausführen will (der im Folgenden als ”verdächtiger Code” bezeichnet wird). Der Anwender möchte diesen verdächtigen Code laden, so dass er ausgeführt werden kann. Damit er ausgeführt wird, muss es in den Ausführungsraum 322 geladen werden. Wenn er aus dem Ausführungsraum 322 ausgeführt wird, simuliert dieser Emulationscode welches TPM auch immer der Anwender ausgewählt hat.
-
Unter der Annahme, dass der Anwender TPM Code für TPM4 ausgewählt hat, muss der Prozessor 302 die Systemidentität dieses verdächtigen Codes, TPM Code4, bestätigen. Dies bedeutet, dass TPM4 ein ”vertrauenswürdiges” TPM sein muss, und TPM Code4 unverändert geblieben sein muss, da er in die Anordnung 300 geladen wurde. Um dieses zu tun, lädt der Mikroprozessor 302 in Schritt 420 den verdächtigen Code in den TPM Chip 309 und lädt in Schritt 430 den öffentlichen Schlüssel zur Validierung, der verwendet wurde um den TPM Code4 zu signieren, in das Hauptregister 319 des Chips. Dieser öffentliche Schlüssel zur Validierung ist PK4 aus der in 5 gezeigten Tabelle 332. Der TPM Code4 wird in den Datenspeicher 350 innerhalb des TPM 309 geladen. Es ist zu beachten, dass, obwohl der verdächtige Code in das TPM 309 geladen worden ist, dieser nicht in den Ausführungsraum 322 gebracht worden ist, weil er nicht verifiziert worden ist.
-
Als Nächstes verwendet der TPM Chip 309 in Schritt 440 den verdächtigen Code, TPM Code4, als Index, um seinen entsprechenden Hashalgorithmus, A1g4, aus der Tabelle 332 abzurufen. Der Chip 309 führt A1g4 aus, um einen ersten Hashwerte zu berechnen. Dabei ist zu bedenken, dass jede Instanz des TPM Codes mit ihrem eigenen Hashalgorithmus verknüpft ist und Schlüssel, die benötigt werden, um die Algorithmen zu entschlüsseln, im Speicher 308 der Anordnung frei zugänglich sind. Als Nächstes entschlüsselt der TPM Chip 309 in Schritt 450 unter Verwendung des öffentlichen Schlüssels zur Validierung, PK4, der mit dem TPM Code4 verknüpft ist, den Hashwert, Hash4, der den A1g4 (aus Tabelle 332) betrifft. Dies stellt einen zweiten Hashwert zur Verfügung. Diese zwei Hashwerte, der erste in Schritt 440 berechnete Hashwert und der in Schritt 450 entschlüsselte zweite Hashwert, sollten identisch sein. Wenn sie identisch sind, bestätigt dies, dass der TPM Code4 unverändert ist, und dieser nicht verfälscht oder auf irgendeine Weise modifiziert worden ist, seit er in die Anordnung 300 geladen wurde. Dieser Prüfungsschritt ist das, was es ermöglicht, die unterschiedlichen Emulationscodes 314 außerhalb der relativen Sicherheit des Chips 309 zu halten.
-
In Schritt 460 werden die ersten und zweiten Hashwerte durch den Chip 309 verglichen. Wenn die Werte übereinstimmen (der Vergleichscode ein ”wahr” Ergebnis zurückgibt), zeigt dies an, dass der TPM Code4 überprüft worden ist, und er wird als unverändert und vertrauenswürdig angenommen.
-
Als Nächstes wird in Schritt 470 ein optionaler Schritt ausgeführt, um sicherzustellen, dass der Anwender dazu bevollmächtigt ist, den TPM Code4 auszuführen. Nach der Bestätigung wird der verdächtige Code in Schritt 480 in den Ausführungsraum 322 des Mikrocontrollers geladen, so dass er ausgeführt werden kann.
-
In Schritt 485 wird eine Überprüfung ausgeführt, um zu bestimmen, ob dies das erste Mal ist, dass dieser TPM Code4 ausgeführt worden ist. Wenn ja, dann erzeugt der TPM Chip 309 in Schritt 490 einen EK Paar für diesen Code, EK4. Jedes TPM erzeugt sein eigenes EK, das bei seiner Initialisierung eine privaten Schlüsselteilbereich (EKpr) und einen öffentlichen Schlüsselteilbereich (EKpu) umfasst. Dieses Schlüsselpaar wird entsprechend einer Ausführungsform der Erfindung in Tabelle 342 gespeichert.
-
Gemäß 6 enthält Tabelle 342, indiziert durch den TPM Code, das EK für jede Instanz des in die Anordnung 300 geladenen TPM Codes. Der EKpu von EK4 kann anderen Personen gegeben werden, so dass sie sicherstellen können, dass ein Dokument durch den privaten Schlüssel EKpr signiert wurde. Der EKpr wird nicht ausgeteilt.
-
In Schritt 495 wird zum Zeitpunkt, zu dem dieser TPM Code4 in den Ausführungsraum 322 geladen wird, der mit diesem verknüpfte private Schlüssel, EKpr4, aus der Tabelle 342 in das Hauptregister des TPM 319 geladen. Die Register 319 speichern nur die im Moment erforderlichen Schlüssel. Wenn ein neuer TPM Emulator in die Register geladen wird, werden die Schlüssel ersetzt. Dies wird getan, damit ein Anwender die Möglichkeit hat, aus Sicherheitsgründen ein geheimes Paar aus privatem/öffentlichem Schlüssel zu erzeugen. Es ist wichtig zu beachten, dass ein Anwender den Hashalgorithmus nicht kennen kann, der verwendet wird, um das Schlüsselpaar zu erzeugen; deshalb braucht der Anwender dieses Schlüsselpaar, um in der Lage zu sein, den geladenen Code des Anwenders zu signieren und zu validieren. Es gibt einen Prozess, um die privaten Schlüssel zu migrieren/zu sichern. Dieses Verfahren beinhaltet, den privaten Schlüssel während des Exportprozesses zu verschlüsseln, und ist jenen mit Kenntnis in der Technik bekannt. Schließlich führt das TPM in Schritt 497 den Code, TPM Code4, aus dem Ausführungsraum 322 aus, nachdem die EK4 Schlüssel geladen und abgespeichert worden sind.
-
Wenn die Werte des Hashwertvergleichs in Schritt 460 nicht übereinstimmen, wird der Emulationscode 314 nicht in den Ausführungsraum 322 bewegt, deshalb kann er nicht ausgeführt werden, und der Prozess wird beendet. Jeglicher Code, der sich gegenwärtig im Ausführungsraum 322 befindet, ist im Verlauf der gesamten Operation auf keine Weise in seiner Sicherheit verletzt worden. Durch das ausschließliche Sichern des öffentlichen Schlüssels zur Validierung (PKs) und der Hashwerte in sicherem Speicher 322, reduziert dieses Verfahren den erforderlichen Platzbedarf, während es immer noch Sicherheit zur Verfügung stellt. Die PKs und die Hashalgorithmen können in einen weniger sicheren Speicherplatz ausgelagert werden, um Platz zu sparen. Dies ist besonders wichtig auf Grund der physischen Platzbeschränkungen, die durch die wachsende Anzahl von Schlüsseln erzwungenen werden, die berücksichtigt werden müssen.
-
Deshalb wird es, während beschrieben worden ist, was gegenwärtig als die bevorzugten Ausführungsformen angenommen wird, von jenen, die in der Technik ausgebildet sind, verstanden werden, dass andere Abänderungen innerhalb des Geists der Erfindung ausgeführt werden können.