-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft allgemein das Gebiet der Datenübertragung
und im Besonderen Systeme und Verfahren zum Bereitstellen einer
gesicherten Datenübertragung
und zur Verwaltung kryptographischer Schlüssel.
-
HINTERGRUND DER ERFINDUNG
-
Kryptographietechniken
werden in Datennetzwerken verwendet, um Daten sicher von einer Stelle
in einem Netzwerk zu einer anderen Stelle im Netzwerk zu senden.
Eine mit dem Netzwerk verbundene Vorrichtung verschlüsselt typischerweise
Daten unter Verwendung eines Chiffrieralgorithmus und eines Verschlüsselungsschlüssels. Die
Vorrichtung sendet die verschlüsselten
Daten über
das Netzwerk zu einer anderen Vorrichtung, die die Daten unter Verwendung
des Chiffrieralgorithmus und eines Entschlüsselungsschlüssels entschlüsselt.
-
Bei
diesem Szenario ist es entscheidend, dass die zwei Vorrichtungen über kompatible
Chiffrierschlüssel
vertilgen. Das bedeutet, der Entschlüsselungsschlüssel kann
mit dem Verschlüsselungsschlüssel verschlüsselte Nachrichten
entschlüsseln. In
symmetrischen Kryptographiesystemen werden identische Chiffrierschlüssel dazu
verwendet, die Daten zu verschlüsseln
und zu entschlüsseln.
In asymmetrischen Kryptographiesystemen werden separate öffentliche
und private Chiffrierschlüssel
dazu verwendet, die Daten zu verschlüsseln und zu entschlüsseln.
-
Es
wurden mehrere Standards entwickelt, um die Datenübertragung über Datennetzwerke
zu sichern. Beispielsweise kann das Internet-Security-Protokoll
(für gewöhnlich als "IPsec" bezeichnet) dazu
verwendet werden, sichere Host-zu-Host-Verbindungen und virtuelle private Netzwerke über das Internet
einzurichten. Zu diesem Zweck definiert IPsec einen Satz Spezifikationen
zur kryptographischen Verschlüsselung
und Authentifizierung. IPsec unterstützt mehrere Algorithmen zum
Schlüsselaustausch,
einschließlich
eines Internet-Key-Exchange-("IKE-") Algorithmus zum
Erstellen von Schlüsseln
für Daten-Sitzungen
(Daten-Sessions) zwischen Hosts.
-
Das
Secure-Sockets-Layer-("SSL-") Protokoll wurde
ebenfalls entwickelt, um eine sichere Internet-Übertragung bereitzustellen.
SSL definiert Verschlüsselungs-, Server-
und Klient-Authentifizierungs- und Nachrichten-Authentifizierungstechniken. SSL
unterstützt
auch den RSA-Austausch öffentlicher
Schlüssel,
ein wohlbekanntes Verschlüsselungssystem
für öffentliche
Schlüssel.
-
Im
Allgemeinen sind Chiffrieralgorithmen relativ komplex und verbrauchen
bei ihrer Ausführung einen
erheblichen Betrag an Verarbeitungsenergie. Um den Host-Prozessor von der
Verschlüsselungs-/Entschlüsselungsverarbeitung
zu entlasten, können
anwendungsspezifische Einrichtungen, die für gewöhnlich als Kryptographiebeschleuniger
bezeichnet werden, dazu verwendet werden, die Chiffrieralgorithmen
auszuführen.
In diesem Fall müssen die
durch den Host-Prozessor gesteuerten Schlüssel mit dem Kryptographiebeschleuniger
gemeinsam benutzt werden, wenn Daten ent- oder verschlüsselt werden
sollen.
-
Die
vorstehend genannten Standards und Algorithmen benötigen irgendeine
Form des Schlüsselaustausches.
Um sicherzustellen, dass die Daten nicht durch eine unbefugte Partei
entschlüsselt
werden können,
müssen
die Schlüssel
geschützt
werden, so dass sie nur vertrauenswürdigen Parteien bekannt sind.
Daher ist es zwingend erforderlich, dass die Einrichtungen so konfiguriert
sind, dass sie Schlüssel
empfangen und speichern können,
ohne dass die Schlüssel
dabei beeinträchtigt
werden.
-
Herkömmlicherweise
umfassen Techniken zum Schutz von Schlüsseln beispielsweise das Aufbringen
von Manipulationserkennungsbeschichtungen, wie etwa Epoxid, auf
die Einrichtungen und ihre zugeordneten Datenspeicher. Derartige
Techniken werten jedoch erhebliche Wärme- und Herstellungsprobleme
auf.
-
Darüber hinaus
umfassen einige SSL-Anwendungen die Verwendung von teuren Sicherheitsmodulen,
um die Datensicherheit in einem Netzwerk zu gewährleisten. Die Funktion des
Sicherheitsmoduls besteht darin, die Verwaltung der Systemschlüssel auf
hohem Niveau durchzuführen,
die z.B. Schlüsselverteilungs-,
Schlüsselerzeugungs-
und Durchsetzungsschlüsselrichtlinien
umfasst. Bezeichnenderweise muss das Sicherheitsmodul die Schlüssel nicht
nur auf einer Sitzungsbasis schützen,
sondern auch private Schlüssel
großer
Organisationen schützen.
Somit sind Sicherheitsmodule sehr sichere Vorrichtungen (typischerweise
FIPS-140-2, Zertifizierungsniveau 2, 3 oder 4) und folglich relativ
teuer.
-
Darüber hinaus
wird SSL typischerweise bei Klient-/Webseiten-Anwendungen verwendet.
Hierbei wird für
jede TCP-Verbindung zwischen einem Klienten und der Webseite eine
einzigartige Schlüsselsitzung
mit öffentlichen
und privaten Schlüsseln
erzeugt. Infolgedessen kann das Sicherheitsmodul tausende von Schlüsseln verwalten
müssen,
um diese Verbindungen zu unterstützen.
-
Zum
Schutz dieser privaten Schlüssel
werden die meisten der Verschlüsselungs- und Entschlüsselungsoperationen
innerhalb des Sicherheitsmoduls durchgeführt. Angesichts des Umfangs
der zu bewältigenden
Aufgabe neigt dieser Ansatz dazu, relativ teuer zu sein. Demgemäß besteht
Bedarf an verbesserten Kryptographietechniken für Datennetzwerke.
-
Das
Dokument
US 2001/0026619 offenbart eine
Vorrichtung und ein Verfahren zum Verwalten von Schlüsselmaterial
in Kryptographiebeständen, wobei
ein integriertes Schlüsselverwaltungssystem bereitgestellt
wird, das zur Verwaltung von Schlüsselmaterial in mehreren Kryptographiebeständen eines einzelnen
Systems geeignet ist.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein System und
ein Verfahren bereitzustellen, die eine sichere Datenübertragung
bereitstellen und erhebliche Kosteneinsparungen realisieren.
-
Diese
Aufgabe wird durch das System gemäß Anspruch 1 und das Verfahren
gemäß Anspruch 2
gelöst.
-
Die
Erfindung betrifft Verfahren und zugeordnete Systeme zum Bereitstellen
einer sicheren Datenübertragung
und zum Verwalten von Kryptographieschlüsseln. Eine erfindungsgemäß konstruierte Vorrichtung
kann beispielsweise eine sichere Übertragung und Speicherung
von Schlüsseln
sowie eine Entschlüsselung
und Verschlüsselung
von Daten bereitstellen, die mit einer sehr hohen Datenrate über das
Netzwerk gesendet werden.
-
Eine
Ausführungsform
der Erfindung stellt eine sichere Schlüsselverwaltung bereit, wenn
separate Vorrichtungen zum Erzeugen und Nutzen der Schlüssel verwendet
werden. Beispielsweise umfasst ein System, das einen Kryptographiebeschleuniger
verwendet, typischerweise einen separaten Prozessor, der die Schlüssel erzeugt
(z.B. einen Host-Prozessor). Daher werden die Schlüssel zu
einem bestimmten Zeitpunkt von dem Host-Prozessor an den Kryptographiebeschleuniger
gesendet, so dass der Kryptographiebeschleuniger die empfangenen
verschlüsselten
Daten entschlüsseln
kann. Gemäß dieser
Ausführungsform
der Erfindung verschlüsselt
der Host-Prozessor die Schlüssel
bevor er sie an den Kryptographiebeschleuniger sendet. Dies umfasst
die Verwendung eines anderen Schlüssels, der Schlüsselverschlüsselungsschlüssel ("KEK" – Key Encryption Key) genannt
wird. Der Kryptographiebeschleuniger wiederum umfasst eine Entschlüsselungsschaltung
zum Entschlüsseln
der Schlüssel
unter Verwendung des KEK. Der Kryptographiebeschleuniger umfasst
außerdem
einen Schlüssel-Manager
(Schlüsselverwalter),
der den Austausch des KEK, der zum Verschlüsseln und Entschlüsseln der
durch den Host-Prozessor erzeugten Schlüssel verwendet wird.
-
Eine
Ausführungsform
der Erfindung stellt eine sichere Speicherung von Schlüsseln bereit,
die in einer ansonsten ungesicherten Datenbank gespeichert sind.
Gemäß dieser
Ausführungsform
der Erfindung verschlüsselt
der Prozessor, der die Schlüssel erzeugt,
die Schlüssel
bevor er sie an die Datenbank sendet. Wie bei der obigen Ausführungsform
umfasst dies die Verwendung eines KEK. Der Prozessor, der die Daten
entschlüsselt,
umfasst eine Entschlüsselungsschaltung,
die den KEK zum Entschlüsseln
der Schlüssel
verwendet. Wiederum wird ein Schlüssel-Manager dazu verwendet,
den Austausch des KEK zu erleichtern, der zum Ver- und Entschlüsseln der
in der Datenbank gespeicherten Schlüssel verwendet wird.
-
Eine
Ausführungsform
der Erfindung stellt eine Schlüsselsicherung
in Verbindung mit einer Hochgeschwindigkeitsver- und -entschlüsselung
bereit, ohne die Leistung des Datennetzwerks zu beeinträchtigen.
Hierbei führt
ein Kryptographiebeschleuniger die Chiffrieralgorithmen für die über das
Netzwerk gesendeten Daten durch und eine Stromchiffriereinrichtung
entschlüsselt
die verschlüsselten Schlüssel, die
den über
das Netzwerk gesendeten Daten zugeordnet sind. Bezeichnenderweise
muss, durch die Verwendung eines einzelnen KEK zum Verschlüsseln sämtlicher
den Netzwerkdaten zugeordneter Schlüssel, der Schlüsselstrom
für die
Stromchiffriereinrichtung nicht in Echtzeit berechnet werden. Infolgedessen
können
die Schlüssel
unter Verwendung relativ einfacher und daher schneller Operationen
entschlüsselt
werden.
-
Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Verwalten wenigstens
eines Chiffrierschlüssels
bereitgestellt, das die Schritte umfasst:
- – Verschlüsseln wenigstens
eines Chiffrierschlüssels,
- – Speichern
des wenigstens einen verschlüsselten
Chiffrierschlüssels
in wenigstens einem Datenspeicher,
- – Empfangen
wenigstens einer Nachricht, die wenigstens einer Sitzung zugeordnet
ist, und
- – Ermitteln
wenigstens eines gespeicherten Chiffrierschlüssels, der der wenigstens einen
Sitzung zugeordnet ist.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
ermittelten Chiffrierschlüssels
zum Ver- oder Entschlüsseln
der wenigstens einen Nachricht.
-
Vorteilhafterweise
umfasst die wenigstens eine Nachricht mit einem öffentlichen Schlüssel verschlüsselte Daten,
und der wenigstens eine gespeicherte Chiffrierschlüssel umfasst
einen privaten Schlüssel.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Ableitens von der wenigstens einen
Sitzung zugeordneten Sitzungsschlüsseln (Session-Keys) von den
Daten.
-
Vorteilhafterweise
umfasst das Verfahren ferner die Schritte:
- – Verschlüsseln der
Sitzungsschlüssel,
- – Speichern
der Sitzungsschlüssel
in wenigstens einem Datenspeicher,
- – Empfangen
wenigstens einer nachfolgenden Nachricht, die der wenigstens einen
Sitzung zugeordnet ist,
- – Ermitteln
der der wenigstens einen Sitzung zugeordneten, gespeicherten Sitzungsschlüssel,
- – Entschlüsseln des
ermittelten Sitzungsschlüssels,
und
- – Verwenden
des entschlüsselten
Sitzungsschlüssels
zum Ent- und Verschlüsseln
der wenigstens einen nachfolgenden Nachricht.
-
Vorteilhafterweise
umfasst das Verfahren ferner die Schritte:
- – Senden
der wenigstens einen Nachricht an eine integrierte Schaltung,
- – Senden
des wenigstens einen ermittelten Chiffrierschlüssels an die integrierte Schaltung,
und
- – Entschlüsseln des
wenigstens einen ermittelten Chiffrierschlüssels in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Entschlüsseln
der wenigstens einen Nachricht in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Verschlüsseln
der wenigstens einen Nachricht in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst der Schritt des Entschlüsselns
des wenigstens einen ermittelten Chiffrierschlüssels die Verwendung wenigstens
eines symmetrischen Schlüssels,
wobei das Verfahren ferner den Schritt des Speicherns des wenigstens
einen symmetrischen Schlüssels
in der integrierten Schaltung umfasst.
-
Vorteilhafterweise
umfasst der Schritt des Entschlüsselns
des wenigstens einen ermittelten Chiffrierschlüssels die Verwendung wenigstens
eines asymmetrischen Schlüssels,
wobei das Verfahren ferner den Schritt des Speicherns des wenigstens
einen asymmetrischen Schlüssels
in der integrierten Schaltung umfasst.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Entschlüsselns des
wenigstens einen ermittelten Chiffrierschlüssels unter Verwendung einer
Stromchiffriereinrichtung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Entschlüsseln
der wenigstens einen Nachricht.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Verschlüsseln
der wenigstens einen Nachricht.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
symmetrischen Schlüssels
zum Ver- oder Entschlüsseln
des wenigstens einen ermittelten Chiffrierschlüssels.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
symmetrischen Schlüssels
zum Ver- oder Entschlüsseln
des wenigstens einen ermittelten Chiffrierschlüssels.
-
Gemäß einem
anderen Aspekt der Erfindung wird ein Sicherheitsverarbeitungssystem
bereitgestellt, das umfasst:
- – wenigstens
einen Prozessor zum Verschlüsseln wenigstens
eines Chiffrierschlüssels,
- – wenigstens
einen Datenspeicher zum Speichern des wenigstens einen verschlüsselten
Chiffrierschlüssels,
und
- – wenigstens
einen Verschlüsselungsbeschleuniger,
der dafür
ausgelegt ist, wenigstens eine Nachricht zu empfangen, zum Entschlüsseln des wenigstens
einen gespeicherten Chiffrierschlüssels und der wenigstens einen
Nachricht.
-
Vorteilhafterweise
umfasst das Sicherheitsverarbeitungssystem ferner wenigstens ein
Datennetzwerk zum Verbinden des wenigstens einen Prozessors mit
wenigstens einem Mitglied der Gruppe, die aus dem wenigstens einen
Datenspeicher und dem wenigstens einen Verschlüsselungsbeschleuniger besteht.
-
Vorteilhafterweise
umfasst das Sicherheitsverarbeitungssystem ferner wenigstens ein
Datennetzwerk zum Verbinden des wenigstens einen Datenspeichers
mit wenigstens einem Mitglied der Gruppe, die aus dem wenigstens
einen Prozessor und dem wenigstens einen Verschlüsselungsbeschleuniger besteht.
-
Vorteilhafterweise
umfasst das Sicherheitsverarbeitungssystem ferner wenigstens einen
nichtflüchtigen
Speicher zum Speichern wenigstens eines Schlüssels zum Entschlüsseln des
wenigstens einen gespeicherten Chiffrierschlüssels.
-
Vorteilhafterweise
umfasst das Sicherheitsverarbeitungssystem ferner wenigstens eine
Stromchiffriereinrichtung zum Entschlüsseln des wenigstens einen
gespeicherten Chiffrierschlüssels.
-
Gemäß einem
anderen Aspekt der Erfindung wird ein gesichertes Datenübertragungssystem
bereitgestellt, das umfasst:
- – wenigstens
einen Datenkanal,
- – wenigstens
ein Hauptsicherheitsmodul zum Verteilen der verschlüsselten
Chiffrierschlüssel über den
wenigstens einen Datenkanal, und
- – wenigstens
ein Satellitensicherheitsmodul zum Empfangen verschlüsselter
Chiffrierschlüssel über den
wenigstens einen Datenkanal und zum Ver- oder Entschlüsseln von
Daten unter Verwendung der Chiffrierschlüssel.
-
Vorteilhafterweise
umfasst das gesicherte Datenübertragungssystem
wenigstens einen Datenspeicher zum Speichern verschlüsselter
Chiffrierschlüssel.
-
Vorteilhafterweise
umfasst das wenigstens eine Satellitensicherheitsmodul wenigstens
eine Chiffriereinrichtung zum Ver- oder Entschlüsseln von Chiffrierschlüsseln.
-
Vorteilhafterweise
umfasst das gesicherte Datenübertragungssystem
wenigstens einen Datenspeicher zum Speichern verschlüsselter
Chiffrierschlüssel.
-
Vorteilhafterweise
umfasst wenigstens einer der Chiffrierschlüssel einen Schlüssel zum
Ver- oder Entschlüsseln
von Schlüsseln.
-
Vorteilhafterweise
ver- oder entschlüsselt das
wenigstens eine Satellitensicherheitsmodul Daten unter Verwendung
wenigstens eines entschlüsselten
Chiffrierschlüssels.
-
Vorteilhafterweise
umfasst wenigstens einer der Chiffrierschlüssel einen privaten Schlüssel.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein gesichertes Datenübertragungssystem bereitgestellt,
das umfasst:
- – wenigstens einen Datenkanal,
- – wenigstens
ein Hauptsicherheitsmodul zum Senden wenigstens eines Schlüsselverschlüsselungsschlüssels über eine
sichere Verbindung, die über
den wenigstens einen Datenkanal eingerichtet wird, und zum Senden
verschlüsselter
privater Schlüssel über den
wenigstens einen Datenkanal, und
- – wenigstens
ein Satellitensicherheitsmodul zum Empfangen des wenigstens einen
KEK-Verschlüsselungsschlüssels über die
sichere Verbindung, zum Empfangen der verschlüsselten privaten Schlüssel über den
wenigstens einen Datenkanal und zum Ver- oder Entschlüsseln von
Daten unter Verwendung der Chiffrierschlüssel.
-
Vorteilhafterweise
umfasst das gesicherte Datenübertragungssystem
wenigstens einen Datenspeicher zum Speichern der verschlüsselten
privaten Schlüssel.
-
Vorteilhafterweise
umfasst das wenigstens eine Satellitensicherheitsmodul wenigstens
eine Chiffriereinrichtung zum Ver- oder Entschlüsseln der privaten Schlüssel.
-
Vorteilhafterweise
umfasst das gesicherte Datenübertragungssystem
wenigstens einen Datenspeicher zum Speichern der verschlüsselten
privaten Schlüssel.
-
Vorteilhafterweise
umfasst das gesicherte Datenübertragungssystem
wenigstens einen nichtflüchtigen
Datenspeicher zum Speichern des wenigstens einen Schlüsselverschlüsselungsschlüssels.
-
Gemäß einem
weiteren Aspekt der Erfindung ist ein Verfahren zum Bereitstellen
einer gesicherten Datenübertragung
vorgesehen, das die Schritte umfasst:
- – Erhalten
eines Schlüsselverschlüsselungsschlüssels,
- – Einrichten
einer Kommunikation über
einen Datenkanal zwischen einem Hauptsicherheitsmodul und einem
Satellitensicherheitsmodul,
- – Einrichten
eines sicheren Kanals über
den Datenkanal,
- – Senden
des Schlüsselverschlüsselungsschlüssels über den
sicheren Kanal,
- – Verschlüsseln eines
privaten Schlüssels
unter Verwendung des Schlüsselverschlüsselungsschlüssels,
- – Senden
des verschlüsselten
privaten Schlüssels über den
Datenkanal, und
- – Entschlüsseln des
gesendeten privaten Schlüssels
unter Verwendung des gesendeten Schlüsselverschlüsselungsschlüssels.
-
Gemäß einem
anderen Aspekt der Erfindung wird ein Verfahren zum Verwalten wenigstens
eines Chiffrierschlüssels
bereitgestellt, das die Schritte umfasst:
- – Verschlüsseln wenigstens
eines Chiffrierschlüssels,
- – Speichern
des wenigstens einen verschlüsselten
Chiffrierschlüssels
in wenigstens einem Datenspeicher,
- – Empfangen
wenigstens eines Datenpakets, und
- – Ermitteln
wenigstens eines gespeicherten Chiffrierschlüssels, der dem wenigstens einen
Datenpaket zugeordnet ist.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
ermittelten Chiffrierschlüssels
zum Ver- oder Entschlüsseln
des wenigstens einen Datenpakets.
-
Vorteilhafterweise
umfasst das wenigstens eine Datenpaket mit einem öffentlichen
Schlüssel verschlüsselte Daten,
und der wenigstens eine gespeicherte Chiffrierschlüssel umfasst
einen privaten Schlüssel.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Ableitens von wenigstens
einer Sitzung zugeordneter Sitzungsschlüsseln von den Daten.
-
Vorteilhafterweise
umfasst das Verfahren ferner die Schritte:
- – Verschlüsseln der
Sitzungsschlüssel,
- – Speichern
der Sitzungsschlüssel
in wenigstens einem Datenspeicher,
- – Empfangen
wenigstens eines nachfolgenden Datenpakets, das der wenigstens einen
Sitzung zugeordnet ist,
- – Ermitteln
von der wenigstens einen Sitzung zugeordneten, gespeicherten Sitzungsschlüsseln,
- – Entschlüsseln der
ermittelten Sitzungsschlüssel,
und
- – Verwenden
der entschlüsselten
Sitzungsschlüssel
zum Ent- oder Verschlüsseln
des wenigstens einen nachfolgenden Datenpakets.
-
Vorteilhafterweise
umfasst das Verfahren ferner die Schritte:
- – Senden
des wenigstens einen Datenpakets an eine integrierte Schaltung,
- – Senden
des wenigstens einen ermittelten Chiffrierschlüssels an die integrierte Schaltung,
und
- – Entschlüsseln des
wenigstens einen ermittelten Chiffrierschlüssels in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Entschlüsseln
des wenigstens einen Datenpakets in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Verschlüsseln
des wenigstens einen Datenpakets in der integrierten Schaltung.
-
Vorteilhafterweise
umfasst der Schritt des Entschlüsselns
des wenigstens einen ermittelten Chiffrierschlüssels das Verwenden wenigstens
eines symmetrischen Schlüssels,
wobei das Verfahren ferner den Schritt des Speicherns des wenigstens
einen symmetrischen Schlüssels
in der integrierten Schaltung umfasst.
-
Vorteilhafterweise
umfasst der Schritt des Entschlüsselns
des wenigstens einen ermittelten Chiffrierschlüssels das Verwenden wenigstens
eines asymmetrischen Schlüssels,
wobei das Verfahren ferner den Schritt des Speicherns des wenigstens
einen asymmetrischen Schlüssels
in der integrierten Schaltung umfasst.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Entschlüsselns des
wenigstens einen ermittelten Chiffrierschlüssels unter Verwendung einer
Stromchiffriereinrichtung.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Entschlüsseln
des wenigstens einen Datenpakets.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens des wenigstens einen
entschlüsselten
Chiffrierschlüssels
zum Verschlüsseln
des wenigstens einen Datenpakets.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens wenigstens
eines symmetrischen Schlüssels
zum Ver- oder Entschlüsseln
des wenigstens einen ermittelten Chiffrierschlüssels.
-
Vorteilhafterweise
umfasst das Verfahren ferner den Schritt des Verwendens wenigstens
eines symmetrischen Schlüssels
zum Ver- oder Entschlüsseln
des wenigstens einen ermittelten Chiffrierschlüssels.
-
Gemäß einem
anderen Aspekt der Erfindung wird ein Verfahren zum Verwalten von
Chiffrierschlüsseln
bereitgestellt, das die Schritte umfasst:
- – Erzeugen
eines privaten Schlüssels,
- – Erzeugen
wenigstens eines Schlüsselverschlüsselungsschlüssels,
- – Verschlüsseln des
privaten Schlüssels
unter Verwendung des wenigstens einen Schlüsselverschlüsselungsschlüssels,
- – Senden
des wenigstens einen Schlüsselverschlüsselungsschlüssels über einen
sicheren Kanal,
- – Senden
des wenigstens einen verschlüsselten privaten
Schlüssels über einen
sicheren Kanal,
- – Speichern
des wenigstens einen verschlüsselten
privaten Schlüssels,
der über
den sicheren Kanal gesendet wurde,
- – Entschlüsseln des
gespeicherten, wenigstens einen verschlüsselten privaten Schlüssels unter Verwendung
des wenigstens einen Schlüsselverschlüsselungsschlüssels,
- – Erzeugen
wenigstens eines Sitzungsschlüssels unter
Verwendung des wenigstens einen entschlüsselten privaten Schlüssels,
- – Verschlüsseln des
wenigstens einen Sitzungsschlüssels
unter Verwendung des wenigstens einen Schlüsselverschlüsselungsschlüssels,
- – Speichern
des wenigstens einen verschlüsselten
Sitzungsschlüssels,
und
- – Entschlüsseln des
gespeicherten, wenigstens einen verschlüsselten Sitzungsschlüssels unter Verwendung
des wenigstens einen Schlüsselverschlüsselungsschlüssels, um
einen Sitzungsschlüssel
zum Ver- oder Entschlüsseln
eines Datenpakets bereitzustellen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ein
besseres Verständnis
dieser und anderer Merkmale, Aspekte und Vorteile der vorliegenden
Erfindung ergibt sich aus einem Studium der folgenden genauen Beschreibung,
der anhängigen
Ansprüche und
begleitenden Zeichnungen. Es zeigt:
-
1 ein
Blockdiagramm einer Ausführungsform
eines erfindungsgemäß ausgeführten Kryptographiesystems,
-
2 ein
Blockdiagramm einer Ausführungsform
eines erfindungsgemäß ausgeführten Kryptographiesystems
in einem Paketdatennetzwerk,
-
3 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäß ausgeführten Kryptographiesystems,
-
4 ein
Blockdiagramm einer Ausführungsform
eines erfindungsgemäß ausgeführten Kryptographiebeschleunigers,
-
5 ein
Blockdiagramm einer Ausführungsform
eines erfindungsgemäß ausgeführten Schlüssel-Managers,
-
6 ein
Flussdiagramm einer Ausführungsform
von Operationen, die erfindungsgemäß durchgeführt werden können,
-
7 ein
Flussdiagramm, das eine Ausführungsform
von Initialisierungsoperationen darstellt, die gemäß der Ausführungsform
von 2 durchgeführt
werden können,
-
8 eine
Darstellung einer Ausführungsform
einer erfindungsgemäßen Schlüsselstruktur,
-
9 ein
Flussdiagramm, das eine Ausführungsform
von Schlüsselaktualisierungsoperationen darstellt,
die gemäß der Ausführungsform
von 2 durchgeführt
werden können,
-
10 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäß ausgeführten Kryptographiesystems,
-
11 ein
Flussdiagramm, das eine Ausführungsform
von Initialisierungsoperationen darstellt, die gemäß der Ausführungsform
von 10 durchgeführt
werden können,
-
12 ein
Flussdiagramm, das eine Ausführungsform
von Paketverarbeitungsoperationen darstellt, die gemäß der Ausführungsform
von 10 durchgeführt
werden können,
-
13 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäß ausgeführten Kryptographiesystems,
und
-
14 eine
Darstellung einer Ausführungsform
eines Befehlskontexts.
-
GENAUE BESCHREIBUNG DER ERFINDUNG
-
Die
Erfindung ist nachfolgend unter Bezugnahme auf detaillierte veranschaulichende
Ausführungsformen
beschrieben. Es ist ersichtlich, dass die Erfindung auf vielerlei
Arten ausgeführt
werden kann, von denen sich einige ziemlich von den offenbarten Ausführungsformen
unterscheiden können.
Folglich sind die hierin offenbarten spezifischen strukturellen und
funktionellen Details rein veranschaulichender Natur und schränken den
Schutzumfang der Erfindung nicht ein.
-
1 ist
ein Blockdiagramm einer Ausführungsform
eines erfindungsgemäß ausgeführten Kryptographiesystems
S. Ein Host-Prozessor 120 erzeugt einen oder mehrere Schlüssel (z.B.
Chiffrierschlüssel),
die einer oder mehreren Nachrichten zugeordnet sind, die zwischen
dem Host-Prozessor 120 und dem Datennetzwerk 122 (nachfolgend
als "Netzwerk" bezeichnet) gesendet
werden. Die Schlüssel
sind typischerweise, z.B. durch Verkapseln des zugeordneten Datenspeichers 124 in
Epoxid während
der Herstellung, geschützt.
Daher sind die Schlüssel
in einem "geschützten Abschnitt" des Systems S gespeichert.
-
Der
Host-Prozessor 120 arbeitet mit einem Kryptographiebeschleuniger 128 zusammen,
um von dem Netzwerk 122 empfangene bzw. an dieses gesendete
Nachrichten zu ver- und entschlüsseln.
Das bedeutet, wenn der Host-Prozessor 120 vom Netzwerk 122 eine
verschlüsselte
Nachricht empfängt, sendet
der Host-Prozessor 120 diese Nachricht an den Kryptographiebeschleuniger 128.
Der Kryptographiebeschleuniger 128 entschlüsselt die
Nachricht und sendet die entschlüsselte
Nachricht zurück
zum Host-Prozessor 120. Im Gegensatz dazu sendet der Host-Prozessor 120,
wenn der Host-Prozessor 120 eine Nachricht sicher über das
Netzwerk 122 senden muss, die Nachricht zunächst an
den Kryptographiebeschleuniger 128. Nach dem Verschlüsseln der Nachricht
sendet der Kryptographiebeschleuniger 128 die verschlüsselte Nachricht
zur Übertragung über das
Netzwerk 122 an den Host-Prozessor 120.
-
Der
Host-Prozessor 120 kann auch der Nachricht zugeordnete
Schlüssel
an den Kryptographiebeschleuniger 128 senden. Bei einem
Paketvermittlungsnetzwerk weist der Host-Prozessor 120 typischerweise
jeder Sitzung, die der Host-Prozessor 120 über das
Netzwerk eingerichtet hat, einen einzigartigen Schlüssel zu.
Daher sendet der Host-Prozessor 120, wenn Pakete für eine gegebene
Sitzung ankommen oder versendet werden müssen, den entsprechenden Schlüssel an
den Kryptographiebeschleuniger 128, so dass der Kryptographiebeschleuniger 128 diese
Pakete ent- oder verschlüsseln
kann.
-
Gemäß dieser
Ausführungsform
der Erfindung verschlüsselt
der Host-Prozessor 120 die Schlüssel unter Verwendung eines
Schlüsselverschlüsselungsschlüssels ("KEK") 130, bevor
er sie an den Kryptographiebeschleuniger 128 sendet. Auf diese
Weise sind die Schlüssel
auch dann gesichert, wenn sie die sicheren Grenzen 126 des
Host-Prozessors 120 verlassen. Der Kryptographiebeschleuniger 128 wiederum
umfasst eine Entschlüsselungsschaltung,
die den KEK 130 zum Entschlüsseln der verschlüsselten
Schlüssel
verwendet. Aus Gründen
der Einfachheit wird der Begriff "Sicherheitsassoziation" hierin so verwendet,
dass er Schlüsselinformationen betrifft.
Diese Schlüsselinformationen
können
beispielsweise einen oder mehrere Schlüssel, einen oder mehrere verschlüsselte Schlüssel und
zugeordnete Kennungen sowie andere Informationen umfassen, wie etwa
Regeln, die sich darauf beziehen, wie die Schlüssel und die Arten von Algorithmen
zu verwenden sind, die zum Entschlüsseln der Schlüssel eingesetzt
werden können.
-
Ein
Schlüssel-Manager 132 im
Kryptographiebeschleuniger 128 arbeitet mit einem Schlüssel-Manager
im Host-Prozessor 120 zusammen, um sicherzustellen, dass beide über einen
kompatiblen KEK 130 verfügen. Der KEK 130 kann
unter Verwendung von entweder symmetrischen oder asymmetrischen
(d.h. öffentlichen)
Schlüsseln
erstellt werden.
-
Bei
einem symmetrischen Schlüssel
werden Vorkehrungen getroffen, um sicherzustellen, dass sowohl der
Host-Prozessor 120 als auch der Schlüssel-Manager 132 Zugriff
auf denselben ursprünglichen
KEK 130 haben, wenn die Systeme zum ersten Mal betrieben
werden. Darüber
hinaus kann der Host-Prozessor 120 gemäß einer Ausführungsform der
Erfindung den KEK 130 ändern.
In diesem Fall werden Vorkehrungen zum Modifizieren des vom Schlüssel-Manager 132 verwendeten
KEK 130 getroffen.
-
Alternativ
arbeiten, wenn ein asymmetrisches Schlüsselschema verwendet wird,
ein die Schlüssel
verwaltender Prozessor und ein Schlüssel-Manager 132 zusammen,
um öffentliche
und private Schlüssel
auszutauschen, die dazu verwendet werden, die KEKs 130 zu
ver- und entschlüsseln.
Auf diese Weise können
die KEKs 130 sicher zwischen dem Prozessor und dem Schlüssel-Manager 132 gesendet
werden.
-
Bei
einer Ausführungsform
wird der KEK 130 in einer nichtflüchtigen Datenspeichereinrichtung 134 gespeichert.
Bei einem symmetrischen Schlüsselsystem
kann der ursprüngliche
KEK 130 in den nichtflüchtigen
Speicher 134 programmiert werden, wenn das System hergestellt
wird. Bei einem asymmetrischen Schlüsselsystem können ein
privater Schlüssel
und ein Zertifikat in dem nichtflüchtigen Speicher 134 gespeichert
werden, wenn das System hergestellt wird. Die nichtflüchtige Speichereinrichtung 134 (z.B.
ein EEPROM) ist typischerweise durch Epoxid oder andere Mittel geschützt. Daher
können
sich der nichtflüchtige
Speicher 134 und der Schlüssel-Manager 132 in
einem "geschützten Abschnitt" des Systems befinden.
Darüber
hinaus ist das System typischerweise so ausgeführt, dass nur der Schlüssel-Manager 132 Zugriff
auf den Abschnitt des nichtflüchtigen
Speichers 134 hat, der sensible Daten, wie etwa KEKs 130,
enthält.
Alternativ kann der nichtflüchtige
Speicher 134 in die integrierte Schaltung des Schlüssel-Managers
integriert sein, um den Zugriff auf den nichtflüchtigen Speicher 134 zu
kontrollieren.
-
2 zeigt
eine weitere Ausführungsform
eines erfindungsgemäß ausgeführten Kryptographiesystems.
Dieses System umfasst einen Netzwerksteuer- ("NC"/network
controller) und Paketprozessor- ("PP-")
Block 220. Der Netzwerksteuer/Paketprozessor 220 führt den
Großteil
der Netzwerkverbindungs- und Paketverarbeitungsoperationen durch. Wenn
Pakete empfangen werden, können
diese Opera tionen das Ermitteln von Paketen im Netzwerk 222,
die für
den Host-Prozessor 224 bestimmt sind, das Entfernen von
Paket-Header-Informationen, um die Daten im Paket zu erhalten, und
das Senden der Daten an den Host-Prozessor 224 umfassen.
Wenn Pakete versendet werden, können
diese Operationen das Verkapseln und Formatieren der Pakete und das
Hinzufügen
einer geeigneten Kennung umfassen.
-
2 zeigt
außerdem
wie der Host-Prozessor 224 mit anderen Host-Prozessoren 226 und 228 kommuniziert,
indem er Verbindungen mit diesen Host-Prozessoren herstellt, um über ein
Paketnetzwerk 222, in diesem Falle das Internet, Nachrichten zu
senden. Bei einigen Anwendungen können diese Verbindungen als
Sitzungen bezeichnet werden. Daher können eine oder mehrere Sitzungen
zwischen dem Host-Prozessor 224 und
dem Host-Prozessor 226 eingerichtet werden. Des Weiteren
können
eine oder mehrere Sitzungen zwischen dem Host-Prozessor 224 und
dem Host-Prozessor 228 eingerichtet werden.
-
Nachdem
eine Verbindung hergestellt worden ist, können einige der nachfolgenden
Nachrichten, die der Sitzung zugeordnet sind, sicher gesendet werden
müssen,
beispielsweise wenn die Nachricht finanzielle Informationen enthält. In diesem
Fall arbeiten die Host-Prozessoren zusammen, um einen Schlüsselsatz
für jede
Sitzung zu erstellen, so dass jeder Host-Prozessor die von dem anderen
Host-Prozessor verschlüsselten
Daten entschlüsseln
kann. Diese Schlüssel
sind auf einzigartige Weise einer Sitzung zugeordnet und werden
als Sitzungsschlüssel 230, 232, 234 bezeichnet.
-
Protokolle,
wie etwa IPsec, machen es erforderlich, dass jedes Paket Informationen
enthält,
die angeben, welcher Schlüsselsatz
zum Entschlüsseln des
Pakets verwendet werden soll. Die Kennung besteht typischerweise
aus der Adresse der Sicherheitsassoziation oder einer der Sitzung
zugeordneten einzigartigen Kennung. Daher kann eine Kennung mit
einer Sicherheitsassoziation gespeichert werden oder nicht.
-
Bei
der Ausführungsform
gemäß 2 ermittelt
der Netzwerksteuer-/Paketprozessor 220 verschlüsselte Pakete
und sendet sie zur Entschlüsselung
an den Kryptographiebeschleuniger 236. Der Kryptographiebeschleuniger 236 entschlüsselt die Pakete
unter Verwendung des dem Paket zugeordneten Sitzungsschlüssels und
sendet das entschlüsselte
Paket zurück
zum Netzwerksteuer-/Paketprozessor 220. Der Netzwerksteuer-/Paketprozessor 220 leitet
dann die Daten zum Host-Prozessor 224 weiter.
-
Zur
weiteren Entlastung des Host-Prozessors 224 von der Rechenlast
der Paketverarbeitung, ist der Netzwerksteuer-/Paketprozessor 220 dafür verantwortlich,
die Sitzung eines gegebenen Pakets zu ermitteln und den entsprechenden
Sitzungsschlüssel
an den Kryptographiebeschleuniger 236 zu senden.
-
Gemäß dieser
Ausführungsform
der Erfindung werden diese Sitzungsschlüssel unter Verwendung eines
KEK 238 entschlüsselt
und in einer Datenbank 240 als Sicherheitsassoziationen
gespeichert. Daher ordnet der Netzwerksteuer-/Paketprozessor 220 jede
Sicherheitsassoziation einer oder mehreren bestimmten Sitzungen
zu. Wenn der Netzwerksteuer-/Paketprozessor 220 ein verschlüsseltes Paket
empfängt,
das einer Sitzung zugeordnet ist, sendet der Netzwerksteuer-/Paketprozessor 220 das Paket
und die Sicherheitsassoziation an den Kryptographiebeschleuniger 236.
-
Der
Kryptographiebeschleuniger 236 entschlüsselt die Sicherheitsassoziation
unter Verwendung des KEK 238, wie vorstehend beschrieben.
Bei dieser Ausführungsform
werden die KEKs 238 in einem nichtflüchtigen Datenspeicher (z.B.
einem EEPROM) gespeichert, der sich auf derselben integrierten Schaltung
befindet wie der der Schlüssel-Manager
und der Kryptographiebeschleuniger 236. Nach dem Entschlüsseln der
Sicherheitsassoziationen verwirft der Kryptographiebeschleuniger 236 die
entschlüsselte
Sicherheitsassoziation und sendet das entschlüsselte Paket zurück zum Netzwerksteuer-/Paketprozessor 220.
Daher verlassen unverschlüsselte
Sicherheitsassoziationen niemals den geschützten Kryptographiebeschleuniger 236.
-
Bezeichnenderweise
muss die Datenbankeinrichtung 240, da die Sicherheitsassoziationen
verschlüsselt
sind, nicht mit Epoxid oder durch andere Verfahren geschützt werden.
Darüber
hinaus kann sich die Datenbank 240 entfernt von den anderen Komponenten
in 2 befinden. Theoretisch können die verschlüsselten
Sicherheitsassoziationen in einem beliebigen Datenspeicher im Netzwerk
gespeichert werden. Infolgedessen können bei einem erfindungsgemäß ausgeführten System
erhebliche Kosteneinsparungen realisiert werden.
-
Wenn
der Host-Prozessor 224 über
das Netzwerk 222 ein Paket senden muss, sendet der Host-Prozessor 224 das
Paket und die zugeordnete Sicherheitsassoziation an den Kryptographiebeschleuniger 236.
Der Kryptographiebeschleuniger 236 entschlüsselt die
Sicherheitsassoziation und verwendet die entnommenen Sitzungsschlüsselinformationen
zum Verschlüsseln
der Paketdaten. Dann sendet der Krypto graphiebeschleuniger 236 das
verschlüsselte
Paket an den Netzwerksteuer-/Paketprozessor 220 zur Weiterleitung über das
Netzwerk 222.
-
3 zeigt
eine Ausführungsform
der Erfindung, bei der ein Sicherheitsmodul 320 das SSL-Protokoll
verwendet, um in einem Netzwerk für Datensicherheit zu sorgen.
Ein Host-Prozessor 322 (z.B. ein Server) ist an ein Netzwerk 324 angeschlossen,
um mit Klient-Anwendungen zu kommunizieren, die über andere mit dem Netzwerk 324 verbundene
Prozessoren (nicht gezeigt) laufen. Ebenso wie vorstehend beschrieben,
arbeitet der Host-Prozessor 322 mit einem Kryptographiebeschleuniger 326 und
einer Datenbank 328 zusammen, die gesicherte Sicherheitsassoziationen
enthält,
um vom Netzwerk 324 empfangene verschlüsselte Pakete zu entschlüsseln und an
das Netzwerk 324 gesendete Pakete zu verschlüsseln.
-
Wie
vorstehend besprochen, verwendet SSL ein Schlüsselschema mit öffentlichen
und privaten Schlüsseln.
Daher kann eine sichere Verbindung unter Verwendung gängiger Techniken
mit öffentlichen Schlüsseln eingerichtet
werden. Ein Server sendet beispielsweise seinen signierten öffentlichen
Schlüssel
an einen Klienten, der Klient verifiziert den öffentlichen Schlüssel und
sendet dann Sitzungsinformationen an den Server, die mit dem öffentlichen
Schlüssel
des Servers verschlüsselt
sind. Die für
die Sitzung zu verwendenden Schlüssel
werden dann von diesen Informationen und dem privaten Schlüssel des
Servers abgeleitet.
-
Das
Sicherheitsmodul 320 steuert die Schlüsselerzeugungsoperationen.
Das Sicherheitsmodul 320 behält typischerweise die privaten
Schlüssel
für den
Server und setzt Regeln durch, die sich darauf beziehen, wie private
Schlüssel
hinzugefügt und
signiert werden können.
-
Gemäß dieser
Ausführungsform
der Erfindung wird der Großteil
der Schlüsselverarbeitungsoperationen
durch den Host-Prozessor 322 und den Kryptographiebeschleuniger 326 durchgeführt. Infolgedessen
müssen
private Schlüssel
zwischen dem Sicherheitsmodul 320 und dem Host-Prozessor 322 sowie
dem Kryptographiebeschleuniger 326 weitergeleitet werden.
Zum Schutz dieser Schlüssel
verschlüsselt
sie das Sicherheitsmodul 320 mit einem KEK 332,
bevor sie (über
den Host-Prozessor 322) an
den Kryptographiebeschleuniger 326 gesendet werden.
-
Darüber hinaus
ist es vorteilhaft, da sich das Sicherheitsmodul 320 entfernt
vom Kryptographiebeschleuniger 326 befinden kann, ein asymmetrisches Schlüsselschema
zu verwenden, um den Transfer von Schlüsseln zwischen dem Sicherheits modul 320 und
dem Kryptographiebeschleuniger 326 zu sichern. Diese und
andere Aspekte dieser Ausführungsform
werden in den nachfolgenden Absätzen genauer
behandelt.
-
Bezug
nehmend nun auf die 4 und 5 wird der
Aufbau einer Ausführungsform
eines Kryptographiebeschleunigers und eines Schlüssel-Managers genauer behandelt.
-
4 zeigt
eine Ausführungsform
eines Kryptographiebeschleunigers 420, der eine Stromchiffrierschaltung
zum Entschlüsseln
von Sicherheitsassoziationen umfasst. Die Hauptfunktion des Kryptographiebeschleunigers 420 besteht
darin, verschlüsselte
Pakete zu entschlüsseln
und unverschlüsselte
Pakete für
einen Prozessor zu verschlüsseln,
der zu und von dem Netzwerk weitergeleitete Pakete handhabt, (z.B.
den Netzwerksteuer-/Paketprozessor, nicht gezeigt). Daher empfängt der
Kryptographiebeschleuniger 420 verschlüsselte Pakete und zugeordnete
verschlüsselte
Sicherheitsassoziationen und gibt das entschlüsselte Paket aus oder empfängt unverschlüsselte Pakete
und zugeordnete verschlüsselte
Sicherheitsassoziationen und gibt das verschlüsselte Paket aus.
-
Der
Kryptographiebeschleuniger umfasst eine oder mehrere Anfangs-Parser-Einheiten (IPU – initial
parsing unit) 422A und 422B, Chiffriermaschinen 424A und 424B und
einen Schlüssel-Manager 426.
Die IPUs 422A, 422B parsen (analysieren) Sicherheitsassoziationsdaten
aus den verschlüsselten/unverschlüsselten
Paketen, um die verschlüsselten
Sicherheitsassoziationen zu entschlüsseln. Die Chiffriermaschinen 424A, 424B sind
Prozessoren, die die verschlüsselten
Pakete entschlüsseln und/oder
die unverschlüsselten
Paket verschlüsseln. Bei
dieser Ausführungsform
sind die Chiffriermaschinen 424A, 424B spezifische
Prozessoren, die die entschlüsselten
Sicherheitsassoziationen von den IPUs 422A, 422B zum
Ver- oder Entschlüsseln
von Paketen verwenden. Der Schlüssel-Manager
verwaltet die KEKs 434, die zum Entschlüsseln der Sicherheitsassoziationen
verwendet werden.
-
Bei
einer Ausführungsform
umfasst die IPU 422A, 422B eine Stromchiffrierschaltung
zum Entschlüsseln
der Sicherheitsassoziationen. In diesem Fall umfasst der Schlüssel-Manager 426 einen Schlüsselstromgenerator 430,
der basierend auf dem KEK 434 einen Schlüsselstrom
erzeugt. Der Schlüssel-Manager 426 sendet
den Schlüsselstrom
zu jeder der IPUs 422A, 422B, wo er in einem Puffer 432A und 432B gespeichert
wird. Die IPU 422A, 422B umfasst eine exklusive
Oder-Schaltung (X-Oder-Schaltung) 428A und 428B,
die den gespeicherten Schlüsselstrom
und die verschlüsselte
Sicherheitsassoziation bearbeitet, um eine entschlüsselte Sicherheitsassoziation
zu erzeugen. Durch Ausführen
der Sicherheitsassoziationsdecodierung mit einer solchen einfachen
Schaltung kann eine erfindungsgemäß konstruierte Vorrichtung
Paketdaten mit Gigabit-Datenraten, ohne Leistungsverschlechterung
und unter Verwendung einer relativ kostengünstigen Architektur, verarbeiten.
-
Die
IPU 422A, 422B sendet die entschlüsselte Sicherheitsassoziation
an die Chiffriermaschine 424A, 424B. Somit empfängt die
Chiffriermaschine 424A, 424B das verschlüsselte Paket
oder das unverschlüsselte
Paket, einen entschlüsselten
Schlüssel
und, bei manchen Ausführungsformen,
andere Informationen, die für
die Entschlüsselungsoperation benötigt werden.
Die Chiffriermaschine 424A, 424B entschlüsselt/verschlüsselt das
verschlüsselte/unverschlüsselte Paket
unter Verwendung des Schlüssels
und sendet das entschlüsselte/verschlüsselte Paket
zurück
zum Prozessor (z.B. den Netzwerksteuer-/Paketprozessor). Bezeichnenderweise
kann diese Ausführungsform
so implementiert werden, dass die entschlüsselte Sicherheitsassoziation
den Kryptographiebeschleuniger 420 nicht verlässt.
-
5 stellt
eine Ausführungsform
eines Schlüssel-Managers 520 dar.
Die Hauptfunktion des Schlüssel-Managers 520 besteht
darin, den KEK oder den zugeordneten Strom einer Entschlüsselungsmaschine
zuzuführen,
die Sicherheitsassoziationen, wie etwa Sitzungsschlüssel, entschlüsselt (z.B. der
IPU, nicht gezeigt). Zu diesem Zweck, ist der Schlüssel-Manager 520 dem
Prozessor zugeordnet, der die Schlüssel erzeugt (z.B. dem Host-Prozessor, nicht
gezeigt).
-
Der
Schlüssel-Manager 520 umfasst
eine Steuerstatusmaschine 522, die den gesamten Betrieb
des Schlüssel-Managers 520 steuert,
einschließlich
des Betriebs eines Triple-DES- ("3DES") Kerns 524 und
einer EEPROM-Steuereinheit 526. Der 3DES-Kern 524 führt Authentifizierungs-
und Verschlüsselungsoperationen
durch. Bei einer Ausführungsform
unterstützt
der 3DES-Kern 524 eine 3DES-CBC-Verschlüsselung (MAC) und eine 3DES-OFB-Verschlüsselung.
Bei dieser Ausführungsform
verwenden die CBC-Verschlüsselungsoperation,
die für
die MAC- (Message Authentication Code – Nachrichtenauthentifizierungscode-)
Betriebsart verwendet wird, und die OFB-Verschlüsselungs-/Entschlüsselungs-Betriebsart
denselben Hardwareaufbau. Hierbei umfasst die CBC-Verschlüsselungsoperation
eine exklusive Oder-Verknüpfung
von einfachen Textdaten mit dem Anfangsvektor oder einem vorherigen
verschlüsselten
Datenblock. Die OFB-Operation kann in derselben Hardware durchgeführt werden,
wobei alle Nullen für
den einfachen Text verwendet werden. Die resultierenden Daten sind
der über
die Leitung 528 ausgegebene Schlüsselstrom (KS – key stream).
Details der CBC- und OFB-Betriebsarten für DES/3DES sind der Publikation "FIPS-81 Modes of
Operation" zu entnehmen.
-
Der
Schlüssel-Manager 520 umfasst
außerdem
ein Steuerregister 530, das an den Kryptographiebeschleuniger
angeschlossen ist, um es dem Kryptographiebeschleuniger oder indirekt
einem anderen Prozessor zu ermöglichen,
Informationen von dem Schlüssel-Manager 520 zu
steuern und zu empfangen. Schließlich umfasst der Schlüssel-Manager 520 außerdem die
Datenspeicher 532, 534 und 536 für Schlüssel und
andere Daten.
-
Bezug
nehmend nun auf die 6 bis 9 werden
beispielhafte Operationen einer Ausführungsform eines Kryptographiesystems
genauer behandelt.
-
6 zeigt
typische Operationen, die von einem erfindungsgemäßen Kryptographiesystem durchgeführt werden
können.
Dieses Beispiel beschreibt eine Ausführungsform, die einen symmetrischen
Schlüssel
verwendet.
-
Das
Flussdiagramm beginnt im Block 600 mit Operationen, die
sich im Allgemeinen auf Initialisierungsoperationen beziehen. Bezug
nehmend beispielsweise auf das System gemäß 2 wird bei der
Herstellung des Systems der Anfangswert für den KEK in das EEPROM und
den Host-Prozessor geladen (Block 602).
-
Bezug
nehmend nun auf 7 wird eine Ausführungsform
von Inbetriebnahmeoperationen (Block 604, 6)
für den
Schlüssel-Manager
im Detail ausgeführt.
Beim Reset (Zurückstellen)
(Block 700) wartet der Schlüssel-Manager auf den INIT_KEY-Befehl (Initiiere-Schlüssel-Befehl)
(Block 702). Wahlweise kann ein Eingangssignal SEN (nicht gezeigt)
von einer externen Einrichtung dazu verwendet werden, den INIT_KEY-Befehl
zu initiieren. Der Schlüssel-Manager
liest die Sequenznummer aus beiden Schlüsselstellen im EEPROM (Block 704).
Die Sequenznummern werden verglichen, um die "größere" der zwei Nummern
zu bestimmen (Block 706). Die Schlüsselstelle mit der größten Sequenznummer
wird durch den Schlüssel-Manager aus
dem EEPROM gelesen (Blöcke 708 oder 710). Die
aus der Schlüsselstelle
gelesenen Daten werden unter Verwendung des DES-MAC-Algorithmus
verifiziert, wobei der Anfangsvektor = 0 und wobei ein festgelegter
interner Schlüssel
Kbf="reubkram" (Block 712)
verwendet wird.
-
Wenn
der MAC angenommen wird, wurde die korrekte Schlüsselstelle gewählt. Der
Schlüssel-Manager
lädt dann
die Anfangsvektor-, KMAC- und KEK-Werte in interne Register (Block 716).
Die FLAGS/Seq.Nr.-Felder werden in ein Register gesetzt, das vom
Host-Prozessor lesbar ist. Wenn der MAC nicht angenommen wird, wird
die andere Schlüsselstelle
verwendet, um das MAC-Verfahren zu wiederholen (Blöcke 714 und 718).
Wenn beide nicht angenommen werden, tritt der Schlüssel-Manager
in einen Fehlerzustand ein (Block 720).
-
Sobald
die richtige Schlüsselstelle
in der Initiierungsphase bestimmt worden ist, erzeugt der Schlüssel-Manager
den Schlüsselstrom,
der für
die Sicherheitsassoziationsentschlüsselung nötig ist (Block 722).
-
8 zeigt
eine Ausführungsform
einer Schlüsselstruktur 834, 836,
die in Verbindung mit einem symmetrischen KEK verwendet werden kann. Die
Schlüsselstruktur
umfasst Flags (Marken) 822, die beispielsweise dazu verwendet
werden können, anzugeben,
ob der KEK-Wert aktualisiert werden kann. Die Sequenznummer (Seq.-Nr.) 824 wird
bei jedem neuen KEK-Wert, der in den Schlüssel-Manager geladen wird,
inkrementiert. NOUNCE 826 ist ein 32Bit-Zufallswert, der
zusammen mit der Sequenznummer verwendet wird, um den Anfangsvektor
für die
Verschlüsselung
mit dem KEK zu erzeugen. KMAC 828 enthält den Schlüssel, der zum Authentifizieren
einer Schlüsselaktualisierungsoperation
verwendet wird. KEK 830 ist der Schlüsselverschlüsselungsschlüssel, der
dazu verwendet wird, den Schlüsselstrom
zum Entschlüsseln
der Sicherheitsassoziationen zu erzeugen. Strukt-MAC 832 ist
der Nachrichtenauthentifizierungscode für die Schlüsselstruktur. Dieser MAC wird
unter Verwendung des Anfangsvektors = 0 und des internen Kbf-Schlüssels berechnet.
Wie vorstehend in Zusammenhang mit 7 besprochen,
sind im EEPROM zwei Schlüsselstrukturen 834 und 836 gespeichert.
-
Bezug
nehmend nochmals auf 6, liest der Schlüssel-Manager,
wenn das System zum ersten Mal hochgefahren wird, den KEK aus dem
EEPROM aus und speichert ihn in den Schlüsselstrukturdatenspeicher.
Der KEK wird dann an den 3DES gesendet, das den Schlüsselstrom
erzeugt (Block 606). Bei einer Ausführungsform wird der Schlüsselstrom
im Ausgangsregister gespeichert bis es von einer IPU benötigt wird.
-
Der
Schlüsselstrom
wird unter Verwendung einer 3DES-OFB-Verschlüsselung erzeugt, wobei der
Anfangsvektor unter Verwendung des NOUNCE- und des Seq.-Nr.-Werts (IV = (FLAGS/SEQ. & NOUNCE)) generiert
wird. Der Verschlüsselungsschlüssel ist
der KEK. Der Schlüsselstrom
wird mit jeweils 64 Bit erzeugt und über einen 1 Bit-Bus an einen
externen Zielblock übertragen.
-
Wenn
der Host-Prozessor Kommunikationen mit anderen Host-Prozessoren
beginnt, handelt er typischerweise einen Schlüsselsatz aus, der während dieser
Kommunikationen verwendet werden soll. Beispielsweise bei Verwendung
des Internet-Key-Exchange-
("IKE"/Internet-Schlüsselaustausch-)
Protokolls, verhandelt der Host-Prozessor
mit einem Peer (gleichrangigen Gerät), um 2 Schlüsselsätze für jede Sitzung
zwischen den Peers zu erzeugen (Block 608). Somit erzeugt
der Host-Prozessor,
mit der Zeit, einen Schlüsselsatz
in einer Schlüsseldatenbank. Der
Host-Prozessor fügt der Datenbank
Schlüssel hinzu
und löscht
Schlüssel
aus dieser heraus, wenn Sitzungen erzeugt bzw. beendet werden.
-
Der
Host-Prozessor 224 verschlüsselt jeden der Sitzungsschlüssel unter
Verwendung des KEK und sendet sie an den Netzwerksteuer-/Paketprozessor 220.
Einem jeden der verschlüsselten
Schlüssel wird
eine Kennung zugeordnet, die den Schlüssel einer bestimmten Sitzung
zuordnet. Der Netzwerksteuer-/Paketprozessor 220 speichert
die verschlüsselten Sicherheitsassoziationen
(z.B. die verschlüsselten Schlüssel zusammen
mit ihren zugeordneten Kennungen) in einer Datenbank 240 (Block 610).
-
An
diesem Punkt ist das Initialisierungsverfahren im Wesentlichen abgeschlossen.
Das System ist somit bereit, verschlüsselte Pakete zu empfangen oder
zu senden.
-
Wenn
ein entfernter Peer während
einer Sitzung verschlüsselte
Daten an den Host-Prozessor sendet,
verschlüsselt
der Peer die Daten unter Verwendung des vereinbarten Schlüssels. Der
Peer setzt die Daten zu einem Paket zusammen, einschließlich der
Kennung (z.B. wie durch IPsec definiert), die dem zum Entschlüsseln des
Pakets zu verwendenden Schlüssel
zugeordnet ist (Block 612).
-
Wenn
ein verschlüsseltes
Paket von dem Netzwerksteuer-/Paketprozessor (NC/PP) 220 empfangen
wird, liest der Netzwerksteuer-/Paketprozessor 220 die
Kennung im Paket, um zu bestimmen, welche Sicherheitsassoziation
mit diesem Paket zu verwenden ist (Block 614). Wenn die
Kennung beispielsweise aus der Adresse der Sicherheitsassoziation
besteht, liest der Netzwerksteuer-/Paketprozessor 220 die
Daten aus dieser Adresse in der Datenbank 240 aus. Alternativ
kann der Netzwerksteuer-/Paketprozessor 220, wenn die Sicherheitsassoziation
die Kennung umfasst, die Datenbank nach einer Sicherheitsassoziation
abfragen, die eine Kennung enthält,
welche mit der Kennung des Pakets übereinstimmt. Der Netzwerksteu er-/Paketprozessor 220 sendet
das Paket und die Sicherheitsassoziation (SA) an den Kryptographiebeschleuniger 236 (Block 616).
-
Der
Kryptographiebeschleuniger 236 entschlüsselt die Sicherheitsassoziation
unter Verwendung des Schlüsselstroms
und sendet den entschlüsselten
Sitzungsschlüssel
an die Chiffriermaschine 424A, 424B (Block 618).
Die Chiffriermaschine 424A, 424B entschlüsselt das
verschlüsselte
Paket unter Verwendung des Sitzungsschlüssels (Block 620)
und sendet das verschlüsselte
Paket zurück zum
Netzwerksteuer/Paketprozessor 220. Der Netzwerksteuer-/Paketprozessor 220 wiederum
sendet das Paket zur Verarbeitung an den Host-Prozessor 224 (Block 622).
-
Das
System führt
komplementäre
Operationen durch, wenn der Host-Prozessor 224 über das Netzwerk 222 ein
sicheres Paket an einen entfernten Peer sendet.
-
9 stellt
Schlüsselaktualisierungsoperationen
dar, die in Verbindung mit den Operationen gemäß 6 durchgeführt werden
kennen. Der Schlüssel-Manager 426 stellt
einen Mechanismus zum Aktualisieren der Schlüssel (z.B. des KEK) 434 bereit,
die im EEPROM gespeichert sind. Bei einer Ausführungsform muss der Host-Prozessor 224 den vorherigen
Schlüssel
kennen, um den aktuellen Schlüssel
zu ändern.
Zunächst
füllt der
Host-Prozessor 224 die Ladewarteschlange mit 48 Bytes der
neuen verschlüsselten
Version der Schlüsselstelle
(einschließlich
des MAC-Wertes).
Der Host-Prozessor 224 füllt die Ladewarteschlange unter
Verwendung des Schreib-FIFO-Registers (Block 902). Der
Schlüssel-Manager 426 verwendet
den 3DES-MAC mit dem KMAC-Schlüssel
und dem Anfangsvektor, der gleich null ist, um die Daten in der
Ladewarteschlange als den neuen vom Schlüssel-Manager 426 verwendeten
Schlüssel
zu authentifizieren (Block 904). Wenn die Authentifizierung
fehlschlägt,
erzeugt der Schlüssel-Manager 326 ein
Fehlersignal (Block 906).
-
Wenn
die Authentifizierung erfolgreich ist, wird der Rest der Daten (NOUNCE,
neuer KMAC und neuer KEK) unter Verwendung von 3DES-OFB mit dem
aktuellen KEK entschlüsselt
(Block 908). Die entschlüsselte Sequenznummer wird als
die nächste inkrementierte
Sequenznummer (d.h. eins plus die Sequenznummer, die vom Schlüssel-Manager
angekündigt
wurde) verifiziert (Block 910). Der entschlüsselte Wert
der gesamten Schlüsselstruktur
wird an die Schlüsselstelle
gesetzt, die während
des INIT_KEY-Befehls nicht geladen wird (Block 914).
-
Die
hierin beschriebene Erfindung kann gegenüber herkömmlichen Systemen mehrere Vorteile bereitstellen.
Beispielsweise können
die Einrichtungen, die die Schlüsselerzeugung
und die Schlüsselnutzung
durchführen,
voneinander entfernt sein. Darüber
hinaus kann die Sicherheitsassoziationsdatenbank entfernt von den
anderen Komponenten im System angeordnet sein. Des Weiteren können diese Vorteile
erzielt werden, ohne die Leistung des Systems zu verschlechtern.
-
Bezug
nehmend auf die 10 bis 13 werden
Beispiele für
Strukturen und Operationen einer Ausführungsform eines Kryptographiesystems, das öffentliche
Schlüssel
verwendet, genauer behandelt.
-
10 zeigt
eine Ausführungsform
der Erfindung, die einen Austausch asymmetrischer Schlüssel unterstützt, um
in einem Netzwerk für
Datensicherheit zu sorgen. Die Ausführungsform gemäß 10 ist
der Ausführungsform
gemäß 3 ähnlich,
wobei der Hauptunterschied darin besteht, dass der Host-Prozessor 322 aus 3 durch
mehrere einzelne Komponenten ersetzt worden ist, um die Beschreibung
des Betriebs dieser Komponenten zu erleichtern. In der Praxis kann
die tatsächliche physische
Konfiguration der einzelnen Komponenten auf vielerlei Arten ausgeführt werden.
-
Wie
vorstehend in Verbindung mit 3 besprochen,
speichert das Sicherheitsmodul 1020 private Schlüssel 1022 und
steuert die Erzeugung von Schlüsseln,
wobei jedoch der Großteil
der Chiffrierverarbeitung durch den Kryptographiebeschleuniger 1026 durchgeführt wird.
Somit muss das System ein sicheres Verfahren zum Übertragen
von Schlüsseln zwischen
dem Sicherheitsmodul 1020 und den anderen Komponenten bereitstellen.
-
Im
Allgemeinen kann diese sichere Verbindung unter Verwendung einer
gängigen
Null-Kenntnis-Authentifizierungstechnik implementiert werden, die
z. B. DAS oder digitale Signaturalgorithmen umfasst. 11 beschreibt
eine Ausführungsform
von Operationen, die in Bezug auf das Einrichten dieser sicheren
Datenübertragung
durchgeführt
werden können.
Bei der Herstellung des Kryptographiebeschleunigers 1026 wird
ein privater Schlüssel 1028 im
EEPROM 1030 gespeichert. Wie vorstehend besprochen, ist
dieses EEPROM typischerweise durch Epoxid oder ein anderes Verfahren
geschützt.
Darüber
hinaus kann ein signierter öffentlicher
Schlüssel für den Kryptographiebeschleuniger
im EEPROM oder einem anderen Datenspeicher gespeichert werden (Block 1102).
Der signierte öffentliche
Schlüssel, der
für gewöhnlich als
Zertifikat bezeichnet wird, stellt eine Verifizierung von einer
vertrauenswürdigen Quelle
bereit, dass der öffentliche
Schlüssel
gültig
ist.
-
Zum
Initiieren des Austausches asymmetrischer Schlüssel sendet der Kryptographiebeschleuniger 1026 seinen öffentlichen
Schlüssel
an das Sicherheitsmodul 1020 (Block 1104). Das
Sicherheitsmodul erzeugt dann eine zufällige Zahl und sendet sie an
den Kryptographiebeschleuniger 1026 (Block 1106).
Der Kryptographiebeschleuniger 1026 verschlüsselt die
zufällige
Zahl mit seinem privaten Schlüssel
und sendet das Ergebnis zurück
zum Sicherheitsmodul 1020 (Block 1108). Das Sicherheitsmodul 1020 verwendet
den öffentlichen
Schlüssel des
Kryptographiebeschleunigers zum Entschlüsseln der verschlüsselten
zufälligen
Zahl (Block 1110). Wenn diese Prüfung bestanden wird, hat das
Sicherheitsmodul 1020 die Identität des Kryptographiebeschleunigers 1026 authentifiziert.
Das Sicherheitsmodul 1020 und der Kryptographiebeschleuniger 1026 führen typischerweise
ein ähnliches
Verfahren in umgekehrter Richtung durch, so dass der Kryptographiebeschleuniger 1026 das
Sicherheitsmodul 1020 authentifizieren kann (Block 1112).
-
An
diesem Punkt haben das Sicherheitsmodul 1020 und der Kryptographiebeschleuniger 1026 ein
sicheres Kommunikationsverfahren eingerichtet. Das Sicherheitsmodul 1020 kann
unter Verwendung des öffentlichen
Schlüssels
des Kryptographiebeschleunigers Daten an den Kryptographiebeschleuniger 1026 senden.
-
Demgemäß erzeugt
das Sicherheitsmodul 1020 einen KEKB 1032 und
einen KEKA 1040, verschlüsselt sie
(Block 1114) und sendet sie an den Kryptographiebeschleuniger 1026 (Block 1116).
Der KEKB 1032 wird dann vom Kryptographiebeschleuniger 1026 zum
Entschlüsseln
von vom Sicherheitsmodul 1020 an den Kryptographiebeschleuniger 1026 gesendeten
Schlüsseln
verwendet. Insbesondere verschlüsselt
das Sicherheitsmodul 1020 die privaten Schlüssel des
Host-Prozessors 1024 (Block 1118) und sendet sie
an die Private-Schlüssel-Datenbank 1034 (Block 1120).
-
12 beschreibt
Paketverarbeitungsoperationen, die durchgeführt werden können, sobald
die verschlüsselten
privaten Schlüssel
in die Private-Schlüssel-Datenbank 1034 geladen
worden sind. Wie vorstehend besprochen, muss, um eine Sitzung zwischen
einem Klienten und einem Server (z.B. dem Host-Prozessor 1024)
zu beginnen, ein Schlüsselsatz
für die
Sitzung erzeugt werden. Der Server sendet beispielsweise seinen
signierten öffentlichen Schlüssel an
die Klient-Anwendung (Block 1202). Nach dem Verifizieren
dieses öffentlichen
Schlüssels sendet
die Klient-Anwendung
Sitzungsinformationen an den Server, die mit dem öffentlichen
Schlüssel
des Servers verschlüsselt
sind (Block 1204). Der Server sendet diese verschlüsselten
Sitzungsinformationen an den Kryptographiebeschleuniger 1026.
Als Nächstes
ermittelt der Kryptographiebeschleuniger 1026 den zugeordneten
verschlüsselten
privaten Schlüssel
für den
Server.
-
Auf ähnliche
Art und Weise wie vorstehend besprochen, entschlüsselt der Kryptographiebeschleuniger 1026 den
verschlüsselten
privaten Schlüssel
unter Verwendung des KEKB 1032 (Block 1206).
Der Kryptographiebeschleuniger 1026 entschlüsselt dann
die verschlüsselten
Sitzungsinformationen unter Verwendung des privaten Schlüssels des
Servers. Aus den Sitzungsinformationen und dem entschlüsselten
privaten Schlüssel
wird ein gemeinsames Geheimnis erzeugt, aus dem der Kryptographiebeschleuniger 1026 einen
Schlüsselsatz
für die
Sitzung erzeugt (Block 1208). Der Kryptographiebeschleuniger 1026 verschlüsselt dann
diese Schlüssel
und sendet sie an den Klienten. Als Nächstes verschlüsselt der
Kryptographiebeschleuniger 1026 die Sicherheitsassoziation
(z.B. die Sitzungsschlüssel und,
bei manchen Ausführungsformen,
zugeordnete Informationen) unter Verwendung des KEKA 1040 (Block 1210).
Der Kryptographiebeschleuniger 1026 sendet dann die Sicherheitsassoziationsdaten
an die Sicherheitsassoziationsdatenbank 1038 (Block 1212).
-
Wenn
die Klient-Anwendung verschlüsselte Pakete
an den Server sendet (Block 1214), arbeitet der Paketprozessor 1042 mit
dem Kryptographiebeschleuniger 1044 zusammen, um die Pakete
zu entschlüsseln.
Diese Operation, wie in den Blöcken 1216–1222 beschrieben, ähnelt der
in Verbindung mit 6, in den Blöcken 612–622,
beschriebenen Operation. Wiederum führt das System komplementäre Operationen
durch, wenn der Server verschlüsselte
Pakete an die Klient-Anwendung sendet.
-
Gemäß dieser
Ausführungsform
der Erfindung kann der KEK (KEKA 1040 oder
KEKB 1032) unter Verwendung eines
Verfahrens zum Austausch asymmetrischer Schlüssel, wie beispielsweise vorstehend
beschrieben, aktualisiert werden. Demgemäß kann der KEK aktualisiert
werden, ohne dass das Sicherheitsmodul 1020 beweisen muss,
dass es den Wert des vorherigen KEK kennt.
-
Des
Weiteren stellt diese Ausführungsform dahingehend
einen deutlichen Vorteil bereit, dass das Sicherheitsmodul 1020 an
einer Stelle platziert werden kann, die von den anderen Komponenten von 10 entfernt
ist. Da der Großteil
der Schlüsselverwaltungsoperationen
nicht vom Sicherheitsmodul durchgeführt wird, kann auch ein einzelnes
Sicherheitsmodul viele Sitzungen unterstützen.
-
Darüber hinaus
stellt diese Ausführungsform einen
Vorteil gegenüber
einer Implementierung mit symmetrischen Schlüsseln bereit, wobei derselbe
ursprüngliche
Schlüssel
nicht mit den Einrichtungen versendet wird. Daher ist es nicht so
dringend erforderlich, jede Einrichtung, die versendet wird, zu
verfolgen, um den ursprünglichen
Schlüssel
zu schützen.
Darüber
hinaus kann der asymmetrische Ansatz eine Signaturspur und eine
Authentifizierungsspur bereitstellen, wodurch für eine erhöhte Systemsicherheit gesorgt
wird. Schließlich
ist es einfacher, den Host-Prozessor 1024 und das EEPROM 1030 für den Kryptographiebeschleuniger 1026 an
separaten Stellen anzuordnen, da sie nicht mit demselben ursprünglichen
Schlüsselwert
hergestellt werden müssen.
-
Die
Ausführungsform
gemäß 10 zeigt zwei
separate Kryptographiebeschleunigerkomponenten 1026, 1044.
Bei einer alternativen Ausführungsform
können
die Kryptographiebeschleuniger 1026, 1044 zu einer
einzelnen integrierten Schaltung kombiniert werden. In diesem Fall
können,
nachdem der obere Kryptographiebeschleuniger 1026 die Sitzungsschlüssel abgeleitet
hat, diese unter Verwendung eines KEK verschlüsselt und dann an die Sicherheitsassoziationsdatenbank
gesendet werden. Auf diese Weise verlassen die Sitzungsschlüssel niemals
die integrierte Schaltung des Kryptographiebeschleunigers in einem
unverschlüsselten
Zustand.
-
13 ist
ein Blockdiagramm höherer
Ebene einer Ausführungsform
eines erfindungsgemäß ausgeführten Sicherheitssystems.
Ein Hauptsicherheitsmodul 1320 kommuniziert mit einem oder
mehreren Satellitensicherheitsmodulen 1322 über einen oder
mehrere sichere Kanäle 1324.
Jedes Satellitensicherheitsmodul 1322 umfasst eine Verarbeitungsmöglichkeit
(nicht gezeigt) sowie wenigstens einen Schlüsselagenten 1326 und
wenigstens eine nichtflüchtige
Speichereinrichtung 1328. Bei einer typischen Konfiguration
befinden sich die Satellitensicherheitsmodule 1322 überall in
einem Datennetzwerk (z.B. dem Internet).
-
Wie
durch die gestrichelte Linie 1330 dargestellt, arbeiten
die Hauptsicherheitsmodule 1320, der sichere Kanal 1324 und
die Satellitensicherheitsmodule 1322 zusammen, um eine
kryptographische Grenze zu bilden. Bei einer Ausführungsform
ist das Hauptsicherheitsmodul beispielsweise FIPS-140-2-zertifiziert.
Die Anwendung der Lehren der Erfindungen ermöglicht es dem Satellitensicherheitsmodul 1322,
den kryptographischen Perimeter des Hauptsicherheitsmoduls 1320 aufrechtzuerhalten,
obgleich es physisch davon getrennt und unter einem gewissen Abstand
vom Hauptsicherheitsmodul 1320 angeordnet sein kann. Das
Satellitensicherheitsmodul 1322 kann beispielsweise in
Blade-Servern oder in Router-Service-Blades ausgeführt werden.
-
Ein
Hauptsicherheitsmodul 1320, das alle Anforderungen von
FIPS-140-2 erfüllt,
muss verschiedene Stufen des physischen Schutzes, der Zugangskontrolle
und Kryptographieschlüsselverwaltung
bereitstellen. Daher muss das Satellitensicherheitsmodul 1322,
um dieses Sicherheitsniveau überall
im System aufrechtzuerhalten, ähnliche
Schutzmaßnahmen
ausführen.
-
Für die Zwecke
dieser Offenbarung bezieht sich der Begriff "Hauptsicherheitsmodul" auf eine Einrichtung,
die als Minimum Schlüssel
verteilt, die Schlüssel
schützt,
die es verteilt, und dazu in der Lage ist, mit einer anderen Einrichtung,
die Schlüssel verwaltet
(z.B. einem Satellitensicherheitsmodul), sicher zu kommunizieren.
-
Für die Zwecke
dieser Offenbarung bezieht sich der Begriff "Satellitensicherheitsmodul" auf eine Einrichtung,
die als Minimum Daten entschlüsselt, Schlüssel schützt und
dazu in der Lage ist, mit einer anderen Einrichtung, die Schlüssel verwaltet
(z.B. einem Hauptsicherheitsmodul), sicher zu kommunizieren.
-
Der
Schlüsselagent
kann Funktionen ausführen,
die mit der Verarbeitung von Schlüsselverwaltungsprotokollnachrichten,
dem Lesen und Schreiben des nichtflüchtigen RAM (NVRAM), dem Ent-
und Verschlüsseln
von Sicherheitsassoziationen und dem Ausführen von bei FIPS-140-2 erforderlichen
Eigentestsequenzen in Zusammenhang stehen.
-
In
der Praxis können
ein Hauptsicherheitsmodul 1320 und ein Satellitensicherheitsmodul 1322 wahlweise
dafür konfiguriert
sein, eine Vielzahl anderer Funktionen auszuführen. In 3 stellen
beispielsweise das Sicherheitsmodul 1320 und der zugeordnete
Datenspeicher 330 eine Ausführungsform eines Hauptssicherheitsmoduls 1320 und
der Kryptographiebeschleuniger 326 mit seinem Schlüssel-Manager 334 und
dem EEPROM 336 eine Ausführungsform eines Satellitensicherheitsmoduls 1322 dar.
-
Die
kryptographische Grenze 1330 kann unter Verwendung der
hierin beschriebenen Techniken, wie etwa dem Verschlüsseln von
Daten in den Einrichtungen und zugeordneten Speichern, erzielt werden.
Beispielsweise erscheinen Sicherheitsassoziationen in dem Freiraum
innerhalb der kryptographischen Grenze 1330. Eine Schlüsselkomponente
der kryptographischen Grenze ist der sichere Kanal 1324.
Der sichere Kanal 1324 wird zum Initialisieren und Steuern
der Satellitensicherheitsmodule 1332 verwendet und erleichtert
die sichere Übertragung der
KEKs und Verwaltungsinformationen.
-
Bei
einer Ausführungsform
kann der sichere Kanal 1324 durch den Host-Prozessor (z.B.
den Prozessor 1024 in 10) eingerichtet
werden. Dadurch werden, obgleich der Pfad durch den Host-Prozessor nicht
inhärent
sicher ist, die Kommunikationen zwischen dem Hauptsicherheitsmodul 1320 und
dem Satellitensicherheitsmodul 1322 gesichert.
-
Typischerweise
initiiert das Hauptsicherheitsmodul 1320 die Austauschtätigkeiten über den sicheren
Kanal. Das Hauptsicherheitsmodul 1320 erzeugt beispielsweise
eine Nachricht und sendet sie an den Host-Prozessor. Der Host-Prozessor
sendet dann einen Befehl an das Satellitensicherheitsmodul 1322.
Auf diesen Befehl folgt eine Antwort vom Satellitensicherheitsmodul 1322,
die der Host-Prozessor an das Hauptsicherheitsmodul 1320 zurücksendet.
-
Der
sichere Kanal 1324 kann mit vielen unterschiedlichen Protokollen
einrichtet und ausführt werden.
Darüber
hinaus kann der sichere Kanal 1324 eine Vielzahl von Schlüsselverwaltungsnachrichten unterstützen. Es
folgen einige Beispiele. Diese Beispiele sind rein veranschaulichender
Natur und schränken
die Protokolle, die bei der Ausführung
der Erfindung verwendet werden können,
nicht ein.
-
Das
gemeinsame Geheimnis kann beispielsweise unter Verwendung von Shared-Secret-Protokollen
(Gemeinsames-Geheimnis-Protokollen), wie etwa dem unauthentifizierten
Diffie-Hellman, dem Einweg-RSA-authentifizierten Diffie-Hellman,
dem wechselseitig authentifizierten Diffie-Hellman und Shared Secret
ReKey, erstellt werden. Diese Protokolle haben die Eigenschaft,
dass sie unter Verwendung des vorstehend beschriebenen Anfrage-/Antwort-Nachrichtenformats
ausgeführt
werden können.
-
Bei
dem unauthentifizierten Diffie-Hellman teilen das Hauptsicherheitsmodul
und das Satellitensicherheitsmodul das öffentliche Wissen eines Diffie-Hellman-Falles,
der aus einer Primzahl p und einem Generator g besteht. Dies stellt
den grundlegenden Diffie-Hellman-Austausch dar.
- 1.
Der Initiator erzeugt eine zufällige
Zahl xi und eine öffentliche
Zahl yi = gxi mod p.
- 2. Der Initiator sendet yi, zusammen mit einer Nonce (Zufallswert)
Ni, an den Antwortenden.
- 3. Der Antwortende erzeugt eine zufällige Zahl xr und eine öffentliche
Zahl yr = gxr mod p.
- 4. Der Antwortende erzeugt das gemeinsame Diffie-Hellman-Geheimnis,
K = yixr mod p und die Nonce Nr.
- 5. Der Antwortende erzeugt einen so großen Schlüsselmaterialstrom, wie bei
Verwendung von HMAC(K, Ni ∥ Nr ∥ i) nötig, für I = 0,
1, 2, ...
- 6. Der Antwortende führt
yr, zusammen mit der Nonce Nr, zum Initiator zurück.
- 7. Der Initiator leitet das gemeinsame Schlüsselmaterial unter Verwendung
derselben Formel ab.
-
Die
ist ein einfaches und standardgemäßes Protokoll, das gemeinsames
Schlüsselmaterial
in FIPS-Qualität
erzeugt. Dabei muss das Satellitensicherheitsmodul nur auf die Diffie-Hellman-Fallkonstanten
zugreifen, wobei diese in der integrierten Schaltungslogik enthalten
sein könnten.
Dieser Ansatz kann jedoch für
Man-in-the-Middle-(MITM-)
Angriffe anfällig
sein, die den sicheren Kanal und alle über den sicheren Kanal ausgetauschten
KEKs beeinträchtigen
könnten.
-
Beim
Einweg-RSA-authentifizierten Diffie-Hellman teilen das Hauptsicherheitsmodul
und das Satellitensicherheitsmodul, wie vorstehend, das öffentliche
Wissen eines Diffie-Hellman-Falles. Darüber hinaus verfügt das Hauptsicherheitsmodul über einen
RSA-Schlüssel
und das Satellitensicherheitsmodul über eine vertrauenswürdige Kopie
des öffentlichen
Schlüssels
des Hauptsicherheitsmoduls.
- 1. Der Initiator
erzeugt eine zufällige
Zahl xi und eine öffentliche
Zahl yi = gxi mod p.
- 2. Der Initiator sendet yi, zusammen mit einer Nonce Ni und
seiner Signatur über
der Kombination, an den Antwortenden.
- 3. Der Antwortende verifiziert die Signatur und erzeugt eine
zufällige
Zahl xr und eine öffentliche Zahl
yr = gxr mod p.
- 4. Der Antwortende erzeugt das gemeinsame Diffie-Hellman-Geheimnis,
K = yixr mod p und die Nonce Nr.
- 5. Der Antwortende erzeugt einen so großen Schlüsselmaterialstrom, wie bei
Verwendung von HMAC(K, Ni ∥ Nr ∥ i) nötig, für I = 0,
1, 2, ...
- 6. Der Antwortende führt
yr, zusammen mit der Nonce Nr, zum Initiator zurück. Der Antwortende verwendet
den KEK aus dem Schlüsselmaterialstrom,
um HMAC(KEK, xi ∥ xr ∥ Ni ∥ Nr) zu berechnen.
- 7. Der Initiator leitet das gemeinsame Schlüsselmaterial unter Verwendung
derselben Formel ab und verifiziert den HMAC über die Austauschparameter.
-
Dies
erfordert ebenfalls nur die öffentlichen Konstanten
des Satellitensicherheitsmoduls. Der öffentliche Schlüssel des
Hauptsicherheitsmoduls muss jedoch spezifisch für das Hauptsicherheitsmodul
sein und könnte
entweder unter Verwendung eines Einmal-Schreibspeichers oder unter
Verwendung von zwei Ebenen von RSA-Schlüsseln
und einem Grundschlüssel
(root key) bereitgestellt werden, die während der Herstellung geladen
werden. Das Hauptsicherheitsmodul würde ein vom Grundschlüssel signiertes
digitales Zertifikat bereitstellen, um den vertrauenswürdigen öffentlichen
Schlüssel
am Satellitensicherheitsmodul zu erstellen.
-
Dies
ist sicher gegen MITM-Angriffe, jedoch nicht gegen Spoofing seitens
eines Satellitensicherheitsmodulbetrügers. Darüber hinaus könnte das Hauptsicherheitsmodul
unabsichtlich die KEKs zum Entschlüsseln der Sicherheitsassoziationen
einem Angreifer offenbaren.
-
Bei
einem wechselseitig authentifizierten Diffie-Hellman teilen das
Hauptsicherheitsmodul und das Satellitensicherheitsmodul, wie vorstehend,
das öffentliche
Wissen eines Diffie-Hellman-Falles. Zur wechselseitigen Authentifizierung
können
sowohl das Hauptsicherheitsmodul als auch das Satellitensicherheitsmodul
ein öffentliches/privates RSA-Schlüsselpaar
aufweisen. Dasselbe Ergebnis kann jedoch auch unter Verwendung eines
gemeinsamen Geheimnisses S erzielt werden. Tatsächlich wird S als "Passwort" zur Authentifizierung
des Austausches verwendet.
- 1. Der Initiator
erzeugt eine zufällige
Zahl xi und eine öffentliche
Zahl yi = gxi mod p.
- 2. Der Initiator sendet yi, zusammen mit einer Nonce Ni, an
den Antwortenden.
- 3. Der Antwortende erzeugt eine zufällige Zahl xr und eine öffentliche
Zahl yr = gxr mod p.
- 4. Der Antwortende erzeugt das gemeinsame Diffie-Hellman-Geheimnis.
K = yixr mod p und die Nonce Nr.
- 5. Der Antwortende erzeugt einen so großen Schlüsselmaterialstrom, wie bei
Verwendung von HMAC(K, Ni ∥ Nr ∥ S ∥ i) nötig, wie
vorstehend.
- 6. Der Antwortende führt
yr, zusammen mit der Nonce Nr und einem HMAC über die Austauschparameter,
zum Initiator zurück.
Der Antwortende verwendet den KEK aus dem Schlüsselmaterialstrom, um diesen
Wert als HMAC(KEK, xi ∥ xr ∥ Ni ∥ Nr) zu berechnen.
- 7. Der Initiator leitet das gemeinsame Schlüsselmaterial unter Verwendung
derselben Formel ab und verifiziert den HMAC über die Austauschparameter.
-
Dies
ist ein weit einfacheres Protokoll und es ist sicher gegen MITM
und Spoofing, es erfordert jedoch ein vorab existierendes gemeinsames
Geheimnis. Obgleich dieses während
der Herstellung installiert werden könnte, kann ein unveränderbares
Geheimnis in der Praxis mit der Zeit schwierig zu verwalten sein.
Das gemeinsame Geheimnis wird zur Authentifizierung verwendet werden
und nicht, um zur Schlüsselerstellung
Entropie vorzusehen. Nichtsdestotrotz muss es ebenso vor Offenbarung
geschützt werden,
wie etwa eine PIN, und in der kryptographischen Grenze enthalten
sein.
-
Bei
einem Shared Secret ReKey teilen das Hauptsicherheitsmodul und das
Satellitensicherheitsmodul nur einen Geheimniszeichenfolgewert S.
- 1. Der Initiator erzeugt die Nonce Ni und sendet sie
an den Antwortenden.
- 2. Der Antwortende erzeugt die Nonce Nr und einen so großen Schlüsselmaterialstrom,
wie bei Verwendung von HMAC(S, Ni ∥ Nr ∥ i) nötig, für I = 0, 1, 2 ...
- 3. Der Antwortende führt
Nr, zusammen mit einem HMAC über
die Austauschparameter, zum Initiator zurück. Der Antwortende verwendet
den KEK aus dem Schlüsselmaterialstrom,
um HMAC(KEK, Ni ∥ Nr)
zu berechnen.
- 4. Der Initiator leitet das gemeinsame Schlüsselmaterial ab und verifiziert
den HMAC.
-
Wenn
ein gemeinsames Geheimnis verwendet werden soll, ist dies der einfachere
Ansatz, der keine Diffie-Hellman-Konstanten oder Öffentliche-Schlüssel-Operationen
benötigt.
Die gesamte Entropie im gemeinsamen Schlüssel kommt jedoch ausschließlich von
diesem Geheimnis.
-
Bevor
der sichere Kanal eingerichtet worden ist, befindet sich das Satellitensicherheitsmodul
in einem unsicheren Zustand. Ausgehend von diesem Zustand kann das
Satellitensicherheitsmodul einen sicheren Kanal einrichten, über den
es Schlüsselverwaltungsnachrichten
erhalten kann, die KEKs und Zusatzparameter enthalten.
-
Das
wechselseitig authentifizierte Diffie-Hellman-Protokoll kann dabei
dazu verwendet werden, den sicheren Kanal einzurichten, obgleich
auch andere Protokolle verwendet werden können. Bei dem wechselseitig
authentifizierten Diffie-Hellman-Protokoll
verfügt
das Satellitensicherheitsmodul anfangs über: ein gemeinsames Geheimnis
(S) mit dem Hauptsicherheitsmodul und die Diffie-Hellman-Parameter
(p, g).
-
Zum
Einrichten des sicheren Kanals muss das Hauptsicherheitsmodul mit
dem gemeinsamen Geheimnis des Satellitensicherheitsmoduls initialisiert
worden sein. Das gemeinsame Geheimnis muss in der kryptographischen
Grenze geschützt
werden, die anderen Konstanten können
jedoch öffentlich sein.
Das Schlüsselmaterial
wird unter Verwendung von HMAC-SHA-1 abgeleitet und unter Verwendung einer
Einrichtungsidentitätszeichenfolge
und des gemeinsamen Geheimnisses verschlüsselt, wie vorstehend beschrieben.
Dieses Schlüsselmaterial
kann wie folgt verwendet werden: 16 Bytes für einen AES-Schlüssel, 20
Bytes für
einen HMAC-Schlüssel.
-
Sobald
der sichere Kanal eingerichtet ist, geht der Schlüsselagent
in den "eingerichteten" Zustand über. Der
Satellitensicherheitsmodul-Schlüsselagent
ist dann bereit, eine Schlüsselverwaltungsnachricht
vom Hauptsicherheitsmodul anzunehmen, wenn sie über den sicheren Kanal empfangen
wird.
-
Die
Schlüsselverwaltungsnachrichten
können
auf dieselbe Art und Weise wie bei IPsec ESP unter Verwendung von
AES-CBC verschlüsselt
und dann mit einem HMAC-SHA1-96 authentifiziert werden. Ein zufälliger Anfangsvektor
wird für
jede Nachricht erzeugt. Dies soll einer bestehenden IPsec-ESP-Implementierung
mehr Einfluss verleihen und hat bekannte Sicherheitseigenschaften.
Es kann jedoch auch ein einfacheres Nachrichtenform verwendet werden.
Die Nachrichten können
KEKs und andere Geheimnisse enthalten. Unterschiedliche KEKs können für verschiedene
Zwecke verwendet werden. Es kann beispielsweise für private
Schlüssel einen
anderen KEK als für
die Verkehrverschlüsselungsschlüssel geben,
die bei IPsec oder SSL verwendet werden. Das Sicherheitsmodul behält typischerweise
die KEKs im Einrichtungsspeicher. Die KEKs können in dem EEPROM oder einem
anderen nichtflüchtigen
Direktzugriffsspeicher ("NVRAM") gespeichert werden,
sofern verfügbar.
Nachrichten können
außerdem
Verwaltungsbefehle oder -anfragen enthalten, wie etwa: initiiere
Eigentestsequenz, lese oder lösche
Statuszähler,
lösche
alle Schlüssel
und setze sicheren Kanal zurück.
-
Eine
Ausführungsform
der Erfindung verwendet zwei Hauptprogrammierungsdatenstrukturen zur
Handhabung von IPsec-Befehlen. Die MCR-Struktur wird zum Senden
eines oder mehrerer "Paket-Deskriptoren" an eine Einrichtung
(z.B. einen Kryptographiebeschleuniger) verwendet. Jeder Paket-Deskriptor
umfasst Zeiger zu einem Befehlskontext und einem Paar Eingangs-
und Ausgangs-Chained-Entry-Deskriptor-Listen. Der erste Deskriptor in jeder
Liste wird dem Paket-Deskriptor selbst zugeführt. Der Befehlskontext gibt
die durchzuführende Operation
an. Bei den meisten Operationen stellt er auch die Schlüssel und
Geheimnisse bereit. 14 zeigt beispielsweise den
Befehlskontext für
IPsec unter Verwendung von 3DES und HMAC-SHA-1 oder HMAC-MD5.
-
Bei
einer Ausführungsform
der Erfindung wird der Schlüsselschutz
unter Verwendung eines in einem Cache gespeicherten Befehlskontextverfahrens
bereitgestellt. Dieses Verfahren stellt die Möglichkeit zum Laden eines Befehlskontextes
in einen auf dem Chip befindlichen Speicher und zum Verwenden desselben
für einen
späteren
Befehl bereit. Mit anderen Worten, die Sicherheitsassoziation würde eine
vollständige
Befehlskontextstruktur enthalten. Der Kryptographiebeschleuniger
kann einen auf dem Chip befindlichen Speicher für den Cache bereitstellen,
und zwar jeweils einen für
jeden MCR-Typ (z.B. 96 Bytes für
MCR1 und 648 Bytes für
MCR2, genug für
den AES-256Bit-Schlüssel-IPsec-Kontext oder
den RSA-2048Bit-Privat-Schlüssel-Kontext). Der
Kryptographiebeschleuniger kann einen zusätzlichen Befehlscode zum Laden
und Entschlüsseln
eines Befehlskontextes aufweisen. Der zu verwendende Cache und KEK
würden
durch das MCR bestimmt werden, über
das der Befehl ausgegeben wurde. Ein in einem Cache gespeicherter
Befehlskontext würde unter
Verwendung eines Paket-Deskriptors mit einem Null-Befehlskontextzeiger
aufgerufen werden.
-
Sicherheitsassoziationen
könnten
wie bei IPsec unter Verwendung von 3DES-CBC verschlüsselt werden.
Der Anfangsvektor ("IV") wäre Teil
des KEK. Sicherheitsassoziationen könnten unter Verwendung von
HMAC-SHA-1-96 authentifiziert werden.
-
Typische
Anwendungen, die SSL- oder TLS-RAS-Operationen verwenden, wie etwa
Webserver, setzten pro virtuellen Server einen einzelnen RSA-Schlüssel ein.
Derselbe Schlüssel
wird wiederholt dazu verwendet, ausgetauschte Pre-Master-Geheimnisse
für diesen
Server zu entschlüsseln.
Bei solchen Anwendungen wäre
der Performance Impact (Leistungsbelastung) einer Entschlüsselung
des privaten RSA-Schlüssels vernachlässigbar.
-
Bei
anderen Operationen, insbesondere bei IPsec, kann der Gesamtaufwand
der Entschlüsselung
deutlich spürbar
sein. Bei IPsec sollte die explizite IV-Variante verwendet werden,
da der IV nicht Teil des Befehlskontextes sein sollte.
-
Nicht
alte Befehlscodes benötigen
verschlüsselte
Schlüssel.
Es ist beispielsweise nicht nötig,
die Schlüssel
für einen
RSA-Betrieb mit öffentlichen
Schlüsseln
zu verschlüsseln.
Die folgenden Betriebsarten wären
geschützt:
-
- – RSA
mit privaten Schlüsseln
(648 Bytes)
- – DSA-Sign
(308 Bytes)
- – IPsec-3DES
(80 Bytes)
- – IPsec-AES
(96 Bytes)
-
Der
Schlüsselschutz
muss bei ARCFOUR nicht verwendet werden, da dies ein Schreiben aus einem
verschlüsselten
Zustand erforderlich machen würde.
Es sei darauf hingewiesen, dass ARCFOUR kein FIPS-genehmigter Algorithmus
ist. SSL-3DES benötigt einen
IV mit dem Befehlskontext. Diffie-Hellman wäre ausgeschlossen, da das Geheimnis
als Datenfragment ein- oder ausgegeben wird.
-
Bei
einer anderen Ausführungsform
wird ein In-Line-Schlüsselverfahren
zum Schutz der Schlüssel
verwendet. Dabei werden Schlüssel
mit geeigneten Befehlskontextlasten potentiell entschlüsselt. Dies
kann einen größeren Performance
Impact verursachen, es erweitert jedoch den Schutz weiter. Insbesondere
die Datenpfade zum Entschlüsseln
der Eingangs- und Ausgangsdaten für Diffie-Hellman könnten hinzugefügt werden.
-
Es
versteht sich, dass sich die hierin beschriebene Erfindung auf zahlreiche
unterschiedliche Protokolle und Standards sowie auf Modifikationen und
Erweiterungen dieser Protokolle und Standards anwenden lässt und
diese nutzen kann, welche beispielsweise IPsec, SSL und FCsec umfassen,
jedoch nicht darauf beschränkt
sind.
-
Darüber hinaus
kann eine Vielzahl von Kryptographie- und Signaturalgorithmen sowie
Modifikationen und Erweiterungen derselben verwendet werden, die
beispielsweise RSA, Diffie-Hellman, elliptische Kurven und DSA umfassen,
ohne jedoch darauf beschränkt
zu sein.
-
Es
versteht sich außerdem,
dass die hierin beschriebene Erfindung unter Verwendung einer Vielzahl
physischer Komponenten und Konfigurationen ausgeführt werden
kann. Es kann beispielsweise eine Vielzahl von Hardware- und Software-Verarbeitungskomponenten
zum Ausführen
der Funktionen der Hauptsicherheitsmodule, Satellitensicherheitsmodule,
Host-Prozessoren, Kryptographiebeschleuniger, Sicherheitsmodule,
Netzwerksteuer- und Paketprozessoren verwendet werden. Die Netzwerksteuer-
und Paketverarbeitungsfunktionen können typischerweise in einem
Netzwerkprozessor ausgeführt
werden. Diese Komponenten können
auf einer oder mehreren integrierten Schaltungen kombiniert werden.
-
Darüber hinaus
können
die hierin beschriebenen Komponenten und Funktionen auf zahlreiche unterschiedliche
Arten miteinander verbunden werden. Einige der durch die Anschlussleitungen
in den Zeichnungen dargestellten Verbindungen können in einer integrierten
Schaltung, auf einer Leiterplatte, über eine Backplane zu anderen
Leiterplatten, über ein
lokales Netz (LAN) und/oder ein Weitverkehrsnetz (WAN) (z.B. das
Internet) hergestellt werden. Daher können sich einige der Komponenten
in Bezug auf die anderen Komponenten an einer entfernten Stelle
befinden. Eine oder mehrere der durch die Anschlussleitungen in
den Zeichnungen (z.B. die Anschlussleitungen 240–244 und 1050–1060 in
den 2 und 10) dargestellten Verbindungen
können
beispielsweise ein Datennetzwerk umfassen. Darüber hinaus können diese
Verbindungen z.B. mittels eines physischen Drahts, einer Glasfaser und/oder
drahtloser Verbindungen hergestellt werden.
-
Einige
der zwischen Komponenten hergestellten Verbindungen umfassen sichere
Verbindungen (z.B. gemäß FIPS-140-2),
während
andere Verbindungen unsichere Verbindungen umfassen.
-
Es
kann eine große
Vielzahl an Einrichtungen zum Ausführen der hierin besprochenen
Datenspeicher (z.B. der Datenbanken und nichtflüchtigen Speicher) verwendet
werden. Ein Datenspeicher kann beispielsweise ein RAM, ein Diskettenlaufwerk, FLASH
oder andere Arten der Datenspeicherung umfassen.
-
Bei
einer Ausführungsform
der Erfindung kann sich der nichtflüchtige Speicher auf derselben integrierten
Schaltung wie der Schlüssel-Manager befinden.
Diese Ausführungsform
kann für
mehr Sicherheit für
einen KEK und/oder einen privaten Schlüssel sorgen.
-
Darüber hinaus
kann der nichtflüchtige
Speicher eine einmal programmierbare Schaltung zum Speichern beispielsweise
eines Anfangswerts für
einen KEK, eines privaten Schlüssels
oder eines gemeinsamen Geheimnisses umfassen. Beispiele für einmal
programmierbare Schaltungen sind den folgenden US-Patentanmeldungen
zu entnehmen, die auf den Anmelder dieser Anmeldung übertragen
wurden:
US-Patentanmeldung Nr. 10/141,197 ,
eingereicht am 08.05.2002 mit dem Titel "USING AN ON-CHIP ONE-TIME PROGRAMMABLE
NON-VOLATILE MEMORY (OPT NVM) FOR CONFIGURING DEVICE FEATURES",
US-Patentanmeldung Nr. 10/141,599 ,
eingereicht am 08.05.2002 mit dem Titel "SYSTEM AND METHOD FOR PROGRAMMING NON-VOLATILE
MEMORY". Der Inhalt
dieser Anmeldungen wird hiermit durch Bezugnahme gewürdigt.
-
Ein
nichtflüchtiger
Speicher, wie etwa eine einmal programmierbare Schaltung kann bei
jeder der hierin besprochenen Komponenten eingesetzt werden, einschließlich eines
Kryptographiebeschleunigers oder eines Sicherheitsmoduls. Es könnte beispielsweise
ein gemeinsames Geheimnis während der
Herstellung in das Hauptsicherheitsmodul und die Satellitensicherheitsmodule
geladen werden. Dieses gemeinsame Geheimnis könnte dann dazu verwendet werden,
wechselseitig das Hauptsicherheitsmodul und das Satellitensicherheitsmodul
zu authentifizieren.
-
Die
Erfindung kann unter Verwendung unterschiedlicher Arten von Chiffriermaschinen
in die Praxis umgesetzt werden. Bei einer Ausführungsform der Erfindung wird
beispielsweise der KEK unter Verwendung einer Blockchiffriereinrichtung
anstelle einer Stromchiffriereinrichtung entschlüsselt. Bei einer Ausführungsform
der Erfindung kann dieselbe Hardware dazu verwendet werden, die
Nachrichtenauthentifizierungs- und Entschlüsselungsoperationen durchzuführen. Sowohl
die CVC-MAC- als auch die OFB-Routinen führen eine Triple-DES-Verschlüsselungsbetriebsart
aus. Somit kann durch Steuern der Eingänge des Triple-DES, um unterschiedliche
Anfangswerte und Schlüssel
für den
Triple-DES in Abhängigkeit
davon bereitzustellen, welche Operation durchgeführt wird, eine erhebliche Reduzierung
der Gate-Anzahl
erreicht werden.
-
Bei
einer Ausführungsform
der Erfindung ermöglicht
der Schlüssel-Manager
anderen Komponenten im System Zugriff auf ungesicherte Abschnitte
des EEPROM. Daher kann das System mit nur einem einzigen EEPROM
konfiguriert werden.
-
Bei
einer anderen Ausführungsform
der Erfindung können
mehrere Schlüssel-Manager das EEPROM
gemeinsam benutzen. Dies stellt den Vorteil bereit, dass die Schlüssel-Manager
denselben KEK benutzen können.
Daher kann das System so konfiguriert werden, dass ein beliebiger
von mehreren Kryptographiebeschleunigern ein gegebenes eingehendes
Paket verarbeiten kann.
-
Zusammenfassend
lehrt die hierin beschriebene Erfindung verbesserte Techniken zum
Bereitstellen einer gesicherten Datenübertragung und zum Verwalten
von Kryptographieschlüsseln.
Obgleich bestimmte beispielhafte Ausführungsformen im Detail beschrieben
und in den begleitenden Zeichnungen dargestellt worden sind, versteht
es sich, dass solche Ausführungsform
rein veranschaulichender Natur sind und den Schutzumfang der Erfindung nicht
einschränken.
Es ist daher ersichtlich, dass verschiedene Modifikationen an den
dargestellten und anderen Ausführungsformen
der vorstehend beschriebenen Erfindung durchgeführt werden können, ohne
den Schutzumfang der Erfindung zu verlassen.