DE112005001654B4 - Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD - Google Patents

Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD Download PDF

Info

Publication number
DE112005001654B4
DE112005001654B4 DE112005001654T DE112005001654T DE112005001654B4 DE 112005001654 B4 DE112005001654 B4 DE 112005001654B4 DE 112005001654 T DE112005001654 T DE 112005001654T DE 112005001654 T DE112005001654 T DE 112005001654T DE 112005001654 B4 DE112005001654 B4 DE 112005001654B4
Authority
DE
Germany
Prior art keywords
private key
data structure
encrypted data
key
digest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112005001654T
Other languages
English (en)
Other versions
DE112005001654T5 (de
Inventor
Ernest Oreg. Brickell
James II. Oreg. Sutton
Clifford Calif. Hall
David Oreg. Grawrock
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005001654T5 publication Critical patent/DE112005001654T5/de
Application granted granted Critical
Publication of DE112005001654B4 publication Critical patent/DE112005001654B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Abstract

Verfahren, das umfaßt: Erzeugen einer verschlüsselten Datenstruktur (514), die einer Vorrichtung (506) zugeordnet ist, wobei die verschlüsselte Datenstruktur (514) einen Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt; Erzeugen eines Kennzeichners anhand eines pseudozufällig erzeugten Werts (508) für die verschlüsselte Datenstruktur (514); Speichern des Kennzeichners und der verschlüsselten Datenstruktur (514) auf einem entnehmbaren Speichermedium (522) zur Verteilung mit einem System (504), das die Vorrichtung (506) umfasst, wobei das entnehmbare Speichermedium (522) eine Vielzahl von Kennzeichnern und verschlüsselten Datenstrukturen (514) für Vorrichtungen aus einer Klasse von Vorrichtungen umfasst, die die Vorrichtung (506) umfasst; und Speichern des pseudozufälligen Werts (508) in einem nichtflüchtigen Speicher in der Vorrichtung (506), wobei der pseudozufällige Wert (508) zum Erzeugen des Kennzeichners im System (504) verwendet wird, um die verschlüsselte Daten (522) zu extrahieren.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Gebiet
  • Die vorliegende Erfindung betrifft generell die Computersicherheit, und insbesondere das sichere Verteilen kryptographischer Schlüssel an Vorrichtungen in Verarbeitungssystemen.
  • 2. Beschreibung
  • Einige Verarbeitungssystemarchitekturen, die Inhaltsschutz- und/oder Computersicherheitsfunktionen unterstützen, verlangen, daß besonders geschützte oder „vertrauenswürdige” Softwaremodule dazu in der Lage sind, eine authentifizierte, verschlüsselte Kommunikationssitzung mit besonders geschützten oder „vertrauenswürdigen” Hardwarevorrichtungen in dem Verarbeitungssystem (wie z. B. Graphiksteuerungskarten) zu herzustellen. Ein üblicherweise benutztes Verfahren sowohl zum Identifizieren der Vorrichtung als auch zum gleichzeitigen Herstellen der verschlüsselten Kommunikationssitzung besteht darin, einen einseitig authentifizierten Diffie-Hellman-(DH)-Schlüsselaustauschprozeß zu benutzen. In diesem Prozeß wird der Vorrichtung ein eindeutiges Rivest-Shamir-und-Adleman-(RSA)-Algorithmus-Schlüsselpaar oder ein eindeutiges ECC-(Elliptic Curve Cryptography – Elliptische Kurvenkryptographie)-Schlüsselpaar zugewiesen. Da jedoch dieser Authentifizierungsprozeß RSA- oder ECC-Schlüssel benutzt, weist die Vorrichtung dann eine eindeutige und belegbare Identität auf, was Anlaß zur Sorge um die Privatsphäre bereiten kann. Im schlimmsten Fall kann diese Besorgnis zu mangelnder Unterstützung durch Originalausrüstungshersteller beim Fertigen vertrauenswürdiger Vorrichtungen führen, die diese Art von Sicherheit bereitstellen.
  • US 2004/0103281 A1 beschreibt ein Verfahren zur Authentifizierung einer vertrauenswürdigen Vorrichtung ohne eine Offenlegung der Identität der Vorrichtung.
  • WO 99/31842 A1 beschreibt einen Ansatz zur dynamischen und sicheren Verteilung von Schlüsseln über ein Netzwerk, welche zum Entschlüsseln von z. B. Medieninhalten verwendet werden können. Hierzu identifiziert sich ein Client bei einem zentralen Server, der die gewünschten Schlüssel ermittelt und in einem Modul integriert, das Schutz gegen unberechtigte Eingriffe bietet. Dieses Modul wird an die Client-Vorrichtung übertragen und dort ausgeführt. Das Modul liefert nun die für die Entschlüsselung benötigten Schlüssel direkt an einen vertrauenswürdigen Entschlüsselungsprozess.
  • Kurze Beschreibung der Figuren
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung der vorliegenden Erfindung deutlich, wobei:
  • 1 ein System zeigt, das eine Plattform aufweist, die mit einem TPM-(Trusted Platform Module – Vertrauenswürdiges Plattformmodul) implementiert ist, das gemäß einer Ausführungsform der Erfindung arbeitet;
  • 2 eine erste Ausführungsform der Plattform mit dem TPM aus 1 zeigt;
  • 3 eine zweite Ausführungsform der Plattform mit dem TPM aus 1 zeigt;
  • 4 ein Ausführungsbeispiel eines Computersystems zeigt, das mit dem TPM aus 2 implementiert ist;
  • 5 eine Darstellung eines Systems zum Verteilen von Direct-Proof-Schlüsseln gemäß einer Ausführungsform der vorliegenden Erfindung ist;
  • 6 ein Ablaufdiagramm ist, das Stufen eines Verfahrens zum Verteilen von Direct-Proof-Schlüsseln gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 7 ein Ablaufdiagramm ist, das eine Einrichtungsverarbeitung bei der Vorrichtungsherstellung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 8 ein Ablaufdiagramm ist, das die Produktionsverarbeitung bei der Vorrichtungsherstellung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 9 ein Ablaufdiagramm einer Einrichtungsverarbeitung bei einem Clientcomputersystem gemäß einer Ausführungsform der Erfindung ist; und
  • 10 ein Ablaufdiagramm einer Produktionsverarbeitung bei einem Clientcomputersystem gemäß einer Ausführungsform der Erfindung ist.
  • DETAILLIERTE BESCHREIBUNG
  • Die Benutzung eines Direct-Proof-basierten Diffie-Hellman-Schlüsselaustauschprotokolls, um es geschützten/vertrauenswürdigen Vorrichtungen zu erlauben, sich zu authentifizieren und eine verschlüsselte Kommunikationssitzung mit vertrauenswürdigen Softwaremodulen herzustellen, vermeidet das Erzeugen von eindeutiger Identitätsinformation in dem Verarbeitungssystem. Allerdings ist bei der direkten Einbettung eines Direct-Proof-Privatschlüssels an einer Fertigungsstraße mehr geschützter, nichtflüchtiger Speicher auf der Vorrichtung erforderlich als bei anderen Ansätzen, was die Gerätekosten in die Höhe treibt. Eine Ausführungsform der vorliegenden Erfindung ist ein Verfahren, das es dem Direct-Proof-Privatschlüssel (der z. B. zum Signieren benutzt wird) erlaubt, in einer sicheren Weise auf einem Verteiler-Compact-Disk-Lesespeicher (CD-ROM) geliefert zu werden, und anschließend von der Vorrichtung selbst in der Vorrichtung installiert zu werden. Das in dieser Erfindung vorgestellte Verfahren ist so ausgelegt, daß die Vorrichtung keine Identitätsinformation für den Installationsprozeß offenlegen muß. In einer Ausführungsform kann die Reduzierung an Vorrichtungsspeicher, der zum Unterstützen dieser Möglichkeit erforderlich ist, bei etwa 300 bis 700 Bytes bis zu etwa 20 Bytes liegen. Diese Reduzierung der Menge an nichtflüchtigem Speicher, der zum Implementieren des Direct-Proof-basierten Diffie-Hellman-Schlüsselaustauschs für Vorrichtungen benötigt wird, kann zu einer breiteren Anwendung dieses Verfahrens führen. In der Beschreibung bedeutet die Bezugnahme auf „eine Ausführungsform” der vorliegenden Erfindung, daß ein bestimmtes Merkmal, eine Struktur oder ein Kennzeichen, die oder das im Zusammenhang mit dieser Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Das Erscheinen des Ausdrucks „in einer Ausführungsform” an verschiedenen Stellen der Beschreibung bezieht sich also nicht unbedingt auf dieselbe Ausführungsform.
  • In der folgenden Beschreibung wird eine bestimmte Terminologie verwendet, um bestimmte Merkmale von einer oder mehreren Ausführungsformen der Erfindung zu beschreiben. Beispielsweise ist „Plattform” als jede Art von Kommunikationsgerät definiert, das dazu angepaßt ist, Information zu senden und zu empfangen. Beispiele verschiedener Plattformen sind, ohne Begrenzung oder Beschränkung darauf, Computersysteme, persönliche digitale Assistenten, Mobiltelefone, Set-Top-Boxen, Faxgeräte, Drucker, Modems, Router und ähnliches. Eine „Kommunikationsverbindung” ist im breiten Sinne als ein oder mehrere informationstragende Medien definiert, die an eine Plattform angepaßt sind. Beispiele für verschiedene Arten von Kommunikationsverbindungen sind, ohne Begrenzung oder Beschränkung darauf, elektrische(r) Draht/Drähte, Lichtwellenleiter, Kabel, Bus-Trace(s) oder drahtlose Signalisierungstechnologie.
  • Ein „Herausforderer” bezeichnet eine Einheit (z. B. eine Person, ein System, eine Software und/oder eine Vorrichtung), die eine Verifizierung oder Authentifizierung oder Autorisierung von einer anderen Einheit verlangt. Normalerweise wird dies vor dem Offenlegen oder Bereitstellen der angeforderten Information durchgeführt. Ein „Beantworter” bezeichnet jede Einheit, von der verlangt wurde, einen Beweis ihrer Autorisierung, Gültigkeit und/oder Identität bereitzustellen. Ein „Vorrichtungshersteller”, der austauschbar ist mit „zulassendem Hersteller”, bezeichnet eine Einheit, die eine Plattform oder ein Gerät herstellt oder konfiguriert.
  • Wie hier benutzt, bedeutet das „Überzeugen” eines Herausforderers oder das „Beweisen” gegenüber einem Herausforderer, daß ein Beantworter über Kenntnisse von kryptographischer Information (z. B. einer digitalen Signatur, einem Geheimnis wie z. B. einem Schlüssel) verfügt, daß, basierend auf der Information und dem Beweis, der gegenüber dem Herausforderer offengelegt wird, eine hohe Wahrscheinlichkeit vorliegt, daß der Beantworter über die kryptographische Information verfügt. Um dies einem „Herausforderer” zu beweisen, ohne die kryptographische Information gegenüber dem Herausforderer zu „enthüllen” oder zu „offenbaren”, bedeutet, daß es, basierend auf der Information, die von dem Herausforderer offenbart wird, rechnerisch unmöglich für den Herausforderer wäre, die kryptographische Information zu bestimmen.
  • Solche Beweise werden im Folgenden als Direct Proofs (Direktbeweise) bezeichnet. Der Begriff „Direct Proof” bezeichnet Zero-Knowledge-Beweise, da diese Arten von Beweisen auf dem Gebiet allgemein bekannt sind. Insbesondere ist ein bestimmtes Direct-Proof-Protokoll, auf das hier Bezug genommen wird, das Thema der Patentanmeldung Seriennummer 10/306,336, eingereicht am 27.11.2002, namens „System and Method for Establishing Trust Without Revealing Identity”, das dem Eigentümer der vorliegenden Erfindung zugeteilt ist. Direct Proof definiert ein Protokoll, wobei ein Aussteller eine Familie mit vielen Mitgliedern festlegt, die gemeinsame Charakteristika teilen, die von dem Aussteller festgelegt werden. Der Aussteller erzeugt ein öffentliches und privates Familienschlüsselpaar (Fpub und Fpri), das die Familie insgesamt repräsentiert. Mit Hilfe von Fpri kann der Aussteller auch einen eindeutigen Direct-Proof-Privatsignaturschlüssel (DPpri) für jedes einzelne Mitglied der Familie erzeugen. Jede Nachricht, die von einem individuellen DPpri signiert wurde, kann mit Hilfe des öffentlichen Familienschlüssels Fpub verifiziert werden. Allerdings ermittelt eine solche Verifizierung nur, daß der Signierende ein Mitglied der Familie ist; es wird keine eindeutig identifizierende Information zu dem individuellen Mitglied offengelegt. In einer Ausführungsform kann der Aussteller ein Gerätehersteller oder ein Beauftragter sein. Das heißt, der Aussteller kann eine Einheit sein, die dazu in der Lage ist, anhand gemeinsamer Charakteristika Vorrichtungsfamilien zu definieren, das Öffentlich/Privat-Familienschlüsselpaar zu erzeugen, und DP-Privatschlüssel zu erzeugen und in Vorrichtungen einzubringen. Der Aussteller kann auch Zertifikate für den öffentlichen Familienschlüssel erzeugen, die die Herkunft des Schlüssels und die Kennzeichen der Vorrichtungsfamilie identifizieren.
  • Bezugnehmend auf 1 ist eine Ausführungsform eines Systems gezeigt, das eine Plattform aufweist, die mit einer vertrauenswürdigen Hardwarevorrichtung (bezeichnet als „TPM” oder „Trusted Platform Module” – Vertrauenwürdiges Plattformmodul) implementiert ist, das gemäß einer Ausführungsform der Erfindung arbeitet. Eine erste Plattform 102 (Herausforderer) überträgt eine Anfrage 106 dazu, daß eine zweite Plattform 104 (Beantworter) Information über sich selbst bereitstellt. In Antwort auf die Anfrage 106 stellt die zweite Plattform 104 die verlangte Information 108 bereit.
  • Zusätzlich kann es sein, daß die erste Plattform 102 für eine erhöhte Sicherheit prüfen muß, daß die verlangte Information 108 von einer Vorrichtung gekommen ist, die entweder von einem ausgewählten Vorrichtungshersteller oder einer ausgewählten Gruppe von Vorrichtungsherstellern (im Folgenden als „Vorrichtungshersteller” 110 bezeichnet) hergestellt wurde. Beispielsweise fordert in einer ersten Ausführungsform der Erfindung die erste Plattform 102 die zweite Plattform 104 heraus, zu zeigen, daß sie über kryptographische Information (z. B. eine Signatur) verfügt, die von dem/den Vorrichtungshersteller(n) 110 erzeugt wurde. Die Herausforderung kann entweder in der Anfrage 106 enthalten sein (wie dargestellt), oder in einer separaten Übertragung. Die zweite Plattform 104 antwortet auf die Herausforderung, indem sie Information in Form einer Antwort bereitstellt, um die erste Plattform 102 zu überzeugen, daß die zweite Plattform 104 über kryptographische Information verfügt, die von dem/den Vorrichtungshersteller(n) 110 erzeugt wurde, ohne die kryptographische Information zu enthüllen. Die Antwort kann entweder Teil der verlangten Information 108 sein (wie dargestellt), oder eine separate Übertragung.
  • In einer Ausführungsform der Erfindung umfaßt die zweite Plattform 104 ein Trusted Platform Module (TPM – Vertrauenswürdiges Plattformmodul) 115. TPM 115 ist eine kryptographische Vorrichtung, die von dem/den Vorrichtungshersteller(n) 110 hergestellt wurde. In einer Ausführungsform der Erfindung umfaßt TPM 115 einen Prozessor mit einer geringen Menge an Chipspeicher, der in einem Paket verkapselt ist. TPM 115 ist dazu konfiguriert, Information an die erste Plattform 102 bereitzustellen, die diese in die Lage versetzt, zu bestimmen, daß eine Antwort von einem gültigen TPM übertragen wird. Die benutzte Information ist Inhalt, der es wahrscheinlich macht, daß die Identität des TPM oder der zweiten Plattform bestimmbar wird.
  • 2 zeigt eine erste Ausführungsform der zweiten Plattform 104 mit TPM 115. Für diese Ausführungsform der Erfindung umfaßt die zweite Plattform 104 einen Prozessor 202, der an TPM 115 gekoppelt ist. Im allgemeinen ist der Prozessor 202 eine Vorrichtung, die Information verarbeitet. Beispielsweise kann der Prozessor 202 in einer Ausführungsform der Erfindung als ein Mikroprozessor, ein Digitalsignalprozessor, eine Mikrosteuerung oder sogar ein Zustandsapparat implementiert sein. Alternativ kann der Prozessor 202 in einer anderen Ausführungsform der Erfindung als eine programmierbare oder hartcodierte Logik implementiert sein, wie z. B. als feldprogrammierbare Gate-Arrays (FPGAs), Transistor-Transistor-Logik (TTL), oder sogar als ein anwendungsspezifischer integrierter Schaltkreis (ASIC).
  • Hier umfaßt die zweite Plattform 104 außerdem eine Speichereinheit 206, um die Speicherung kryptographischer Information zuzulassen, wie z. B. eine oder mehrere der folgenden: Schlüssel, Streuwerte, Signaturen, Zertifikate usw. Ein Streuwert von „X” kann als „Streu(X)” dargestellt werden. Es ist vorgesehen, daß diese Information in dem internen Speicher 220 von TPM 115 anstelle der Speichereinheit 206 gespeichert ist, wie in 3 gezeigt. Die kryptographische Information kann verschlüsselt sein, insbesondere wenn sie außerhalb von TPM 115 gespeichert ist.
  • 4 zeigt eine Ausführungsform einer Plattform mit einem Computersystem 300, das mit dem TPM 115 aus 2 implementiert ist. Computersystem 300 umfaßt einen Bus 302 und einen Prozessor 310, der an Bus 302 gekoppelt ist. Das Computersystem 300 umfaßt außerdem eine Hauptspeichereinheit 304 und eine statische Speichereinheit 306.
  • Hier ist die Hauptspeichereinheit 304 ein flüchtiger Halbleiterspeicher zum Speichern von Information und Befehlen, die von Prozessor 310 ausgeführt werden. Der Hauptspeicher 304 kann auch dazu benutzt werden, vorläufige Variablen oder andere unmittelbare Information während der Ausführung von Befehlen durch Prozessor 310 zu speichern. Die statische Speichereinheit 306 ist ein nichtflüchtiger Halbleiterspeicher, um Information und Befehle für den Prozessor 310 dauerhafter zu speichern. Ein Beispiel eines statischen Speichers 306 ist ein Lesespeicher (ROM), ohne Beschränkung oder Begrenzung darauf. Sowohl die Hauptspeichereinheit 304 als auch die statische Speichereinheit 306 sind an Bus 302 gekoppelt.
  • In einer Ausführungsform der Erfindung umfaßt das Computersystem 300 außerdem eine Datenspeichervorrichtung 308, wie z. B. eine magnetische Platte oder eine optische Platte, deren zugehöriges Laufwerk zum Speichern von Information und Befehlen auch an Computersystem 300 gekoppelt sein kann.
  • Computersystem 300 kann auch über Bus 302 an eine Graphiksteuerungsvorrichtung 314 gekoppelt sein, die eine Anzeige (nicht dargestellt) wie z. B. eine Kathodenstrahlröhre (KSR), eine Flüssigkristallanzeige (LCD) oder einen beliebigen Flachbildmonitor steuert, um Information für einen Endnutzer anzuzeigen. In einer Ausführungsform kann es erwünscht sein, daß die Graphiksteuerung dazu in der Lage ist, eine authentifizierte verschlüsselte Kommunikationssitzung mit einem Softwaremodul herzustellen, das von dem Prozessor ausgeführt wird.
  • Typischerweise kann eine alphanumerische Eingabevorrichtung 316 (z. B. Tastatur, Tastenfeld usw.) an den Bus 302 gekoppelt sein, um Information und/oder eine Befehlauswahl an den Prozessor 310 zu übertragen. Ein anderer Typ von Nutzereingabevorrichtung ist eine Cursorsteuereinheit 318, wie z. B. eine Maus, ein Trackball, ein integriertes Berührungsfeld, ein Taststift oder Cursorlenktasten, um Richtungsinformation und eine Befehlauswahl an den Prozessor 310 zu übertragen, und die Cursorbewegung auf der Anzeige 314 zu steuern.
  • Eine Kommunikationsschnittstelleneinheit 320 ist ebenfalls an den Bus 302 gekoppelt. Beispiele für eine Schnittstelleneinheit 320 sind ein Modem, eine Netzwerkschnittstellenkarte, oder andere gut bekannte Schnittstellen, die benutzt werden, um eine Kommunikationsverbindung anzuschließen, die einen Teil eines lokalen oder Weitverkehrsnetzwerks bildet. Auf diese Weise kann das Computersystem 300 über eine konventionelle Netzwerkinfrastruktur, wie z. B. das Intranet eines Unternehmens und/oder das Internet, an eine Anzahl von Clients und/oder Servern gekoppelt sein.
  • Man wird verstehen, daß bei bestimmten Implementierungen ein geringer oder besser ausgestattetes Computersystem als das oben beschriebene wünschenswert sein kann. Deshalb variiert die Konfigurierung des Computersystems 300 von Implementierung zu Implementierung in Abhängigkeit von zahlreichen Faktoren, wie z. B. Preisbeschränkungen, Leistungsanforderungen, technischen Verbesserungen, und/oder anderen Umständen.
  • In wenigstens einer Ausführungsform kann das Computersystem 300 die Benutzung besonders geschützter „vertrauenswürdiger” Softwaremodule (z. B. manipulationssicherer Software oder Systeme, die dazu in der Lage sind, geschützte Programme ablaufen zu lassen) unterstützen, die im Hauptspeicher 304 und/oder in der Massenspeichervorrichtung 308 gespeichert sind, und von dem Prozessor 310 ausgeführt werden, um spezifische Aktivitäten durchzuführen, auch in Anwesenheit von anderer feindlicher Software im System. Einige dieser vertrauenswürdigen Softwaremodule benötigen einen „vertrauenswürdigen” geschützten Zugriff, nicht nur auf eine andere Plattform, sondern auf eine oder mehrere Peripherievorrichtungen auf derselben Plattform, wie z. B. die Graphiksteuerung 314. Im allgemeinen verlangt ein solcher Zugriff, daß das vertrauenswürdige Softwaremodul dazu in der Lage ist, die Fähigkeiten und/oder die spezifische Identität der Vorrichtung zu identifizieren, und dann eine verschlüsselte Sitzung mit der Vorrichtung herzustellen, um den Austausch von Daten zu ermöglichen, die nicht von anderer Software im System erschnüffelt oder manipuliert werden können.
  • Ein Verfahren des Stands der Technik, um sowohl die Vorrichtung zu identifizieren, als auch gleichzeitig die verschlüsselte Sitzung herzustellen, ist es, einen einseitigen authentifizierten Diffie-Hellman-(DH)-Schlüsselaustauschprozeß zu benutzen. In diesem Prozeß wird der Vorrichtung ein eindeutiges Öffentlich/Privat-RSA- oder ECC-Schlüsselpaar zugewiesen. Die Vorrichtung enthält und schützt den Privatschlüssel, während der öffentliche Schlüssel an das Softwaremodul freigegeben werden kann. Während des DH-Schlüsselaustauschprozesses signiert die Vorrichtung mit Hilfe ihres Privatschlüssels eine Nachricht, die das Softwaremodul mit Hilfe des entsprechenden öffentlichen Schlüssels verifizieren kann. Dies erlaubt es dem Softwaremodul, zu authentifizieren, daß die Nachricht tatsächlich von der relevanten Vorrichtung stammt.
  • Da jedoch dieser Authentifizierungsprozeß RSA- oder ECC-Schlüssel umfaßt, weist das Gerät eine eindeutige und belegbare Identität auf. Jedes Softwaremodul, das die Vorrichtung dazu bringen kann, eine Nachricht mit ihrem privaten Schlüssel zu signieren, kann beweisen, daß diese spezifische eindeutige Vorrichtung in dem Computersystem anwesend ist. Angesichts der Tatsache, daß Vorrichtungen sich selten zwischen Verarbeitungssystemen bewegen, stellt dies auch eine belegbare eindeutige Computersystemidentität dar. Außerdem stellt der öffentliche Schlüssel der Vorrichtung selbst einen konstanten eindeutigen Wert dar; im Effekt ein permanentes „Cookie”. In einigen Fällen können diese Charakteristika als ein signifikantes Privatsphärenproblem betrachtet werden.
  • Ein alternativer Ansatz ist in der Patentanmeldung Seriennummer 10/999,576, eingereicht am 30.11.2004, namens „Apparatus and Method for Establishing a Secure Session with a Device Without Exposing Privacy-Sensitive Information”, erteilt an den Eigentümer der vorliegenden Anmeldung, beschrieben. In diesem Ansatz wird die Benutzung von RSA- oder ECC-Schlüsseln in dem einseitig authentifizierten Diffie-Hellman-Prozeß durch Direct-Proof-Schlüssel ersetzt. Eine Vorrichtung, die diesen Ansatz benutzt, kann als zu einer spezifischen Vorrichtungsfamilie zugehörig authentifiziert werden, was Versicherungen zum Verhalten oder zur Vertrauenswürdigkeit der Vorrichtung mit einschließen kann. Der Ansatz gibt keine eindeutig identifizierende Information frei, die benutzt werden könnte, um eine eindeutige Identität aufzustellen, die das Verarbeitungssystem darstellt.
  • Obwohl der Ansatz gut funktioniert, benötigt er zusätzlichen Speicher in der Vorrichtung, um den Direct-Proof-Privatschlüssel aufzunehmen, der größer sein kann als ein RSA- oder ECC-Schlüssel. Um die Belastung durch diesen zusätzlichen Speicherbedarf zu senken, definieren Ausführungsformen der vorliegenden Erfindung ein System und einen Prozeß, um sicherzustellen, daß die Vorrichtung über den Direct-Proof-Privatschlüssel verfügt, wenn sie den Schlüssel benötigt, ohne daß eine wesentliche Menge zusätzlichen Speichers in der Vorrichtung benötigt wird.
  • In wenigstens einer Ausführungsform der vorliegenden Erfindung speichert ein Vorrichtungshersteller an der Fertigungsstraße nur eine pseudozufällige 128-Bit-Zahl in einer Vorrichtung, wobei ein wesentlich größerer Direct-Proof-Privatschlüssel (DPpri) unter Benutzung einer Verteiler-CD verschlüsselt und geliefert werden kann. Andere Ausführungsformen können eine Zahl in der Vorrichtung speichern, die länger oder kürzer als 128 Bits ist. Dieser Prozeß stellt sicher, daß nur eine spezifizierte Vorrichtung ihren zugewiesenen DPpri-Schlüssel entschlüsseln und benutzen kann. 5 ist eine Darstellung eines Systems 500 zum Verteilen von Direct-Proof-Schlüsseln gemäß einer Ausführungsform der vorliegenden Erfindung. In dem System liegen drei Einheiten vor, ein geschütztes Vorrichtungsherstellungssystem 502, ein Vorrichtungsherstellungs-Produktionssystem 503, und ein Clientcomputersystem 504. Das geschützte Vorrichtungsherstellungssystem umfaßt ein Verarbeitungssystem, das im Einrichtungsprozeß vor dem Herstellen einer Vorrichtung 506 benutzt wird. Das geschützte System 502 kann von einem Vorrichtungshersteller so betrieben werden, daß das geschützte System vor einem Angriff durch Hacker außerhalb des Vorrichtungsherstellungsstandorts geschützt ist (z. B. in einem geschlossenen System). Das Herstellungsproduktionssystem 503 kann bei der Herstellung der Vorrichtungen benutzt werden. In einer Ausführungsform können das geschützte System und das Produktionssystem dasselbe System sein. Die Vorrichtung 506 umfaßt jede Hardwarevorrichtung, die in das Clientcomputersystem aufzunehmen ist (z. B. eine Speichersteuerung, eine Peripherievorrichtung wie z. B. eine Graphiksteuerung, ein E/A-Vorrichtung usw.). In Ausführungsformen der vorliegenden Erfindung umfaßt die Vorrichtung einen pseudozufälligen Wert RAND 508, der in einem nichtflüchtigen Speicher der Vorrichtung gespeichert ist.
  • Das geschützte Herstellungssystem beinhaltet eine geschützte Datenbank 510 und eine Erzeugungsfunktion 512. Die geschützte Datenbank umfaßt eine Datenstruktur, um eine Vielzahl pseudozufälliger Werte zu speichern (wenigstens so viele, wie herzustellende Vorrichtungen vorliegen), die von der Erzeugungsfunktion 512 in einer unten beschriebenen Weise erzeugt werden. Die Erzeugungsfunktion umfaßt Logik (entweder in Software oder Hardware implementiert) zum Erzeugen einer Datenstruktur, die hier als Keyblob 514 bezeichnet wird. Der Keyblob 514 umfaßt wenigstens drei Datenobjekte. Ein eindeutiger Direct-Proof-Privatschlüssel (DPpri) umfaßt einen kryptographischen Schlüssel, der von einer Vorrichtung zum Signieren benutzt werden kann. Der DP-Privat-Digest 516 (dppri-Digest) umfaßt einen Nachrichten-Digest, wie z. B. SHA-1. Einige Ausführungsformen können einen pseudozufälligen Initialisierungsvektor (IV) 518 beinhalten, der zu Kompatibilitätszwecken einen Bitstrom als Teil des Keyblobs umfaßt. Wenn für die Verschlüsselung ein Stromchiffre benutzt wird, dann wird der IV in einem gut bekannten Verfahren zum Benutzen eines IV in einem Stromchiffre benutzt. Wenn für die Verschlüsselung ein Blockchiffre benutzt wird, wird der IV als Teil der zu verschlüsselnden Nachricht benutzt, was jede Instanz der Verschlüsselung unterschiedlich gestaltet.
  • In Ausführungsformen der vorliegenden Erfindung erzeugt das geschützte Herstellungssystem einen oder mehrere Keyblobs (wie weiter unten im Detail beschrieben), und speichert die Keyblobs in einer Keyblob-Datenbank 520 auf einer CD 522. In einer Ausführungsform können sich auf einer einzigen CD viele Keyblobs befinden, wobei die Speicherbegrenzung der CD die einzige Beschränkung ist. Die CD wird dann über typische physikalische Kanäle an Computersystemhersteller, Computerhändler, Verbraucher und andere verteilt. Obwohl hier eine CD als das Speichermedium beschrieben ist, kann jedes geeignete entnehmbare Speichermedium benutzt werden (z. B. eine DVD (digital versatile disk) oder ein anderes Medium).
  • Ein Clientcomputersystem 504, das ein Direct-Proof-Protokoll zur Authentifizierung und zum Schlüsselaustausch einer Kommunikationssitzung mit Vorrichtung 506 benutzen möchte, die in dem System 504 enthalten ist, kann einen ausgewählten Keyblob 514 aus der Keyblob-Datenbank 520 von der CD ablesen, sobald die CD in ein CDROM-Laufwerk (nicht dargestellt) des Clientcomputersystems eingeführt wurde. Die Keyblob-Daten können von der Vorrichtung benutzt werden, um einen lokalisierten Keyblob 524 zu erzeugen (wie unten beschrieben), der zum Implementieren des Direct-Proof-Protokolls benutzt wird. Eine Vorrichtungstreibersoftware 526 wird von dem Clientcomputersystem ausgeführt, um Vorrichtung 506 zu initialisieren und zu steuern.
  • In Ausführungsformen der vorliegenden Erfindung können vier klar abgegrenzte Operationsstufen vorliegen. 6 ist ein Ablaufdiagramm 600, das Stufen eines Verfahrens zum Verteilen von Direct-Proof-Schlüsseln gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Gemäß Ausführungsformen der vorliegenden Erfindung können auf jeder Stufe bestimmte Handlungen ausgeführt werden. An einem Standort des Herstellers finden wenigstens zwei Stufen statt: die Einrichtungsstufe 602 und die Herstellungsproduktionsstufe 604.
  • Die Einrichtungsstufe ist hier unter Bezugnahme auf 7 beschrieben. Die Herstellungsproduktionsstufe ist hier unter Bezugnahme auf 8 beschrieben. Am Standort des Verbrauchers, der das Clientcomputersystem besitzt, finden wenigstens zwei Stufen statt: die Einrichtungsstufe 606 und die Benutzungsstufe 608. Die Einrichtungsstufe im Clientcomputersystem ist hier unter Bezugnahme auf 9 beschrieben. Die Benutzungsstufe im Clientcomputersystem ist hier unter Bezugnahme auf 10 beschrieben.
  • 7 ist ein Ablaufdiagramm 700, das die Einrichtungsverarbeitung bei der Vorrichtungsherstellung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. In einer Ausführungsform kann ein Vorrichtungshersteller diese Handlungen mit Hilfe eines geschützten Herstellungssystems 502 durchführen. An Block 702 erzeugt der Vorrichtungshersteller ein Direct-Proof-Familienschlüsselpaar (Fpub und Fpri) für jede herzustellende Vorrichtungsklasse. Jede einzelne Vorrichtung weist einen DPpri-Schlüssel auf, so daß eine Signatur, die unter Benutzung von DPpri erzeugt wird, durch Fpub verifiziert werden kann. Eine Klasse von Vorrichtungen kann jede Menge oder Untermenge von Vorrichtungen umfassen, wie z. B. eine ausgewählte Produktlinie (z. B. einen Typ Vorrichtung), oder Untermengen einer Produktlinie, basierend auf Versionsnummer, oder auf anderen Charakteristika der Vorrichtungen. Das Familienschlüsselpaar dient der Benutzung durch die Klasse von Vorrichtungen, für die es erzeugt wurde.
  • Für jede herzustellende Vorrichtung führt die Erzeugungsfunktion 512 des geschützten Herstellungssystems 502 die Blöcke 704 bis 720 durch. Zunächst erzeugt die Erzeugungsfunktion an Block 704 einen eindeutigen pseudozufälligen Wert (RAND) 508. In einer Ausführungsform beträgt die Länge von RAND 128 Bits. In anderen Ausführungsformen können andere Wertgrößen benutzt werden. In einer Ausführungsform können die pseudozufälligen Werte für eine Anzahl von Vorrichtungen im Voraus erzeugt werden. An Block 706 erzeugt die Erzeugungsfunktion unter Benutzung einer Einwegfunktion f, unterstützt durch die Vorrichtung, einen symmetrischen Verschlüsselungsschlüssel SKEY aus dem eindeutigen RAND-Wert (SKEY = f(RAND)). Die Einwegfunktion kann jeder bekannte Algorithmus sein, der zu diesem Zweck geeignet ist (z. B. SHA-1, MGF1, Data Encryption Standard (DES), Triple-DES usw.). An Block 708 erzeugt die Erzeugungsfunktion in einer Ausführungsform eine Kennzeichner-(ID)-Markierung, die benutzt wird, um auf der Verteiler-CD 522 auf den Keyblob 514 dieser Vorrichtung zu verweisen, indem SKEY zum Verschlüsseln eines „Nulleintrags” benutzt wird (z. B. eine kleine Zahl von Null-Bytes) (Vorrichtungs-ID = Verschlüssselung (0..0) mit SKEY). In anderen Ausführungsformen können andere Verfahren zum Erzeugen der Vorrichtungs-ID benutzt werden, oder es können andere Werte von SKEY verschlüsselt werden.
  • Als nächstes erzeugt die Erzeugungsfunktion an Block 710 den DP-Privatsignaturschlüssel DPpri, der mit dem öffentlichen Familienschlüssel (Fpub) der Vorrichtung korreliert. An Block 712 streut die Erzeugungsfunktion DPpri, um unter Benutzung bekannter Verfahren einen DPpri-Digest zu erstellen (z. B. unter Benutzung von SHA-1 oder einem anderen Streuwertalgorithmus). An Block 714 erstellt die Erzeugungsfunktion eine Keyblobl-Datenstruktur für die Vorrichtung. Der Keyblob enthält wenigstens DPpri und DPpri-Digest. In einer Ausführungsform enthält der Keyblob auch einen zufälligen Initialisierungsvektor, der mehrere pseudozufällig erzeugte Bits aufweist. Diese Werte können unter Benutzung von SKEY verschlüsselt werden, um einen verschlüsselten Keyblob 514 zu erstellen. An Block 716 können die Vorrichtungs-ID, die an Block 708 erzeugt wurde, und der verschlüsselte Keyblob 514, der an Block 714 erzeugt wurde, in einem Eintrag in einer Keyblob-Datenbank 520 gespeichert werden, die auf der Verteiler-CD 522 freigegeben wird. In einer Ausführungsform kann der Eintrag in der Keyblob-Datenbank von der Vorrichtungs-ID angezeigt werden. An Block 718 kann der aktuelle RAND-Wert in der geschützten Datenbank 510 gespeichert werden. An Block 720 können SKEY und DPpri gelöscht werden, da sie durch die Vorrichtung im Feld regeneriert werden. Die Erzeugung des DPpri-Digests und die anschließende Verschlüsselung durch SKEY sind so ausgelegt, daß der Inhalt von DPpri nicht durch eine Einheit bestimmt werden kann, die nicht in Besitz von SKEY ist, und so, daß der Inhalt des KeyBlob nicht von einer Einheit verändert werden kann, die nicht in Besitz von SKEY ist, ohne daß dies anschließend von einer Einheit entdeckt wird, die in Besitz von SKEY ist. In anderen Ausführungsformen können andere Verfahren zum Bereitstellen der Geheimhaltung und zum Schutz der Unversehrtheit benutzt werden. In einigen Ausführungsformen kann es sein, daß der Unversehrtheitsschutz nicht erforderlich ist, und es kann ein Verfahren benutzt werden, das nur eine Geheimhaltung bereitstellt. In diesem Fall wäre der Wert von DPpri-Digest nicht nötig.
  • Zu jedem Zeitpunkt nach Block 720 kann an Block 720 die geschützte Datenbank von RAND-Werten sicher in das Herstellungsproduktionssystem 503 geladen werden, das die RAND-Werte während des Herstellungsprozesses in den Vorrichtungen speichert. Nachdem dieser Ladevorgang verifiziert wurde, können die RAND-Werte sicher aus dem geschützten Herstellungssystem 502 gelöscht werden. Zuletzt kann an Block 724 die Keyblob-Datenbank, die mehrere verschlüsselte Keyblobs aufweist, auf eine übliche Verteiler-CD 522 „gebrannt” werden. In einer Ausführungsform kann die CD zusammen mit der Vorrichtung verteilt werden, wobei für jede Vorrichtung ein Keyblob-Datenbankeintrag benutzt wird, wie in dem Vorrichtungs-ID-Feld indexiert. Außerdem weist die CD ein Dienstprogrammsoftwaremodul zur Schlüsselrückholung auf, dessen Benutzung im Folgenden genauer beschrieben werden soll.
  • 8 ist ein Ablaufdiagramm 800, das die Produktionsverarbeitung bei der Vorrichtungsherstellung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Während an einer Fertigungsstraße Vorrichtungen hergestellt werden, wählt das Herstellungsproduktionssystem bei Block 802 einen ungenutzten RAND-Wert aus der geschützten Datenbank aus. Der ausgewählte RAND-Wert kann dann in einem nichtflüchtigen Speicher in einer Vorrichtung gespeichert werden. In einer Ausführungsform umfaßt der nichtflüchtige Speicher ein TPM. An Block 804 zerstört das Herstellungsproduktionssystem nach erfolgreicher Speicherung des RAND-Werts jede Aufzeichnung des RAND-Werts der Vorrichtung in der geschützten Datenbank. An diesem Punkt ist die einzige Kopie des RAND-Werts in der Vorrichtung gespeichert.
  • In einer alternativen Ausführungsform kann der RAND-Wert während der Herstellung einer Vorrichtung erzeugt werden, und wird dann an das geschützte Herstellungssystem gesendet, um einen Keyblob zu berechnen.
  • In einer anderen Ausführungsform kann der RAND-Wert auf der Vorrichtung erzeugt werden, und die Vorrichtung und das geschützte Herstellungssystem können in ein Protokoll eintreten, um den DPpri-Schlüssel zu erzeugen, wobei ein Verfahren benutzt wird, das den DPpri-Schlüssel nicht außerhalb des Keyblob offenlegt. Die Vorrichtung leitet die Vorrichtungs-ID und den Keyblob zum Speichern in der geschützten Datenbank 510 an das Herstellungssystem weiter. In diesem Verfahren weist das Herstellungssystem letztlich dieselbe Information (Vorrichtungs-ID, Keyblob) in der geschützten Datenbank auf, kennt jedoch die Werte von RAND oder von DPpri nicht.
  • 9 ist ein Ablaufdiagramm 900 einer Einrichtungsverarbeitung bei einem Clientcomputersystem gemäß einer Ausführungsform der vorliegenden Erfindung. Ein Clientcomputersystem kann diese Handlungen als Teil des Systemstarts durchführen. An Block 902 kann das Clientcomputersystem in normaler Weise hochgefahren werden, und ein Vorrichtungstreiber 526 für die Vorrichtung kann in den Hauptspeicher geladen werden. Wenn der Vorrichtungstreiber initialisiert wurde und mit der Ausführung beginnt, bestimmt die Vorrichtung, ob bereits ein verschlüsselter lokalisierter Keyblob 524 in der Massenspeichervorrichtung 308 für Vorrichtung 506 gespeichert ist. Wenn ja, muß keine weitere Einrichtungsverarbeitung durchgeführt werden, und die Einrichtungsverarbeitung endet an Block 906. Wenn nicht, fährt die Einrichtungsverarbeitung an Block 908 fort. An Block 908 veranlaßt der Vorrichtungstreiber die Anzeige der Nachricht an den Nutzer des Clientcomputersystems, und bittet um die Verteiler-CD 522. Wenn die CD vom Computersystem eingelesen wurde, startet der Vorrichtungstreiber die Dienstprogrammsoftware zur Schlüsselrückholung (in 5 nicht gezeigt), die auf der CD gespeichert ist. Dieses Dienstprogramm stellt ein Befehl zum Erhalten des Schlüssels an die Vorrichtung 506 aus, um den Prozeß des DP-Privatschlüsselerhalts von der Vorrichtung einzuleiten.
  • In Antwort darauf benutzt die Vorrichtung an Block 910 ihre Einwegfunktion f, um den symmetrischen Schlüssel SKEY (jetzt zur Benutzung bei der Entschlüsselung) aus dem eingebetteten RAND-Wert 508 zu regenerieren (SKEY = F(RAND)). An Block 912 erzeugt die Vorrichtung dann ihre eindeutige Vorrichtungs-ID-Markierung, indem SKEY benutzt wird, um einen „Nulleintrag” zu verschlüsseln (z. B. eine kleine Anzahl von Null-Bytes) (Vorrichtungs-ID = Verschlüsselung (0..0) mit SKEY). Die Vorrichtung gibt dann die Vorrichtungs-ID an die Dienstprogrammsoftware zur Schlüsselrückholung zurück. An Block 914 durchsucht das Schlüsselrückholungsdienstprogramm die Keyblob-Datenbank 520 auf der CD nach dem Datenbankeintrag, der die passende Vorrichtungs-ID enthält, extrahiert den verschlüsselten Keyblob der Vorrichtung, und überträgt den Keyblob an die Vorrichtung.
  • In einer Ausführungsform antwortet die Vorrichtung, wenn Rogue-Software versucht, ein Schlüsselerhaltsbefehl an die Vorrichtung zu senden, nachdem die Vorrichtung den Keyblob erhalten hat, nicht mit der Vorrichtungs-ID auf die Rogue-Software. Statt dessen gibt die Vorrichtung eine Fehleranzeige zurück. Im Effekt wird die Funktion des Schlüsselerhaltsbefehls deaktiviert, wenn die Vorrichtung über Zugriff auf einen lokalisierten Keyblob verfügt. Auf diese Weise enthüllt die Vorrichtung die eindeutige Vorrichtungs-ID nicht, es sei denn, sie verfügt nicht über den Keyblob.
  • An Block 916 entschlüsselt die Vorrichtung den verschlüsselten Keyblob unter Benutzung des symmetrischen Schlüssels SKEY, um DPpri und DPpri-Digest zu erhalten, und speichert diese Werte in ihrem nichtflüchtigen Speicher (Entschlüsselter Keyblob = Entschlüsselung (IV, DPpri, DPpri-Digest) mit SKEY). Der Initialisierungsvektor (IV) kann verworfen werden. An Block 918 prüft die Vorrichtung dann die Unversehrtheit von DPpri durch Streuen von DPpri und durch Vergleichen des Ergebnisses mit DPpri-Digest. Wenn der Vergleich gut ist, akzeptiert die Vorrichtung DPpri als ihren gültigen Schlüssel. Die Vorrichtung kann auch einen Schlüsselerhalten-Bitschalter auf wahr setzen, um anzuzeigen, daß der DP-Privatschlüssel erfolgreich erhalten wurde. An Block 920 wählt die Vorrichtung einen neuen IV, und erzeugt einen neuen verschlüsselten lokalisierten Keyblob, unter Benutzung des neuen IV (Lokalisierter Keyblob = Verschlüsselung (IV2, DPpri, DPpri-Digest) mit SKEY). Der neue verschlüsselte lokalisierte Keyblob kann an das Dienstprogramm zur Schlüsselrückholung zurückgegeben werden. An Block 922 speichert das Dienstprogramm zur Schlüsselrückholung den verschlüsselten, lokalisierten Keyblob im Speicher in dem Clientcomputersystem (wie z. B. in der Massenspeichervorrichtung 308). Der DPpri der Vorrichtung ist nun sicher im Clientcomputersystem gespeichert.
  • Sobald die Vorrichtung während der Einrichtungsverarbeitung DPpri erhalten hat, kann die Vorrichtung dann DPpri benutzen. 10 ist ein Ablaufdiagramm einer Clientcomputersystemverarbeitung gemäß einer Ausführungsform der vorliegenden Erfindung. Das Clientcomputersystem kann diese Handlungen jederzeit nach Abschluß der Einrichtung durchführen. An Block 1002 kann das Clientcomputersystem auf normale Weise hochgefahren werden, und ein Vorrichtungstreiber 526 für die Vorrichtung kann in den Hauptspeicher geladen werden. Wenn der Vorrichtungstreiber initialisiert ist und mit der Ausführung beginnt, bestimmt der Vorrichtungstreiber, ob bereits ein verschlüsselter lokalisierter Keyblob 524 in der Massenspeichervorrichtung 308 für Vorrichtung 506 gespeichert ist. Wenn ein verschlüsselter lokalisierter Keyblob für diese Vorrichtung verfügbar ist, fährt die Verarbeitung an Block 1006 fort. An Block 1006 holt der Vorrichtungstreiber den verschlüsselten lokalisierten Keyblob zurück, und überträgt den Keyblob an die Vorrichtung. In einer Ausführungsform kann die Übertragung des Keyblob durch Ausführen eines Keyblob-Ladebefehls erreicht werden.
  • An Block 1008 benutzt die Vorrichtung ihre Einwegfunktion f, um den symmetrischen Schlüssel SKEY (der nun zur Entschlüsselung benutzt wird) aus dem eingebetteten RAND-Wert 508 zu regenerieren (SKEY = f(RAND)). An Block 1010 entschlüsselt die Vorrichtung den verschlüsselten lokalisierten Keyblob unter Benutzung des symmetrischen Schlüssels SKEY, um DPpri und DPpri-Digest zu erhalten, und speichert diese Werte in ihrem nichtflüchtigen Speicher (Entschlüsselter Keyblob = Entschlüsselung (IV2, DPpri, DPpri-Digest) mit SKEY). Der zweite Initialisierungsvektor (IV2) kann verworfen werden. An Block 1012 prüft die Vorrichtung die Unversehrtheit von DPpri durch Streuen von DPpri und durch Vergleichen des Ergebnisses mit DPpri-Digest. Wenn der Vergleich gut ist (z. B. wenn die Digests übereinstimmen), akzeptiert die Vorrichtung DPpri als den zuvor erhaltenen gültigen Schlüssel, und aktiviert ihn zur Benutzung. Die Vorrichtung kann auch den Schlüssel-erhalten-Bitschalter auf wahr setzen, um anzuzeigen, daß der DP-Privatschlüssel erfolgreich erhalten wurde. An Block 1014 wählt die Vorrichtung einen weiteren IV, und erzeugt einen neuen lokalisierten Keyblob, unter Benutzung des neuen IV (Lokalisierter Keyblob = Verschlüsselung (IV3, DPpri, DPpri-Digest) mit SKEY). Der neue verschlüsselte lokalisierte Keyblob kann an das Dienstprogramm zur Schlüsselrückholung zurückgegeben werden. An Block 1016 speichert das Dienstprogramm zur Schlüsselrückholung den verschlüsselten, lokalisierten Keyblob im Speicher im Clientcomputersystem (wie z. B. der Massenspeichervorrichtung 308). Der DPpri der Vorrichtung ist nun wieder sicher in dem Clientcomputersystem gespeichert.
  • In einer Ausführungsform der vorliegenden Erfindung ist es nicht nötig, alle DP-Privatschlüssel der Vorrichtung zugleich zu erzeugen. Unter der Annahme, daß die Verteiler-CD regelmäßig aktualisiert wird, können die DP-Privatschlüssel der Vorrichtung nach Bedarf stoßweise erzeugt werden. Jedesmal, wenn eine Verteiler-CD „gebrannt” wird, enthält sie die zum aktuellen Zeitpunkt erzeugte Keyblob-Datenbank, einschließlich derjenigen Vorrichtungsschlüssel, die bereits erzeugt wurden, aber den Vorrichtungen noch nicht zugeordnet wurden.
  • Obwohl die hier erörterten Operationen als ein sequentieller Prozeß beschrieben werden können, können einige der Operationen tatsächlich parallel oder aufeinander folgend ausgeführt werden. Außerdem kann in einigen Ausführungsformen die Abfolge der Operationen umgestellt werden, ohne vom Geist der Erfindung abzuweichen.
  • Die hier beschriebenen Verfahren sind nicht auf eine bestimmte Hardware- oder Softwarekonfigurierung beschränkt; sie können in jeder Rechen- oder Verarbeitungsumgebung Anwendung finden. Die Verfahren können in Hardware, Software oder einer Kombination der beiden implementiert werden. Die Verfahren können in Programmen implementiert werden, die auf programmierbaren Maschinen ausführen, wie z. B. mobilen oder stationären Computer, persönlichen digitalen Assistenten, Set-Top-Boxen, Mobiltelefonen und Pagern, und anderen elektronischen Vorrichtungen, die jeweils einen Prozessor, ein von dem Prozessor lesbares Speichermedium (einschließlich flüchtiger und nichtflüchtiger Speicherelemente), wenigstens eine Eingabevorrichtung, und eine oder mehrere Ausgabevorrichtungen aufweisen. Die Ausgabeinformation kann auf eine oder mehrere Ausgabevorrichtungen angewandt werden. Ein Durchschnittsfachmann wird verstehen, daß die Erfindung mit verschiedenen Computersystemkonfigurierungen praktizierbar ist, darunter Multiprozessorsystemen, Minicomputern, Großrechnern und ähnlichem. Die Erfindung kann auch in verteilten Computerumgebungen praktiziert werden, in denen Aufgaben von entfernten Vorrichtungen durchgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind.
  • Jedes Programm kann in einer verfahrensorientierten oder objektorientierten Programmiersprache der höheren Ebene implementiert sein, um mit einem Verarbeitungssystem zu kommunizieren. Allerdings können Programme nach Bedarf in Assembler- oder Maschinensprache implementiert sein. Auf jeden Fall kann die Sprache kompiliert oder interpretiert werden.
  • Programmbefehle können dazu benutzt werden, ein allgemeines oder für einen spezifischen Zweck bestimmtes Verarbeitungssystem hervorzurufen, das mit den Befehlen programmiert wird, um die hier beschriebenen Operationen durchzuführen. Alternativ können die Operationen mit spezifischen Hardwarekomponenten durchgeführt werden, die hartverdrahtete Logik zum Durchführen der Operationen enthalten, oder durch jede beliebige Kombination programmierter Computerkomponenten und angepaßter Hardwarekomponenten. Die hier beschriebenen Verfahren können als ein Computerprogrammprodukt bereitgestellt werden, das ein maschinenlesbares Medium beinhalten kann, auf dem Befehle gespeichert sind, die benutzt werden können, um ein Verarbeitungssystem oder eine andere elektronische Vorrichtung zu programmieren, um die Verfahren durchzuführen. Der hier benutzte Begriff „maschinenlesbares Medium” beinhaltet jedes Medium, das dazu in der Lage ist, eine Sequenz von Befehlen zu speichern oder zu codieren, die zur Ausführung durch die Maschine vorgesehen sind, und das die Maschine veranlassen kann, eines der hier beschriebenen Verfahren auszuführen. Der Begriff „maschinenlesbares Medium” beinhaltet entsprechend, ohne Beschränkung darauf, Halbleiterspeicher, optische und magnetische Platten, und eine Trägerwelle, die ein Datensignal codiert. Außerdem ist es auf dem Gebiet üblich, von Software in der einen oder anderen Form (z. B. als Programm, Verfahren, Prozeß, Anwendung, Modul, Logik usw.) als eine Handlung durchführend oder ein Ergebnis verursachend zu sprechen. Derartige Ausdrücke sind lediglich eine verkürzte Art, auszudrücken, daß die Ausführung der Software durch ein Verarbeitungssystem den Prozessor dazu veranlaßt, eine Handlung durchzuführen oder ein Ergebnis zu erzeugen.
  • Obwohl diese Erfindung unter Bezugnahme auf erläuternde Ausführungsformen beschrieben wurde, ist diese Beschreibung nicht in begrenzendem Sinne zu verstehen. Verschiedene Modifikationen veranschaulichender Ausführungsformen, sowie andere Ausführungsformen, die einem Fachmann auf dem Gebiet der Erfindung offensichtlich sind, werden als im Geist und Umfang der Erfindung liegend betrachtet.

Claims (36)

  1. Verfahren, das umfaßt: Erzeugen einer verschlüsselten Datenstruktur (514), die einer Vorrichtung (506) zugeordnet ist, wobei die verschlüsselte Datenstruktur (514) einen Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt; Erzeugen eines Kennzeichners anhand eines pseudozufällig erzeugten Werts (508) für die verschlüsselte Datenstruktur (514); Speichern des Kennzeichners und der verschlüsselten Datenstruktur (514) auf einem entnehmbaren Speichermedium (522) zur Verteilung mit einem System (504), das die Vorrichtung (506) umfasst, wobei das entnehmbare Speichermedium (522) eine Vielzahl von Kennzeichnern und verschlüsselten Datenstrukturen (514) für Vorrichtungen aus einer Klasse von Vorrichtungen umfasst, die die Vorrichtung (506) umfasst; und Speichern des pseudozufälligen Werts (508) in einem nichtflüchtigen Speicher in der Vorrichtung (506), wobei der pseudozufällige Wert (508) zum Erzeugen des Kennzeichners im System (504) verwendet wird, um die verschlüsselte Datenstruktur (514) auf dem entnehmbaren Speichermedium (522) zu extrahieren.
  2. Verfahren nach Anspruch 1, das ferner ein Verteilen des entnehmbaren Speichermediums (522) und der Vorrichtung (506) umfaßt.
  3. Verfahren nach Anspruch 1, das ferner ein Erzeugen eines Direct-Proof-Familienschlüsselpaars für eine Klasse von Vorrichtungen umfaßt.
  4. Verfahren nach Anspruch 3, wobei der Privatschlüssel (516) einen Direct-Proof-Privatschlüssel umfaßt, der einem öffentlichen Schlüssel des Direct-Proof-Familienschlüsselpaars zugeordnet ist, wobei das Verfahren ferner ein Streuen des Direct-Proof-Privatschlüssels, um den Privatschlüssel-Digest (518) zu erzeugen, umfaßt.
  5. Verfahren nach Anspruch 1, das ferner ein Erzeugen eines symmetrischen Schlüssels anhand des pseudozufälligen Werts (508) für die Vorrichtung (506) umfaßt.
  6. Verfahren nach Anspruch 5, wobei das Erzeugen des Kennzeichners ein Verschlüsseln eines Datenwerts unter Benutzung des symmetrischen Schlüssels umfaßt.
  7. Verfahren nach Anspruch 5, das ferner ein Verschlüsseln der Datenstruktur (514) unter Benutzung des symmetrischen Schlüssels umfaßt.
  8. Verfahren nach Anspruch 1, wobei die verschlüsselte Datenstruktur (514) außerdem einen zufälligen Initialisierungsvektor umfaßt.
  9. Verfahren nach Anspruch 1, wobei das entnehmbare Speichermedium (522) eine CD umfaßt.
  10. Verfahren nach Anspruch 1, wobei der pseudozufällige Wert (508) für die Vorrichtung (506) eindeutig ist.
  11. Gegenstand, der umfaßt: ein erstes Speichermedium, das mehrere maschinenlesbare Befehle aufweist, wobei, wenn die Befehle von einem Prozessor ausgeführt werden, die Befehle das Liefern von Privatschlüsseln an Vorrichtungen durch die folgenden Schritte vorsehen in: Erzeugen einer verschlüsselten Datenstruktur (514), die einer Vorrichtung (506) zugeordnet ist, und die einen Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt; Erzeugen eines Kennzeichners anhand eines pseudozufällig erzeugten Werts (508) für die verschlüsselte Datenstruktur (514); Speichern des Kennzeichners und der verschlüsselten Datenstruktur (514) auf einem zweiten entnehmbaren Speichermedium (522); Veranlassen der Speicherung des pseudozufälligen Werts (508) in nichtflüchtigem Speicher in der Vorrichtung (506); Erzeugen eines Direct-Proof-Familienschlüsselpaars für eine Klasse von Vorrichtungen, wobei der Privatschlüssel (516) einen Direct-Proof-Privatschlüssel umfaßt, der einem öffentlichen Schlüssel des Direct-Proof-Familienschlüsselpaars zugeordnet ist; und Streuen des Direct-Proof-Familienschlüssels, um den Privatschlüssel-Digest (518) zu erzeugen.
  12. Gegenstand nach Anspruch 11, der außerdem Befehle zum Erzeugen eines symmetrischen Schlüssels anhand des pseudozufälligen Werts (508) für die Vorrichtung (506) umfaßt.
  13. Gegenstand nach Anspruch 12, wobei Befehle zum Erzeugen des Kennzeichners Befehle zum Verschlüsseln eines Datenwerts unter Benutzung des symmetrischen Schlüssels umfassen.
  14. Gegenstand nach Anspruch 12, der außerdem Befehle zum Verschlüsseln der Datenstruktur unter Benutzung des symmetrischen Schlüssels umfaßt.
  15. Gegenstand nach Anspruch 11, wobei die verschlüsselte Datenstruktur (514) außerdem einen zufälligen Initialisierungsvektor umfaßt.
  16. Gegenstand nach Anspruch 11, wobei der pseudozufällige Wert (508) für die Vorrichtung (506) eindeutig ist.
  17. Verfahren, das umfaßt: Bestimmen, ob eine verschlüsselte Datenstruktur (514), die einen Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt und die einer Vorrichtung (506) zugeordnet ist, die in einem Computersystem (504) installiert ist, in einem Speicher des Computersystems (504) gespeichert ist; Deaktivieren der Funktion eines Schlüsselbeschaffungsbefehls, wenn die verschlüsselte Datenstruktur (514) gespeichert ist; Erhalten der verschlüsselten Datenstruktur (514), die der Vorrichtung (506) zugeordnet ist, von einem entnehmbaren Speichermedium (522), auf das das Computersystem (504) zugreifen kann, wobei auf dem entnehmbaren Speichermedium (522) eine Datenbank (520) mit verschlüsselten Datenstrukturen (514) gespeichert ist, wenn die verschlüsselte Datenstruktur nicht gespeichert ist.
  18. Verfahren nach Anspruch 17, wobei das entnehmbare Speichermedium (522) eine CD umfaßt, die von einem Hersteller der Vorrichtung (506) erstellt wurde.
  19. Verfahren nach Anspruch 17, wobei das Erhalten der verschlüsselten Datenstruktur (514) ein Ausstellen des Schlüsselerhaltbefehls an die Vorrichtung (506) umfaßt, um einen Privatschlüsselbeschaffungsprozeß zu initiieren.
  20. Verfahren nach Anspruch 17, wobei der Privatschlüssel (516) einen Direct-Proof-Privatschlüssel umfaßt, der einem öffentlichen Schlüssel eines Direct-Proof-Familienschlüsselpaars für eine Klasse von Vorrichtungen zugeordnet ist.
  21. Verfahren nach Anspruch 19, wobei der Privatschlüsselbeschaffungsprozeß ein Erzeugen eines symmetrischen Schlüssels anhand eines eindeutigen pseudozufälligen Werts (508) umfaßt, der in der Vorrichtung (506) gespeichert ist.
  22. Verfahren nach Anspruch 21, wobei der Privatschlüsselbeschaffungsprozeß ein Erzeugen eines Vorrichtungskennzeichners anhand des pseudozufälligen Werts (508) für die verschlüsselte Datenstruktur (514) umfaßt.
  23. Verfahren nach Anspruch 22, wobei der Privatschlüsselbeschaffungsprozeß außerdem umfaßt: Durchsuchen des entnehmbaren Speichermediums (522) nach einem Eintrag in der Datenbank (520) mit verschlüsselten Datenstrukturen, der durch einen Kennzeichner indexiert ist, der mit dem erzeugten Vorrichtungskennzeichner übereinstimmt, und Übertragen der verschlüsselten Datenstruktur (514) an die Vorrichtung (506).
  24. Verfahren nach Anspruch 23, wobei der Privatschlüsselbeschaffungsprozeß außerdem umfaßt: Entschlüsseln der verschlüsselten Datenstruktur (514), die von dem entnehmbaren Speichermedium (522) empfangen wurde, unter Benutzung des symmetrischen Schlüssels, um den Privatschlüssel (516) und den Privatschlüssel-Digest (518) zu erhalten.
  25. Verfahren nach Anspruch 24, wobei der Privatschlüsselbeschaffungsprozeß außerdem umfaßt: Streuen des Privatschlüssels (516), um einen neuen Privatschlüssel-Digest zu erzeugen, Vergleichen des Privatschlüssel-Digests (518) von der entschlüsselten Datenstruktur (514) mit dem neuen Privatschlüssel-Digest, und Akzeptieren des Privatschlüssels (516) als gültig für die Vorrichtung (506), wenn die Digests übereinstimmen.
  26. Gegenstand, der umfaßt: ein erstes Speichermedium, das mehrere maschinenlesbare Befehle aufweist, wobei, wenn die Befehle von einem Prozessor ausgeführt werden, die Befehle das Erhalten eines Privatschlüssels für eine Vorrichtungen, die in einem Computersystem installiert ist, durch die folgenden Schritte vorsehen: Bestimmen, ob eine verschlüsselte Datenstruktur (514), die den Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt und die der Vorrichtung (506) zugeordnet ist, die in dem Computersystem (504) installiert ist, in einem Speicher des Computersystems (504) gespeichert ist; Deaktivieren der Funktion eines Schlüsselbeschaffungsbefehls, wenn die verschlüsselte Datenstruktur (514) gespeichert ist; Erhalten der verschlüsselten Datenstruktur (514), die der Vorrichtung (506) zugeordnet ist, von einem entnehmbaren Speichermedium (522), auf das das Computersystem (504) zugreifen kann, wobei auf dem entnehmbaren Speichermedium (522) eine Datenbank (520) aus verschlüsselten Datenstrukturen gespeichert ist, wenn die verschlüsselte Datenstruktur (514) nicht gespeichert ist.
  27. Gegenstand nach Anspruch 26, wobei Befehle zum Erhalten der verschlüsselten Datenstruktur (514) Befehle zum Ausstellen des Schlüsselbeschaffungsbefehls an die Vorrichtung (506) umfassen, um einen Privatschlüsselbeschaffungsprozeß zu initialisieren.
  28. Gegenstand nach Anspruch 26, wobei der Privatschlüssel (516) einen Direct-Proof-Privatschlüssel umfaßt, der einem öffentlichen Schlüssel eines Direct-Proof-Familienschlüsselpaars für eine Klasse von Vorrichtungen zugeordnet ist.
  29. Gegenstand nach Anspruch 27, wobei der Privatschlüsselbeschaffungsprozeß Befehle zum Erzeugen eines symmetrischen Schlüssels anhand eines eindeutigen pseudozufälligen Werts (508) umfaßt, der in der Vorrichtung (506) gespeichert ist.
  30. Gegenstand nach Anspruch 29, wobei der Privatschlüsselbeschaffungsprozeß Befehle zum Erzeugen eines Vorrichtungskennzeichners anhand des pseudozufälligen Werts (508) für die verschlüsselte Datenstruktur (514) umfaßt.
  31. Gegenstand nach Anspruch 30, wobei der Privatschlüsselbeschaffungsprozeß Befehle zum Durchsuchen des entnehmbaren Speichermediums (522) nach einem Eintrag in der Datenbank (520) mit verschlüsselten Datenstrukturen umfaßt, der durch einen Kennzeichner indexiert ist, der mit dem erzeugten Vorrichtungskennzeichner übereinstimmt, und zum Übertragen der verschlüsselten Datenstruktur (514) an die Vorrichtung (506).
  32. Gegenstand nach Anspruch 31, wobei der Privatschlüsselbeschaffungsprozeß außerdem Befehle zum Entschlüsseln der verschlüsselten Datenstruktur (514) umfaßt, die von dem entnehmbaren Speichermedium (522) empfangen wurde, unter Benutzung des symmetrischen Schlüssels, um den Privatschlüssel (516) und den Privatschlüssel-Digest (518) zu erhalten.
  33. Gegenstand nach Anspruch 32, wobei der Privatschlüsselbeschaffungsprozeß außerdem Befehle zum Streuen des Privatschlüssels (516), um einen neuen Privatschlüssel-Digest zu erzeugen, zum Vergleichen des Privatschlüssel-Digests (518) von der entschlüsselten Datenstruktur (514) mit dem neuen Privatschlüssel-Digest, und zum Akzeptieren des Privatschlüssels (516) als gültig für die Vorrichtung (506) umfaßt, wenn die Digests übereinstimmen.
  34. Verfahren, das umfaßt: Abrufen einer verschlüsselten Datenstruktur (514), die einen Privatschlüssel (516) und einen Privatschlüssel-Digest (518) umfaßt und die einer Vorrichtung (506) zugeordnet ist, die in einem Computersystem (504) installiert ist, aus einem Speicher in dem Computersystem (504); Erzeugen eines symmetrischen Schlüssels anhand eines eindeutigen pseudozufälligen Werts (508), der in der Vorrichtung (506) gespeichert ist; Entschlüsseln der verschlüsselten Datenstruktur (514) unter Benutzung des symmetrischen Schlüssels, um den Privatschlüssel (516) und den Privatschlüssel-Digest (518) zu erhalten; Streuen des Privatschlüssels (516), um einen neuen Privatschlüssel-Digest zu erzeugen, und Vergleichen des Privatschlüssel-Digest (518) aus der entschlüsselten Datenstruktur (514) mit dem neuen Privatschlüssel-Digest; und Akzeptieren des Privatschlüssels (516) als gültig für die Vorrichtung (506), wenn die Digests übereinstimmen, wobei der Privatschlüssel (516) einen Direct-Proof-Privatschlüssel umfaßt, der einem öffentlichen Schlüssel eines Direct-Proof-Familienschlüsselpaars für eine Klasse von Vorrichtungen zugeordnet ist.
  35. Verfahren nach Anspruch 34, wobei die Vorrichtung (506) eine Peripherievorrichtung des Computersystems (504) umfaßt.
  36. Verfahren nach Anspruch 34, das ferner umfaßt: Erzeugen eines zufälligen Initialisierungsvektors; Erzeugen einer neuen verschlüsselten Datenstruktur durch Verschlüsseln des Privatschlüssels (516), des Privatschlüssel-Digests (518) und des zufälligen Initialisierungsvektors unter Benutzung des symmetrischen Schlüssels; und Speichern der neuen verschlüsselten Datenstruktur in dem Speicher des Computersystems (504).
DE112005001654T 2004-07-14 2005-07-08 Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD Expired - Fee Related DE112005001654B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/892,265 US7792303B2 (en) 2004-07-14 2004-07-14 Method of delivering direct proof private keys to devices using a distribution CD
US10/892,265 2004-07-14
PCT/US2005/024486 WO2006025952A2 (en) 2004-07-14 2005-07-08 Method of delivering direct proof private keys to devices using a distribution cd

Publications (2)

Publication Number Publication Date
DE112005001654T5 DE112005001654T5 (de) 2007-11-22
DE112005001654B4 true DE112005001654B4 (de) 2011-07-21

Family

ID=35599438

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001654T Expired - Fee Related DE112005001654B4 (de) 2004-07-14 2005-07-08 Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD

Country Status (6)

Country Link
US (1) US7792303B2 (de)
JP (1) JP4616345B2 (de)
CN (1) CN101019368B (de)
DE (1) DE112005001654B4 (de)
GB (1) GB2430518B (de)
WO (1) WO2006025952A2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285991B2 (en) * 2000-10-25 2012-10-09 Tecsec Inc. Electronically signing a document
US7802085B2 (en) * 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7697691B2 (en) * 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US7792303B2 (en) 2004-07-14 2010-09-07 Intel Corporation Method of delivering direct proof private keys to devices using a distribution CD
US7693286B2 (en) * 2004-07-14 2010-04-06 Intel Corporation Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
CA2510366C (en) 2005-06-14 2013-02-26 Certicom Corp. System and method for remote device registration
SG162784A1 (en) * 2005-06-14 2010-07-29 Certicom Corp System and method for remote device registration
CA2642363C (en) 2006-02-28 2016-02-02 Certicom Corp. System and method for product registration
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
JP4449933B2 (ja) * 2006-03-31 2010-04-14 ブラザー工業株式会社 電子証明書発行システム、電子証明書発行装置、通信装置、及び、プログラム
US8761402B2 (en) * 2007-09-28 2014-06-24 Sandisk Technologies Inc. System and methods for digital content distribution
US8724819B2 (en) * 2007-10-16 2014-05-13 Nokia Corporation Credential provisioning
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
GB201511385D0 (en) * 2015-06-29 2015-08-12 Nagravision Sa Secure programming of secret data
CN107171801B (zh) * 2017-04-27 2020-06-23 西安诺瓦星云科技股份有限公司 加密绑定及加密显示控制的方法和装置、显示屏系统
CN110492989B (zh) * 2019-08-23 2020-11-13 广州华多网络科技有限公司 私钥的处理方法、访问方法和对应方法的介质、装置
GB2612125B (en) * 2021-10-22 2024-02-21 Pragmatic Semiconductor Ltd Identifier generation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999031842A1 (en) * 1997-12-18 1999-06-24 Intel Corporation Conditional use private key distribution

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US524094A (en) * 1894-08-07 Fountain cleansing-brush
US5857021A (en) * 1995-11-07 1999-01-05 Fujitsu Ltd. Security system for protecting information stored in portable storage media
US5771291A (en) * 1995-12-11 1998-06-23 Newton; Farrell User identification and authentication system using ultra long identification keys and ultra large databases of identification keys for secure remote terminal access to a host computer
JP3221569B2 (ja) 1996-01-23 2001-10-22 グローバルメディアオンライン株式会社 情報表示システム
US5924094A (en) 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
JP3626340B2 (ja) * 1996-12-26 2005-03-09 株式会社東芝 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法
US6438666B2 (en) * 1997-09-26 2002-08-20 Hughes Electronics Corporation Method and apparatus for controlling access to confidential data by analyzing property inherent in data
US6185316B1 (en) * 1997-11-12 2001-02-06 Unisys Corporation Self-authentication apparatus and method
US6032260A (en) 1997-11-13 2000-02-29 Ncr Corporation Method for issuing a new authenticated electronic ticket based on an expired authenticated ticket and distributed server architecture for using same
US6151676A (en) * 1997-12-24 2000-11-21 Philips Electronics North America Corporation Administration and utilization of secret fresh random numbers in a networked environment
US6032261A (en) 1997-12-30 2000-02-29 Philips Electronics North America Corp. Bus bridge with distribution of a common cycle clock to all bridge portals to provide synchronization of local buses, and method of operation thereof
US6036061A (en) 1998-04-27 2000-03-14 O'donnell; Thomas F. Retainer for blank of split cap
US6611812B2 (en) * 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
US6389403B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation Method and apparatus for uniquely identifying a customer purchase in an electronic distribution system
US6826616B2 (en) * 1998-10-30 2004-11-30 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network
WO2000049764A1 (en) 1999-02-18 2000-08-24 Sun Microsystems, Inc. Data authentication system employing encrypted integrity blocks
FI112315B (fi) 1999-05-11 2003-11-14 Nokia Corp Integriteetin suojausmenetelmä radioverkkosignalointia varten
US6928615B1 (en) 1999-07-07 2005-08-09 Netzero, Inc. Independent internet client object with ad display capabilities
US7216110B1 (en) 1999-10-18 2007-05-08 Stamps.Com Cryptographic module for secure processing of value-bearing items
GB9929050D0 (en) 1999-12-08 2000-02-02 Nokia Networks Oy Communication method
GB0004178D0 (en) 2000-02-22 2000-04-12 Nokia Networks Oy Integrity check in a communication system
EP1258164A1 (de) 2000-02-24 2002-11-20 Siemens Aktiengesellschaft Verfahren zur durchführung eines hard-handover-vorgangs in einem mobilfunksystem
JP2002041461A (ja) * 2000-07-31 2002-02-08 Nippon Telegraph & Telephone East Corp 電子会議システムにおける会議資料の共用方法ならびにシステム
US6829250B2 (en) 2000-08-10 2004-12-07 Verizon Communications Inc. Automatic programming of customer premises equipment for vertical services integration
US6749511B2 (en) 2000-08-17 2004-06-15 Adam S. Day Website promotional applet process
US7178030B2 (en) 2000-10-25 2007-02-13 Tecsec, Inc. Electronically signing a document
US20020080190A1 (en) * 2000-12-23 2002-06-27 International Business Machines Corporation Back-up and usage of secure copies of smart card data objects
GB0103416D0 (en) 2001-02-12 2001-03-28 Nokia Networks Oy Message authentication
JP2002261749A (ja) * 2001-02-27 2002-09-13 Matsushita Electric Ind Co Ltd 通信システム
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6941456B2 (en) * 2001-05-02 2005-09-06 Sun Microsystems, Inc. Method, system, and program for encrypting files in a computer system
ITPD20010125A1 (it) 2001-05-31 2002-12-01 Lindhaus Srl Utensile perfezionato multiuso per macchine di pulizia.
JP4145118B2 (ja) 2001-11-26 2008-09-03 松下電器産業株式会社 アプリケーション認証システム
US8332650B2 (en) * 2002-03-22 2012-12-11 Microsoft Corporation Systems and methods for setting and resetting a password
DE10218835B4 (de) 2002-04-22 2009-09-10 Deutscher Sparkassen Verlag Gmbh Verfahren zum Herstellen einer Chipkarte und Chipkarte
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
EP1617587A1 (de) 2004-07-12 2006-01-18 International Business Machines Corporation Methode, System und Computerprogrammprodukt zur vertraulichen Integritätsbestätigung einer Computer Plattform
US7697691B2 (en) 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US7693286B2 (en) 2004-07-14 2010-04-06 Intel Corporation Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US7792303B2 (en) 2004-07-14 2010-09-07 Intel Corporation Method of delivering direct proof private keys to devices using a distribution CD
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999031842A1 (en) * 1997-12-18 1999-06-24 Intel Corporation Conditional use private key distribution

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Menezes, A.J. *
van Oorschot, P.C. *
Vanstone, S.A.: "Handbook of Applied Cryptography", CRC Press LLC, 1997, S. 321-322, ISBN 0-8493-8523-7 *

Also Published As

Publication number Publication date
WO2006025952A3 (en) 2007-02-01
CN101019368B (zh) 2014-07-23
WO2006025952A2 (en) 2006-03-09
JP4616345B2 (ja) 2011-01-19
GB2430518B (en) 2009-01-14
GB2430518A (en) 2007-03-28
US7792303B2 (en) 2010-09-07
CN101019368A (zh) 2007-08-15
JP2008506338A (ja) 2008-02-28
GB0700526D0 (en) 2007-02-21
DE112005001654T5 (de) 2007-11-22
US20060013399A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE112005001672B4 (de) Verfahren zum Liefern eines geheimen Direktnachweisschlüssels an Vorrichtungen unter Verwendung eines Onlinedienstes
DE69534212T2 (de) Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung
DE102013203415B4 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
DE60311036T2 (de) Verfahren zur Authentisierung potentieller Mitglieder eingeladen, eine Gruppe anzuschliessen
DE69720614T2 (de) Verschlüsselungseinheit mit Kontaktpunktlogik
DE69704684T2 (de) Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip
DE112011100182B4 (de) Datensicherheitsvorrichtung, Rechenprogramm, Endgerät und System für Transaktionsprüfung
DE60314060T2 (de) Verfahren und Vorrichtung zur Schlüsselverwaltung für gesicherte Datenübertragung
DE60200081T2 (de) Sichere Benutzer- und Datenauthenifizierung über ein Kommunikationsnetzwerk
DE112008001436T5 (de) Sichere Kommunikation
DE102010027586B4 (de) Verfahren zum kryptographischen Schutz einer Applikation
EP1745651A1 (de) Verfahren zur authentifizierung von sensordaten und zugehörigem sensor
WO2019034509A1 (de) Verfahren zum sicheren ersetzen eines bereits in ein gerät eingebrachten ersten herstellerzertifikats
DE102020205993B3 (de) Konzept zum Austausch von kryptographischen Schlüsselinformationen
EP2499774B1 (de) Verfahren und system zur beschleunigten entschlüsselung von kryptographisch geschützten nutzdateneinheiten
EP3422274A1 (de) Verfahren zur konfiguration oder änderung einer konfiguration eines bezahlterminals und/oder zur zuordnung eines bezahlterminals zu einem betreiber
EP2491513B1 (de) Verfahren und system zum bereitstellen von edrm-geschützten datenobjekten
DE102020206039A1 (de) Erstellen einer Container-Instanz
EP3627755A1 (de) Verfahren für eine sichere kommunikation in einem kommunikationsnetzwerk mit einer vielzahl von einheiten mit unterschiedlichen sicherheitsniveaus
DE102019003673B3 (de) Seitenkanalsichere Implementierung
DE69935980T2 (de) Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes
DE19642371C1 (de) Verfahren zum Austausch kryptographischen Schlüsselmaterials zwischen mindestens einer ersten Computereinheit und einer zweiten Computereinheit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20111022

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee