DE112008003806T5 - Vorrichtung und Verfahren zum Freigeben von Anwendungen auf einem Sicherheitsprozessor - Google Patents

Vorrichtung und Verfahren zum Freigeben von Anwendungen auf einem Sicherheitsprozessor Download PDF

Info

Publication number
DE112008003806T5
DE112008003806T5 DE112008003806T DE112008003806T DE112008003806T5 DE 112008003806 T5 DE112008003806 T5 DE 112008003806T5 DE 112008003806 T DE112008003806 T DE 112008003806T DE 112008003806 T DE112008003806 T DE 112008003806T DE 112008003806 T5 DE112008003806 T5 DE 112008003806T5
Authority
DE
Germany
Prior art keywords
processor
application
security
value
loaded
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.)
Pending
Application number
DE112008003806T
Other languages
English (en)
Inventor
David Carroll Challener
John H. Nicholson Iii
Joseph Pennisi
Rod D. Waltermann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of DE112008003806T5 publication Critical patent/DE112008003806T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Bereitstellen eines Sicherheitsprozessors, wobei das Verfahren aufweist:
Empfangen einer Vielzahl von Werten, wobei jeder Wert eine andere Anwendung identifiziert, die in dem Sicherheitsprozessor ausgeführt werden kann; und
Verknüpfen eines unterschiedlichen zertifizierten Endorsement Key mit jedem empfangenen Wert 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 es einer der unterschiedlichen Anwendungen zu ermöglichen, in dem Sicherheitsprozessor ausgeführt zu werden.

Description

  • 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.

Claims (30)

  1. Verfahren zum Bereitstellen eines Sicherheitsprozessors, wobei das Verfahren aufweist: Empfangen einer Vielzahl von Werten, wobei jeder Wert eine andere Anwendung identifiziert, die in dem Sicherheitsprozessor ausgeführt werden kann; und Verknüpfen eines unterschiedlichen zertifizierten Endorsement Key mit jedem empfangenen Wert 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 es einer der unterschiedlichen Anwendungen zu ermöglichen, in dem Sicherheitsprozessor ausgeführt zu werden.
  2. Verfahren nach Anspruch 1, wobei die unterschiedlichen Anwendungen unterschiedliche Sicherheitsarchitekturanwendungen beinhalten, von denen jede eine andere Sicherheitsarchitektur in dem Sicherheitsprozessor implementieren kann, wobei jede Sicherheitsarchitektur zu zumindest einem Hashalgorithmus und zumindest einem Verschlüsselungsalgorithmus zugehörig ist.
  3. Verfahren nach Anspruch 2, wobei die Sicherheitsarchitekturanwendungen Trusted Platform Module (TPM) Anwendungen beinhalten, von denen jede eine andere TPM Architektur in dem Sicherheitsprozessor implementieren kann.
  4. Verfahren nach Anspruch 1, wobei die unterschiedlichen Anwendungen Anwendungen beinhalten, die keine Sicherheitsarchitektur implementieren.
  5. Verfahren nach Anspruch 1, wobei jeder Wert ein Hashwert ist, der durch Anwenden eines Hashalgorithmus auf die durch den Hashwert identifizierte Anwendung abgeleitet wird.
  6. Verfahren nach Anspruch 1, wobei die Endorsement Keys und die verknüpften Werte in einer sicheren Tabelle in einem nichtflüchtigen Speicher gespeichert sind, auf den durch den Sicherheitsprozessor zugegriffen wird.
  7. Verfahren nach Anspruch 1, das weiterhin Speichern zumindest eines zusätzlichen zertifizierten Endorsement Key in dem Speicher ohne einen verknüpften Wert aufweist, wobei der zusätzliche zertifizierte Endorsement Key durch einen Anwender mit einem durch den Anwender zur Verfügung gestellten Wert verknüpft werden kann.
  8. Sicherheitsprozessorvorrichtung, die aufweist: einen Prozessor; und einen Speicher, gekoppelt mit dem Prozessor und betreibbar, um eine sichere Tabelle zu speichern, wobei die sichere Tabelle eine Vielzahl von unterschiedlichen zertifizierten Endorsement Keys und eine Vielzahl von unterschiedlichen Werten speichert, jeder Wert zu einem der Endorsement Keys zugehörig ist, wobei jeder gespeicherte Wert von einer anderen Anwendung abgeleitet ist, die durch den verknüpften Endorsement Key zertifiziert ist, in dem Prozessor ausgeführt zu werden.
  9. Sicherheitsprozessorvorrichtung nach Anspruch 8, wobei die unterschiedlichen Anwendungen unterschiedliche Sicherheitsarchitekturanwendungen beinhalten, von denen jede eine andere Sicherheitsarchitektur in dem Prozessor implementieren kann, wobei jede Sicherheitsarchitektur eine unterschiedliche Reihe von Verschlüsselungs- und Entschlüsselungsalgorithmen verwendet.
  10. Sicherheitsprozessorvorrichtung nach Anspruch 9, wobei die Sicherheitsarchitekturanwendungen Trusted Platform Module (TPM) Anwendungen beinhalten, von denen jede eine andere TPM Architektur in dem Prozessor implementieren kann.
  11. Sicherheitsprozessorvorrichtung nach Anspruch 9, wobei die unterschiedlichen Anwendungen solche Anwendungen beinhalten, die keine Sicherheitsarchitektur implementieren.
  12. Sicherheitsprozessorvorrichtung nach Anspruch 8, wobei die unterschiedlichen Werte unterschiedliche Hashwerte sind, wobei jeder Hashwert von einer anderen Anwendung abgeleitet ist durch Anwenden eines Hashalgorithmus auf diese Anwendung.
  13. Sicherheitsprozessorvorrichtung nach Anspruch 12, wobei, wenn eine angeforderte Anwendung in den Prozessor geladen werden soll, der Prozessor einen durch Hashen der angeforderten Anwendung erzielten Hashwert mit den in dem sicheren Speicher gespeicherten Hashwerten vergleicht um festzustellen, ob die angeforderte Anwendung zertifiziert ist, in dem Prozessor ausgeführt zu werden.
  14. Sicherheitsprozessorvorrichtung nach Anspruch 13, wobei, wenn basierend auf einer Aufforderung eines Anwenders eine angeforderte Anwendung in den Prozessor zu laden eine geladene Anwendung aus dem Prozessor entfernt werden soll, der Prozessor betreibbar ist, die geladene Anwendung zu hashen, um einen neuen Hashwert zu erzielen, den neuen Hashwert für die geladene Anwendung in der sicheren Tabelle zu speichern, und die geladene Anwendung zu verschlüsseln und in einer Speicheranordnung zu speichern, die mit dem Prozessor gekoppelt ist.
  15. Sicherheitsprozessorvorrichtung nach Anspruch 8, wobei der Speicher ein sicherer, nichtflüchtiger Speicher ist.
  16. Sicherheitsprozessorvorrichtung nach Anspruch 8, wobei der Speicher zumindest einen zusätzlichen zertifizierten Endorsement Key ohne einen verknüpften Wert in dem Speicher speichert, wobei der zusätzliche zertifizierte Endorsement Key zu einem Hashwert zugehörig sein kann, der durch einen Anwender zur Verfügung gestellt wird.
  17. Verfahren zum sicheren Bereitstellen von Anwendungen in einem Sicherheitsprozessor, wobei das Verfahren aufweist: Empfangen einer Aufforderung eine angeforderte Anwendung in den Sicherheitsprozessor zu laden; Vergleichen eines durch Verarbeiten der angeforderten Anwendung erzielten Wertes mit zumindest einem einer Vielzahl von gespeicherten Werten, die in einem Speicher des Sicherheitsprozessors gespeichert sind, wobei eine Übereinstimmung zwischen einem gespeicherten Wert und dem Wert anzeigt, dass die angeforderte Anwendung zertifiziert ist in dem Sicherheitsprozessor ausgeführt zu werden; und Ausführen der angeforderten Anwendung in dem Sicherheitsprozessor, wenn eine Übereinstimmung zwischen dem Wert und einem gespeicherten Wert gefunden wird.
  18. Verfahren nach Anspruch 17, wobei jeder in dem sicheren Speicher gespeicherte Wert zu einem anderen zertifizierten Endorsement Key zugehörig ist, der in dem sicheren Speicher gespeichert ist.
  19. Verfahren nach Anspruch 18, wobei der Wert ein Hashwert ist, der durch Hashen der angeforderten Anwendung erzielt wurde, und die gespeicherten Werte Hashwerte sind.
  20. Verfahren nach Anspruch 17, das weiterhin das Entfernen einer in den Prozessor geladenen Anwendung aufweist, bevor die angeforderte Anwendung geladen wird.
  21. Verfahren nach Anspruch 20, wobei die geladene Anwendung aus dem Prozessor entfernt wird, wenn die angeforderte Anwendung nicht in den gegenwärtig verfügbaren Speicher passt, der mit dem Prozessor gekoppelt ist.
  22. Verfahren nach Anspruch 20, wobei die geladene Anwendung eine Sicherheitsarchitekturanwendung ist, die aus dem Prozessor entfernt wird, wenn die angeforderte Anwendung erfordert, dass eine andere Sicherheitsarchitekturanwendung ausgeführt wird.
  23. Verfahren nach Anspruch 20, wobei das Entfernen der geladenen Anwendung Erzielen eines neuen Hashwertes durch Hashen der geladenen Anwendung und Speichern des neuen Hashwerts für die geladene Anwendung in der sicheren Tabelle beinhaltet.
  24. Verfahren nach Anspruch 23, wobei das Entfernen der geladenen Anwendung Verschlüsseln und Speichern der geladenen Anwendung in einer Speicheranordnung beinhaltet, die mit dem Sicherheitsprozessor gekoppelt ist.
  25. Verfahren nach Anspruch 24, wobei die geladene Anwendung eine Sicherheitsarchitekturanwendung ist und die Verschlüsselung einen Verschlüsselungsalgorithmus verwendet, der zu der Sicherheitsarchitektur zugehörig ist.
  26. Verfahren nach Anspruch 19, das weiterhin aufweist: Empfangen einer Aufforderung eine neue Anwendung zur Verwendung mit dem Sicherheitsprozessor zu installieren, wobei die neue Anwendung gehasht wird, um einen neuen Hashwert zu erzielen; und Speichern des neuen Hashwerts in dem Speicher des Sicherheitsprozessors, wobei der neue Hashwert zu einem Endorsement Key zugehörig ist, der in dem Speicher gespeichert ist.
  27. Computersystem, das aufweist: eine Eingabeanordnung, betreibbar um von einem Anwender empfangene Eingaben an das Computersystem zur Verfügung zu stellen, wobei die Eingabeanordnung eine Sicherheitseingabeanordnung beinhaltet, die den Anwender identifiziert; einen Sicherheitsprozessor, gekoppelt mit der Eingabeanordnung und betreibbar um die Eingaben von dem Anwender zu empfangen und Anwendungen auszuführen, die für den Prozessor zertifiziert sind; und einen Speicher, gekoppelt mit dem Sicherheitsprozessor und 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 zu einem der Endorsement Keys zugehörig ist, wobei jeder Hashwert von einer anderen Anwendung abgeleitet ist, die durch den verknüpften Endorsement Key zertifiziert ist in den Prozessor geladen zu werden, und wobei die unterschiedlichen Anwendungen unterschiedliche Sicherheitsarchitekturanwendungen beinhalten, von denen jede eine andere Sicherheitsarchitektur in dem Sicherheitsprozessor implementieren kann.
  28. Sicheres Computersystem nach Anspruch 27, wobei die Sicherheitseingabeanordnung zumindest eines aus einem Fingerabdrucklesegerät und einem Smartcardleser beinhaltet, und wobei die unterschiedlichen Anwendungen solche Anwendungen beinhalten, die keine Sicherheitsarchitektur implementieren, beinhaltend Anwendungen, um eine Schnittstelle zu der Sicherheitseingabeanordnung zu bilden.
  29. Sicheres Computersystem nach Anspruch 27, wobei, wenn eine angeforderte Anwendung in den Prozessor geladen werden soll, der Prozessor einen durch Hashen der angeforderten Anwendung erzielten Hashwert mit den Hashwerten vergleicht, die in dem sicheren Speicher gespeichert sind, um festzustellen, ob die angeforderte Anwendung zertifiziert ist in den Prozessor geladen zu werden.
  30. Computerlesbares Medium, das durch einen Computer zu implementierende Programmanweisungen beinhaltet und zum sicheren Bereitstellen von in einen Sicherheitsprozessor geladenen Anwendungen, wobei die Programmanweisungen dienen zum: Empfangen einer Aufforderung eine angeforderte Anwendung in dem Sicherheitsprozessor zu laden; und Vergleichen eines durch Verarbeiten der angeforderten Anwendung erzielten Wertes mit zumindest einem einer Vielzahl von gespeicherten Werten, die in einem Speicher des Sicherheitsprozessors gespeichert sind, wobei eine Übereinstimmung zwischen einem gespeicherten Wert und dem Wert anzeigt, dass die angeforderte Anwendung zertifiziert ist in dem Sicherheitsprozessor ausgeführt zu werden; und Ausführen der angeforderten Anwendung in dem Sicherheitsprozessor, wenn eine Übereinstimmung zwischen dem Wert und einem gespeicherten Wert gefunden wird.
DE112008003806T 2008-04-16 2008-04-16 Vorrichtung und Verfahren zum Freigeben von Anwendungen auf einem Sicherheitsprozessor Pending DE112008003806T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/051458 WO2009127905A1 (en) 2008-04-16 2008-04-16 Apparatus and method for enabling applications on a security processor

Publications (1)

Publication Number Publication Date
DE112008003806T5 true DE112008003806T5 (de) 2011-02-10

Family

ID=41198819

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008003806T Pending DE112008003806T5 (de) 2008-04-16 2008-04-16 Vorrichtung und Verfahren zum Freigeben von Anwendungen auf einem Sicherheitsprozessor

Country Status (3)

Country Link
DE (1) DE112008003806T5 (de)
GB (1) GB2470880B (de)
WO (1) WO2009127905A1 (de)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138393A1 (en) * 2003-12-22 2005-06-23 Challener David C. Determining user security level using trusted hardware device
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US8549592B2 (en) * 2005-07-12 2013-10-01 International Business Machines Corporation Establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform
US8082442B2 (en) * 2006-08-10 2011-12-20 Microsoft Corporation Securely sharing applications installed by unprivileged users
US8510859B2 (en) * 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
EP2045753B1 (de) * 2007-10-01 2015-04-22 BlackBerry Limited Auf kryptografischer Identifizierung basierende Anwendungszuordnung

Also Published As

Publication number Publication date
GB2470880B (en) 2013-04-10
GB201017358D0 (en) 2010-11-24
WO2009127905A1 (en) 2009-10-22
GB2470880A (en) 2010-12-08

Similar Documents

Publication Publication Date Title
DE102005040073B4 (de) Computersicherheitssystem
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE102020122712A1 (de) Integritätsmanifest-zertifikat
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE60129967T2 (de) Auf biometrie basierende beglaubigung in einer nichtflüchtigen speichervorrichtung
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE69819485T2 (de) Verfahren und vorrichtung zur sicheren verarbeitung kryptographischer schlüssel
DE102009013332B4 (de) Verfahren und Vorrichtung zum Erzeugen eines kryptografischen Schlüssels
DE102007057900B4 (de) Authentifikation von verdächtigen Daten unter Verwendung von Schlüsseltabellen
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE112007001635T5 (de) Authentifizierung von Komponenten bei Computersystemen
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
EP2899714A1 (de) Gesichertes Bereitstellen eines Schlüssels
DE10254621A1 (de) Vorrichtung und Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
DE102008021567A1 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112008003862T5 (de) System und Verfahren zum Liefern eines Systemverwaltungsbefehls
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102018126136A1 (de) Technologien zur biometrischen Authentifizierung vor dem Booten
DE602004009639T2 (de) Verfahren oder Vorrichtung zur Authentifizierung digitaler Daten mittels eines Authentifizierungs-Plugins
DE102005014352A1 (de) Verfahren und Steuervorrichtung zur Steuerung eines Zugriffs eines Computers auf Nutzdaten
WO2015180867A1 (de) Erzeugen eines kryptographischen schlüssels
EP2434424B1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online-Diensten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE