-
Gebiet der Offenbarung
-
Die
vorliegende Offenbarung trifft allgemein die sichere Datenkommunikation
und insbesondere Verfahren und eine Vorrichtung zum Auffinden einer gemeinsam
genutzten vertraulichen Information ohne Beeinträchtigung nicht-gemeinsam genutzter vertraulicher
Informationen.
-
Allgemeiner Stand der Technik
-
Mit
der zunehmenden Zugänglichkeit
und Verbreitung vernetzter Kommunikation, insbesondere drahtloser
Kommunikation (beispielsweise Mobilfunk), hat sich die Notwendigkeit
einer sicheren Datenkommunikation oder -übertragung enorm verstärkt. Beispielsweise
ermöglichen
viele Mobilkommunikationssysteme es mobilen Clients (beispielsweise
intelligenten Mobiltelefonen, persönlichen Datenassistenten usw.),
Software herunterzuladen und auf sonstige Daten und/oder Dienste,
die von Daten- oder Anwendungsservern bereitgestellt werden, zuzugreifen.
-
Um
eine besser gesicherte Umgebung für diese Mobilkommunikationssysteme
bereitzustellen, können
mobile Clients und Server eine verwaltete Ausführungsumgebung verwenden, die
eine Sicherheitsfunktion beinhaltet, die dazu genutzt werden kann,
Unbefugten den Zugriff auf Daten in den mobilen Clients und/oder
den Daten- oder Anwendungsservern zu verwehren. Zum Beispiel ist
die Mobilstationsanwendungsausführungsumgebung (Mobile
Station Application Execution Environment – MExE) ein bekanntes Protokoll
für die
drahtlose Kommunikation, das für
intelligente Mobiltelefone und sonstige mobile Client-Geräte ver wendet
werden kann, um die Sicherheit von Datentransaktionen zwischen den
Mobilgeräten
und den Daten- oder Anwendungsservern zu erhöhen.
-
Beim
MExE-Sicherheitsmodell besitzt jedes mobile Client-Gerät ein oder
mehrere digitale Zertifikate, welche die Identität des Anwendungsservers bezeichnen,
der Software digital signieren muß, damit das mobile Client-Gerät Software
von jenem Anwendungsserver herunterladen und ausführen kann. Oder
anders ausgedrückt:
Damit ein mobiler Client eine von einem Server bereitgestellte Anwendung herunterladen
und ausführen
kann, muß der
mobile Client ein digitales Zertifikat besitzen, das einem digitalen
Zertifikat, das der Server besitzt, entspricht (beispielsweise mit
diesem identisch ist). In der Regel halten Anwendungsserver, die
Software für
mobile Clients anbieten, mehrere digitale Signaturen der Software
zum Herunterladen bereit. Jede dieser digitalen Signaturen kann
mittels eines anderen digitalen Zertifikats erstellt werden, das
einer Partei zugeordnet ist, die befugt ist, die Software herzustellen
(beispielsweise ein Gerätehersteller,
ein Dienste-Anbieter, ein Softwareanbieter usw.).
-
Bekanntlich
wird eine digitale Signatur normalerweise durch Verschlüsseln (beispielsweise
unter Verwendung eines privaten Schlüssels aus einer Kombination
eines öffentlichen
und eines privaten Schlüssels)
des Hash einer zu versendenden Nachricht (beispielsweise einer Softwareanwendung,
eines Dokuments usw.) erstellt. Auf diese Weise kann eine digitale
Signatur von einer Empfangsentität dazu
verwendet werden, die Identität
der Ursprungsentität
festzustellen und zu erkennen, daß die empfangene Nachricht
nicht gegenüber
dem geändert wurde,
was von der Ursprungsentität
versandt wurde. Ein digitales Zertifikat enthält andererseits in der Regel
einen Namen (beispielsweise einen Benutzernamen), eine Seriennummer,
einen öffentlichen Schlüssel zum
Verschlüsseln
von Daten, Verfallstermine und die Signatur einer zertifizierenden
Institution (Zertifizierungsinstitution). Im Allgemeinen kann ein
digitales Zertifikat dazu verwendet werden, die Berechtigungsnachweise
einer Einheit (auch Entität) in
einem Kommunikationssystem oder Netz festzustellen, und der öffentliche
Schlüsselabschnitt
des Zertifikats kann dazu verwendet werden, digitale Signaturen
zu überprüfen oder
zu verifizieren.
-
In
vielen Mobilkommunikationssystemen stellen die mobilen Clients ihre
digitalen Zertifikate frei zur Verfügung oder machen sie öffentlich,
wenn sie eine Datenübertragung mit
einer anderen Partei (beispielsweise einem Anwendungsserver) verhandeln
(d. h. eine Kommunikationsverbindung zum Datenaustausch herstellen).
Gleichermaßen
können Anwendungsserver
in diesen Mobilkommunikationssystemen Informationen bezüglich ihrer
digitalen Signaturen von verfügbarer
Software oder sonstige Daten für
Clients, die Zugang zu dieser Software oder sonstigen Daten anfordern,
frei zur Verfügung
stellen.
-
Obgleich
es allgemein zweckmäßig ist,
Informationen zu digitalen Signaturen und digitalen Zertifikaten
nur bekannten autorisierten Entitäten in dem Kommunikationsnetz
zur Verfügung
zu stellen, um ein hohes Maß an
Netzwerksicherheit aufrecht zu erhalten, verlangen bestehende Systeme
in der Regel, daß diese
Informationen während
der anfänglichen Stufen
der Verhandlung einer Datenübertragung
freigegeben werden. Leider kann die Freigabe von Informationen zu
digitalen Signaturen oder von Informationen zu digitalen Zertifikaten
während
der anfänglichen
Verhandlung zwischen zwei oder mehr Parteien in einem Kommunikationsnetz
die Netzwerksicherheit beeinträchtigen.
Insbesondere ist die Partei, welche die Informationen zu digitalen
Signaturen oder Zertifikaten freigibt, in der Regel nicht in der
Lage, eine befugtermaßen
anfordernde Entität
von einem Angreifer zu unterscheiden. Wenn also ein Angreifer ermittelt,
welche digitalen Zertifikate durch beispielsweise ein bestimmtes
Client-Gerät
autorisiert sind, so kann der Angreifer seine Anstrengungen auf
die Überwindung
eines bestimmten digitalen Zertifikats konzentrieren. Gleichermaßen kann
der Angreifer, wenn er ermittelt, welche digitalen Zertifikate durch einen
bestimmten Server autorisiert sind, seine Anstrengungen auf die Überwindung
einer bestimmten digitalen Signatur konzentrieren.
-
DE 101 24 427 A1 offenbart
ein Authentifizierungssystem für
Kommunikationsgeräte,
das weniger Sicherheitsanforderungen als herkömmliche kryptographische Systeme
erfordert. Das zu authentifizierende Gerät beinhaltet wenigstens ein
Geheimnis, eine Funktionskomponente zum Erzeugen einer Zufallszahl,
eine Funktionskomponente zum Austauschen von Nachrichten mit anderen
Geräten
und schließlich
einen Algorithmus zum Berechnen eines HASH-Wertes unter Verwendung der Zufallszahl
und des Geheimnisses. Das Gerät,
das die Authentifizierung anfordert, beinhaltet ein Geheimnis und
einen Algorithmus zur Berechnung eines HASH-Wertes unter Verwendung
der Zufallszahl, die von dem zu authentifizierenden Gerät empfangen
wird. Eine Funktionskomponente zum Vergleichen beider HASH-Werte
kann in beiden Systemen implementiert werden. Wenn die HASH-Werte,
die von beiden Geräten
be rechnet werden, übereinstimmen,
kann angenommen werden, dass die Authentifizierung erfolgreich war.
-
EP 0 940 945 A2 offenbart
eine Zertifizierung und sichere Speicherung elektronischer Dokumente. Ein
elektronisches Dokument wird unter Verwendung kryptographischer
Funktionen zertifiziert, um einen Dokumentfingerabdruck zu erzeugen,
der dann kryptographisch zusammen mit einem Zeitstempel signiert
wird. Das zertifizierte Dokument wird dann zur sicheren Ablage und
späteren
Zurückerlangung
archiviert. Der Dokumentfingerabdruck und der Zeitstempel werden
an den Nutzer als Teil eines Dokumentzertifikats zurückgegeben.
Das Dokumentzertifikat kann verwendet werden, um die Authentizität von Kopien
des Originaldokuments zu verifizieren und die frühere Existenz des Dokuments
festzustellen.
-
WO 02/091704 A2 offenbart
ein Verfahren zur Gewährung
eines Zugriffs auf ein Abonnementmodul eines Server-Kommunikationsterminals
für einen
Client-Kommunikationsterminal.
-
Weitere
Einzelheiten zu HASH-Funktionen und Datenintegrität sind aus
dem „Handbook
of applied cryptography” von
Menezes, u. a., 1997, CRC Press LLC, USA, Seiten 321 und 366 und
Seiten 515 bis 516 bekannt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockschaubild eines beispielhaften Systems, das die im vorliegenden
Text beschriebenen Verfahren anwenden kann, um eine oder mehrere
gemeinsam genutzte vertrauliche Informationen ohne Beeinträchtigung
nicht-gemeinsam genutzter vertraulicher Informationen zwischen Entitäten, die
eine Datenübertragung
verhandeln, zu finden.
-
2 ist
ein Blockschaubild, das eine beispielhafte Art und Weise zeigt,
in der das in 1 gezeigte System implementiert
werden kann.
-
3 ist
ein Ablaufdiagramm einer beispielhaften Art und Weise, in der die
in 1 und 2 gezeigten Systeme dafür konfiguriert
werden können,
eine oder mehrere gemeinsam genutzte vertrauliche Informationen
ohne Beeinträchtigung nicht-gemeinsam
genutzter vertraulicher Informationen zu finden, wenn zwischen Entitäten eine
Datenübertragung
verhandelt wird.
-
4 ist
ein detailliertes Ablaufdiagramm einer beispielhaften Art und Weise,
in der gehashte vertrauliche Informationen zur Verwendung mit dem beispielhaften
Verfahren von 3 erzeugt werden können.
-
5 ist
ein Blockschaubild eines beispielhaften Prozessorsystems, das zur
Implementierung der im vorliegenden Text beschriebenen Vorrichtung und
Verfahren verwendet werden kann.
-
DETAILLIERTE BESCHREIBUNG
-
Im
Sinne des vorliegenden Textes meint der Begriff ”vertrauliche Informationen” allgemein
sichere Daten oder Informationen, die in einem Kommunikationssystem
oder -netz nicht veröffentlicht
oder frei weitergegeben werden. Bei einigen beispielhaften Systemen
können
vertrauliche Informationen eine digitale Signatur, ein digitales
Zertifikat oder sonstige Informationen sein, die mit einem Kommunikationsdienst,
einem Server usw. verbunden sind und nicht frei zu Entitäten, die
Informationen anfordern, übermittelt
werden. Eine ”gemeinsam
genutzte vertrauliche Information” meint eine vertrauliche Information, die
mehr als einer einzigen Einheit (Entität) in dem Kommunikationsnetz
oder -system gemein (beispielsweise dort gespeichert) ist. Beispielsweise
können
sowohl ein Kommunikationsgerät
als auch ein Anwendungs- oder Datenserver in einem Kommunikationssystem
oder -netz identische oder entsprechende digitale Zertifikate gespeichert
haben, wodurch das Kommunikationsgerät die Genehmigung erhält, Anwendungsinformationen
und/oder sonstige Daten von dem Server herunterzuladen. Entitäten, die
eine oder mehrere vertrauliche Informationen gemeinsam nutzen, wissen
aber nicht unbedingt, daß sie
diese vertraulichen Informationen mit einer anderen Entität gemeinsam
nutzen.
-
Eine ”nicht gemeinsam
genutzte” vertrauliche
Information meint hingegen eine vertrauliche Information, die nicht
gemeinsam zwischen zwei oder mehr Einheiten (Entitäten) genutzt
oder gemeinsam von ihnen gespeichert wird. Es kann aber sein, daß eine nicht
gemeinsam genutzte vertrauliche Information für eine erste Gruppe von Entitäten eine
gemeinsam genutzte vertrauliche Information für eine zweite Gruppe von Entitäten ist,
selbst wenn die erste und die zweite Gruppe von Einheiten gemeinsame
Einheitenelemente (Entitätenelemente)
haben. Die Feststellung, ob eine vertrauliche Information gemeinsam genutzt
oder nicht gemeinsam genutzt ist, muß also auf eine bestimmte Gruppe
von Entitäten
bezogen werden.
-
1 ist
ein Blockschaubild eines beispielhaften Systems 10, das
die im vorliegenden Text beschriebenen Verfahren anwenden kann,
um eine oder mehrere gemeinsam genutzte vertrauliche Informationen
ohne Beeinträchtigung
nicht-gemeinsam genutzter vertraulicher Informationen zwischen Entitäten, die
eine Datenübertragung
verhandeln, zu finden. Das beispielhafte System 10 enthält eine
erste Partei oder Entität 12 und
eine zweite Partei oder Entität 14,
die jeweils mit einem Kommunikationskanal 16 verbunden
sind. Der Kommunikationskanal 16 kann ein paketvermitteltes
Netz wie beispielsweise das Internet, Telefonleitungen, ein oder
mehrere Drahtloskommunikationsnetze wie beispielsweise ein Mobilfunkkommunikationsnetz,
Satellitenverbindungen usw. enthalten. Allgemeiner ausgedrückt, kann
der Kommunikationskanal 16 mittels jeder beliebigen Kombination
aus Medien, Plattformen und/oder Protokollen implementiert werden,
welche die Übermittlung
von Informationen ermöglichen. Das
heißt,
der Kommunikationskanal 16 kann öffentlich (beispielsweise in
einem Fall, wo der Kommunikationskanal 16 das Internet
beinhaltet) oder Privat (beispielsweise in einem Fall, wo der Kommunikationskanal 16 nur
ein lokales Netz, Telefonleitungen usw. verwendet) sein.
-
Die
erste Partei oder Einheit bzw. Entität 12 enthält sichere
Informationen 18, die vorzugsweise vertrauliche Dinge wie
beispielsweise Daten oder Informationen enthalten, die in Form einer
Liste, Tabelle usw. vorliegen können,
die nicht frei über
den Kommunikationskanal 16 verbreitet werden und die nicht der
zweiten Entität 14 oder
anderen (nicht gezeigten) Entitäten,
die mit dem System 10 verbunden sind, weitergegeben oder
offenbart werden. Die erste Partei oder Entität 12 enthält des Weiteren
eine Verarbeitungseinheit 20, die mittels eines beliebigen
Schaltkreises oder Bausteins implementiert werden kann, der in der
Lage ist, Daten oder Befehle zur Durchführung der im vorliegenden Text
beschriebenen Verfahren auszuführen,
wie das beispielhafte Prozessorsystem, das in Verbindung mit 5 unten
gezeigt und beschrieben ist. Des Weiteren enthält die erste Entität 12 eine
Kommunikationsschnittstelle 22, die es der ersten Entität 12 ermöglicht,
bei Bedarf über den
Kommunikationskanal 16 zu kommunizieren. In einem Fall,
wo der Kommunikationskanal 16 Telefonleitungen beinhaltet,
kann die Kommunikationsschnittstelle 22 beispielsweise
ein Modem enthalten, und einem Fall, wo der Kommunikationskanal 16 ein drahtloses
Netz beinhaltet, kann die Kommunikationsschnittstelle 22 einen
drahtlosen Sender/Empfänger
enthalten.
-
Ähnlich wie
die erste Partei oder Einheit 12 enthält die zweite Partei oder Entität 14 sichere
Informationen 28, eine Verarbeitungseinheit 24 und
eine Kommunikationsschnittstelle 26. Die in der zweiten Entität 14 gespeicherten
sicheren Informationen 28 können jedoch ganz oder teilweise
von den in der ersten Entität
gespeicherten sicheren Informationen 18 verschieden sein.
Und obgleich 1 das System 10 mit
nur zwei Entitäten
oder Parteien darstellt, können
weitere Entitäten
oder Parteien enthalten und mit dem Kommunikationskanal 16 verbunden
sein.
-
2 ist
ein Blockschaubild, das eine beispielhafte Art und Weise zeigt,
in der das in 1 gezeigte System 10 implementiert
werden kann. Das in 2 gezeigte Beispiel ist ein
Drahtloskommunikationssystem 30, das ein drahtloses Mobilkommunikationsgerät bzw. einen
drahtlosen Mobilkommunikations-Client 32 enthält, das
bzw. der über
einen Kommunikationskanal 36 mit einem Anwendungsserver 34 kommunizieren
kann. Der Kommunikationskanal 36 enthält eine oder mehrere Drahtloskommunikationsverbindungen 38 und 40 und
ein paketvermitteltes Netz 42, bei dem es sich beispielsweise
um das Internet handeln kann.
-
Das
Mobilkommunikationsgerät 32 kann
beispielsweise ein intelligentes Mobiltelefon, ein PDA, ein Notebook-Rechner
mit einer Drahtloskommunikationsschnittstelle usw. sein, das bzw.
der dafür
konfiguriert ist, als ein Client des Anwendungsservers 34 über den
Kommunikationskanal 36 zu kommunizieren. Der Anwendungsserver 34 kann
mittels eines Arbeitsplatzrechners oder eines sonstigen Computer- oder
Verarbeitungssystems implementiert werden. Der Anwendungsserver 34 enthält eine
oder mehrere Softwareanwendungen und/oder sonstige Daten oder Informationen 44,
die zum Herunterladen zu Mobilkommunika tionsgeräten wie beispielsweise dem
Mobilkommunikationsgerät 32 sowie
zum Ausführen
oder zur Verwendung durch solche Mobilkommunikationsgeräte wie beispielsweise
das Mobilkommunikationsgerät 32 zur
Verfügung
stehen.
-
Das
Mobilkommunikationsgerät 32 enthält oder
speichert ein oder mehrere digitale Zertifikate 46, die
wenigstens einigen anderen Entitäten
(beispielsweise dem Server 34) in dem System 30 nicht offenbart
wurden (d. h. vor ihnen verborgen wurden). Die digitalen Zertifikate 46,
die durch das Kommunikationsgerät 32 vertraulich
gespeichert werden, entsprechen einer oder mehreren Softwareanwendungen
oder sonstigen Daten oder Informationen, die das Mobilkommunikationsgerät 32 von
anderen Entitäten
in dem System 30 übertragen
oder herunterladen darf. Für
die Zwecke dieser Besprechung berechtigt wenigstens eines der digitalen
Zertifikate 46, die durch das Kommunikationsgerät 32 gespeichert werden,
das Kommunikationsgerät 32,
wenigstens eine der Softwareanwendungen oder sonstigen Daten oder
Informationen 44, die auf dem Server 34 gespeichert
sind, herunterzuladen. Das Mobilkommunikationsgerät 32 kann
somit mehrere digitale Zertifikate besitzen, von denen jedes das
Kommunikationsgerät 32 beispielsweise
berechtigen kann, eine andere – oder
eine Teilmenge – der
Softwareanwendungen oder sonstigen Daten 44, die auf dem
Server 34 gespeichert sind, herunterzuladen. In anderen
Beispielen hingegen kann es der Fall sein, daß die digitalen Zertifikate 46,
die durch das Kommunikationsgerät 32 gespeichert
werden, das Kommunikationsgerät 32 nicht
berechtigen, Softwareanwendungen oder sonstige Daten 44 von
dem Anwendungsserver 34 herunterzuladen. Statt dessen kann
das Kommunikationsgerät 32 berechtigt
sein, Daten, Anwendungen usw. von anderen Entitäten oder Parteien (beispielsweise
anderen Servern, die nicht dargestellt sind) in dem System 30 zu übertragen
(beispielsweise herunterzuladen).
-
Ähnlich dem
Drahtloskommunikationsgerät 32 besitzt
der Anwendungsserver 34 ein oder mehrere digitale Zertifikate 48,
die wenigstens einigen anderen Entitäten in dem System 30 nicht
offenbart wurden (d. h. vor ihnen verborgen oder geschützt gehalten
wurden). Die digitalen Zertifikate 48, die durch den Anwendungsserver 34 gespeichert
werden, entsprechen der einen oder den mehreren Anwendungen oder
sonstigen Daten 44, die in dem System 30 zum Herunterladen
zur Verfügung
stehen. Somit kann jedes der digitalen Zertifikate 48 einer
bestimmten – oder
einer Teilmenge – der
Anwendungen oder sonstigen Daten 44 entsprechen. Wie oben
angesprochen, entspricht für
die Zwecke dieser Besprechung wenigstens eines der digitalen Zertifikate 48 einer
bestimmten – oder
einer Teilmenge – der
Anwendungen oder sonstigen Daten 44, die das Kommunikationsgerät 32 vom
Server 34 herunterladen darf. Neben den Softwareanwendungen
oder sonstigen Daten 44 enthält der Anwendungsserver 34 noch digitale
Signaturen 50 der Anwendungen oder sonstigen Daten 44.
Jede der digitalen Signaturen 50 wird mittels eines privaten
Schlüssels
erzeugt, der einem öffentlichen
Schlüssel
entspricht, der zu einem der digitalen Zertifikate 48 gehört.
-
3 ist
ein Ablaufdiagramm einer beispielhaften Art und Weise, in der die
in 1 und 2 gezeigten Systeme 10 und 30 dafür konfiguriert
werden können,
eine oder mehrere gemeinsam genutzte vertrauliche Informationen
ohne Beeinträchtigung nicht-gemeinsam
genutzter vertraulicher Informationen zu finden, wenn eine Datenübertragung
verhandelt wird. Für
die Zwecke dieser Besprechung wird das in 3 dargestellte
Verfahren in Verbindung mit dem in 2 gezeigten
beispielhaften System 30 beschrieben. Das in 3 dargestellte
Verfahren ist aber generell auf jedes System anwendbar, in dem zwei
oder mehr Entitäten
verhandeln, um eine vertrauliche Information aufzufinden, die jede
Entität
gespeichert hat.
-
In
einem Fall, wo das Kommunikationsgerät 32 über die
Kommunikationsverbindung 36 mit dem Server 34 in
Kommunikation steht und eine Verhandlung für eine Übertragung einer der Anwendungen oder
sonstigen Daten 44 einleitet, erzeugen das Kommunikationsgerät 32 und
der Anwendungsserver 34 gehashte vertrauliche Informationen,
indem sie gehashte Versionen ihrer jeweiligen digitalen Zertifikate 46 und 48 (Block 60)
erzeugen. Es kann jede gewünschte
Hash-Funktion, wie beispielsweise SHA-1, verwendet werden, um die
digitalen Zertifikate 46 und 48 zu hashen. Bekanntlich
berechnet eine Hash-Funktion normalerweise eine mathematische Zusammenfassung
der gehashten Informationen. Infolge dessen kann das Hashen eines
digitalen Zertifikats, das aus 4096 Bytes an Informationen zusammengesetzt
ist, zu einer gehashten Version dieses digitalen Zertifikats führen, das
unter Verwendung von lediglich 20 Bytes dargestellt werden kann. Hash-Funktionen
und ihre Operation sind allgemein bekannt, so daß hier nicht näher darauf
eingegangen wird.
-
Die
gehashten Versionen der digitalen Zertifikate 46 (d. h.
der vertraulichen Informationen), die in dem Kommunikationsgerät 32 gespeichert
sind, werden an den Anwendungsserver 34 gesendet oder übermittelt
(Block 62). Infolge dessen besitzt der Anwendungsserver 34 eine
gehashte Version seiner digitalen Zertifikate 48 und eine
gehashte Version der digitalen Zertifikate 46, die er von
dem Kommunikationsgerät 32 erhalten
hat. Der Anwendungsserver 34 vergleicht dann die gehashte
Version seiner digitalen Zertifikate 48 mit der gehashten
Version der digitalen Zertifikate 46, die er von dem Kommunikationsgerät 32 erhält (Block 64).
Anhand dieses Vergleichs stellt der Anwendungsserver 34 fest,
ob übereinstimmende
gehashte digitale Zertifikate (d. h. übereinstimmende gehashte vertrauliche
Informationen) vorliegen (Block 66). Wenn keine übereinstimmenden
gehashten vertraulichen Informationen vorliegen (d. h. wenn die
verhandelnden Entitäten
keine vertraulichen Informationen gemeinsam nutzen) (Block 66), so
ist das drahtlose Kommunikationsgerät 32 nicht befugt,
die angeforderten Informationen herunterzuladen (beispielsweise
eine oder mehrere der Anwendungen oder sonstigen Daten 44),
und die Verhandlung endet (Block 68). Wenn andererseits
wenigstens eine Übereinstimmung
bei Block 66 gefunden wird, so ermittelt der Anwendungsserver 34,
ob es mehrere Übereinstimmungen
gibt (Block 70), und wenn nur eine einzige Übereinstimmung
gefunden wird, so verwendet der Anwendungsserver 34 die
bekannte Beziehung zwischen dem übereinstimmenden
gehashten digitalen Zertifikat und dem ursprünglichen digitalen Zertifikat,
um das ursprüngliche
gemeinsam genutzte digitale Zertifikat (d. h. die ursprüngliche
gemeinsam genutzte Information) wiederherzustellen (Block 72).
Sobald die Übereinstimmung
aufgefunden und die gemeinsam genutzte vertrauliche Information
wiederhergestellt wurde, verwendet das Kommunikationsgerät 32 die
wiederhergestellte vertrauliche Information, um die angeforderten
Informationen (beispielsweise eine oder mehrere der Anwendungen
oder sonstigen Daten 44) von dem Anwendungsserver 34 herunterzuladen
(Block 76). Vorzugsweise verwendet der Anwendungsserver 34 das übereinstimmende
ursprüngliche
digitale Zertifikat, um eine entsprechende Anwendung oder entsprechende sonstige
Daten 44 sowie die entsprechende digitale Signatur aufzufinden,
und lädt
die entsprechende Anwendung zusammen mit ihrer digitalen Signatur
zu dem Kommunikationsgerät 32 herunter.
-
Wenn
mehr als eine einzige Übereinstimmung
aufgefunden wird (Block 70), so einigen sich das drahtlose
Kommunikationsgerät 32 und
der Anwendungsserver 34 auf eine einzige Übereinstimmung
(Block 74), bevor das übereinstimmende
oder gemeinsam genutzte digitale Zertifikat wiederhergestellt wird
(Block 72). Um die Auswahl einer einzigen Übereinstimmung
bei Block 74 zu unterstützen,
kann das Kommunikationsgerät 32 Hashs
seiner digitalen Zertifikate 46 unter Verwendung eines
zuvor festgelegten Priorisierungsregimes erzeugen. Beispielsweise
können
digitale Zertifikate, die zu Herstellern gehören, zuerst gehasht werden;
digitale Zertifikate, die zu Betreibern gehören, können als Zweites gehasht werden,
und digitale Zertifikate, die zu Dritten gehören, können als Letztes gehasht werden.
Die gehashten digitalen Zertifikate können dann entsprechend ihrer
Priorität
(beispielsweise nach ihrer Hash-Reihenfolge) in einer Liste gespeichert
werden. Wenn der Anwendungsserver 34 die priorisierte gehashte
Liste von dem Kommunikationsgerät 32 erhält und die
gehashten digitalen Zertifikate in dieser Liste mit der gehashten
Version seiner digitalen Zertifikate 48 vergleicht (Block 64),
so kann er auf diese Weise die als erstes gefundene Übereinstimmung
als die einzige Übereinstimmung,
auf die man sich geeinigt hat, auswählen (Block 74), ungeachtet
der Tatsache, daß eventuell
weitere Übereinstimmungen
von geringerer Priorität
in der Liste übrig
bleiben. Neben der oben beschriebenen Technik gibt es noch viele
bekannte Techniken (auf die hier nicht näher eingegangen wird), die
dafür verwendet
werden können,
sich auf eine einzige Übereinstimmung
zu einigen (Block 74).
-
Sobald
eine einzelne Übereinstimmung
gefunden wurde und das Kommunikationsgerät 32 und der Anwendungsserver 34 (d.
h. die verhandelnden Parteien oder Entitäten) sich auf diese Übereinstimmung
geeinigt haben (Block 74) und die ursprüngliche vertrauliche Information
wiederhergestellt wurde (Block 72), ist das Kommunikationsgerät 32 befugt, die
angeforderte Anwendung oder sonstigen Daten 44, die dem übereinstimmenden
Zertifikat entsprechen, herunterzuladen. Dementsprechend lädt der Anwendungsserver 34 die
angeforderte Anwendung oder sonstigen Daten 44 und, falls
angefordert, ihre entsprechenden digitalen Signaturen 50 über die Kommunikationsverbindung 36 zu
dem Kommunikationsgerät 32 herunter.
-
Obgleich
es nicht notwendig ist, kann es in einigen Beispielen zweckmäßig sein,
daß jede
verhandelnde Entität
eine Kopie der gehashten digitalen Zertifikate von der anderen verhandelnden
Entität
erhält
(d. h. daß die
Entitäten
gehashte vertrauliche Informationen austauschen) und daß jede der
Entitäten ihre
eigenen gehashten vertraulichen Informationen mit der gehashten
Version der vertraulichen Informationen, die sie von der anderen
Entität
erhalten hat, vergleicht. Somit kann im Fall des in 3 gezeigten beispielhaften
Systems 30 der Anwendungsserver 34 (bei Block 62 oder
in einer folgenden Nachricht) eine gehashte Version der digitalen
Zertifikate 48 an das Kommunikationsgerät 32 senden oder übermitteln.
In diesem Fall kann das Kommunikationsgerät 32 seinen eigenen
Vergleich gehashter vertraulicher Informationen vornehmen (Block 64),
kann feststellen, ob es eine oder mehrere Übereinstimmungen gibt (Blöcke 66 und 70),
und kann – unabhängig von oder
in Kooperation mit dem Anwendungsserver 34 eine einzelne Übereinstimmung
auswählen
(Block 74).
-
4 ist
ein detailliertes Ablaufdiagramm einer beispielhaften Art und Weise,
in der gehashte vertrauliche Informationen (beispielsweise gehashte digitale
Zertifikate) zur Verwendung mit der in 3 gezeigten
Technik erzeugt werden können.
Die Entitäten,
die gehashte vertrauliche Informationen erzeugen (d. h. das Kommunikationsgerät 32 und
der Anwendungsserver 34), stellen ihre vertraulichen Informationen
(beispielsweise ihre jeweiligen digitalen Zertifikate 46 und 48)
als kanonische Daten (d. h. in einem zuvor festgelegten Format)
dar (Block 80). Die an der Verhandlung für die Datenübertragung
beteiligten Entitäten
legen dann fest, ob die Daten über
einen offenen Kommunikationskanal übertragen werden sollen (beispielsweise
daß eine
Anwendung heruntergeladen werden soll) (Block 82). Beispielsweise erfolgt
in dem Fall, wo das Kommunikationsgerät 32 verhandelt oder
den Anwendungsserver 34 auffordert, eine der Anwendungen
oder sonstigen Daten 44 über die Kommunikationsverbindung 36 herunterzuladen,
die Übertragung über einen
offenen Kanal. Weil nämlich
das Internet 42 ein offener Kommunikationskanal ist, wird
der gesamte Kommunikationskanal 36 als offen betrachtet.
-
Wenn
bei Block 82 festgestellt wird, daß die Informationen über einen
offenen Kommunikationskanal übertragen
werden sollen, so schützen
die Entitäten
ihre gehashten vertraulichen Informationen zusätzlich mit einer Zufallszahl,
indem sie beispielsweise die Schritte ausführen, die in Verbindung mit den
Blöcken 84 bis 90 unten
beschrieben sind. Insbesondere erzeugt jede der Entitäten (beispielsweise das
Kommunikationsgerät 32 und
der Anwendungsserver 34) eine Zufallszahl (Block 84)
und tauscht ihre Zufallszahl über
den offenen Kommunikationskanal (beispielsweise Kommunikationskanal 36)
aus (Block 86). Vorzugsweise, aber nicht notwendigerweise,
setzt sich jede der Zufallszahlen aus wenigstens 64 Bits zusammen.
Das Kommunikationsgerät 32 und
der Anwendungsserver 34 verketten dann die Zufallszahlen
beispielsweise so, daß eine 128-Bit-Zahl
entsteht, die als Schlüssel
verwendet wird (Block 88). Die verketteten Zufallszahlen
werden dann den vertraulichen Informationen angehängt (Block 90).
-
Die
vertraulichen Informationen werden bei Block 92 gehasht.
In dem Fall, wo die vertraulichen Informationen über einen offenen Kanal übertragen werden
sollen (Block 82) und somit Zufallszahlen verwendet werden,
um die vertraulichen Informationen zusätzlich zu schützen (beispielsweise
durch Ausführen
der Schritte, die in Verbindung mit den Blöcken 84 bis 90 beschrieben
sind), werden die verketteten Zufallszahlen zusammen mit den vertraulichen
Informationen, an die sie angehängt
werden, gehasht. Andererseits werden die vertraulichen Informationen
in dem Fall, wo sie nicht über
einen offenen Kanal übertragen
werden, bei Block 92 direkt gehasht (d. h. ohne zusätzlichen
Schutz durch Zufallszahlen).
-
Nach
dem zusätzlichen
Schutz können
die gehashten vertraulichen Informationen optional verschlüsselt werden
(Block 94), wofür
beispielsweise der öffentliche
Schlüssel
(aus einer Kombination von privatem und öffentlichem Schlüssel) von
der Entität verwendet
wird, an die die gehashten verschlüsselten vertraulichen Informationen
gesendet werden sollen. Beispielsweise würde das Kommunikationsgerät 32 den öffentlichen
Schlüssel
für den
Anwendungsserver 34 benutzen, um die gehashte Version der
vertraulichen Informationen 46 (d. h. der digitalen Zertifikate)
zu verschlüsseln.
Die gehashten vertraulichen Informationen können bei Block 94 als
Gruppe oder einzeln verschlüsselt
werden. Nach der Übertragung
oder dem Austausch verschlüsselter
gehashter vertraulicher Informationen (3, Block 62)
können in
einem Fall, wo die vertraulichen Informationen mit einer oder mehreren
Zufallszahlen zusätzlich
geschützt
wurden und wo die gehashten vertraulichen Informationen verschlüsselt wurden,
die Entitäten
die gehashten vertraulichen Informationen vergleichen, um in der üblichen
Weise Übereinstimmungen
festzustellen (d. h. Block 64).
-
Der
zusätzliche
Schutz durch eine Zufallszahl (Blöcke 84 bis 90)
und eine Verschlüsselung (Block 94)
für Kommunikationen über einen
offenen Kanal können
verhindern, daß eine
angreifende Entität
eine Kopie übertragener
gehashter vertraulicher Informationen erlangt und diese gehashten
vertraulichen Informationen dazu benutzt, die vertraulichen Informationen
anderer Entitäten
in dem Kommunikationssystem aufzudecken. Beispielsweise wäre es denkbar,
daß eine
angreifende Entität
eine Kopie übertragener
gehashter vertraulicher Informationen erlangt und diese gehashten
vertraulichen Informationen mit gehashten Versionen vertraulicher
Informationen vergleicht, die sie bereits besitzt, wodurch es der
angreifenden Entität
eventuell möglich
wird, Zugang zu Informationen in der Entität zu erhalten, welche die übertragenen
gehashten vertraulichen Informationen hervorgebracht hat. Zusätzlich oder
alternativ könnte
die angreifende Entität
die Kopie der übertragenen
gehashten vertraulichen Informationen in einer anschließenden Kommunikation
dazu verwenden, unter Vorspiegelung falscher Tatsachen geltend zu
machen, daß eine Übereinstimmung
gefunden wurde (Block 66 von 2), um durch
diesen Trick die Entität,
welche die übertragenen
gehashten vertraulichen Informationen hervorgebracht hat, zu veranlassen,
die ursprüngliche
vertrauliche Information preiszugeben. Obgleich das in 4 gezeigte beispielhafte
Verfahren einen zusätzlichen
Schutz mit einer Zufallszahl verwendet, um einen Wiedergabeschutz
zu bewirken (d. h. Schutz vor einem Angreifer, der versucht, erfaßte oder
alte Informationen wiederzuverwenden), könnte statt dessen auch jede
andere Technik verwendet werden, die gehashte vertrauliche Informationen
in einer spezifischen Weise modifiziert, die durch eine Empfänger-Entität (aber nicht
durch einen Angreifer) verifiziert werden kann.
-
Des
Weiteren bietet die Kombination aus zusätzlichem Schutz durch eine
Zufallszahl und Verschlüsselung
sowohl Wiedergabeschutz als auch Vertraulichkeit in dem Fall, daß eine Datenübertragung über einen
offenen Kommunikationskanal verhandelt wird. Insbesondere bewirkt
der zusätzliche Schutz
durch eine Zufallszahl einen Wiedergabeschutz, weil die Zufallszahl
sich bei jeder Datentransaktion ändert
und somit praktisch nur für
eine einzige Transaktion gültig
ist. Eine Verschlüsselung
andererseits bietet einen Grad an Vertraulichkeit, doch wenn ein
Angreifer die Verschlüsselung
knackt, so bietet sie keinen Wiedergabe- oder Wiederverwendungsschutz,
wie der zusätzliche
Schutz durch eine Zufallszahl es tut.
-
In
Fällen,
wo zwei Entitäten
oder Parteien wiederholt verhandeln und nach der Verhandlung vertrauliche
Informationen austauschen, wäre
es denkbar, daß eine
der Entitäten
den Wert einer gehashten vertraulichen Information, den sie von
der anderen Entität
während
einer früheren
Verhandlung erhalten hat, speichert und diese gespeicherte vertrauliche
Information dazu verwendet, um bei Block 66 eine falsche Übereinstimmung
herbeizuführen. Um
eine solche falsche Übereinstimmung
zu vermeiden, kann die bekannte Diffie-Hellman-Technik verwendet werden, um für jede Verhandlung
spezifische Werte für
gemeinsam genutzte vertrauliche Informationen zu erzeugen. Konkret
gesagt, können
die an der Verhandlung beteiligten Entitäten oder Parteien beim Erzeugen
gehashter Daten ihre spezifischen Werte für gemeinsam genutzte vertrauliche
Informationen verwenden, um ein verschlüsseltes Hashen der vertraulichen
Informationen, die zu den Entitäten gehören, durchzuführen. Techniken
des verschlüsselten
Hashens sind bekannt und werden daher im vorliegenden Text nicht weiter
beschrieben. Dem Durchschnittsfachmann ist klar, daß auch andere Techniken
als Diffie-Hellman oder verschlüsseltes Hashen
verwendet werden können.
Genauer gesagt, kann anstelle der Diffie-Hellman-Technik jede beliebige
Technik verwendet werden, die eine vertrauliche Information bereitstellt,
die von den verhandelnden Entitäten
gemeinsam genutzt wird und die spezifisch für die Verhandlung ist. Des
Weiteren kann anstelle verschlüsselter
Hashs jede Technik verwendet werden, die einen resultierenden Hash
in einer wiederholbaren, unumkehrbaren Weise modifiziert.
-
Die
in Verbindung mit den 3 und 4 beschriebenen
beispielhaften Verfahren können
mühelos
für die
Verwendung mit Verhandlungen für
gemeinsam genutzte vertrauliche Informationen, an denen mehr als
zwei Entitäten
oder Parteien beteiligt sind, adaptiert werden. Beispielsweise kann
eine erste Partei mit einer zweiten Partei verhandeln, um eine reduzierte
Liste aller übereinstimmenden
gehashten vertraulichen Informationen zu erstellen. Die erste Partei
kann dann – beginnend
mit der reduzierten Liste – mit
einer dritten Partei verhandeln, um eine neue reduzierte Liste zu
erstellen, die Übereinstimmungen zwischen
der Liste der dritten Partei und der reduzierten Liste, die aus
der Verhandlung zwischen der ersten und der zweiten Partei resultiert,
enthält.
Dieser Prozeß wird
so lange fortgeführt,
bis alle Parteien, die an der Verhandlung für die gemeinsam genutzten vertraulichen
Informationen beteiligt sind, mit der ersten Partei verhandelt haben,
was zu einer endgültigen
reduzierten Liste gehashter vertraulicher Informationen, die von
allen beteiligten Parteien gemeinsam genutzt werden, führt. Wenn
die beteiligten Parteien nicht über
wenigstens eine gemeinsam genutzte vertrauliche Information verfügen, so
ist die endgültige
Liste selbstverständlich
leer.
-
5 ist
ein Blockschaubild eines beispielhaften Prozessorsystems 120,
das zur Implementierung der im vorliegenden Text beschriebenen Vorrichtung
und Verfahren verwendet werden kann. Wie in 5 gezeigt,
enthält
das Prozessorsystem 120 einen Prozessor 122, der
mit einem Verbindungsbus oder Netz 124 gekoppelt ist. Der
Prozessor 122 kann ein beliebiger geeigneter Prozessor,
eine beliebige geeignete Verarbeitungseinheit oder ein beliebiger geeigneter
Mikroprozessor sein, wie beispielsweise ein Prozessor aus der Intel
Itanium®-Familie, der Intel X-Scale®-Familie,
der Intel Pentium®-Familie usw. Obgleich
in 5 nicht gezeigt, kann das System 120 ein
Mehrprozessorsystem sein und kann somit einen oder mehrere weitere
Prozessoren enthalten, die mit dem Prozessor 122 identisch
oder ihm ähnlich sind
und die mit dem Verbindungsbus oder Netz 124 gekoppelt
sind.
-
Der
Prozessor 122 von 5 ist mit
einem Chipsatz 128 gekoppelt, der einen Speichercontroller 130 und
einen Eingabe/Ausgabe-Controller (E/A-Controller) 132 beinhaltet.
Ein Chipsatz beinhaltet bekanntlich in der Regel E/A- und Speicherverwaltungsfunktionen
sowie mehrere Allzweck- und/oder Spezialregister, Zeitgeber usw.,
auf die ein oder mehrere Prozessoren, die mit dem Chipsatz gekoppelt sind,
zugreifen können
oder die von einem oder mehreren solcher Prozessoren verwendet werden.
Der Speichercontroller 130 führt Funktionen aus, die es dem
Prozessor 122 (oder den Prozessoren, wenn mehrere Prozessoren
verwendet werden) ermöglichen,
auf den Systemspeicher 134 zuzugreifen, der jede gewünschte Art
von flüchtigem
Speicher enthalten kann, wie beispielsweise ein statischer Direktzugriffspeicher
(SRAM), ein dynamischer Direktzugriffspeicher (DRAM) usw. Der E/A-Controller 132 führt Funktionen
aus, die es dem Prozessor 122 ermöglichen, über einen E/A-Bus 140 mit
peripheren Eingabe/Ausgabe-Geräten
(E/A-Geräten) 136 und 138 zu kommunizieren.
Die E/A-Geräte 136 und 138 können von
jeder gewünschten
Art von E/A-Geräten
sein, wie beispielsweise eine Tastatur, eine Videoanzeige bzw. ein
Videomonitor, eine Maus usw. Obgleich der Speichercontroller 130 und
der E/A-Controller 132 in 5 als separate
Funktionsblöcke
in dem Chipsatz 128 dargestellt sind, können die von diesen Blöcken ausgeführten Funktionen
auch in einem einzigen Halbleiterschaltkreis integriert sein oder
können
mittels zwei oder mehr separater integrierter Schaltkreise implementiert
sein.
-
Wie
aus den im vorliegenden Text beschriebenen Beispielen zu ersehen
ist, ermöglicht
die Verwendung gehashter vertraulicher Informationen es mehreren
Entitäten
oder Parteien (beispielsweise Kommunikationsgeräten, Daten- oder Anwendungsservern),
die miteinander interagieren (beispielsweise um eine Datenübertragung
durchzuführen),
gemeinsam genutzte vertrauliche Informationen aufzufinden, ohne
nicht gemeinsam genutzte vertrauliche Informationen preiszugeben.
Solche vertraulichen Informationen können digitale Zertifikate,
digitale Signaturen, Nachrichtenauthentifizierungscodeschlüssel, ephemerale
Diffie-Hellman-Parameter
usw. sein. Die vertraulichen Informationen können allgemein jegliche Informationen
sein, die es einem empfangenden Gerät (beispielsweise einem Client-Gerät) ermöglichen,
die Glaubwürdigkeit
der Herkunft der empfangenen Informationen (beispielsweise Daten, ein
Programm usw.) zu authentifizieren. Es können kryptografische Techniken
und Wiedergabeschutz (beispielsweise zusätzlicher Schutz mit einer Zufallszahl)
verwendet werden, um die gehashten vertraulichen Informationen über einen öffentlichen
Kommunikationskanal auszu tauschen, um unbefugte oder angreifende
Entitäten
daran zu hindern, vertrauliche Informationen aufzudecken. Die Parteien
können ihre
gehashten vertraulichen Informationen mit den gehashten vertraulichen
Informationen vergleichen, die sie von der anderen Partei erhalten
haben, um eventuelle Übereinstimmungen
festzustellen. Man kann sich auf eine einzelne optimale Übereinstimmung
einigen, und die Parteien können
die Kenntnis ihrer jeweiligen Hash-Verfahren dazu verwenden, um die ursprüngliche
vertrauliche Information aus der gehashten übereinstimmenden vertraulichen
Information wiederherzustellen und die spätere Verwendung der gemeinsam
genutzten Information (beispielsweise für eine Datenübertragung)
zu ermöglichen.
Die Verwendung gehashter Daten (beispielsweise gehashter digitaler
Zertifikate) reduziert die Menge der Daten, die während des
Verhandlungsprozesses für
die gemeinsam genutzte vertrauliche Information über den Kommunikationskanal übermittelt
werden muß.
Des Weiteren können
die Vorrichtung und die Verfahren, die im vorliegenden Text beschrieben
wurden, im allgemeineren Sinne auf Verhandlungen für gemeinsam
genutzte vertrauliche Informationen, an denen mehr als zwei Parteien
beteiligt sind, angewendet werden.
-
Obgleich
die im vorliegenden Text beschriebenen Beispiele sich auf das Herunterladen
von Anwendungen (beispielsweise ausführbare Programme) konzentrieren,
können
die Vorrichtung und die Verfahren, die im vorliegenden Text beschrieben
wurden, allgemein auf jede Art von Daten angewendet werden. Beispielsweise
könnten
auch Klingeltöne
für Telefone
sowie kleine Datenmengen für
Anwendungen, die bereits in Telefonen, PDAs usw. installiert sind,
heruntergeladen werden.
-
Obgleich
im vorliegenden Text bestimmte Verfahren und Vorrichtungen beschrieben
wurden, ist der Geltungsbereich dieses Patents nicht darauf beschränkt, Im
Gegenteil erstreckt sich dieses Patent auf sämtliche Verfahren, Vorrichtungen
und Produkte, die unbestreitbar in den Geltungsbereich der angehängten Ansprüche fallen,
sei es dem Buchstaben nach oder als Äquivalent.