-
Gebiet der Technik
-
Die
vorliegende Erfindung betrifft ein verbessertes Datenverarbeitungssystem
und insbesondere ein Verfahren und eine Vorrichtung zur Übertragung von
Daten zwischen mehreren Rechnern. Genauer gesagt, die vorliegende
Erfindung stellt ein Verfahren und eine Vorrichtung zum Austausch
von Daten zwischen mehreren Rechnern mit Hilfe der Kryptographie
bereit.
-
Stand der Technik
-
Websites
für den
Handel im Internet (eCommerce) und andere Arten von Anwendungen
führen im
Namen von Benutzern und Clients Transaktionen über Rechnernetzwerke aus. Vor
der Durchführung einer
angeforderten Operationen im Namen eines Client muss der Client
häufig
eine Identitätsprüfungsprozedur
durchlaufen, um seine Identität
aus Sicherheitsgründen
mit einem entsprechenden Maß an
Sicherheit nachzuweisen.
-
Viele
Datenverarbeitungssysteme unterstützen Operationen zum Nachweis
der Identität
von Clients über
die Anwendungsprogrammierschnittstelle Generic Security Service
(GSS-API), die in "Generic Security
Services Application Program Interface" von Linn, Internet Engineering Task
Force (IETF) Request for Comments (RFC) 1508, September 1993, von
Linn für
veraltet erklärt, "Generic Security
Services Application Program Interface, Version 2", IETF RFC 2078,
Januar 1997, beschrieben ist. Wie in diesen Schriftstücken dargelegt
ist, stellt die GSS-API Aufrufenden allgemein Sicherheitsdienste
bereit. Die GSS-API unterstützt
unterschiedliche zugrunde liegende Mechanismen und Technologien
durch festgelegte Dienste und Grundelemente und ermöglicht dadurch
eine Übertragbarkeit
von Anwendungen auf Quellebene auf verschiedene Betriebs- und Programmiersprachenumgebungen.
-
Alternative
vorhandene GSS-API-Mechanismen werden in "The Simple Public-Key GSS-API Mechanism
(SPKM)" von Adams,
IETF RFC 2025, Oktober 1996 und in "LIPKEY – A Low Infrastructure Public
Key Mechanisms Using SPKM" von
Eisler, IETF RFC 2847, Juni 2000, vorgestellt. Wie in diesen Schriftstücken beschrieben
ist, ermöglicht
SPKM die Identitätsprüfung, die
Festlegung von Schlüsseln,
die Unversehrtheit und Vollständigkeit
der Daten (Datenintegrität)
und die Vertraulichkeit der Daten in einer verteilten Online-Anwendungsumgebung
unter Verwendung einer Infrastruktur mit öffentlichem Schlüssel. Da
es die Anforderungen der GSS-API erfüllt, kann SPKM von jeder Anwendung
genutzt werden, die für
den Zugriff auf Sicherheitsdienste GSS-API-Aufrufe verwendet. Alternativ
dazu stellt LIPKEY auch ein Verfahren bereit, um einen sicheren Kanal
zwischen einem Client und einem Server zur Verfügung zu stellen. LIPKEY entspricht
ungefähr der
allgemeinen, mit geringeren Ansprüchen an die Infrastruktur verbundenen
Verwendung der Transport Layer Security (TLS), bei der es sich um
ein alternatives Verfahren zur GSS-API handelt, um Sicherheitsfunktionen
wie Identitätsprüfung, Datenintegrität und Datenschutz
zu realisieren; TLS ist in "The
TLS Protocol, Version 1.0" von
Dierks u.a., IETF RFC 2246, Januar 1999, beschrieben. LIPKEY setzt SPKM
wirksam als einen gesonderten GSS-API-Mechanismus ein, der oberhalb
von SPKM angesiedelt ist.
-
Berücksichtigt
man die Anforderungen von sehr aktiven Serversystemen an die Rechenleistung, besteht
ein Bedarf an flexiblen und einfachen Sicherheitsoperationen. Es
wäre folglich
vorteilhaft, wenn man über
einen Mechanismus verfügen
würde,
der der GSS-API entspricht und der mehrere Arten der Identitätsprüfung von
Clients durchführt.
-
Offenbarung der Erfindung
-
Ein
Verfahren nach den Ansprüchen
1 und 2, ein Rechnerprogrammprodukt nach den Ansprüchen 2 und
3 und eine Vorrichtung nach den Ansprüchen 5 und 6 zum Aufbau eines
sicheren Kontexts werden vorgestellt, um Nachrichten zwischen einem
Client und einem Server auszutauschen, wobei der Kontext der Anwendungsprogrammierschnittstelle
Generic Security Service (GSS-API) entspricht. Der Client sendet
eine erste Nachricht an den Server, die einen vom Client erzeugten
ersten symmetrischen geheimen Schlüssel und ein Identitätsprüfungselement (authentication
token) enthält;
wobei die erste Nachricht mit dem öffentlichen Schlüssel von
einem Zertifikat mit öffentlichem
Schlüssel,
das zu dem Server gehört,
gesichert wird. Unter der Annahme, dass der Server die Identität des Client
auf der Grundlage des Identitätsprüfungselements
nachweisen kann, empfängt
der Client dann vom Server eine zweite Nachricht, die mit dem ersten
symmetrischen Schlüssel gesichert
wurde und einen zweiten symmetrischen geheimen Schlüssel enthält. Der
Client und der Server verwenden den zweiten symmetrischen geheimen Schlüssel, um
nachfolgende Nachrichten zu sichern, die zwischen dem Client und
dem Server gesendet werden. Das Identitätsprüfungselement kann ein Zertifikat
mit öffentlichem
Schlüssel,
das zu dem Client gehört,
ein aus Benutzername und Passwort bestehendes Paar oder ein sicheres
Ticket sein.
-
Kurze Beschreibung der Zeichnungen
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung wird nun lediglich anhand eines Beispiels
und mit Bezug auf die folgenden Figuren ausführlich beschrieben, bei denen:
-
1A ein
typisches Netzwerk aus Datenverarbeitungssystemen zeigt, von denen
jedes bevorzugte Ausführungsformen
der vorliegenden Erfindung realisieren kann;
-
1B eine
typische Rechnerarchitektur zeigt, die in einem Datenverarbeitungssystem
verwendet werden kann, in dem bevorzugte Ausführungsformen der vorliegenden
Erfindung realisiert werden können;
-
2 ein
Blockschaubild ist, das eine typische Art und Weise zeigt, in der
eine Person ein digitales Zertifikat abruft;
-
3 ein
Blockschaubild ist, das eine typische Art und Weise zeigt, in der
eine Instanz ein digitales Zertifikat verwenden kann, dessen Echtheit
gegenüber
einem Datenverarbeitungssystem nachgewiesen werden muss;
-
4 ein
Datenflussdiagramm ist, das einen typischen, der GSS-API entsprechenden
Mechanismus zum Aufbau eines sicheren Datenübertragungskontexts zwischen
einem Client und einem Server zeigt; und
-
5 ein
Datenflussdiagramm ist, das einen typischen, der GSS-API entsprechenden
Mechanismus zum Aufbau eines sicheren Datenübertragungskontexts zwischen
einem Client und einem Server gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt.
-
Betriebsweise für die Erfindung
-
Im
Allgemeinen enthalten die Einheiten, die bevorzugte Ausführungsformen
der vorliegenden Erfindung umfassen oder zu diesen gehören können, ein
breites Spektrum an Datenverarbeitungstechnologie. Als Hintergrund
wird deshalb eine typische Anordnung von Hardware- und Software-Komponenten in
einem verteilten Datenverarbeitungssystem beschrieben, bevor bevorzugte
Ausführungsformen
der vorliegenden Erfindung ausführlicher
beschrieben werden.
-
Nun
Bezug nehmend auf die Figuren zeigt 1A ein
typisches Netzwerk aus Datenverarbeitungssystemen, von denen jedes
einen Teil von bevorzugten Ausführungsformen
der vorliegenden Erfindung realisieren kann. Das verteilte Datenverarbeitungssystem 100 enthält ein Netzwerk 101,
bei dem es sich um ein Medium handelt, das zur Bereitstellung von
Datenübertragungsverbindungen
zwischen verschiedenen Einheiten und Rechnern verwendet werden kann,
die in dem verteilten Datenverarbeitungssystem 100 miteinander
verbunden sind. Das Netzwerk 101 kann feste Verbindungen
wie zum Beispiel Drahtkabel oder Lichtwellenleiterkabel oder zeitweilige
Verbindungen enthalten, die über
Telefon- oder drahtlose Verbindungen hergestellt werden. In dem
gezeigten Beispiel sind der Server 102 und der Server 103 zusammen
mit der Speichereinheit 104 mit dem Netzwerk 101 verbunden.
Ferner sind auch die Clients 105 bis 107 mit dem
Netzwerk 101 verbunden. Die Clients 105 bis 107 und
die Server 102 und 103 können durch viele verschiedene
Datenverarbeitungseinheiten dargestellt werden, zum Beispiel durch
Großrechner,
Personal Computer, persönliche digitale
Assistenten (PDAs) usw. Das verteilte Datenverarbeitungssystem 100 kann
zusätzliche
Server, Clients, Router, andere Einheiten und Architekturen mit
gleichberechtigten Einheiten (Peer-zu-Peer-Architekturen) enthalten,
die nicht gezeigt sind.
-
In
dem gezeigten Beispiel kann das verteilte Datenverarbeitungssystem 100 mit
dem Netzwerk 101 das Internet beinhalten, das einen weltweiten Verbund
von Netzwerken und Netzübergängen (Gateways)
darstellt, die verschiedene Protokolle einsetzen, um miteinander
Daten auszutauschen, wie zum Beispiel das Lightweight Directory
Access Protocol (LDAP), das Transport Control Protocol/Internet
Protocol (TCP/IP), das Hypertext Transport Protocol (HTTP), das
Wireless Application Protocol (WAP) usw. Natürlich kann das verteilte Datenverarbeitungssystem 100 auch
mehrere verschiedene Arten von Netzwerken wie zum Beispiel ein Intranet,
ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN) enthalten.
Zum Beispiel unterstützt
der Server 102 direkt den Client 109 und das Netzwerk 110,
das drahtlose Datenübertragungsverbindungen enthält. Das
netzwerkfähige
Telefon 111 ist über
eine drahtlose Verbindung 112 mit dem Netzwerk 110 verbunden,
und der PDA 113 ist über
eine drahtlose Verbindung 114 mit dem Netzwerk 110 verbunden.
Das Telefon 111 und der PDA 113 können Daten über die drahtlose Verbindung 115 auch
direkt untereinander übertragen,
wobei sie eine entsprechende Technologie wie zum Beispiel die drahtlose
Technologie BluetoothTM nutzen, um so genannte
Personal Area Networks (PANs) oder persönliche Ad-hoc-Netzwerke aufzubauen.
Auf ähnliche
Weise kann der PDA 113 über
die drahtlose Datenübertragungsverbindung 116 Daten
an den PDA 107 übertragen.
-
Bevorzugte
Ausführungsformen
der vorliegenden Erfindung könnten
auf vielen verschiedenen Hardware-Plattformen realisiert werden; 1A soll als
Beispiel für
eine heterogene Datenverarbeitungsumgebung dienen und ist nicht
als architektonische Beschränkung
bei bevorzugten Ausführungsformen der
vorliegenden Erfindung zu verstehen.
-
Nun
Bezug nehmend auf 1B zeigt ein Blockschaltbild
eine typische Rechnerarchitektur eines Datenverarbeitungssystems
wie zum Beispiel der in 1A gezeigten
Datenverarbeitungssysteme, in denen bevorzugte Ausführungsformen
der vorliegenden Erfindung realisiert werden können. Das Datenverarbeitungssystem 120 enthält eine oder
mehrere Zentraleinheiten (CPUs) 122, die an den internen
Systembus 123 angeschlossen sind, der den Direktzugriffspeicher
(RAM) 124, den Nur-Lese-Speicher 126 und den Eingabe-/Ausgabe-Adapter 128 miteinander
verbindet, welcher verschiedene E/A-Einheiten wie den Drucker 130,
die Platteneinheiten 132 oder andere Einheiten, die nicht gezeigt
sind, wie zum Beispiel ein Audioausgabesystem usw. unterstützt. An
den Systembus 123 ist auch der Datenübertragungsadapter 134 angeschlossen, der
Zugriff auf die Datenübertragungsverbindung 136 ermöglicht.
Der Benutzerschnittstellenadapter 148 verbindet verschiedene Benutzereinheiten
wie zum Beispiel die Tastatur 140 und die Maus 142 oder
andere Einheiten, die nicht gezeigt sind, wie zum Beispiel einen
berührungsempfindlichen
Bildschirm, einen Stift, ein Mikrofon usw. Der Bildschirmadapter 144 verbindet
den Systembus 123 mit dem Bildschirm 146.
-
Der
Fachmann versteht, dass die Hardware in 1B in
Abhängigkeit
von der Ausführung
des Systems unterschiedlich ausgestaltet sein kann. Zum Beispiel
kann das System über
einen oder mehrere Prozessoren wie zum Beispiel einen Prozessor,
der auf dem Pentium®-Prozessor von Intel® beruht,
sowie einen digitalen Signalprozessor (DSP) und über eine oder mehrere Arten
von flüchtigem
oder nichtflüchtigem
Speicher verfügen.
Andere periphere Einheiten können
zusätzlich
zu der oder anstelle von der in 1B gezeigten
Hardware verwendet werden. Die gezeigten Beispiele sind nicht als
architektonische Beschränkungen
in Bezug auf bevorzugte Ausführungsformen
der vorliegenden Erfindung zu verstehen.
-
Bevorzugte
Ausführungsformen
der vorliegenden Erfindung können
nicht nur auf vielen verschiedenen Hardware-Plattformen, sondern
auch in vielen verschiedenen Software-Umgebungen realisiert werden.
Ein typisches Betriebssystem kann zur Steuerung der Programmausführung in
jedem Datenverarbeitungssystem eingesetzt werden. Eine Einheit kann
zum Beispiel ein Unix®-Betriebssystem ausführen, während eine
andere Einheit eine einfache Java®-Laufzeitumgebung
enthält.
Eine repräsentative
Rechnerplattform kann einen Browser enthalten, bei dem es sich um
eine bekannte Software-Anwendung zum Zugriff auf Hypertext-Dokumente
in vielen verschiedenen Formaten wie zum Beispiel Grafikdateien,
Textverarbeitungsdateien, Extensible Markup Language (XML), Hypertext
Markup Language (HTML), Handheld Device Markup Language (HDML),
Wireless Markup Language (WML) sowie verschiedene andere Formate
und Dateitypen handelt.
-
Die
Beschreibungen der hier gezeigten Figuren schließen bestimmte Aktionen ein,
die entweder von einer Client-Einheit oder einem Benutzer der Client-Einheit
durchgeführt
werden. Der Fachmann versteht, dass Antworten und/oder Anforderungen
an den/von dem Client manchmal von einem Benutzer veranlasst und
manchmal automatisch von einem Client, oftmals im Namen des Benutzers
des Client, veranlasst werden. Wenn ein Client oder ein Benutzer
eines Client in der Beschreibung der Figuren erwähnt wird, sollte es sich folglich
verstehen, dass die Begriffe "Client" und "Benutzer" austauschbar verwendet
werden können,
ohne dass sich dies spürbar auf
die Bedeutung der beschriebenen Prozesse auswirkt.
-
Bevorzugte
Ausführungsformen
der vorliegenden Erfindung können
auf vielen verschiedenen Hardware- und Software-Plattformen ausgeführt werden,
wie vorstehend mit Bezug auf 1A und 1B beschrieben
wurde. Im Einzelnen betreffen bevorzugte Ausführungsformen der vorliegenden
Erfindung jedoch einen verbesserten, auf einem öffentlichen Schlüssel beruhenden
Mechanismus zum Aufbau eines sicheren Kontexts für den Austausch von Daten zwischen
einem Client und einem Server, der der Generic Security Services
Application Programm Interface (GSS-API) entspricht; ein sicherer
Kontext umfasst Informationen, die zwischen zwei oder mehr Instanzen,
die Daten austauschen, für
die Dauer einer Datenübertragungssitzung
gemeinsam benutzt werden, während
derer mehrere sichere Nachrichten zwischen den miteinander kommunizierenden
Instanzen ausgetauscht werden können.
Bevor eine bevorzugte Ausführungsform
der vorliegenden Erfindung jedoch ausführlicher beschrieben wird,
werden einige Hintergrundinformationen über digitale Zertifikate gegeben,
um die Leistungsfähigkeit
sowie weitere Vorteile von bevorzugten Ausführungsformen der vorliegenden
Erfindung beurteilen zu können.
-
Digitale
Zertifikate unterstützen
die Kryptographie mit einem öffentlichen
Schlüssel,
bei der jeder Teilnehmer, der an einer Datenaustauschoperation oder
einer Transaktion beteiligt ist, ein Paar Schlüssel hat, die als öffentlicher
Schlüssel
und privater Schlüssel
bezeichnet werden. Der öffentliche Schlüssel eines
jeden Teilnehmers wird veröffentlicht,
während
der private Schlüssel
geheim gehalten wird. Öffentliche
Schlüssel
sind Ziffern, die einer bestimmten Instanz zugeordnet werden und
jedem bekannt sein sollen, der eine vertrauenswürdige interaktive Kommunikation
mit dieser Instanz führen möchte. Private
Schlüssel
sind Ziffern, die nur einer bestimmten Instanz bekannt sein sollen,
d.h., sie sollen geheim gehalten werden. In einem typischen asymmetrischen
kryptographischen System entspricht ein privater Schlüssel genau
einem öffentlichen
Schlüssel.
-
Da
an dem gesamten Datenaustausch nur öffentliche Schlüssel beteiligt
sind und ein privater Schlüssel
niemals übertragen
oder mit anderen gemeinsam benutzt wird, können vertrauliche Nachrichten
in einem kryptographischen System, das mit einem öffentlichen
Schlüssel
arbeitet, erzeugt werden, indem nur öffentliche Informationen verwendet
werden, und entschlüsselt
werden, indem nur ein privater Schlüssel verwendet wird, der sich
im alleinigen Besitz des vorgesehenen Empfängers befindet. Außerdem kann
die Kryptographie mit öffentlichem Schlüssel zum
Nachweis der Identität,
d.h. für
digitale Signaturen, und auch zum Datenschutz, d.h. zur Verschlüsselung,
eingesetzt werden.
-
Bei
der Verschlüsselung
werden Daten in eine Form umgewandelt, die von einer Person, die nicht über einen
geheimen Entschlüsselungsschlüssel verfügt, nicht
gelesen werden kann; die Verschlüsselung
gewährleistet
Vertraulichkeit, indem der Inhalt der Information vor jeder Person,
für die
er nicht bestimmt ist, verborgen wird, selbst vor denjenigen, die
die verschlüsselten
Daten sehen können. Der
Nachweis der Identität
ist ein Prozess, durch den sich der Empfänger einer digitalen Nachricht
der Identität
des Senders und/oder der Unversehrtheit der Nachricht sicher sein
kann.
-
Wenn
ein Sender zum Beispiel eine Nachricht verschlüsselt, wird der öffentliche
Schlüssel
des Empfängers
dazu verwendet, die Daten in der ursprünglichen Nachricht in den Inhalt
der verschlüsselten
Nachricht umzuwandeln. Ein Sender verwendet einen öffentlichen
Schlüssel
des vorgesehenen Empfängers,
um Daten zu entschlüsseln,
und der Empfänger
verwendet seinen privaten Schlüssel,
um die verschlüsselte
Nachricht zu entschlüsseln.
-
Bei
der Bestätigung
der Echtheit von Daten können
Daten signiert werden, indem auf der Grundlage der Daten unter Verwendung
des privaten Schlüssels
des Unterzeichners eine digitale Signatur berechnet wird. Sobald
die Daten digital signiert wurden, können sie mit der Kennung des
Unterzeichners und der Signatur, die als Nachweis dafür dient,
dass die Daten von dem Unterzeichner stammen, gespeichert werden.
Ein Unterzeichner verwendet seinen privaten Schlüssel, um Daten zu signieren,
und ein Empfänger
verwendet den öffentlichen
Schlüssel
des Unterzeichners, um die Echtheit der Signatur zu prüfen.
-
Ein
Zertifikat ist ein digitales Dokument, das dafür bürgt, dass die Instanzen wie
zum Beispiel eine einzelne Person, ein Rechnersystem, ein bestimmter Server,
der auf diesem System läuft,
usw. über
die jeweilige Identität
und den jeweiligen Schlüssel
verfügen.
Zertifikate werden von Zertifizierungsstellen ausgegeben. Eine Zertifizierungsstelle
(certificate authority, CA) ist eine Instanz, gewöhnlich eine
an einer Transaktion beteiligte vertrauenswürdige dritte Partei, die zuverlässig Zertifikate
für andere
Personen oder Instanzen signiert oder ausgibt. Die CA ist gewöhnlich in
einer bestimmten Weise rechtlich dafür verantwortlich, dass sie
sich für
die Bindung zwischen einem öffentlichen
Schlüssel
und seinem Eigner verbürgt,
die es einem ermöglichen,
der Instanz, die ein Zertifikat signiert hat, zu vertrauen. Es gibt
viele gewerbliche Zertifizierungsstellen; diese Stellen sind bei
der Ausgabe des Zertifikats für
den Nachweis der Identität
einer Instanz und deren Eignerschaft an dem Schlüssel zuständig.
-
Wenn
eine Zertifizierungsstelle ein Zertifikat für eine Instanz ausgibt, muss
die Instanz einen öffentlichen
Schlüssel
und einige Informationen über die
Instanz zur Verfügung
stellen. Ein Software-Werkzeug wie zum Beispiel speziell ausgestattete Webbrowser
können
diese Informationen digital signieren und sie an die Zertifizierungsstelle
senden. Die Zertifizierungsstelle kann ein gewerblich tätiges Unternehmen
sein, das Dienste einer vertrauenswürdigen dritten Partei in Form
der Zertifizierungsstelle bereitstellt. Die Zertifizierungsstelle
erzeugt dann das Zertifikat und schickt es zurück. Das Zertifikat kann andere
Informationen wie zum Beispiel eine Seriennummer und Datumsangaben
enthalten, während derer
das Zertifikat gültig
ist. Ein Teil des Wertes, den eine Zertifizierungsstelle bietet,
besteht darin, dass sie die Funktion eines neutralen und vertrauenswürdigen Bekanntmachungsdienstes übernimmt,
der zum Teil auf den Prüfungsanforderungen
der Zertifizierungsstellen beruht, die in ihren Certification Service
Practices (CSP) veröffentlicht
sind.
-
Eine
CA erstellt ein neues digitales Zertifikat, indem sie den öffentlichen
Schlüssel
der anfordernden Instanz zusammen mit anderen der Identifikation dienenden
Informationen in das Zertifikat einbettet und das digitale Zertifikat
dann mit dem privaten Schlüssel
der CA signiert. Jeder, der das digitale Zertifikat während einer
Transaktion oder einer Datenaustauschoperation empfängt, kann
dann den öffentlichen
Schlüssel
der CA zur Prüfung
der Echtheit des zur Signierung verwendeten öffentlichen Schlüssels in
dem Zertifikat verwenden. Beabsichtigt ist, dass die Signatur der
CA als fälschungssicheres
Siegel auf dem digitalen Zertifikat dient, wodurch die Unversehrtheit
der Daten in dem Zertifikat gewährleistet wird.
-
Andere
Aspekte der Verarbeitung von Zertifikaten werden ebenfalls standardisiert.
Das Certificate Request Message Format (RFC 2511) legt ein Format
fest, dessen Verwendung immer empfohlen wird, wenn ein Teilnehmer,
der sich auf die Vertrauenswürdigkeit
eines Zertifikats verlässt
(relying party), ein Zertifikat von einer CA anfordert. Zertifikat-Verwaltungsprotokolle
(Certificate Management Protocols) wurden zur Übertragung von Zertifikaten
ebenfalls veröffentlicht.
Eine bevorzugte Ausführungsform
der vorliegenden Erfindung befindet sich in einem verteilten Datenverarbeitungssystem,
das digitale Zertifikate verwendet; die Beschreibung der 2 und 3 vermittelt
Hintergrundinformationen über
typische Operationen, die digitale Zertifikate einschließen.
-
Nun
Bezug nehmend auf 2 zeigt ein Blockschaubild eine
typische Art und Weise, in der eine Person ein digitales Zertifikat
erhält.
Der Benutzer 202, der Operationen an irgendeiner Art eines
Client-Rechners ausführt,
hat zuvor ein aus einem öffentlichen
Schlüssel
und einem privaten Schlüssel bestehendes
Schlüsselpaar
abgerufen oder erzeugt, zum Beispiel den öffentlichen Schlüssel 204 des
Benutzers und den privaten Schlüssel 206 des
Benutzers. Der Benutzer 202 erzeugt eine Anforderung für ein Zertifikat 208,
das den öffentlichen
Schlüssel 204 des
Benutzers enthält,
und sendet die Anforderung an die Zertifizierungsstelle 210,
die sich im Besitz des öffentlichen
Schlüssels 212 der
CA und des privaten Schlüssels 214 der
CA befindet. Die Zertifizierungsstelle 210 prüft die Identität des Benutzers 202 in
einer bestimmten Weise und erzeugt das digitale X.509-Zertifikat 216,
das den öffentlichen
Schlüssel 218 des
Benutzers enthält.
Das ganze Zertifikat wird mit dem privaten Schlüssel 214 der CA signiert;
das Zertifikat enthält
den öffentlichen
Schlüssel
des Benutzers, den zu dem Benutzer gehörenden Namen und andere Attribute.
Der Benutzer 202 empfängt das
neu erzeugte digitale Zertifikat 216, und der Benutzer 202 kann
das digitale Zertifikat 216 dann bei Bedarf vorlegen, um
an vertrauenswürdigen
Transaktionen oder vertrauenswürdigen
Datenaustauschoperationen teilzunehmen. Eine Instanz, die das digitale
Zertifikat 216 vom Benutzer 202 empfängt, kann die
Echtheit der Signatur der CA prüfen,
indem sie den öffentlichen
Schlüssel 212 der
CA verwendet, der veröffentlicht
wird und der Instanz zur Verfügung steht,
die die Echtheit prüft.
-
Nun
Bezug nehmend auf 3 zeigt ein Blockschaubild eine
typische Art und Weise, in der eine Instanz ein digitales Zertifikat
verwenden kann, dessen Echtheit gegenüber einem Datenverarbeitungssystem
nachgewiesen werden muss. Der Benutzer 302 ist im Besitz
des digitalen X.509-Zertifikats 304, das an eine Internet-
oder Intranet-Anwendung 306 auf dem Host-System 308 übertragen
wird; die Anwendung 306 umfasst X.509-Funktionalität zur Verarbeitung
und Verwendung von digitalen Zertifikaten. Der Benutzer 302 signiert
oder verschlüsselt
Daten, die er an die Anwendung 306 sendet, mit seinem privaten
Schlüssel.
-
Die
Instanz, die das Zertifikat 304 empfängt, kann eine Anwendung, ein
System, ein Teilsystem usw. sein. Das Zertifikat 304 enthält den Namen
des Zertifikatinhabers oder eine Kennung des Zertifikatinhabers,
die den Benutzer 302 gegenüber der Anwendung 306 ausweist,
die einen Dienst irgendeiner Art für den Benutzer 302 ausführen kann.
Die Instanz, die das Zertifikat 304 verwendet, prüft die Echtheit des
Zertifikats, bevor sie es in Bezug auf die signierten oder verschlüsselten
Daten vom Benutzer 302 verwendet.
-
Das
Host-System 308 kann auch eine System-Registrierdatenbank 310 enthalten,
die dazu dient, dem Benutzer 302 eine Berechtigung für den Zugriff
auf Dienste und Ressourcen in dem System 308 zu erteilen,
d.h., die Identität
eines Benutzers mit Benutzerrechten in Einklang zu bringen. Beispielsweise
hat ein System-Administrator die Identität eines Benutzers so konfiguriert,
dass er zu einer bestimmten Sicherheitsgruppe gehört, und
der Benutzer hat nur eingeschränkten
Zugriff auf diejenigen Ressourcen, die so konfiguriert sind, dass
sie der Sicherheitsgruppe als Ganzes zur Verfügung stehen. Verschiedene bekannte
Verfahren zur Einführung
eines Berechtigungzuweisungsschemas können in dem System zur Anwendung
kommen.
-
Um
die Echtheit eines digitalen Zertifikats ordnungsgemäß auf Gültigkeit
zu prüfen
beziehungsweise zu bestätigen,
muss eine Anwendung prüfen, ob
das Zertifikat widerrufen worden ist. Wenn die Zertifizierungsstelle
das Zertifikat ausgibt, erzeugt sie eine eindeutige Seriennummer,
anhand der das Zertifikat erkannt werden soll, und diese Seriennummer wird
in dem Feld "Seriennummer
("Serial Numer") in einem X.509-Zertifikat
gespeichert. Üblicherweise wird
ein widerrufenes X.509-Zertifikat
in einer Liste der widerrufenen Zertifikate (CRL) anhand der Seriennummer
des Zertifikats erkannt; die Seriennummer eines widerrufenen Zertifikats
erscheint in einer Liste der Seriennummern in der CRL.
-
Um
festzustellen, ob das Zertifikat 304 immer noch gültig ist,
ruft die Anwendung 306 eine Liste der widerrufenen Zertifikate
aus der CRL-Datenablage 312 ab und prüft die CRL auf Gültigkeit.
Die Anwendung 306 vergleicht die Seriennummer in dem Zertifikat 304 mit
der Liste der Seriennummern in der abgerufenen CRL, und wenn es
keine übereinstimmenden
Seriennummern gibt, erklärt
die Anwendung 306 das Zertifikat 304 für gültig. Wenn
die CRL eine Seriennummer enthält,
die mit einer anderen Seriennummer übereinstimmt, muss das Zertifikat 304 zurückgewiesen
werden, und die Anwendung 306 kann geeignete Maßnahmen
ergreifen, um die Anforderung des Benutzers für den Zugriff auf gesteuerte
Ressourcen zurückzuweisen.
-
Während 3 ein
allgemeines Verfahren zeigt, mittels dessen ein Client ein digitales
Zertifikat für
den Zugriff auf einen Server verwenden kann, zeigt 4 Einzelheiten
der Übertragung
von Informationen zwischen dem Client und dem Server, um einen sicheren
Datenübertragungskontext
aufzubauen, was mit Bezug auf 3 nicht
beschrieben worden ist.
-
Nun
Bezug nehmend auf 4 zeigt ein Datenflussdiagramm
einen typischen Mechanismus, der der GSS-API entspricht und zum
Aufbau eines sicheren Datenübertragungskontexts
zwischen einem Client und einem Server dient. Der Prozess beginnt damit,
dass der Client 402 das Zertifikat mit dem öffentlichem
Schlüssel
vom Server 404 anfordert (Schritt 406). Der Server
verarbeitet die Anforderung und erzeugt eine Antwort (Schritt 408),
die eine Kopie des Zertifikats des Servers mit dem öffentlichem Schlüssel enthält oder
der Kopie beigefügt
ist, und diese Kopie des Zertifikats wird an den anfordernden Client
zurückgeschickt
(Schritt 410).
-
Der
Client prüft
das Zertifikat des Servers mit dem öffentlichen Schlüssel auf
Gültigkeit
und erzeugt einen Sitzungsschlüssel
(Schritt 412); der Sitzungsschlüssel ist vorzugsweise ein symmetrischer
geheimer Schlüssel.
Der Client sendet den Sitzungsschlüssel dann sicher an den Server
(Schritt 414). Der Client kann den Sitzungsschlüssel beispielsweise
mit dem öffentlichen
Schlüssel
des Servers verschlüsseln,
der zuvor dem Zertifikat des Servers mit dem öffentlichen Schlüssel entnommen
wurde. Der verschlüsselte
Sitzungsschlüssel
wird dann in eine Nachricht gestellt, die mit dem privaten Schlüssel des Client
digital signiert wird. Der Server kann die Echtheit der digitalen
Signatur auf der Nachricht mit dem öffentlichen Schlüssel des
Client prüfen,
um sicherzustellen, dass die Nachricht von dem Client erzeugt und
signiert wurde, und der Sitzungsschlüssel kann nur vom Server entschlüsselt werden.
Eine Beschreibung von anwendbaren Formaten für digitale Umschläge und digitale
Signaturen findet sich in "PKCS #7:
Cryptographic Message Syntax Standard", Version 1.5, RSA Laboratories Technical
Note, 11/01/1993.
-
Der
Server nimmt daraufhin den Sitzungsschlüssel an, zum Beispiel, nachdem
er die Echtheit der digitalen Signatur des Client geprüft hat und
den Sitzungsschlüssel
entschlüsselt
hat, und erzeugt dann eine sichere Antwort (Schritt 416),
die an den Client zurückgeschickt
wird (Schritt 418). Anschließend erzeugt und verschlüsselt der
Client ein Client-Identitätsprüfungselement
(Schritt 420) und sendet dieses sicher an den Server (Schritt 422).
Nachdem er der empfangenen Nachricht das Client-Identitätsprüfungselement
entnommen hat, bestätigt
der Server die Identität
des Client und erzeugt eine Antwort (Schritt 424), die
sicher an den Client zurückgeschickt
wird (Schritt 426). Der Client wertet die Nachricht anschließend aus,
um festzustellen, ob die Identität
des Client vom Server positiv geprüft wurde oder ob der Server
die Anforderung auf Prüfung
der Identität
des Client zurückgewiesen
hat (Schritt 428), und der Prozess wird beendet.
-
Wie
vorstehend erwähnt
wurde, zeigt 4 ein typisches Verfahren zum
Aufbau eines sicheren Datenübertragungskontexts gemäß einem
bekannten Mechanismus, der der GSS-API entspricht. Im Gegensatz
dazu bezieht sich der vorliegende Ansatz auf einen verbesserten
Mechanismus, der der GSS-API entspricht und auf einem öffentlichen Schlüssel beruht,
um einen sicheren Datenübertragungskontext
aufzubauen, wie hier nachstehend mit Bezug auf die restlichen Figuren
beschrieben wird.
-
Nun
Bezug nehmend auf 5 zeigt ein Datenflussdiagramm
einen typischen Mechanismus, der der GSS-API entspricht, um einen
sicheren Datenübertragungskontext
zwischen einem Client und einem Server gemäß einer Ausführungsform
der vorliegenden Erfindung aufzubauen. Der Prozess beginnt damit,
dass der Client 502 eine Anforderung an den Server 504 sendet,
um das Zertifikat des Servers mit dem öffentlichen Schlüssel zu
erhalten (Schritt 506), zum Beispiel, wenn der Client versucht,
eine Verbindung mit der Server-Anwendung herzustellen. Nach dem
Empfang der Anforderung verarbeitet der Server die Anforderung und
erzeugt eine Antwort (Schritt 508), die eine Kopie des
Zertifikats des Servers mit dem öffentlichem
Schlüssel
enthält
oder der Kopie beigefügt
ist, und diese Antwort wird an den anfordernden Client zurückgeschickt
(Schritt 510).
-
Nach
dem Empfang des digitalen Zertifikats des Servers prüft der Client
das Zertifikat des Servers mit dem öffentlichen Schlüssel auf
Gültigkeit,
um sicherzustellen, dass es von einer vertrauenswürdigen Zertifizierungsstelle
signiert worden ist (Schritt 512). Es sei angemerkt, dass
der Client erkennen kann, dass er zuvor eine Kopie dieses Zertifikats
des Servers mit dem öffentlichen
Schlüssel
auf Gültigkeit
geprüft
und gespeichert hat, wodurch es dem Client möglich wurde, das Zertifikat
des Servers durch Abruf aus einem lokalen Cachespeicher zu erhalten.
Alternativ dazu kann das Zertifikat des Servers mit dem öffentlichen
Schlüssel
dem Client auf eine andere Weise bereitgestellt werden, zum Beispiel,
indem der Client das Zertifikat des Servers mit dem öffentlichen Schlüssel aus
einem Verzeichnis oder einem ähnlichen
Datenspeicher abruft.
-
Unter
der Annahme, dass das Zertifikat des Servers zuvor positiv auf Gültigkeit
geprüft
wurde, entnimmt der Client dem Zertifikat den öffentlichen Schlüssel des
Servers und legt ihn im Cachespeicher ab. Der Client erzeugt dann
zusammen mit einem Identitätsprüfungselement
einen zufälligen
symmetrischen geheimen Schlüssel
(Schritt 514); dieser ganz bestimmte geheime Schlüssel wird
hier als der Transportschlüssel
bezeichnet. Das Identitätsprüfungselement
kann ein aus Benutzername und Passwort bestehendes Paar, ein mit
einem Zeitstempel versehenes sicheres Ticket von einem Hauptidentitätsprüfer, ein
Zertifikat mit einem öffentlichen Schlüssel, das
zu dem Client gehört,
oder eine andere Information, mit der sich die Identität prüfen lässt, umfassen;
der Client kann das Identitätsprüfungselement
gegebenenfalls erzeugen, indem er lediglich ein Datenelement wie
zum Beispiel ein sicheres Ticket kopiert.
-
Anschließend sendet
der Client den Transportschlüssel
und das Identitätsprüfungselement
sicher an den Server (Schritt 516). Die Übertragung des
Transportschlüssels
und des Identitätsprüfungselements
vom Client an den Server wird auf eine bestimmte Weise durch Verschlüsselung
unter Verwendung des öffentlichen
Schlüssels
des Servers gesichert. Zum Beispiel können der Transportschlüssel und
das Identitätsprüfungselement
mit Hilfe des öffentlichen Schlüssels des
Servers verschlüsselt
werden, um einen digitalen Umschlag für die Nachricht zu erzeugen,
die an den Server gesendet wird. Alternativ dazu können der
Transportschlüssel
und das Identitätsprüfungselement
einzeln zur Einbindung in eine Nachricht an den Server verschlüsselt werden.
-
Nach
dem Empfang der sicheren Nachricht von dem Client entschlüsselt der
Server den digitalen Umschlag mit dem privaten Schlüssel des
Servers. Der Server bestätigt
dann die Identität
des Client oder des Benutzers des Client (Schritt 518),
wobei er von einem Prozess Gebrauch macht, der für die Art des Identitätsprüfungselements,
das an den Server gesendet wurde, geeignet ist, d.h. auf der Grundlage der
Art des Identitätsprüfungselements,
das vom Client an den Server gesendet wurde. Beispielsweise kann
der Server in einem LDAP nach einem aus Benutzernamen und Passwort
bestehenden Paar nachschlagen oder ein sicheres Ticket, zum Beispiel
ein Kerberos-Ticket, auf Gültigkeit
prüfen.
In dem Fall, in dem das Identitätsprüfungselement
ein Zertifikat des Client ist, ist der Identitätsnachweis erreicht, wenn der
Server mit einem zufälligen
Sitzungsschlüssel antwortet,
der mit dem öffentlichen
Schlüssel
des Client (einem digitalen Umschlag) verschlüsselt wird, den nur der legitime
Client mit Hilfe des privaten Schlüssels entschlüsseln kann,
welcher zu dem öffentlichen
Schlüssel
in dem Zertifikat des Client gehört;
der digitale Umschlag wird noch mit dem Transportschlüssel verschlüsselt gesendet,
den der Client an den Server sendet, um einen Angriff durch einen Unbekannten
("man in the middle
attack") zu verhindern.
Unter der Annahme, dass die Identität des Client nachgewiesen wurde,
erzeugt der Server dann einen zufälligen symmetrischen geheimen
Schlüssel (Schritt 520),
der zur Sicherung von Nachrichten in dem zwischen dem Client und
dem Server aufgebauten Datenübertragungskontext
verwendet wird; dieser ganz bestimmte geheime Schlüssel wird
hier als der Sitzungsschlüssel
bezeichnet.
-
Der
Server sendet dann den Sitzungsschlüssel sicher an den Client (Schritt 522).
Die Übertragung
des Sitzungsschlüssels
vom Server an den Client wird auf eine bestimmte Weise durch Verschlüsselung
unter Verwendung des Transportschlüssels sichergestellt. Der Server
kann den Sitzungsschlüssel
zum Beispiel in ein Sitzungssymbol (session token) stellen, das
der Server mit dem Transportschlüssel
verschlüsselt;
anschließend
kann der Server das verschlüsselte
Sitzungssymbol in eine Nachricht stellen, die der Server mit dem öffentlichen Schlüssel des
Client versiegelt, und daraufhin verschlüsselt er den resultierenden
Umschlag mit dem Transportschlüssel.
Alternativ dazu kann der Server den Transportschlüssel verwenden,
um den Sitzungsschlüssel
einzeln zu verschlüsseln,
bevor er den verschlüsselten
Sitzungsschlüssel
in eine Nachricht stellt, die an den Client gesendet werden soll. Als
ein weiteres Beispiel für
die Erzeugung einer sicheren Nachricht kann der Server den Transportschlüssel zur
Erzeugung eines digitalen Umschlags für eine Nachricht verwenden,
die den Sitzungsschlüssel
enthält.
-
Nach
dem Empfang der Nachricht verwendet der Client den Transportschlüssel, um
den entsprechenden Teil der Nachricht zu entschlüsseln und um den Sitzungsschlüssel zu
entnehmen (Schritt 524), wodurch der Prozess beendet wird.
In Abhängigkeit von
dem verwendeten Mechanismus zur Identitätsprüfung hat der Server die Nachricht
gegebenenfalls in verschiedenen Formaten erzeugt; daher kann der Client
den Sitzungsschlüssel
direkt von einem Sitzungssymbol erhalten, oder er muss den Sitzungsschlüssel gegebenenfalls
mit dem privaten Schlüssel des
Client entschlüsseln,
wenn der Server den öffentlichen
Schlüssel
des Client auch zur Verschlüsselung des
Sitzungsschlüssels
oder zur Verschlüsselung
eines Teils der Nachricht verwendet hat, die den Sitzungsschlüssel enthält. Überdies
können
Nachrichten zwischen dem Client und dem Server eine Folgenummer
enthalten, um sich gegen Angriffe durch Wiedereinspielung zu schützen.
-
Nachdem
der Prozess abgeschlossen ist, sind sowohl der Client als auch der
Server im Besitz einer Kopie des Sitzungsschlüssels, der anschließend zur
Sicherung von zwischen dem Client und dem Server ausgetauschten
Nachrichten verwendet werden kann, wodurch die Vertraulichkeit und
die Unversehrtheit der Daten für
den Datenübertragungskontext
zwischen dem Client und dem Server zuverlässig sichergestellt wird. Der
Client kann den Sitzungsschlüssel
zum Beispiel verwenden, um Anforderungsnachrichten für den Zugriff
auf Ressourcen, die vom Server gesteuert werden, sicher an den Server
zu senden. Der Fachmann dürfte
verstehen, dass der Sitzungsschlüssel
für eine
bestimmte Datenübertragungssitzung
zwischen dem Client und dem Server verwendet werden kann, dass die
bestimmte Datenübertragungssitzung
zwischen dem Client und dem Server gleichzeitig mit anderen sicheren
Datenübertragungssitzungen zwischen dem Client und dem
Server und/oder anderen Servern im Rahmen von sicheren Kontexten,
die von dem GSS-API-konformen Mechanismus einer bevorzugten Ausführungsform
der vorliegenden Erfindung bereitgestellt werden, oder im Rahmen
von sicheren Kontexten, die von einem anderen Mechanismus bereitgestellt werden,
stattfinden kann und dass die bestimmte Datenübertragungssitzung beendet
werden kann, während
diese gleichzeitig stattfindenden Sitzungen fortgesetzt werden können.
-
Die
Vorteile dieses Ansatzes dürften
in Anbetracht der vorstehenden ausführlichen Beschreibung offensichtlich
sein. Verglichen mit GSS-API-konformen Mechanismen nach dem Stand
der Technik zum Aufbau eines sicheren Datenübertragungskontexts bieten
bevorzugte Ausführungsformen
der vorliegenden Erfindung die Möglichkeit,
einen aus Benutzernamen und Passwort bestehenden Typ der Client-Server-Identitätsprüfungsoperation
nach Bedarf auf eine vollständige
Lösung
mit einer auf einem öffentlichen
Schlüssel
beruhenden Infrastruktur (public-key infrastructure, PKI) zu erweitern,
während dieselben
einer GSS-API entsprechenden Mechanismen wie die zuvor ausgeführte, aus
Benutzernamen und Passwort bestehende Lösung weiterhin verwendet werden
können. Überdies
ermöglicht
die bevorzugte Ausführungsform
der vorliegenden Erfindung einem Client, seine Identität mit Hilfe
eines Zertifikats mit einem öffentlichen
Schlüssel
nachzuweisen, was bei LIPKEY nicht möglich ist. Darüber hinaus
gestattet die bevorzugte Ausführungsform
der vorliegenden Erfindung die Nutzung von vielen verschiedenen
Client-Identitätsprüfungsmechanismen
wie zum Beispiel ein aus Benutzername und Passwort bestehendes Paar,
ein sicheres Ticket oder ein Zertifikat mit öffentlichem Schlüssel, was
SPKM nicht unterstützt. Ferner
setzt die bevorzugte Ausführungsform
der vorliegenden Erfindung den Netzwerkverkehr und kryptographische
Operationen im Vergleich zu LIPKEY auf ein Mindestmaß herab,
beispielsweise werden statt der sechs Nachrichten, die bei LIPKEY
ausgetauscht werden, nur vier Nachrichten zwischen einem Client
und einem Server ausgetauscht.
-
Es
sei unbedingt angemerkt, dass eine bevorzugte Ausführungsform
der vorliegenden Erfindung zwar im Zusammenhang mit einem uneingeschränkt funktionsfähigen Datenverarbeitungssystem
beschrieben wurde, der Fachmann jedoch verstehen wird, dass die
Prozesse der bevorzugten Ausführungsform
der vorliegenden Erfindung in Form von Befehlen in einem rechnerlesbaren
Medium und einer Vielzahl anderer Formen verteilt werden können, ungeachtet
der jeweiligen Art des Signal tragenden Mediums, das zur Durchführung der
Verteilung tatsächlich
verwendet wird. Zu Beispielen für
rechnerlesbare Medien gehören
Medien wie EPROMs, ROMs, Bänder,
Papier, Disketten, Plattenlaufwerke, RAMs und CD-ROMs sowie Medien
vom Übertragungstyp
wie digitale und analoge Datenübertragungsverbindungen.
-
Unter
einem Verfahren wird allgemein eine selbstkonsistente Folge von
Schritten verstanden, die zu einem gewünschten Ergebnis führt. Diese Schritte
setzen die physische Verarbeitung von physikalischen Größen voraus.
Gewöhnlich,
jedoch nicht zwingend vorgeschrieben, können diese Größen die Form
von elektrischen oder magnetischen Signalen annehmen, die gespeichert, übertragen,
kombiniert, verglichen und in anderer Weise verarbeitet werden können. Hauptsächlich,
weil es allgemein üblich
ist, werden diese Signale der Einfachheit halber zuweilen als Bits,
Werte, Parameter, Gegenstände,
Elemente, Objekte, Symbole, Zeichen, Begriffe, Zahlen oder dergleichen
bezeichnet. Es sei jedoch angemerkt, dass all diese und ähnliche
Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und es
sich dabei lediglich um praktische Bezeichnungen handelt, die auf
diese Größen angewandt
werden.
-
Die
Beschreibung von bevorzugten Ausführungsformen der vorliegenden
Erfindung erfolgte zum Zweck der Veranschaulichung, und sie erhebt weder
Anspruch auf Vollständigkeit
noch ist sie als auf die beschriebenen Ausführungsformen beschränkt zu verstehen.
Der Fachmann erkennt, dass viele Ab- und Veränderungen möglich sind.