-
Die
vorliegende Erfindung betrifft im Allgemeinen die Datenverarbeitung
und insbesondere ein System, ein Verfahren und ein Programm zum
Gewährleisten
der Datensicherheit. Die vorliegende Erfindung betrifft insbesondere
ein System, ein Verfahren und ein Programm zum Verwalten eines Benutzerschlüssels, der
verwendet wird, um eine Nachricht für ein Datenverarbeitungssystem
zu signieren.
-
Die
Kryptografie beinhaltet das Verschlüsseln von Daten, um den Schutz
der Daten zu gewährleisten.
Die Nachricht kann z.B. vor der Übertragung von
einem Teilnehmer zum anderen unter Verwendung einer mathematischen
Funktion, die als ein kryptografischer Algorithmus bekannt ist,
verschlüsselt
werden. Die gebräuchlichsten
kryptografischen Algorithmen beruhen auf Schlüsseln, wobei die spezielle
Kenntnis von veränderlichen
Informationen, die als ein "Schlüssel" bezeichnet werden,
erforderlich ist, um eine verschlüsselte Nachricht zu entschlüsseln. Es
gibt zwei vorherrschende Typen von kryptografischen Algorithmen,
die auf Schlüsseln
beruhen, und zwar Algorithmen mit symmetrischem Schlüssel (geheimer
Schlüssel)
und Algorithmen mit öffentlichem
Schlüssel
(asymmetrischer Schlüssel).
Der Datenschutz, der durch diese kryptografischen Algorithmen gewährleistet
wird, konzentriert sich auf die Schlüssel und nicht die Einzelheiten
der kryptografischen Algorithmen. Mit anderen Worten, die kryptografischen
Algorithmen können
typischerweise jedem bekannt sein, die Schlüssel können jedoch nur berechtigten
Teilnehmern bekannt sein. Folglich können die kryptografischen Algorithmen
zur öffentlichen Prüfung veröffentlicht
werden und dann durch eine Massenproduktion hergestellt werden,
damit sie in Datenschutzprodukte aufgenommen werden können.
-
Bei
den meisten Algorithmen mit symmetrischem Schlüssel sind der Verschlüsselungsschlüssel und
der Entschlüsselungsschlüssel der
gleiche geheime Schlüssel.
Der Absender und der Empfänger einer
Nachricht müssen
in der Lage sein, Informationen bezüglich des geheimen Schlüssels auszutauschen,
wobei jeder Teilnehmer dem anderen Teilnehmer vertrauen muss, den
geheimen Schlüssel
nicht zu offenbaren. Der Absender muss den Schlüssel über einen zusätzlichen
verhältnismäßig sicheren Übertragungsweg übertragen.
Bei Algorithmen mit öffentlichem
Schlüssel
unterscheidet sich der Schlüssel,
der für
die Verschlüsselung
verwendet wird, von dem Schlüssel,
der zur Entschlüsselung
verwendet wird. Es ist schwierig, den Entschlüsselungsschlüssel aus
einem Verschlüsselungsschlüssel zu
berechnen. Bei einer typischen Operation wird der öffentliche
Schlüssel,
der zur Verschlüsselung
verwendet wird, über
ein leicht zugängliches
Verzeichnis öffentlich
gemacht, während
der entsprechende private Schlüssel,
der für
die Entschlüsselung
verwendet wird, lediglich dem Empfänger der verschlüsselten Nachricht
bekannt ist. Bei einer beispielhaften Transaktion mit öffentlichem
Schlüssel
ruft ein Absender den öffentlichen
Schlüssel
des Empfängers
auf und verwendet ihn, um die Nachricht vor dem Senden der Nachricht
zu signieren. Der Empfänger
empfängt
und entschlüsselt
dann die verschlüsselte
Nachricht mit dem entsprechenden privaten Schlüssel. Das Verschlüsseln einer Nachricht
unter Verwendung eines privaten Schlüssels und das Entschlüsseln der
verschlüsselten
Nachricht unter Verwendung eines öffentlichen Schlüssels sind
möglich,
was manchmal bei digitalen Signaturen verwendet wird, um die Echtheit
der Quelle einer Nachricht zu bestätigen.
-
Einer
der bekannteren Algorithmen mit öffentlichem
Schlüssel
ist RSA (benannt nach seinen Erfindern Rivest, Shamir und Adleman).
Wenn bei RSA eine Nachricht unter Verwendung eines öffentlichen
Benutzerschlüssels
verschlüsselt
wird, kann die verschlüsselte
Nachricht nur unter Verwendung eines privaten Benutzerschlüssels entschlüsselt werden.
Bei einer Ausführungsform
ist jedem privaten Benutzerschlüssel
außerdem
ein Passwort zugeordnet, wobei beide in einer individuellen sicheren
Hülle eingeschlossen
sind. Alle privaten Benutzerschlüssel werden
gemeinsam mit ihren entsprechenden Passwörtern in einem geschützten Speicherbereich
in einer Verschlüsselungs/Entschlüsselungseinheit,
wie etwa ein Verschlüsselungschip,
gespeichert. Um zuzulassen, dass der Verschlüsselungschip eine Echtheitsüberprüfungsprozedur
ausführt,
wie etwa das Signieren von Signaturen, muss ein Benutzer an den Verschlüsselungschip
ein korrektes Passwort bereitstellen. Aus Sicherheitsgründen dürfen außerhalb der
sicheren Hülle
keine Kopien eines privaten Benutzerschlüssels vorhanden sein. Somit
können
ein privater Benutzerschlüssel
und sein entsprechendes Passwort lediglich innerhalb des Verschlüsselungschips
enthüllt
werden, wobei keine Möglichkeit
besteht, das Passwort zu ändern.
-
Die
Kryptografie mit öffentlichem/privatem Schlüssel ermöglicht,
dass Nachrichten digital signiert werden. Ein Absender kann seinen
Verschlüsselungsschlüssel als öffentlichen
Schlüssel
veröffentlichen
und seinen Verschlüsselungsschlüssel als
einen privaten Schlüssel
geheim halten. wenn der Absender eine Nachricht unter Verwendung
des privaten Schlüssels
verschlüsselt,
kann jeder, der die Nachricht empfängt, die Nachricht unter Verwendung des öffentlichen
Schlüssels
des Absenders entschlüsseln.
Dabei können
die Empfänger überprüfen, ob
die Nachricht durch den Absender verschlüsselt wurde, da er der einzige
Besitzer des privaten Schlüssels
ist. Der Absender hat tatsächlich
die Nachricht digital signiert. Eine alternative Art der digitalen
Signierung einer Nachricht beinhaltet die Verwendung einer Hash-Funktion,
die außerdem
als ein Algorithmus der "Nachrichtenzusammenfassung" oder des "Fingerabdrucks" bekannt ist. Der Hash-Wert
einer Nachricht wird unter Verwendung einer kryptografischen Hash-Funktion
gebildet. Die kryptografische Hash-Funktion bildet eine Nachricht mit
beliebiger Länge
auf eine feststehende Anzahl von Bits ab. Die mit der Hash-Funktion verarbeitete Nachricht
oder der Hash-Wert wird dann verschlüsselt. Das digitale Signieren
einer Nachricht unter Verwendung der Hash-Funktion ist im Allgemeinen
ein zweistufiger Vorgang. Die erste Stufe beinhaltet die Bildung
des Hash-Werts der Nachricht und die Verschlüsselung des Hash-Werts der Nachricht
unter Verwendung eines privaten Schlüssels. Die Nachricht wird dann
gemeinsam mit dem verschlüsselten Hash-Wert
vom Absender zum Empfänger übertragen.
Die zweite Stufe beinhaltet die Überprüfung der Signatur.
Der Empfänger
bildet den Hash-Wert der empfangenen Nachricht, entschlüsselt den
empfangenen verschlüsselte
Hash-Wert mit dem
zugehörigen öffentlichen
Schlüssel
und vergleicht das Paar aus Hash-Werten. Die Signatur ist gültig, wenn
die beiden Hash-Werte übereinstimmen.
Andernfalls wurde die Nachricht während der Übertragung in irgendeiner Weise
verändert.
-
Die
Zertifizierung ist der Prozess der Bindung eines Schlüssels, wie
etwa ein öffentlicher Schlüssel oder
ein privater Schlüssel,
an eine Person, eine Organisation, eine Einheit oder an eine Information,
wie etwa eine Genehmigung oder ein Berechtigungsnachweis. Ein Zertifikat
ist eine Zusammenstellung von Informationen, die durch einen Aussteller
des Zertifikats digital signiert wurden. Der Aussteller des Zertifikats
ist ein Teilnehmer, der einen Schlüssel an eine Person, eine Organisation,
eine Einheit oder eine Information ausgibt und die Gültigkeit
des ausgegebenen Schlüssels
verwaltet. Wenn einem Benutzer die Verwendung eines Schlüssels nicht
mehr erlaubt wird, muss der Aussteller des Zertifikats das Zertifikat
für den
Schlüssel
des Benutzers widerrufen, indem er das Zertifikat für den Schlüssel auf
einer Zertifikatwiderrufsliste ("CRL") veröffentlicht.
Es gibt jedoch typischerweise eine Zeitspanne zwischen dem Zeitpunkt,
zu dem ein Aussteller des Zertifikats eine Benachrichtigung empfängt, dass
ein Zertifikat für
einen Schlüssel
widerrufen werden sollte, und dem Zeitpunkt, zu dem der Aussteller
des Zertifikats das Zertifikat des Schlüssels auf der nächsten CRL
veröffentlicht.
Diese Zeitspanne hat das als CRL-Zeitkörnung bekannte Problem zur
Folge. Während
dieser Zeitperiode kann ein Benutzer versuchen, den Schlüssel bei
unberechtigten Transaktionen oder Kommunikationen zu verwenden,
die durch den Widerruf des Schlüssels
und des Zertifikats für
den Schlüssel
hätten
für ungültig erklärt werden
sollen. Der Benutzer kann dann gegebenenfalls weiterhin Nachrichten
signieren und Daten ohne ausreichende Berechtigung austauschen.
-
Die
UK-Patentanmeldung
GB 2 318 486 beschreibt
ein Datenübertragungssystem,
bei dem Nachrichten unter Verwendung der Kryptografie mit öffentlichem
Schlüssel
mit einem öffentlichen
Schlüssel
(SJu) verarbeitet werden können,
der für
einen oder mehrere Benutzer (
150) eindeutig ist. Das System
umfasst ein Servermittel (
130), das für einen Datenaustausch mit
einem Client (
110) über
ein Netz (
100) geeignet ist, wobei das Servermittel (
130)
ein erstes Datenspeichermittel umfasst, in dem ein privater Schlüssel für den oder
die Benutzer sicher gespeichert ist, wobei der private Schlüssel mit
einem Schlüssel-Verschlüsselungsschlüssel verschlüsselt ist.
-
Die
Erfindung stellt demzufolge ein Verfahren zum Verwalten eines Benutzerschlüssels bereit, der
zum Signieren einer Nachricht für
ein Datenverarbeitungssystem verwendet wird, wobei das Verfahren
umfasst: Zuweisen eines Benutzerschlüssels an einen Benutzer zum
Verschlüsseln
von Nachrichten; Speichern eines zugeordneten Schlüssels in
dem Datenverarbeitungssystem und Verschlüsseln des Benutzerschlüssels mit
dem zugeordneten Schlüssel,
um einen verschlüsselten
Benutzerschlüssel
zu erhalten, wobei der verschlüsselte
Benutzerschlüssel dazu
dient, eine Zuordnung des Benutzers zu Nachrichten, die durch den
Benutzerschlüssel
verschlüsselt
wurden, für
gültig
zu erklären;
und später
Verhindern der Gültigkeitserklärung der
Zuordnung des Benutzers zu Nachrichten, indem der zugeordneten Schlüssel widerrufen
wird.
-
Die
Erfindung stellt ferner ein Computerprogrammprodukt bereit, das
einen Programmcode umfasst, der geeignet ist, die in dem vorhergehenden Abschnitt
beschriebenen Schritte auszuführen,
wenn das Programm auf einem Computer abläuft.
-
In
einer bevorzugten Ausführungsform
werden ein System, ein Verfahren und ein Programm zum Verwalten
eines Benutzerschlüssels
offenbart, der verwendet wird, um eine Nachricht für ein Datenverarbeitungssystem,
das einen Verschlüsselungschip
aufweist, zu signieren. Einem Benutzer ist ein Benutzerschlüssel zugeordnet.
Um Nachrichten an einen oder mehrere Empfänger zu verschlüsseln und zu
senden, werden die Nachrichten mit dem Benutzerschlüssel verschlüsselt. Der
Benutzerschlüssel wird
seinerseits mit einem zugeordneten Schlüssel verschlüsselt. Der
zugeordnete Schlüssel
wird wiederum unter Verwendung eines Verschlüsselungschip-Schlüssels, der
in dem Verschlüsselungschip gespeichert
ist, verschlüsselt.
Die verschlüsselten Nachrichten
werden an einen Empfänger übertragen, um
eine Zuordnung des Benutzers zu den verschlüsselten Nachrichten zu überprüfen. Der
zugeordnete Schlüssel
wird mit dem Verschlüsselungschip-Schlüssel entschlüsselt. Der
Benutzerschlüssel wird
mit dem zugeordneten Schlüssel
entschlüsselt und
die Nachrichten werden mit dem Benutzerschlüssel entschlüsselt. Daraufhin
wird die Gültigkeit der
Zuordnung der Nachrichten zu dem Benutzer durch Widerrufen des zugeordneten
Schlüssels
aufgehoben.
-
In
einer bevorzugten Ausführungsform
sind die Verschlüsselungsbetriebsmittel
in einem Server-System zentralisiert, das den Verschlüsselungschip
enthält.
Das Server-System ist mit einer Vielzahl von Client-Systemen verbunden
und stellt für
diese Verschlüsselungsdienste
bereit. Nachrichten, die verschlüsselt
werden sollen, werden von einem Client-System des Benutzers zu dem
Server-System gesendet, das die Nachrichten unter Verwendung des
Verschlüsselungschips
verschlüsselt.
Die verschlüsselten
Nachrichten werden von dem Server-System zu dem Client-System gesendet,
das die verschlüsselten
Nachrichten an ihren bzw. ihre vorgesehenen Empfänger überträgt. Alle Daten, die die verschlüsselten
Nachrichten betreffen, werden aus dem Server-System gelöscht, nachdem
die verschlüsselten
Nachrichten von dem Server-System an das Client-System gesendet
wurden.
-
Die
Erfindung stellt ferner ein System zum Verwalten eines Benutzerschlüssels bereit,
der verwendet wird, um eine Nachricht für ein Datenverarbeitungssystem
zu signieren, wobei das System umfasst: Mittel zum Zuweisen eines
Benutzerschlüssels an
einen Benutzer, um Nachrichten zu verschlüsseln; Mittel zum Speichern
eines zugeordneten Schlüssels in
dem Datenverarbeitungssystem und zum Verschlüsseln des Benutzerschlüssels mit
dem zugeordneten Schlüssel,
um einen verschlüsselten
Benutzerschlüssel
zu erhalten; wobei der verschlüsselte
Benutzerschlüssel
zur Gültigkeitserklärung einer
Zuordnung des Benutzers zu Nachrichten, die durch den Benutzerschlüssel verschlüsselt wurden,
dient; und Mittel zum Verhindern der Gültigkeitserklärung der Zuordnung
des Benutzers zu Nachrichten, indem der zugeordnete Schlüssel widerrufen
wird.
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung wird nun lediglich beispielhaft unter
Bezugnahme auf die folgenden Zeichnungen beschrieben, worin:
-
1 ein
beispielhafter Blockschaltplan eines Datenverarbeitungssystems zum
Realisieren einer bevorzugten Ausführungsform der vorliegenden Erfindung
ist;
-
2 ein
beispielhafter Blockschaltplan eines Datenverarbeitungsuntersystems,
das das Client-System oder das Server-System von 1 sein kann,
zum Realisieren einer bevorzugten Ausführungsform der vorliegenden
Erfindung ist;
-
3 ein
Ablaufplan eines beispielhaften Verfahrens und eines Programms,
das durch das Datenverarbeitungssystem von 1 ausgeführt wird, zum
Verschlüsseln
von Nachrichten gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung ist; und
-
4 ein
Ablaufplan eines beispielhaften Verfahrens und eines Programms,
das durch das Datenverarbeitungssystem von 1 ausgeführt wird, zum
Entschlüsseln
von Nachrichten gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung ist.
-
In
herkömmlichen
Computersystemen wird die Verschlüsselung/Entschlüsselung
von Nachrichten ausgeführt,
indem ein interner Verschlüsselungschip
verwendet wird, der sowohl die Verschlüsselungs/Entschlüsselungsalgorithmen
als auch einen Schlüssel
oder ein Schlüsselpaar,
die von dem Verschlüsselungschip
zum Verschlüsseln
und Entschlüsseln
von Daten verwendet werden, speichert. In einer Netzumgebung führt der
Verschlüsselungschip
jedes Computers die gleichen grundlegenden Verschlüsselungs/Entschlüsselungsfunktionen
aus, was die Einrichtung der Verschlüsselungs/Entschlüsselungsfunktion
an einer zentralen Stelle nahe legt, um die Kosten und den Verwaltungsaufwand
zu senken und die physische Sicherheit zu verbessern.
-
Die
Zentralisierung der Verschlüsselungs- und
Entschlüsselungsdienste
an einem Verschlüsselungsserver
kann jedoch zu verschiedenen Problemen führen. Ein Problem besteht darin,
dass zwischen jedem Client-System und dem Verschlüsselungsserver
eine sehr sichere Verbindung hergestellt werden muss. Andernfalls
könnten
unberechtigte Personen einen unerlaubten Zugang auf die verschlüsselten
Daten, die zwischen dem Client-Server und dem Verschlüsselungsserver übertragen
werden, erhalten und diese illegal entschlüsseln. Ein weiteres Problem,
das auftritt, ist die Schwierigkeit der Schlüsselverwaltung. Einem Client-System
ist ein Schlüssel
zugeordnet, der an den Benutzer dieses Client-Systems bereitgestellt
wird. Verschiedene Schlüssel
für verschiedene
Client-Systeme werden verwendet und von dem einzelnen Verschlüsselungsserver
verwaltet. Wenn jedoch der ausgegebene Schlüssel für ein bestimmtes Client-System
widerrufen werden muss, kann der Benutzer eine Kopie des widerrufenen
Schlüssels
behalten und dadurch einen ungesetzlichen Zugriff auf verschlüsselte Daten
erlangen, indem er sich einfach von einem entfernten Client-System
bei dem Verschlüsselungsserver
anmeldet. Die bevorzugte Ausführungsform
vereinigt die Verschlüsselungs-
und Entschlüsselungsoperationen
von Daten an einer zentralen Stelle, wobei die Probleme, die mit
der Zentralisierung der Verschlüsselungs-
und Entschlüsselungsoperationen verbunden
sind, vermieden werden.
-
In 1 ist
ein beispielhafter Blockschaltplan eines Datenverarbeitungssystems 100 zum Realisieren
einer bevorzugten Ausführungsform
der vorliegenden Erfindung gezeigt. Das Datenverarbeitungssystem 100 enthält die Client-Systeme 102A, 102B und 102C,
die für
einen Datenaustausch mit einem Server-System 104 verbunden
sind. Der Datenaustausch zwischen den Client-Systemen 102A, 102B und 102C und
dem Server-System 104 wird über sichere Datenübertragungsverbindungen,
wie etwa eine Verbindung der Secure Sockets Layer (SSL-Verbindung),
ausgeführt.
SSL ist ein Standard, der durch Netscape® Communications
zum Aufbau von sicheren Datenübertragungskanälen zwischen Einheiten
entwickelt wurde, um eine Unterbrechung und einen unberechtigten
Zugriff auf kritische oder sensible Daten zu vermeiden. Das Client-System 102A besitzt
ein Speichersystem 103A und eine zentrale Verarbeitungseinheit
(CPU) 114A, die miteinander verbunden sind. Das Client-System 102B besitzt gleichfalls
ein Speichersystem 103B und eine CPU 114B, und
das Client-System 102C enthält ein Speichersystem 1030 und
eine CPU 114C. Ferner verwendet der Benutzer 3 das Client-System 102C.
Der Ausdruck "Benutzer" ist so zu verstehen,
dass er eine Person, einen Dienst, eine Anwendung, eine Einheit oder
irgendeine andere Anordnung bedeutet, die auf eine Anwendung zugreifen
kann. Der Ausdruck "Benutzer" ist nicht auf einen
menschlichen Benutzer beschränkt.
-
Das
Server-System 104 besitzt eine Speichereinheit 105 und
eine CPU 116, die ebenfalls miteinander verbunden sind.
Das Server-System 104 enthält ferner einen Verschlüsselungschip 106.
Der Verschlüsselungschip 106,
der zum Datenaustausch mit der CPU 116 und der Speichervorrichtung 105 verbunden
ist, enthält
eine Verschlüsselungs-
und Entschlüsselungseinrichtung
("ENG") 118 und
einen geschützten
Speicherbereich ("PS") 120. Die
Verschlüsselungs-
und Entschlüsselungseinrichtung 118 führt einen
Verschlüsselungs-
und Entschlüsselungsalgorithmus
aus, der gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung Nachrichten codiert und decodiert, die von
den Client-Systemen 102A, 102B und 102C gesendet
und empfangen werden.
-
In 1 verwenden
die Benutzer 1, 2 und 3 das Datenverarbeitungssystem 100,
um Nachrichten zu verschlüsseln,
z.B. um Nachrichten zu signieren, die dann über ein Empfängersystem 110 an
einen Empfänger 112 elektronisch übertragen
werden. Mit der vorliegenden Erfindung werden vorzugsweise Verschlüsselungs-
und Entschlüsselungsschemen mit öffentlichem/privatem
Schlüssel
umgesetzt. Der Schlüssel
1, der einen öffentlichen
Schlüssel
1 ("PUK1") und einen privaten
Schlüssel
1 ("PRK1") enthält, ist
ein Benutzerschlüssel,
der dem Benutzer 1 zugewiesen ist. Der Schlüssel 1 ist in dem Speichersystem 103A gespeichert.
Außerdem
wird der Schlüssel
2, der einen öffentlichen
Schlüssel
2 ("PUK2") und einen privaten
Schlüssel
2 ("PRK2") enthält, als
Benutzerschlüssel
für den
Benutzer 2 ausgegeben, wobei der Schlüssel 2 in dem Speichersystem 103B gespeichert
ist. Zusätzlich
wird der Schlüssel
3, der einen öffentlichen
Schlüssel
3 ("PUK3") und einen privaten
Schlüssel
3 ("PRK3") enthält, als
Benutzerschlüssel
dem Benutzer 3 zugewiesen. Der Schlüssel 3 ist in dem Speichersystem 103C gespeichert.
Wenn das Datenverarbeitungssystem 100 Verschlüsselungs-
und Entschlüsselungsoperationen
ausführt,
werden die Schlüssel
1, 2 und/oder 3 an den geschützten
Speicherbereich 120 des Server-Systems 104 gesendet.
-
Der
geschützte
Speicherbereich 120 kann mit einer elektronisch löschbaren
Speichervorrichtung ausgerüstet
sein. Der geschützte
Speicherebereich 120 umfasst die Speichervorrichtung 105 und einen
Verschlüsselungschip-Schlüssel 107 ("ECK"). Der geschützte Speicherbereich 120 speichert
die Paare aus öffentlichem/privatem
Schlüssel
des Benutzers. Die Paare aus öffentlichem/privatem
Schlüssel
des Benutzers, die an den geschützten
Speicherbereich 120 gesendet und dort gespeichert werden, werden
durch die Verschlüsselungs/Entschlüsselungseinrichtung 118 geschützt, und
das Server-System 104 oder seine weiteren Komponenten können darauf
nicht direkt zugreifen.
-
Im
Server-System 104 werden die Schlüssel A, B und C (die auch als "zugeordnete Schlüssel" bezeichnet werden)
in der Speichereinheit 105 gespeichert. Der Schlüssel A enthält einen öffentlichen Schlüssel A ("PUKA") und einen privaten
Schlüssel
A ("PRKA") und ist ein zugeordneter
Schlüssel,
der speziell dem Schlüssel
1 zugeordnet ist. Der Schlüssel
B enthält
einen öffentlichen
Schlüssel
B ("PUKB") und einen privaten
Schlüssel
B ("PRKB") und ist ein zugeordneter
Schlüssel,
der speziell dem Schlüssel 2
zugeordnet ist. Der Schlüssel
C enthält
ebenfalls einen öffentlichen
Schlüssel
C ("PUKC") und einen privaten
Schlüssel
C ("PRKC") und ist ein zugeordneter Schlüssel, der
speziell dem Schlüssel
3 zugeordnet ist. Der ECK 107 hat einen öffentlichen
ECK ("PUECK") und einen privaten
ECK ("PRECK") und wird verwendet,
um die zugeordneten Schlüssel
A, B oder C zu verschlüsseln,
wobei die zugeordneten Schlüssel
A, B und C ihrerseits verwendet werden, um die Benutzerschlüssel 1,
2 bzw. 3 zu verschlüsseln.
Die Benutzerschlüssel
1, 2 und 3 verschlüsseln oder
signieren Nachrichten, die von den Benutzern 1, 2 bzw. 3 gesendet
werden.
-
Wie
oben festgestellt wurde, ist die Zertifizierung der Prozess der
Bindung eines Schlüssels,
wie etwa ein öffentlicher
Schlüssel
oder ein privater Schlüssel,
an eine Person, eine Organisation, eine Einheit oder eine Information,
wie etwa eine Genehmigung oder ein Berechtigungsnachweis. Ein Zertifikat
ist eine Zusammenstellung von Informationen, die durch einen Aussteller
des Zertifikats digital signiert wurden. Ein Zertifikat kann in
einem Client-System, wie etwa das Client-System 102A, 102B oder 102C,
für einen
Benutzer, wie etwa der Benutzer 1, 2 oder 3, ausgestellt werden,
um auf eine bestimmte Anwendung zuzugreifen. Das Zertifikat kann
speziell für
einen bestimmten Benutzer und eine bestimmte Anwendung ausgestellt
werden und diesen zugeordnet sein. Das Zertifikat enthält vorzugsweise
einen Zeiger auf seine zugeordnete Anwendung, eine Kennung des Benutzers,
der diesem Zertifikat zugeordnet ist, und einen Zeiger auf den privaten
Schlüssel des
Benutzers, der dem Benutzer dieses Zertifikats und der Anwendung
zugeordnet ist. Wenn eine Anwendung eine verschlüsselte Nachricht übertragen und
eine Echtheitsprüfungsprozedur
ausführen möchte, greift
die Verschlüsselungs/Entschlüsselungseinrichtung 118 auf
den privaten Schlüssel
des Benutzers zu, auf den das zugeordnete Zertifikat der Anwendung
zeigt, und verschlüsselt
dann die Nachricht oder erzeugt eine digitale Signatur unter Verwendung
des privaten Schlüssels
des Benutzers.
-
Der
Aussteller des Zertifikats ist eine Person, die einen Schlüssel ausgibt
und die Gültigkeit
des an eine Person, eine Organisation, eine Einheit oder eine Information
ausgegebenen Schlüssels
verwaltet. Die Schlüssel
für das
Datenverarbeitungssystem 100 werden durch einen oder mehrere
Aussteller des Zertifikats ausgegeben. Der Aussteller des Zertifikats verwaltet
die Gültigkeit
der Schlüssel,
indem er Zertifikate ausgibt, die die Verwendung der Schlüssel gültig machen.
Wenn ein Schlüssel
widerrufen werden soll, widerruft der Aussteller des Zertifikats
den Schlüssel,
indem er das Zertifikat für
den Schlüssel auf
einer Zertifikatwiderrufsliste veröffentlicht. Die Benutzer 1,
2 und 3 sind die Zertifikatnutzer, die die Zertifikate verwenden.
-
In 2 ist
ein Blockschaltplan eines Computersystems 10 gezeigt, das
ein Client-System 102A, 102B oder 102C oder
ein Server-System 104 sein kann, in dem eine bevorzugte
Ausführungsform der
vorliegenden Erfindung realisiert ist. Wie gezeigt ist, sind ein
Prozessor (CPU) 12, ein Nur-Lese-Speicher (ROM) 13 und ein Arbeitsspeicher
(RAM) 14 mit einem Bussystem 11 eines Computersystems 10 verbunden.
Die CPU 12 kann die CPU 114A, 114B oder 114C für das entsprechende
Client-System 102A, 102B oder 102C oder
die CPU 116 für
das Server-System 104 sein. Die CPU 12, der ROM 13 und der
RAM 14 sind über
eine PCI-Hostbrücke 15 ebenfalls
mit einem PCI-Bus 20 des Computersystems 10 verbunden.
Die PCI-Hostbrücke 15 stellt
einen Weg mit geringer Latenzzeit bereit, über den die CPU 12 auf
PCI-Einheiten direkt zugreifen kann, die irgendwo in dem Busspeicher
und/oder E/A-Adressräumen
abgebildet sind. Die PCI-Hostbrücke 15 stellt
außerdem einen
Pfad mit großer
Bandbreite bereit, der PCI-Einheiten einen direkten Zugriff auf
den RAM 14 ermöglicht.
-
An
den PCI-Bus 20 sind außerdem
eine Lokalnetz-(LAN)Schnittstelle 16 und eine Kleincomputersystem-Schnittstelle
(SCSI) 18 angeschlossen. Die LAN-Schnittstelle 16 verbindet
das Computersystem 10 mit dem LAN 17. Die SCSI 18 wird
verwendet, um ein schnelles SCSI-Plattenlaufwerk 19 zu
steuern. Die Erweiterungsbusbrücke 45,
wie etwa eine PCI-ISA-Busbrücke, kann
verwendet werden, um einen ISA-Bus 25 mit einem PCI-Bus 20 zu
verbinden. Wie gezeigt ist, können
eine Tastatur 26, ein Mikrofon 27, eine Maus 28 und
eine Speichereinheit 29 mit dem ISA-Bus 25 verbunden
sein, um grundlegende E/A-Funktionen auszuführen. Die Speichereinheit 29 kann
das Speichersystem 103A, 103B oder 103C für das betreffende
Client-System 102A, 102B oder 102C oder
die Speichervorrichtung 105 für das Server-System 104 sein.
Außerdem
können ein
Audio-Adapter 23 und ein Grafik-Adapter 21 mit dem
PCI-Bus 20 verbunden sein. Der Grafik-Adapter 21 steuert
visuelle Ausgaben über
einen Anzeigemonitor 22, und der Audio-Adapter 23 steuert
akustische Ausgaben über
einen Lautsprecher 24.
-
In
den 3 und 4 sind Ablaufpläne der beispielhaften
Verfahren 300 und 400 sowie der Programme, die
von dem Datenverarbeitungssystem 100 zum Verschlüsseln und
Entschlüsseln
von Nachrichten gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung ausgeführt
werden, gezeigt. Die Verfahren 300 und 400 werden
in Verbindung mit einem Beispiel zum digitalen Signieren einer Nachricht,
deren Hash-Wert durch eine kryptografische Funktion gebildet wurde,
erläutert.
Der Hash-Wert der Nachricht wird durch den Benutzer 1 gesendet und
durch die Verfahren 300 und 400 unter Verwendung
des Benutzerschlüssels
1 des zugeordneten Schlüssels
A und des ECK 107 verschlüsselt und entschlüsselt. Die
Verfahren 300 und 400 sind in keiner Weise auf
diese beispielhafte Anmeldung beschränkt. Die Verfahren 300 und 400 verschlüsseln und
entschlüsseln
Nachrichten in der gleichen Weise für die Benutzer 2 und 3 unter
Verwendung der Benutzerschlüssel
2 und 3, der zugeordneten Schlüssel B
und C und des ECK 107. Die Verfahren 300 und 400 können verwendet
werden, um alle geeigneten Nachrichten zu verschlüsseln/entschlüsseln.
-
Wie
in 3 gezeigt ist, beginnt das Verfahren 300 zum
Verschlüsseln
von Nachrichten gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung im Block 302. Das Verfahren 300 geht dann
zum Block 304, der den Benutzer 1 darstellt, dem der Benutzerschlüssel 1 zugeordnet
ist. Der Benutzer 1 verwendet den Benutzerschlüssel 1, um Nachrichten zu verschlüsseln oder
zu signieren, die von dem Datenverarbeitungssystem 100 verarbeitet werden.
Nach dem Block 304 zeigt der Block 305 eine vom
Benutzer 1 gesendete Nachricht, deren Hash-Wert in einem Client-System 102A durch
eine kryptografische Hash-Funktion gebildet wurde. Das Verfahren 300 geht
dann zum Block 306, der einen Hash-Wert der Nachricht (die
die Kennung des Benutzerschlüssels
1 enthält)
zeigt, der vom Client-System 102A zum Server-System 104 übertragen
wird. Persönliche
Identifikationsnummern (PINs) oder Passwörter, die mit der Verwendung
des Benutzerschlüssels
1 verbunden sind, werden außerdem
vom Client-System 102A an das Server-System 104 gesendet.
Der Benutzerschlüssel
1 und alle PINs oder Passwörter
werden gegebenenfalls in dem geschützten Speicherbereich 120 des
Server-Systems 104 empfangen und sicher aufbewahrt.
-
Nach
dem Block 306 stellt der Block 308 den Hash-Wert
der Nachricht dar, der im Server-System 104 durch den PRK1
des Benutzerschlüssels
verschlüsselt
wird.
-
Das
Verfahren 300 geht dann zu den Blöcken 310, 312 und 314.
Der Block 310 veranschaulicht das Server-System 104,
das den Benutzerschlüssel
1 mit dem PRKA des zugeordneten Schlüssels A, der im Server-System 104 gespeichert
ist, verschlüsselt.
Nach dem Block 310 zeigt der Block 312 das Server-System 104, das
den zugeordneten Schlüssel
A mit dem PRECK des ECK 107 verschlüsselt. Das Verfahren 300 geht
anschließend
zum Block 314, der das Server-System 104 darstellt,
das den verschlüsselte
Hash-Wert der Nachricht, den verschlüsselten Benutzerschlüssel 1 und
den verschlüsselten
zugeordneten Schlüssel
A an das Client-System 102A sendet.
-
Das
Verfahren 300 geht vom Block 314 zum Block 316,
der zeigt, dass alle Spuren des verschlüsselten Hash-Werts der Nachricht,
des Benutzerschlüssels
1 und der zugeordneten PINs/Passwörter in dem Server-System 104 gelöscht werden.
Nach dem Block 316 zeigt der Block 318 das Client-System 102A,
das den verschlüsselten
Hash-Wert der Nachricht in Verbindung mit dem verschlüsselten
Benutzerschlüssel
1 und dem verschlüsselten
zugeordneten Schlüssel
A an ein Empfängersystem 110 überträgt. Die
verschlüsselte
Nachricht enthält
die ursprüngliche
Nachricht. Das Empfängersystem 110 empfängt den
verschlüsselten
Hash-Wert der Nachricht (der die Nachricht des Benutzers 1 enthält, die möglicherweise
verfälscht
ist), den verschlüsselten Benutzerschlüssel 1 und
den verschlüsselten
zugeordneten Schlüssel
A. Der Empfänger 112 verwendet das
Empfängersystem 110,
um den verschlüsselten Hash-Wert
der Nachricht zu entschlüsseln,
um eine Zuordnung des Benutzers 1 zu dem verschlüsselten Hash-Wert der Nachricht
für gültig zu
erklären.
-
Das
Verfahren 300 geht dann zum Block 320. Der Block 320 veranschaulicht,
dass dann, wenn der Widerruf des Benutzerschlüssels 1 für den Benutzer 1 erfolgen soll
(der Benutzer 1 ist z.B. nicht mehr in der Firma beschäftigt, die
das Datenverarbeitungssystem 100 unterhält, und die Gültigkeit
des Benutzerschlüssels
1 muss widerrufen werden), kann die Gültigkeitserklärung von
verschlüsselten Hash-Werten
der Nachrichten, die dem Benutzer 1 zugeordnet sind, verhindert
werden, indem der zugeordneten Schlüssel A im Server-System 104 widerrufen
wird. Zugeordnete Schlüssel,
wie etwa die zugeordneten Schlüssel
A, B und C, werden niemals außerhalb
des Server-Systems 104 verwendet, wobei im Allgemeinen
lediglich ein berechtigter Systemadministrator auf diese zugreifen
und sie verwalten kann. Der zugeordnete Schlüssel A kann widerrufen werden,
indem er einfach aus dem Server-System 104 gelöscht wird.
Da der zugeordnete Schlüssel
A widerrufen wurde und im Server-System 104 nicht mehr
vorhanden ist, hat der ECK 107 keinen zugeordneten Schlüssel zum
Entschlüsseln,
und der verschlüsselte
Benutzerschlüssel
1 kann seinerseits nicht entschlüsselt
werden, da der zugeordnete Schlüssel
A zum Entschlüsseln
des Benutzerschlüssels
1 nicht vorhanden ist. Das Verfahren 300 endet schließlich im
Block 322.
-
In 4 beginnt
das Verfahren 400 zum Entschlüsseln von Nachrichten gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung im Block 402. Das Verfahren 400 geht
vom Block 402 zum Block 403, der darstellt, dass
eine Datenübertragungsverbindung
zwischen dem Datenverarbeitungssystem 100 und dem Empfängersystem 110 aufgebaut
und aufrechterhalten wird. Nach dem Block 403 veranschaulicht
der Block 404 das Empfängersystem 110,
das den verschlüsselten Hash-Wert
der Nachricht, den verschlüsselten
Benutzerschlüssel
1 und den verschlüsselten
zugeordneten Schlüssel
A vom Client-System 102A empfängt. Der Empfänger 112 verwendet
das Empfängersystem 110,
um die Zuordnung des Benutzers 1 zu dem verschlüsselten Hash-Wert der Nachricht
für gültig zu erklären.
-
Das
Verfahren 400 geht dann zu den Blöcken 408, 410 und 412.
Der Block 408 stellt das Empfängersystem 110 dar,
das den verschlüsselten
zugeordneten Schlüssel
A durch den Zugriff auf den PUECK des ECK 107 und dessen
Verwendung entschlüsselt.
Der Block 410 veranschaulicht das Empfängersystem 110, das
den verschlüsselten
Benutzerschlüssel
1 durch einen Zugriff auf den PUKA des zugeordneten Schlüssels A
und dessen Verwendung entschlüsselt.
Der Block 412 zeigt das Empfängersystem 110, das
den verschlüsselten
Hash-Wert der Nachricht durch Zugreifen auf den PUK1 des Benutzerschlüssels 1
und dessen Verwendung entschlüsselt.
Das Verfahren 400 geht anschließend zum Block 414,
der das Empfängersystem 110 darstellt, das
auf die gleiche kryptografische Hash-Funktion, die von dem Client-System 102A verwendet
wurde, zugreift und diese verwendet, um eine Hash-Wert-Bildung an
der Nachricht auszuführen, die
mit dem verschlüsselten
Hash-Wert der Nachricht verknüpft
ist, der über
das Client-System 102A vom Benutzer 1 empfangen wurde.
-
Das
Verfahren 400 geht dann zum Entscheidungsblock 416,
der feststellt, ob der Hash-Wert der Nachricht, der durch das Empfängersystem 110 erzeugt
wurde, gleich dem entschlüsselten
Hash-Wert der Nachricht ist. Wenn im Entscheidungsblock 416 die
Feststellung getroffen wird, dass die Hash-Werte der Nachrichten
gleich sind, geht das Verfahren 400 vom Entscheidungsblock 416 zum
Block 418, der das Empfängersystem 110 darstellt,
das den Empfänger 112 darüber benachrichtigt,
dass die empfangene Nachricht gültig
ist und bestätigt
wird, dass sie vom Benutzer 1 gesendet wurde. Wenn dagegen im Entscheidungsblock 416 die
Hash-Werte der Nachrichten nicht gleich sind, geht das Verfahren 400 dagegen
vom Entscheidungsblock 416 zum Block 420, der
das Empfängersystem 110 veranschaulicht,
das den Empfänger 112 darüber benachrichtigt,
dass die empfangene Nachricht nicht gültig ist und festgestellt wurde,
dass sie nicht vom Benutzer 1 gesendet wurde. Das Verfahren 400 endet
schließlich
im Block 422.
-
Wie
beschrieben wurde, werden ein System, ein Verfahren und ein Programm
gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung zum Verwalten eines Benutzerschlüssels offenbart, der
verwendet wird, um eine Nachricht für ein Datenverarbeitungssystem
zu signieren, das einen Verschlüsselungschip
aufweist. Die vorliegende Erfindung hilft vorzugsweise zu verhindern,
dass unberechtigte Transaktionen und Datenübertragungen infolge des oben
erwähnten
Problems der CRL-Zeitkörnung
auftreten. Die vorliegende Erfindung legt vorzugsweise die Verschlüsselungs-
und Entschlüsselungsfunktion
an einer zentralen Stelle fest. Die vorliegende Erfindung offenbart
vorzugsweise die Verwendung einer sicheren Datenübertragung und eines Schlüsselwiderrufschemas,
um die Probleme zu lösen,
die mit der Zentralisierung der Verschlüsselungs- und Entschlüsselungsfunktion
verbunden sind.
-
Es
sollte anerkannt werden, dass alternative Ausführungsformen der Erfindung
außerdem
möglich
sind. Obwohl Aspekte der vorliegenden Erfindung in Bezug auf ein
Computersystem beschrieben wurden, das Software ausführt, die
die oben erwähnte
Funktionalität
realisiert, sollte z.B. klar sein, dass die vorliegende Erfindung
alternativ als ein Programmprodukt zur Verwendung mit einem Datenverarbeitungssystem
ausgeführt
werden kann. Programme, die die geeignete Funktionalität bereitstellen,
können über eine
Vielzahl von signaltragenden Medien an ein Datenverarbeitungssystem
geliefert werden, die ohne Einschränkung nicht wiederbeschreibbare
Speichermedien (z.B. CD-ROM), wieder beschreibbare Speichermedien
(z.B. eine Floppy Disk oder ein Festplattenlaufwerk) sowie Datenübertragungsmedien,
wie etwa digitale und analoge Netze, enthalten.
-
Zusammenfassend
werden gemäß einer
bevorzugten Ausführungsform
ein System, ein Verfahren und ein Programm zum Verwalten eines Benutzerschlüssels offenbart,
der verwendet wird, um eine Nachricht für ein Datenverarbeitungssystem
zu signieren, das einen Verschlüsselungschip
enthält.
Einem Benutzer ist ein Benutzerschlüssel zugeordnet. Um Nachrichten
an einen oder mehrere Empfänger zu
verschlüsseln
und zu senden, werden die Nachrichten mit dem Benutzerschlüssel verschlüsselt. Der Benutzerschlüssel wird
seinerseits mit einem zugeordneten Schlüssel verschlüsselt. Der
zugeordnete Schlüssel
wird ferner unter Verwendung eines Verschlüsselungschip-Schlüssels verschlüsselt, der
in dem Verschlüsselungschip
gespeichert ist. Die verschlüsselten
Nachrichten werden an einen Empfänger übertragen,
um eine Zuordnung des Benutzers zu den verschlüsselten Nachrichten für gültig zu
erklären.
Der zugeordnete Schlüssel
wird mit dem Verschlüsselungschip-Schlüssel entschlüsselt. Der
Benutzerschlüssel
wird mit dem zugeordneten Schlüssel
entschlüsselt,
und die Nachrichten werden mit dem Benutzerschlüssel entschlüsselt. Daraufhin
wird die Gültigkeit
der Zuordnung von Nachrichten zu dem Benutzer aufgehoben, indem
der zugeordnete Schlüssel
widerrufen wird. Verschlüsselungsbetriebsmittel
sind in einem Server-System, das den Verschlüsselungschip aufweist, zentralisiert.
Das Server-System ist mit einer Vielzahl von Client-Systemen verbunden
und stellt für
diese Verschlüsselungsdienste
bereit. Nachrichten, die verschlüsselt werden
sollen, werden von einem Client-System eines Benutzers an das Server-System
gesendet, das die Nachrichten unter Verwendung des Verschlüsselungschips
verschlüsselt.
Die verschlüsselten
Nachrichten werden von dem Server-System an das Client-System gesendet,
das dann die verschlüsselten Nachrichten
an ihren bzw. ihre vorgesehenen Empfänger sendet. Alle Daten, die
die verschlüsselten Nachrichten
betreffen, werden aus dem Server-System gelöscht, nachdem die verschlüsselten
Nachrichten von dem Server-System an das Client-System gesendet
wurden.