-
Die
vorliegende Erfindung betrifft Verfahren und Vorrichtungen zum Bereitstellen
von gesicherten Datenaustauschtransaktionen und insbesondere Verfahren
und Vorrichtungen zum Bereitstellen von gesicherten Datenaustauschtransaktionen
in einer Kollaborationsumgebung.
-
Heutige
Computeranwendungen sind weitgehend Systeme für einzelne Nutzer. Herkömmliche Textverarbeitungsanwendungen
gestatten es beispielsweise einem einzigen Nutzer, eine Datei zu öffnen und
den Inhalt zu modifizieren. Wenn während die Datei geöffnet ist,
ein zweiter Nutzer versucht, die Datei zu öffnen, wird der zweite Nutzer
am Öffnen oder
Modifizieren der Datei gehindert. Manchmal wird es dem zweiten Nutzer
gestattet, eine Kopie der Datei zu erhalten. Die Kopie wird jedoch
nicht mit irgendeiner der nachfolgenden Veränderungen, die der erste Nutzer
an dem Originalexemplar vornimmt, aktualisiert. Somit ist der zweite
Nutzer nicht in der Lage, an den sich als Änderungen an der Datei niederschlagenden
Ideen des ersten Nutzers teilzuhaben. Außerdem wird der zweite Nutzer
daran gehindert, den Inhalt der originalen Datei zu ändern und wird
dadurch daran gehindert, seine sich als Änderungen an der Datei niederschlagenden
Ideen anderen mitzuteilen. Kurz gefasst sind der erste und der zweite
Nutzer nicht in der Lage, die Datei in Zusammenarbeit zu bearbeiten.
-
Der
hierin verwendete Begriff Zusammenarbeit oder Kollaboration bedeutet
eine Fähigkeit
für mehrere
Clients zur Teilhabe an Ideen. Diese Teilhabe umfasst die Fähigkeit,
die eigenen Ideen automatisch gegenüber den anderen Mitgliedern
auszudrücken,
ohne den anderen Mitgliedern die Ideen explizit mitteilen zu müssen. Kollaboration
umfasst außerdem
die Fähigkeit
für jedes
Mitglied, Ideen von Mitgliedern, die Ideen senden, automatisch zu
empfangen. Somit bedeutet Kollaboration mindestens die Kommunikation
zwischen Mitgliedern, die Teilnehmer an den Kollaborationsbestrebungen
sind. Diese Kommunikation/Kollaboration kann vielen Modellen folgen.
Eine „Brainstorming"-Sitzung ist ein
unbeschränktes
Kollaborationsmodell. Andererseits handelt es sich bei einem „Ring"-Modell, in dem jedes Mitglied
eine spezifische Runde hat, in der es Ideen ausdrücken kann,
um ein beschränktes
Kollaborationsmodell.
-
In
einem in der
US-Patentschrift
Nr. 5,781,732 offenbarten Kollaborationssystem werden Datenänderungsanforderungen
in Reaktion auf Nutzerinteraktionen generiert und an eine Antwortsendeeinheit,
die mit allen Kollaborationsteilnehmern verbunden ist, gesendet.
Die Antwortsendeeinheit sendet die Datenänderungsanforderungen an alle
an einer Kollaboration teilnehmenden Nutzer rund. Jeder Nutzer verfügt über eine
lokale Kopie der Kollaborationsdaten und einen Mechanismus, der
die Datenänderungsanforderungen
empfängt
und die angeforderten Änderungen
an der lokalen Datenkopie vornimmt. Da alle Datenänderungsanforderungen
die Antwortsendeeinheit durchlaufen müssen, werden alle Datenänderungsanforderungen
von jedem Kollaborationsteilnehmer in derselben Reihenfolge empfangen
und somit wird Einheitlichkeit der Daten erhalten.
-
Zu
Kollaboration kann es zwischen Nutzern kommen, die einen Computer
oder Server betreiben oder sie kann über ein Netzwerk erfolgen,
in dem sich jeder Nutzer an einem mit dem Netzwerk verbundenen Computer
befindet. Das Internet ist ein solches Netzwerk, welches eine dynamische, öffentliche
Umgebung für
die Kommunikation und Interaktion unter ihren Millionen Nutzern
geschaffen hat. In der Wirtschaft hat das Internet und insbesondere
die im Internet betriebenen World-Wide-Web-Anwendungen die Beziehungen
zwischen Vendoren-Herstellern, Herstellern-Verteilern, Verteilern-Kunden und andere
Beziehungen neu definiert. Durch die Ausdehnung der Internettechnologie
auf interne, gesicherte Netzwerke einzelner Unternehmen, das so
genannte „Intranet" oder „privates
Internet", sind
neue Formen zur gemeinsamen Nutzung von Dokumenten und Informationen
für einzelne
Angestellte und Arbeitsgruppen unter Verwendung der Unternehmensverzeichnisse
und der Netzwerkinfrastruktur möglich
geworden.
-
Das
World Wide Web (das „Web" oder „Netz") weist als Kern
eine Server-Client-Architektur auf, in der einzelne Clients (d.h.
Nutzer von Netzinhalten) über
Browser als Schnittstelle über
ein öffentliches
Netzwerk mit Servern Verbindung aufnehmen, um Dokumente von Webseiten
zu erhalten. Browser sind Softwareprogramme, die es Personal Computern
ermöglichen,
Internetdokumente anzufordern, zu erhalten (z.B. herunterzuladen),
zu interpretieren und darzustellen und allgemein im Internet zu
navigieren. Webseiten sind Sammlungen von Dokumenten, die in der
Regel aus einer Homepage und verwandten, verlinkten Dokumenten bestehen,
welche sich auf vom Client entfernten Servern befinden. Bei den
Dokumenten kann es sich um Mischdokumente handeln, die Daten, Grafiken,
Video, Ton und/oder andere Arten von Medien sowie Links zu anderen Dokumenten
enthalten.
-
Dem
Web und anderen Internettechnologien liegen Normierungsfortschritte
zugrunde, einschließlich
PC-Hardware, Software, Netzwerkprotokolle und Infrastrukturkonventionen
(wie den „Uniform
Resource Locator" oder „URL"). URLs stellen Ortsadressen für alle Dokumentenobjekte
auf dem WWW bereit. Eine URL verweist eindeutig auf ein Dokumentenobjekt
und definiert oftmals einen Zugriffsalgorithmus unter Verwendung
von Internetprotokollen.
-
Um
die Vorteile der Internetwerkzeuge nutzen zu können, sind Ressourcen in Übereinstimmung
mit den Internetprotokollen entwickelt worden, einschließlich Anwendungen
wie beispielsweise E-Mail. E-Mails ist eine elektronische Post,
mittels derer Dokumente elektronisch gesendet und an ausgewählten Adressen
empfangen werden. Es ist geschätzt
worden, dass die überwiegende
Mehrheit internetbasierter Interaktionen per E-Mail und andere browserbasierte
Medien erfolgt, welche einem Modell „Dokument senden und empfangen" folgen. Möglicherweise
ist dies der Grund dafür,
dass die Nutzer das Internet als inhärent „Peer-to-Peer"-basiert ansehen,
wobei Personen auf Dokumente zugreifen, die von anderen Personen
bereitgestellt werden, ohne dass eine höhere Stelle eingreift.
-
In
der Folge sind neue Kollaborationsmodelle entwickelt worden, die
mehr auf eine „Peer-to-Peer"-Weise funktionieren.
Diese letzteren Modelle stützen
sich auf Direktverbindungen zwischen Nutzern in gemeinsam benutzten
privaten Räumen,
die „Telespaces" genannt werden.
Jeder Nutzer verfügt über ein „Aktivität" genanntes Programm,
das auf seinem Personal-Computer-System, Kommunikationsanwendung
oder anderen netzwerkfähigen
Vorrichtungen betrieben werden kann. Das Aktivitätsprogramm antwortet auf Nutzerinteraktionen
durch Generieren von Datenänderungsanforderungen,
die „Deltas" genannt werden.
Die Aktivität weist
auch eine Daten-Änderungs-Anordnung
auf, die eine lokale Datenkopie führt und die durch die Deltas
angeforderten Änderungen
an den Daten vornimmt. Die Deltas werden über einen Dynamikverwalter
von einem Nutzer zu einem anderen verteilt. Der letztere Typ von
Kollaborationssystem wird ausführlich
beschrieben in der
US-Patentanmeldung
Nr. 09/357,007 mit dem Titel „METHOD AND APPARATUS FOR
ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED WITH
A COMMUNICATION MANAGER",
eingereicht am 19. Juli 1999 durch Raymond E. Ozzie, Kenneth G.
Moore, Robert H. Myhill und Brian M. Lambert; der
US-Patentanmeldung Nr. 09/356,930 mit
dem Titel „METHOD
AND APPARATUS FOR ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED
WITH A DYNAMICS MANAGER",
eingereicht am 19. Juli 1999 durch Raymond E. Ozzie und Jack E.
Ozzie und
US-Patentanmeldung
Nr. 09/356,148 mit dem Titel „METHOD AND APPRATUS FOR PRIORITIZING
DATA CHANGE REQUESTS AND MAINTAINING DATA CONSISTENCY IN A DISTRIBUTED
COMPUTER SYSTEM EQUIPPED FOR ACTIVITY-BASED COLLABORATION", eingereicht am
19. Juli 1999 durch Raymond E. Ozzie und Jack E. Ozzie.
-
Das
Internet ist bei der Versorgung von Nutzern mit Unterhaltung und
nützlichen
Kommunikationswege dynamisch und flexibel, aber es erfüllt nicht alle
Bedürfnisse
des Nutzers. Beispielsweise scheint das Internet für Kollaboration
auf ideale Weise geeignet zu sein, da es die Fähigkeit aufweist, weit voneinander
entfernte Nutzer mit verschiedener Hardware und Software zu verbinden.
Die Sicherheit des Internets lässt
jedoch viel zu wünschen übrig. Während Nachrichten über das
Internet an verschiedene Mengen von Nutzern gesendet werden können, werden diese
Nachrichten in der Regel auf Webseiten Dritter gefiltert, wo die
Kommunikationen abgefangen und die Vertraulichkeit verletzt werden
kann. Während Nutzer
zunehmend über
das Internet interagieren, kommunizieren sie in der Folge weiterhin „außerhalb" des Internets auf
herkömmlicheren
gesicherten Wegen, wie beispielsweise über Mittel mit mehreren Medien
(Telefon, Fax, Weißwandtafel),
Mittel mit mehreren Zeiten (Echtzeit, Über-Nacht-Post) und über andere
informelle Kommunikationswege.
-
Es
wäre wünschenswert,
das Internet auf sichere Kollaborationskommunikationen und andere gemeinsame
und wechselseitige Aktivitäten
zwischen Personen und kleinen Gruppen in gemeinsam genutzten privaten
Räumen
auszudehnen. Derartige Interaktionen sollten vorzugsweise sofort,
direkt und vertraulich zwischen den Personal Computer der Personen
oder anderen netzwerkfähigen
Vorrichtungen erfolgen. Es wäre
außerdem
wünschenswert, eine
Technik bereitzustellen, die es Nutzern an verschiedenen entlegenen
Stellen ermöglicht,
gesichert zu kommunizieren, ohne die Nutzer an der Einrichtung einer
gesicherten Kommunikationsstrecke und dem Aufrechterhalten des Sicherheitssystems
extensiv zu beteiligen. Es ist außerdem wünschenswert, die „Zusatzkosten", die durch die Bereitstellung
sicherer Transaktionen entstehen, auf ein Minimum zu reduzieren,
um den Durchsatz und die Betriebsgeschwindigkeit zu erhöhen.
-
Aus
US-A-6 052 787 ist
ein Verfahren für gruppenbasierte
kryptografische Codeverwaltung zwischen einer ersten Computereinheit
und jeder erforderlichen Anzahl von anderen Computereinheiten bekannt.
Gemäß diesem
Verfahren wird eine erste Nachricht N1 durch die erste Computereinheit
gebildet und an mindestens einige der Gruppencomputereinheiten gesendet.
Die erste Nachricht enthält
mindestens einen ersten Sicherheitsrichtlinienvorschlag und eine
erste Identitätüberprüfungsvariable.
Der Sicherheitsrichtlinienvorschlag enthält Sicherheitsdienste, -mechanismen
und -algorithmen. Jede der Gruppencomputereinheiten prüft die Integrität des ersten
Sicherheitsrichtlinienvorschlags unter Verwendung der ersten Identitätsüberprüfungsvariablen und
durch Bilden einer zweiten Nachricht N2, die einen zweiten Sicherheitsrichtlinienvorschlag
enthält und
die unabhängig
von den durch die anderen Gruppencomputereinheiten gebildeten zweiten
Nachrichten ist. Die zweiten Nachrichten werden an die erste Gruppencomputereinheit
gesendet, welche die einzelnen zweiten Sicherheitsrichtlinienvorschläge unter Verwendung
der zweiten Identitätsüberprüfungsvariablen
verifiziert und die eine dritte Nachricht N3 zum Senden an die Gruppencomputereinheiten
bildet. Die Gruppencomputereinheiten verwenden die in der dritten
Nachricht enthaltene dritte Identitätsüberprüfungsvariable, um die Integrität einer
in der dritten Nachricht übertragenen
Sicherheitsrichtlinie zu prüfen,
welche die für
die nachfolgende Kommunikation zu verwendende Sicherheitsrichtlinie
festlegt.
-
Um
Vertraulichkeit für
die Nachrichten N1 und N3 bereitzustellen, werden diese Nachrichten unter
Verwendung eines öffentlichen
Schlüssels
der jeweiligen Gruppencomputereinheit verschlüsselt und werden in der jeweiligen
Gruppencomputereinheit unter Verwendung eines geheimen Codes der entsprechenden
Gruppencomputereinheit entschlüsselt.
Die zweite Nachricht N2 kann unter Verwendung eines geheimen Codes
der jeweiligen Sender-Gruppencomputereinheit verschlüsselt werden
und in der ersten Gruppencomputereinheit unter Verwendung des öffentlichen
Schlüssels
der ersten Gruppencomputereinheit entschlüsselt werden.
-
Durch
dieses Verfahren bestimmt die erste Computereinheit auch, welche
weiteren Gruppencomputereinheiten eingeladen werden, an einer nachfolgenden
Kommunikation teilzunehmen. In den Nachrichten werden zu Authentifikationszwecken
Zufallszahlen verwendet. Eine erste Zufallszahl wird in der ersten
Computereinheit erzeugt und in der ersten Nachricht N1 an die Gruppencomputereinheiten
gesendet. Die Authentifizierung wird dadurch durchgeführt, dass
die erste Zufallszahl zu der zweiten Nachricht N2 zugefügt wird,
welche in verschlüsselter Form
von einer betreffenden Gruppencomputereinheit zu der ersten Computereinheit
gesendet wird. Dies stellt für
die erste Computereinheit sicher, dass die jeweilige Nachricht nur
von einer Gruppencomputereinheit gesendet worden sein kann. Dieses
Verfahren sieht ferner zweite Zufallsvariablen vor, die sich unter
den einzelnen Gruppencomputereinheiten voneinander unterscheiden,
damit sie unabhängig voneinander
in den Gruppencomputereinheiten gebildet werden und zu den einzelnen
Nachrichten N2 zugefügt
werden.
-
Außerdem wird
in ABADI, M. und NEEDHAM, R.: „Prudent
Engineering Practice for Cryptographic Protocols", RESEARCH IN SECURITY AND PRIVACY,
16. Mai 1994-18. Mai 1994, IEEE Computer Society Symposium, Oakland,
KA, USA, 1994, Seiten 122-136 die Verwendung von Einmaligkeitsmerkmalen
in kryptografischen Protokollen beschrieben. Derartige Protokolle
können
sich auf zufällige oder
vorhersagbare Einmaligkeitsmerkmale in Nachrichten stützen, um
Angriffe auf die Kommunikationssicherheit abzuwehren. Die Veröffentlichung
erörtert auch
die Verwendung von Zeitstempeln als eine Art Einmaligkeitsmerkmal.
-
KURZE DARSTELLUNG DER ERFINDUNG
-
Die
Aufgabe der Erfindung ist die Bereitstellung gesicherter Interaktionen
in einer Gruppe von Teilnehmern eines verteilten kollaborativen
Kommunikationssystems, welches auf andere Mitglieder ausgedehnt
werden kann, während
Wiederabspiel- und Verschachtelungsangriffe abgewehrt werden. Dementsprechend
stellt die vorliegende Erfindung ein Verfahren zum Hinzufügen eines
Eingeladenen, der über
ein öffentlich/privates
Schlüsselpaar
verfügt, zu
einer gesicherten Gruppe von Kollaborationsteilnehmern bereit, welche
untereinander durch Nachrichten kommunizieren, welche mit Inter-Teilnehmer-Schlüssel einschließlich paarweiser
Schlüssel (Kij/Lij) und Gruppenschlüssel (KG/LG), geschützt sind.
-
Das
Verfahren, wie in den Ansprüchen
definiert, umfasst die Schritte des Auswählens mindestens eines der
Gruppenmitglieder als Vorsitz mit der Autorität zum Hinzufügen neuer
Mitglieder zu der Gruppe und eines neuen öffentlich/privaten Schlüsselpaars,
und das Senden einer Einladungsnachricht vom Vorsitz an den Eingeladenen,
wobei die Einladungsnachricht ein unterzeichnetes Einladungs-Einmaligkeitsmerkmal,
das zeitabhängig
ist und Klartextinformation zur Identifizierung des Vorsitzes enthält, und
die mit dem öffentlichen
Schlüssel
des Vorsitzes verschlüsselt
wird und mit dem privaten Schlüssel des
Vorsitzes unterzeichnet wird, enthält. Der Eingeladene antwortet
mit einer Annahmenachricht, die das unterzeichnete Einladungs-Einmaligkeitsmerkmal
und ein unterzeichnetes Annahme-Einmaligkeitsmerkmal enthält, das
zeitabhängig
ist und den Eingeladenen identifizierende Klartextinformation enthält. Das
unterzeichnete Annahme-Einmaligkeitsmerkmal
enthält
auch das Zertifikat des Vorsitzes und den Namen oder die URL der
gesicherten Gruppe und ist mit dem öffentlichen Schlüssel des
Vorsitzes unterzeichnet. Der Vorsitz sendet an alle Mitglieder der
gesicherten Gruppe von Kollaborationsteilnehmern eine Neuer-Teilnehmer-Nachricht,
welche neue Inter-Teilnehmer-Schlüssel enthält, und
sendet ferner an den Eingeladenen eine Gruppendatennachricht, die
das unterzeichnete Annahme-Einmaligkeitsmerkmal
und mit dem öffentlichen
Schlüssel
des Eingeladenen geschützte
Gruppeninformation enthält.
-
Die
Erfindung stellt auch eine Vorrichtung, ein Computerprogrammprodukt
und ein Computerdatensignal wie in den entsprechenden Ansprüchen definiert
bereit.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
obigen und weitere Vorteile der Erfindung können durch Bezugnahme auf die
folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen
besser verstanden werden, in denen:
-
1 ein
Blockdiagramm einer veranschaulichenden Architektur eines herkömmlichen
Computersystems ist;
-
2 ein
schematisches Blockdiagramm eines veranschaulichenden Kollaborationssystems
ist, in dem lokale Datenkopien mittels Deltas aktualisiert werden;
-
3 ein
schematisches Blockdiagramm ist, das eine Gruppe, einen Stamm und
die zu ihrem Schutz verwendeten Verschlüsselungs- und Authentifikationsschlüssel veranschaulicht;
-
4 ein
schematisches Diagramm ist, das den Inhalt eines Delta, das zwischen
Teilnehmern in einer Gruppe in einem Sicherheitssystem niedriger Ebene
gesendet wird, veranschaulicht;
-
5 ein
schematisches Diagramm ist, das den Inhalt eines Delta, das zwischen
Teilnehmern in einer Gruppe in einem Sicherheitssystem mittlerer oder
hoher Ebene, das in dem Authentifizierungs/Integritätsmodus
betrieben wird, gesendet wird, veranschaulicht;
-
6 ein
schematisches Diagramm ist, das den Inhalt eines Delta, das zwischen
Teilnehmern in einer Gruppe in einem Sicherheitssystem mittlerer oder
hoher Ebene, das in dem Authentifizierungs/Integritäts/Vertraulichkeitsmodus
betrieben wird, veranschaulicht;
-
7 ein
schematisches Diagramm ist, das den Inhalt eines Delta, das zwischen
Teilnehmern in einer Gruppe in einem Sicherheitssystem hoher Ebene,
das in dem Authentifizierungs/Integritätsmodus betrieben wird, veranschaulicht;
-
8 ein
schematisches Blockdiagramm ist, das die Schaffung und Verifizierung
digitaler Unterschriften und Zertifikate veranschaulicht;
-
9 ein
schematisches Blockdiagramm ist, das das Hinzufügen eines neuen Teilnehmers
(Eingeladener) zu einer existierenden Gruppe veranschaulicht;
-
10 ein
Flussdiagramm ist, das die Schritte in einer veranschaulichenden
Routine zeigt, die ein Vorsitz verwenden könnte, um einen neuen Teilnehmer
zu der existierenden Gruppe hinzuzufügen;
-
11 ein
schematisches Diagramm ist, das den Inhalt einer von dem Vorsitz
an den Eingeladenen gesendeten Einladungsnachricht veranschaulicht;
-
12 ein
schematisches Diagramm ist, das den Inhalt einer durch einen Eingeladenen
an den Vorsitz gesendeten Annahmenachricht veranschaulicht;
-
13 ein
schematisches Diagramm ist, das den Inhalt eines von dem Vorsitz
an alle existierenden Teilnehmer einer Gruppe gesendeten Neuer-Teilnehmer-hinzugefügt-Deltas, welches die
Gruppe informiert, dass ein neuer Teilnehmer hinzugefügt worden
ist, veranschaulicht;
-
14 ein
schematisches Diagramm ist, das den Inhalt einer von dem Vorsitz
an einen neu hinzugefügten
Teilnehmer gesendeten Nachricht, die den Teilnehmer über die
Telescape-Daten informiert, veranschaulicht;
-
15 ein
Flussdiagramm ist, das die Schritte in einer veranschaulichenden
Routine, die ein Eingeladener verwenden könnte, um auf eine Einladung
zu antworten, veranschaulicht;
-
16 ein
Flussdiagramm ist, das die Schritte einer veranschaulichenden Routine,
die ein Vorsitz verwenden könnte,
um auf eine Annahmenachricht von einem Eingeladenen zu antworten,
veranschaulicht;
-
17 ein
Flussdiagramm ist, das die Schritte in einer veranschaulichenden
Routine, die ein existierender Teilnehmer verwenden könnte, um auf
ein Neuer-Teilnehmer-hinzugefügt-Delta
zu antworten, veranschaulicht;
-
18 ein
Flussdiagramm ist, das die Schritte in einer veranschaulichenden
Routine, die ein neu hinzugefügter
Teilnehmer verwenden könnte, um
auf eine Nachricht von dem Vorsitz zu antworten, mit der vertrauliche
Informationen übertragen
werden, veranschaulicht;
-
19 ein
schematisches Diagramm ist, das den Inhalt einer Deltanachricht,
in der Wiederverschlüsselungsinformation
im Huckepackverfahren übermittelt
wurde, veranschaulicht;
-
20 ein
schematisches Blockdiagramm ist, das die Gesamtarchitektur einer
bevorzugten Implementation des erfindungsgemäßen Sicherheitssystems veranschaulicht;
-
21 ein
schematisches Blockdiagramm ist, das die beispielhaften abstrakten
Klassen in einer objektorientierten Implementation des erfindungsgemäßen Sicherheitssystems
veranschaulicht;
-
22 ein
schematisches Blockdiagramm ist, das die beispielhaften konkreten
Klassen in einer objekt orientierten Implementation des erfindungsgemäßen Sicherheitssystems
veranschaulicht;
-
23 ein
schematisches Diagramm ist, das eine Bildschirmanzeige einer Dialogkasten,
die Information zur visuellen Überprüfung anzeigt
und von einem Nutzer erfordert, die Informationen anzunehmen oder
abzulehnen, veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 veranschaulicht
eine herkömmliche Systemarchitektur
für ein
beispielhaftes Computersystem 100, mit dem die offenbarte
Erfindung implementiert werden kann. Das beispielhafte Computersystem
aus 1 wird jedoch nur zu Beschreibungszwecken erörtert, und
soll nicht als Einschränkung der
Erfindung angesehen werden. Obwohl die folgende Beschreibung sich
auf allgemein bei der Beschreibung von bestimmten Computersystemen
verwendeten Begriffen beziehen kann, gelten die Konzepte gleichfalls
für andere
Computersysteme, einschließlich
Systemen, die Architekturen aufweisen, welche sich von den in 1 gezeigten
unterscheiden.
-
Das
Computersystem 100 enthält
eine Zentrale Verarbeitungseinheit (CPU) 105, die einen
herkömmlichen
Mikroprozessor, einen Direktzugriffsspeicher (RAM) 110 für temporäres Speichern
von Informationen, und einen Nur-Lese-Speicher (ROM) 115 für das permanente
Speichern von Informationen enthalten kann. Eine Speichersteuerung 120 ist
zum Steuern eines System-RAMS 110 bereitgestellt. Eine Bussteuerung 125 ist
zum Steuern eines Bus 130 bereitgestellt und eine Unterbrechungssteuerung 135 wird
zum Empfang und Verarbeiten verschiedener Unterbrechungssignale
von anderen Systemkomponenten verwendet.
-
Massenspeicherung
kann durch Disketten 142, CD-ROM 147 oder Festplatte 152 bereitgestellt werden. Über ent fernbare
Medien, wie Diskette 142 und CD-ROM 147, können Daten
mit Clientcomputer 100 ausgetauscht werden. Die Diskette 142 kann
in das Diskettenlaufwerk 141 eingeführt werden, welches über die
Steuerung 140 mit dem Bus 130 verbunden ist. Analog
kann eine CD-ROM 147 in das CD-ROM-Laufwerk 146 eingeführt werden,
welches über
Steuerung 145 mit dem Bus 130 verbunden ist. Schließlich ist
die Festplatte 152 ein Teil eines festen Festplattenlaufwerks 151,
welches über
Steuerung 150 mit Bus 130 verbunden ist.
-
Durch
eine Reihe von Vorrichtungen können Nutzereingaben
in das Computersystem 100 bereitgestellt werden. Beispielsweise
kann eine Tastatur 156 und eine Maus 157 mit dem
Bus über
die Tastatur- und Maussteuerung 155 verbunden sein. Ein
Audiosignalgeber 196, der sowohl als Mikrofon als auch als
Lautsprecher fungieren kann, ist durch eine Audiosteuerung 197 mit
dem Bus 130 verbunden. Durchnittsfachleuten sollte klar
sein, dass andere Eingabevorrichtungen, wie ein Stift und/oder eine
Tafel und ein Mikrofon für
die Spracheingabe über
Bus 130 und eine entsprechende Steuerung mit dem Clientcomputersystem
verbunden sein kann. Die DMA-Steuerung 160 wird zur Durchführung von
direktem Speicherzugriff auf das RAM-System 110 bereitgestellt. Eine
visuelle Anzeige wird durch eine Videosteuerung 165, welche
eine Videoanzeige 170 steuert, bereitgestellt.
-
Das
Computersystem 100 enthält
außerdem einen
Netzwerkadapter 190, der es dem Clientcomputer 100 ermöglicht, über einen
Bus 191 an ein Netzwerk 195 angeschlossen zu werden.
Das Netzwerk 195, bei dem es sich um ein Local Area Network (LAN),
ein Wide Area Network (WAN) oder das Internet handeln kann, kann
Allzweckkommunikationsleitungen verwenden, die mehrere Netzwerkvorrichtungen
verbinden.
-
Das
Computersystem 100 wird allgemein durch eine Betriebssystemsoftware
betrieben und gesteuert. Unter anderen Computersystemsteuerfunktionen
steuert das Betriebssystem die Zuweisung von Systemsressourcen und
führt Aufgaben aus,
wie die Prozessplanung, Speichermanagement, Netzwerkbildung und
E/A-Dienste.
-
2 zeigt
in Form eines schematischen Blockdiagramms eine Konfiguration eines
veranschaulichenden Kollaborationssystem. 2 zeigt zwei
kollaborative Arbeitsstationen 200 und 202, die mit
einem Netzwerk 216 verbunden sind. Jede der Arbeitsstationen 200 und 202 könnte ein
Computersystem wie das in 1 gezeigte
sein und das Netzwerk 216 könnte ein privates Computernetzwerk,
wie ein LAN oder WAN, oder ein öffentliches
Computernetzwerk, wie das Internet, sein. Alternativ könnten sich
die Stationen 200 und 202 an demselben (nicht
gezeigten) Computer befinden, wobei in diesem Fall die Kommunikation
zwischen den beiden Endgeräten
bezüglich
dieses Computers lokal erfolgen würde.
-
In
einer bevorzugten Ausführungsform
führt jedes
der Endgeräte 200 und 202 eine
lokale Kopie, 204 bzw. 210 der Daten, an denen
die Kollaborationsarbeit ausgeführt
wird. Jede lokale Datenkopie, beispielsweise Datenkopie 204,
wird durch ein entsprechendes Softwareprogramm verwaltet, welches „Dynamikverwalter" 206 genannt
wird. Ebenso wird die Datenkopie 210 durch ihren entsprechenden
Dynamikverwalter 212 verwaltet. Obwohl zu Veranschaulichungszwecken
eine besondere Kollaborationsvorrichtung erörtert wird, ist es Fachleuten
auf dem Gebiet ersichtlich, dass auch andere Kollaborationsvorrichtungen
verwendet werden können,
ohne in der Idee und dem Schutzumfang von den Grundsätzen der
Erfindung abzuweichen.
-
Der
Dynamikverwalter 206 ändert
und aktualisiert seine lokale Datenkopie 204 in Reaktion
auf den Empfang von selbständigen
Dateneinheiten, die eine oder mehrere, „Delta" genannte Datenänderungsanforderungen enthalten.
Die Datenänderungsanforderungen
sind Benachrichtigungen oder Aufforderungen an den Dynamikverwalter
und andere (nicht gezeigte) Komponenten hinsichtlich erwünschter Änderungen
an den Daten. Deltas werden von einem Dynamikverwalter, wie Verwalter 206,
in Reaktion auf Nutzerinteraktion erzeugt und werden verwendet,
um sowohl die entsprechende lokale Datenkopie 204 als auch über das
Netzwerk die lokalen Datenkopien in anderen Computern, welche zu
den an derselben Kollaborationssitzung teilnehmenden Kollaborationsteilnehmern
gehören,
zu aktualisieren.
-
Ein
Delta weist ein spezifisches Format auf, einschließlich eines
Kopfteilabschnitts zur Bereitstellung von Steuerinformationen und
einen Nutzlastabschnitt zum Bereitstellen von Informationen hinsichtlich
der Daten, auf die sich die Anforderung bezieht. Ein einzelnes Delta
kann eine oder mehrere Nutzlasten aufweisen. Wenn mehrere Nutzlasten
eingesetzt werden, kann jede auf bestimmte Kollaborationsteilnehmer
mit eindeutigen Vorrichtungsfähigkeiten
oder Nutzerrollen, wie unten weiter beschrieben wird, gerichtet
werden.
-
Wenn
die von dem Dynamikverwalter 206 erzeugten Deltas an andere
Kollaborationsteilnehmer gesendet werden sollen, interagiert der
Dynamikverwalter 206 mit einem Kommunikationsverwalter 208. Analog
interagiert der Dynamikverwalter 212 mit einem Kommunikationsverwalter 214.
Der Kommunikationsverwalter 208 ist ein Mechanismus, der
eingehende und ausgehende Deltas an geeignete Ziele leitet. In einer
bevorzugten Ausführungsform
kann der Kommunikationsverwalter als ein computerausführbares
Programm implementiert sein, welches von Kommunikationsverwalter 206 initiierte
Deltas zur Sendung über
das Netzwerk 216 an einen anderen entfernten PC oder eine
andere Art von netzwerkfähiger
Vorrichtung leitet und welche entfernt erzeugte Deltas, die über das
Netzwerk 216 erhalten werden, an den Dynamikverwalter 206 leitet.
-
Allgemein
sind die Kommunikationsverwalter 208 und 214 so
angeordnet, dass alle von den Dynamikverwaltern 206 und 212 erzeugten
Deltas von allen an der Kollaboration teilnehmenden Nutzern empfangen
werden. Jedes Delta enthält
eine interne Sequenznummer, so dass der Dynamikverwalter jedes Kollaborationsteilnehmers
bestimmen kann, wenn alle Deltas empfangen worden sind. Da die Deltas
von unterschiedlichen Kollaborationsteilnehmern über eine Reihe unterschiedlicher
Wege an jeden Kollaborationsteilnehmer gesendet werden können, kommen
die Deltas möglicherweise
nicht in derselben Reihenfolge an, wie sie erzeugt worden sind. Alle
Deltas werden jedoch von jedem Kollaborationsteilnehmer empfangen
und die interne Sequenznummer kann verwendet werden, um die Deltas
in der richtigen Reihenfolge anzuwenden. Daher wird die lokale Datenkopie,
die von jedem Kollaborationsteilnehmer geführt wird, wenn sie durch alle
Deltas aktualisiert wird, die von den anderen Teilnehmern der Kollaboration
geführten
lokalen Datenkopien anpassen.
-
Es
ist wünschenswert,
unter den Kollaborationsteilnehmern, die an einer bestimmten Kollaboration
teilnehmen, Vertraulichkeit zu halten. Dies gilt insbesondere, wenn
Deltas über
ein öffentliches
Netz, wie dem Internet, gesendet werden. Es gibt drei Grundkonzepte,
die für
die Sicherheit der Information wichtig sind. Das erste ist die Authentifizierung,
welche sicherstellt, dass ein Datenempfänger die Identität der Datenquelle
kennt und ihr vertrauen kann. Das zweite Konzept ist die Integrität, welche
sicherstellt, dass sich die Daten beim Transport nicht verändert haben.
Die Integrität
stellt effektiv sicher, dass die Daten nicht von anderen Parteien
als der Datenquelle beschreibbar sind und dass sie von einer bekannten
Quelle kommen. Datenintegrität
verhindert den Angriff durch Dritte mittels Erzeugen oder „Verfälschen" nicht autorisierter
Daten. Das letzte Sicherheitskonzept ist die Vertraulichkeit, welche
sicherstellt, dass die Daten beim Transport nicht durch andere Parteien
als der Datenquelle und dem Datenempfänger gelesen werden können. Vertraulichkeit verhindert
den Angriff durch Dritte mittels Lesen oder „Abhören" der Daten.
-
Wie
zuvor erwähnt,
basiert die Sicherheit auf einem virtuellen Raum, in dem Kollaborationsteilnehmer
an einer oder mehreren Aktivitäten
teilnehmen und Gegenstände
teilen, und in dem die Ergebnisse von Aktivitäten kontinuierlich auf dem
Personal Computer eines Nutzers oder anderen Formen von netzwerkfähigen Vorrichtungen
gespeichert werden. Der virtuelle Raum wird als „Telespace" oder „Gruppe" bezeichnet und wird mit der Vorrichtung
jedes Nutzers synchron gehalten. In Übereinstimmung mit dem veranschaulichendem
Sicherheitsmodell, ist die Sicherheit eines Telespaces das, was
die meisten als „Gesamt"-Sicherheit erfahren
werden, nachdem der Telespace gebildet, seine Teilnehmer zugelassen wurden
und die Teilnehmerschaft stabil ist. Dies wird als das Festzustands-Deltaprotokoll
bezeichnet und betrifft die Authentifizierung, Integrität und Vertraulichkeit
von in Deltas enthaltener Information, welche zwischen Gruppenteilnehmern
ausgetauscht werden. 3 ist ein schematisches Diagramm
eines veranschaulichenden Telespaces oder Gruppe 300 mit
fünf Mitgliedern:
M0, M1, M2, M3, M4 (302-310).
In jedem Telespace 300 können ein oder mehrere Stämme oder
Untergruppen existieren. In 3 wird ein
Stamm 312 aus drei Teilnehmern M2,
M3, M4 (306, 308 und 310)
veranschaulicht.
-
Jeder
Teilnehmer 302-210 weist in ihm eine „Protokoll-Anordnung" (Anordnungen 303-312)
auf, bei der es sich um ein Anwendungsprogramm handelt, das Sicherheitsnachrichten
an andere Teilnehmer sendet und Sicherheitsinformation manipuliert.
-
Informationen
in Telespaces 300 und Stämmen 312 sind durch
einen oder mehrere Schlüssel geschützt: einen
als K bezeichneten Verschlüsselungsschlüssel und
ein Nachrichten-Authentifizierungs-/Integritätscode-(MAC)-Schlüssel, der
als L bezeichnet wird. Der K- und der L-Schlüssel sind herkömmliche
Schlüssel
für eine
symmetrische Chiffre und weisen Telespace auf. Das erfindungsgemäße System
kann sowohl Blockchiffren als auch Stromchiffren verwenden, aber
zwischen den Nachrichten wird kein Status erhalten. Somit sind keine
Kommunikationsendpunkte notwendig, um den Sicherheitszustand der
Stromchiffre von einer Nachricht zu der nächsten zu halten. Auf diese
Weise ist keine Neusynchronisation notwendig, wenn es zu einer vorübergehenden
Kommunikationsunterbrechung kommt.
-
Blockchiffren
werden im Zählermodus
mit einem Initialisierungsvektor verwendet, der immer, wenn er verwendet
wird, zufallsmäßig neu
erzeugt wird. Der Initialisierungsvektor weist eine Länge auf, die
gleich der Blocklänge
der Chiffre ist und wird verwendet, um einen stereotypischen Kopfteilangriff
auf herkömmliche
Weise abzuwehren. Stromchiffren werden im Blockmodus durch Kombination
eines Initialisierungsvektors mit dem Schlüssel, wie durch einen Exklusiv-ODER-Vorgang,
und dann durch Reinitialisieren des Schlüsselstroms für jede Nachricht verwendet.
In diesem Fall weist der Initialisierungsvektor eine Länge auf,
die gleich der Schlüssellänge ist.
Die Initialisierungsvektoren sind im Allgemeinen nicht hinsichtlich
Vertraulichkeit oder Authentifizierung/Integrität geschützt.
-
Es
wird ferner angenommen, dass allen Schlüssel eine Art Veraltungsmechanismus
zugeordnet ist, so wie ein Time-out,
oder eine feste Anzahl von geschützten
Nachrichten oder Bytes. Dieser Mechanismus unterliegt der lokalen
Richtlinie, welche durch den Telespace bestimmt wird, und muss in
keinem der unten beschriebenen Protokolle übertragen werden.
-
Gruppenschlüssel, die
als KG/LG bezeichnet sind
(jeweils) Verschlüsselung/MAC-Schlüssel, welche
von allen Teilnehmern der Gruppe 300 gemeinsam verwendet
werden. Diese Schlüssel
werden verwendet, um (jeweils) die Vertraulichkeit/Integrität von in
den Deltas enthaltener Information vor Angriffen durch dritte (nicht-Gruppen-)Parteien
zu schützen. Analog
sind die als KT/LT bezeichneten
Stammschlüssel
Verschlüsselungs/MAC-Schlüssel, die
von allen Teilnehmern des Stamms 312 gemeinsam genutzt
werden. Diese Schlüssel
werden verwendet, um (jeweils) die Vertraulichkeit/Integrität von in
den Deltas enthaltenen Informationen vor Angriffen von (nicht-Gruppen-)Parteien
zu schützen.
-
Außerdem sind
als K01/L01 bezeichnete
paarweise Schlüssel
(jeweils) Verschlüsselungs/MAC-Schlüssels, die
gemeinsam von den Teilnehmern M0 und M1 und nicht von anderen Gruppenteilnehmern
verwendet werden, und es sind bidirektionale Schlüssel, die
zum Schutz der Vertraulichkeit in beiden Richtungen zwischen M0 und M1 verwendet werden.
Diese Schlüssel
werden verwendet, um (jeweils) die Vertraulichkeit/Integrität in Deltas
vor Angriffen von Gruppenteilnehmern M2,
M3 und M4 zu schützen. Ähnliche
paarweise Schlüssel,
Kij/Lij, können verwendet
werden, um die zwischen anderen Kombinationen von Teilnehmern, Mi und Mj, ausgetauschten
Informationen vor Angriffen von anderen Gruppenteilnehmern zu schützen.
-
In
einem Telespace gehört
die Festzustandssicherheit zu einer von fünf Ebenen, von denen eine durch
den Schaffer des Telespace 300 zu der Zeit der Schaffung
des Telespace gewählt
werden kann. Zu den fünf
Ebenen gehört
die Sicherheit niedriger Ebene, die keine Verwendung von Schlüsseln erfordert. Diese
Ebene stellt überhaupt
keine kryptografische Sicherheit bereit. Die nächste Ebene ist die Sicherheit
mittlerer Ebene, die ein einziges Schlüsselpaar (KG/LG) für
alle Teilnehmer der Gruppe verwendet. In dieser Ebene kann die Authentifizierung/Integrität durch
Verwendung nur des MAC-Schlüssels
LG des KG/LG-Paars zum Schutz von Deltas bereitgestellt werden.
Analog kann die Authentifizierung/Integrität und Vertraulichkeit durch
Verwendung sowohl des KG- als auch des LG-Schlüssels
zum Schutz von Deltas verwendet werden.
-
Die
nächste
Ebene ist die Sicherheit hoher Ebene, welche eine Kombination der
Gruppenschlüssel
KG/LG und die paarweisen
Schlüssel
Kij/Lij verwendet.
Wenn nur die Authentifizierung/Integrität erforderlich ist, werden
nur die paarweisen MAC-Schlüssel
(Lij) verwendet, um die Deltas zu schützen; der
Gruppenschlüssel
(KG) wird nicht verwendet. Wenn Authentifizierung/Integrität/Vertraulichkeit
erforderlich ist, werden alternativ sowohl der Verschlüsselungsschlüssel KG
und die paarweisen MAC-Schlüssel Lij, zum Schutz der Deltas verwendet.
-
Sowohl
bei der Sicherheit mittlerer Ebene als auch der hohen Ebene werden
die paarweisen Verschlüsselungsschlüssel (Kij) und die MAC-Schlüssel (Lij)
verwendet, um die Gruppen- oder Stammschlüssel (KG/LG oder KT/LT) neu zu verschlüsseln.
-
Die
obigen Ebenen und Modelle können
auf die Gruppe (Telespace) insgesamt angewendet werden und lassen
sich auch auf alle Stämme
(Untergruppen) anwenden. Alle Stämme
in einem Telespace weisen dieselbe „Gesamtsicherheit" wie der Telespace
selbst auf, daher können
die oben erörterten
Ebenen und Modelle für
Gruppen auf Stämme angewendet
werden, indem die Gruppenschlüssel KG/LG durch die Stammschlüssel KT/LT, überall wo
sie oben auftreten, ersetzt werden.
-
4 veranschaulicht
den Inhalt eines „Deltas", das verwendet wird,
um Information zwischen Gruppenteilnehmern zu übermitteln. Jedes Delta besteht
aus einem Nachrichtenkopf 400, welcher Information enthält, die
von der spezifischen Implementation des Sicherheitssystems abhängt. Diese
Information kann eine Protokollversionsnummer enthalten, die wiederum
Versionsnummern sowohl für
das Kollaborationssystem als auch für das Sicherheitsuntersystem
enthalten kann. Der Nachrichtenkopf 400 kann auch eine
Art Nachrichtenfahne oder Tag-Kennung enthalten, bei der es sich
um eine Kennung handelt, die sich für jede verschiedene Nachrichtenart
unterscheidet. Andere Information, die in der Nachricht enthalten
sein kann, kann eine strukturierte Sequenznummer sein. Diese letztere
Nummer ist eine zum Teil geordnete Sequenznummer, welche Telespace
aufweist, und in diesem Raum identifiziert sie sowohl den Sender
der Nachricht und den spezifischen Moment der Nachricht selbst.
-
Der
Kopfteil 400 kann hinsichtlich Vertraulichkeit nie geschützt sein,
sondern kann, abhängig von
der erforderlichen Sicherheitsebene, hinsichtlich Authentifizierung/Integrität geschützt sein,
genau wie die Anwendungsdaten 402, welche die Nutzlast
oder die Information enthalten, die tatsächlich zwischen Gruppenteilnehmern
gesendet werden. Die Art der Codierung der Deltas, wie in 4 gezeigt,
hängt von
der gewünschten
Sicherheitsebene ab. Bei einem Sicherheitsmodus „niedriger Ebene", der keine Sicherheit
im kryptografischen Sinne gewährleistet, wird
das Delta beispielsweise wie in 4 gezeigt gesendet,
wobei vorzugsweise die Kopfteilinformationen 400 zuerst
gesendet werden, gefolgt von der Nutzlast 402, obwohl die
Reihenfolge von Kopfteil und Nutzlast für die Funktionsweise der Erfindung nicht
erheblich ist. In diesem Fall können
dritte (nicht Gruppen-)Parteien die Deltainformationen 402 lesen oder abhören und
können
unpersönliche
oder „verfälschte" Deltas schreiben.
-
Im
Fall eines Sicherheitssystems „mittlerer Ebene", das in dem vorgenannten
Authentizitäts/Integritäts-Modus
betrieben wird, wird die Deltainformation wie in 5 gezeigt
geschützt.
Insbesondere wird für
jedes Delta die Kopfteilinformation 500 gesendet, gefolgt
von einer Schlüsselversionsnummer 502,
den Klartextdaten 504 und einem Authentifizierer 506.
Wieder ist die Reihenfolge dieser Elemente nicht entscheidend. Bei
dem Authentifizierer kann es sich um einen MAC-Code 506 handelt,
der die Authentifizierung/Integrität der Daten 504 schützt und nachweist,
dass die Nachricht an einen Gruppenteilnehmer gesendet worden ist,
da nur Gruppenteilnehmer den Gruppenauthentifizierungsschlüssel LG kennen. In einer alternativen Ausführungsform
kann ein Authentifizierer aus einer öffentlichen Schlüsselunterschrift
auch als Nachrichtenauthentifizierer verwendet werden. In diesem
Fall besteht der Nachrichtenauthentifizierer 506 aus der öffentlichen
Schlüsselunterschrift
der gehashten aneinandergeketteten Daten und Kopfteile.
-
In
einer bevorzugten Ausführungsform
weist eine Schlüsselversionsnummer
zwei Teile auf: einen Telespacebreiten eindeutigen String, der „Keyidentifier" oder „Schlüsselkennzeichnung" genannt wird und
eine inkrementelle Sequenznummer, die „Schlüsselversion" genannt wird. Die Schlüsselkennzeichnung
wird benötigt,
um zwischen Schlüsseln
zu unterscheiden, die unabhängig
voneinander von verschiedenen Teilnehmern des Telespace erzeugt
werden können.
Da ein Teilnehmer nicht weiß,
dass ein anderer Teilnehmer ebenfalls einen neuen Schlüssel generiert,
ermöglicht
die Schlüsselkennzeichnung die
eindeutige Identifizierung der Schlüssel. Die SchlüsselVersion
wird benötigt,
um zwischen alten, aktuellen und neuen Schlüsseln zu unterscheiden. In einem
Festzustand verwenden Teilnehmer eine Gruppe von Schlüsseln, die
dieselben SchlüsselVersions-Werte
aufweisen. Die Teilnehmer könnten „alte" Schlüssel mit
geringeren SchlüsselVersions-Werten
als den aktuellen SchlüsselVersions-Wert
entfernen.
-
In
einer bevorzugten Implementation wird ein MAC-Code 506 konstruiert, indem
zuerst die aneinandergeketteten Daten 504 und der Kopfteil 500 gehasht
werden und das gehashte Ergebnis dann in Übereinstimmung mit einem herkömmlichen
Nachrichtenauthentifizierungsalgorithmus geschützt wird. Die Zwischen-Hash-Funktion
wird verwendet, um einen MAC-Code auf eine Weise zu konstruieren,
die parallel zu der unten erläuterten
Version hoher Sicherheit ist. Es ist auch möglich, diesen Modus ohne Verwendung
der Zwischen-Hash-Funktion zu implementieren, indem der Kopfteil
und die Daten in dem Gruppen-Authentifikationsschlüssel LG unter Verwendung wiederum eines herkömmlichen
MAC-Algorithmus geschützt
wird. Wie zuvor erwähnt
erzeugt das in dem Authentifizierungs/Integritäts-Modus betriebene Sicherheitssystem
mittlerer Ebene ein Sicherheitssystem, in dem dritte Parteien lesen
oder abhören
können,
aber nur Gruppenteilnehmer Deltas anderer Teilnehmer schreiben,
inpersonalisieren oder verfälschen
können.
-
Ein
in dem Authentifizierung/Integritäts/Vertraulichkeits-Modus betriebenes
Sicherheitssystem mittlerer Ebene schützt die Deltadaten wie in 6 gezeigt.
Insbesondere wird ein Delta durch Senden des Kopfteils mit der Schlüsselversionsnummer 602 und
einem Initialisierungsvektor 603, den Daten 604 und
dem Nachrichtenauthentifizierungscode 606 gesendet. In
diesem Fall sind die Daten 604 jedoch verschlüsselt worden.
Dieses Protokoll schützt
die Vertraulichkeit der Deltadaten durch ihre Verschlüsselung
in dem Gruppenverschlüsselungsschlüssel KG und
schützt
weiter die Integrität
und Authentizität
mit dem Gruppenauthentifizierer 606. Die Daten 604 werden
mit dem Gruppenverschlüsselungsschlüssel KG
mittels herkömmlicher
Verschlüsselungsalgorithmen
verschlüsselt
und die verschlüsselten
Daten sind mit einem Initialisierungsvektor verbunden. Der Authentifizierungs- oder MAC-Code wird
wiederum in einer bevorzugten Ausführungsform durch Hashen der
Verkettung des Kopfteils und der Klartextdaten und dann Codieren
der gehashten Informationen mit dem Gruppenauthentifikatorschlüssel LG gebildet. Es ist auch möglich, diesen Modus durch Verschlüsselung
der Verkettung der Daten plus einem Hash des Kopfteils und Daten
mit einem einzigen Verschlüsselungsschlüssel KG
zu verschlüsseln
und das Ergebnis dann mit dem Kopfteil, der Schlüsselversionsnummer und dem
Initialisierungsvektor zu verketten. Diese letzte Verschlüsselung
stellt sowohl die Vertraulichkeit als auch Authentifizierung/Integrität sicher,
ohne dass ein separater MAC-Abschnitt verwendet wird, der die Verantwortlichkeiten
für die
Vertraulichkeit und die Authentifizierung/Integrität zwischen
zwei Schlüsseln
KG und LG aufteilt. Die in 6 gezeigte
Implementation wird eigentlich dazu verwendet, die Implementation
zu dem unten erörterten
Sicherheitsmodus hoher Ebene parallel zu machen.
-
In
einem in dem Authentifizierung/Integritätsmodus betriebenen Sicherheitssystem „hoher
Ebene" können die
Deltadaten unter Verwendung entweder der in 5 gezeigten
Konfiguration oder der in 7 gezeigten
Konfigurationen geschützt
werden. Das in diesem System verwendete Protokoll sendet Klartextdateninformationen,
aber um Authentifizierung/Integrität sicherzustellen, verwendet
es entweder einen einzeln ausgerichteten, Geheimschlüssel-Mehrfachauthentifizierer
oder einen Authentifizierer der öffentlichen
Schlüsselunterschrift.
-
In
dem Fall eines einfach ausgerichteten Geheimschlüssel-Mehrfachauthentifizierers
wird die in 5 gezeigte Konfiguration verwendet.
Insbesondere wird die Kopfteilinformation 500 mit der Schlüsselversionsnummer 502,
die unverschlüsselten
Daten 504 und dem Nachrichtenauthentifizierer 506 gesendet.
In diesem Fall jedoch besteht die Schlüsselversionsnummer 502 aus
einer Verkettung aller Schlüsselversionen
zwischen dem Sender und allen Empfängern. Auch der Nachrichtenauthentifizierer 506 besteht
aus einer Verkettung der einzelnen Nachrichtenauthentifizierer zwischen
dem Sender und jedem Empfänger.
Jeder Nachrichtenauthentifizierer ist mit einem Authentifzierungsschlüssel geschützt, der
nur zwischen dem Sender und jedem Empfänger (einer der Lij-Schlüssel) verwendet
wird.
-
In
einer bevorzugten Ausführungsform
wird wieder ein Zwischenhash in dem Authentifizierungscode verwendet.
Insbesondere werden der Kopfteil und die Daten verkettet, gehasht
und dann mit dem geeigneten Authentifizierungsschlüssel geschützt. In diesem
Fall wird der Zwischenhash verwendet, um das erneute Hashen des
gesamten Kopfteils und Deltas für
jeden der Authentifizierungsschlüssel
zu vermeiden. Sobald der Kopfteil und das Delta gehasht worden sind,
kann der Hash mehrfach verwendet werden, indem einfach die gehashten
Informationen in dem geeigneten Authentifizierungsschlüssel geschützt werden.
-
In
einer alternativen Ausführungsform
wird ein Authentifizierer der öffentlichen
Schlüsselunterschrift
als Nachrichtenauthentifizierungscode verwendet. Diese Konfiguration
wird in 7 veranschaulicht. In dieser
Anordnung folgen auf die gesendete Kopfteilinformation 700 zuerst
die unverschlüsselten
(A/I-Modus) oder die verschlüsselten (A/I/V-Modus)
Daten 702. Der Nachrichtenauthentifizierungscode 704 besteht
aus der öffentlichen Schlüsselunterschrift
des gehashten verketteten Kopfteils und der Daten.
-
Ein
in dem Authentifizierungs/Integritäts/Vertraulichkeitsmodus betriebenes
System hoher Ebene schützt
Daten mit den in 6 und 7 veranschaulichten
Deltakonfigurationen. Dies ist im Wesentlichen derselbe wie der
in 5 und 7 gezeigte Authentifizierungs/Integritäts/Vertraulichkeitsmodus
mit der Ausnahme, dass die Deltadaten mit dem Gruppenverschlüsselungsschlüssel KG
verschlüsselt
und im Fall von 6 mit einem Initialisierungsvektor
verkettet sind.
-
In 8 wird
ein Mechanismus zum Generieren und Verwenden einer digitalen Unterschrift oder
eines digitalen Zertifikats veranschaulicht. Um eine digitale Unterschrift
der Daten 800 zu erzeugen, wird ein gehashter Wert der
Daten 800 unter Verwendung eines einer Reihe allgemein
bekannter Hash-Algorithmen wie bei Schritt 802 angezeigt,
berechnet. Die gehashten Daten werden (in einem verschlüsselungsartigem
Vorgang) wie bei Schritt 804 angezeigt, unter Verwendung
des privaten Schlüssels
eines öffentlichen/privaten
Schlüsselpaars 804 unterzeichnet.
Das Ergebnis ist eine digitale Unterschrift 806. Wenn die
Daten außerdem
die Identität oder
den öffentlichen
Schlüssel
eines Nutzers betreffen, werden die Daten (nicht die Unterschrift)
ein digitales „Zertifikat" genannt.
-
Zur
Verwendung der digitalen Unterschrift wird eine Validierungsprozedur,
wie unterhalb der gestrichelten Linie in 8 angezeigt,
ausgeführt.
Insbesondere wird die digitale Unterschrift wie durch Pfeil 812 angezeigt
bereitgestellt und ein Zertifikat wird wie durch Pfeil 818 angezeigt
einem Unterschriftverifizierungsalgorithmus 814 bereitgestellt,
der den öffentlichen
Schlüssel
des öffentlichen/privaten
Schlüsselpaars
zum Verifizieren (ein entschlüsselungsartiger
Vorgang) der gehashten Daten verwendet. Die Daten 800 selbst
werden wie durch Pfeil 808 angezeigt an einen Hash-Algorithmus bereitgestellt.
Dieser Hash-Algorithmus ist derselbe wie der zum Erzeugen der digitalen
Unterschrift verwendete Hash-Algorithmus. Das erneute Hashen der Daten
wird dann mit den verifizierten gehashten Daten wie in Kasten 816 angezeigt
verglichen. Wenn die Ergebnisse dieselben sind, sind die verifizierten
gehashten Daten korrekt, d.h. die Daten sind authentisch der Unterschrift
zugeordnet.
-
Die
Prozedur, mit der eine gesicherte Gruppe gebildet wird, wird schematisch
in 9 gezeigt und die Schritte werden in 10 veranschaulicht.
Wie in 9 gezeigt, besteht die Gruppe aus einem Vorsitz 902 und
N-1 anderen Teilnehmern, von denen drei als Teilnehmer 906, 908 und 910 gezeigt
werden. Die Bildung der Gruppe 900 wird durch einen Vorsitz 902 gesteuert,
bei dem es sich um einen Teilnehmer handelt, der mit der Autorität betraut
ist, einen neuen Teilnehmer einzuladen und hinzuzufügen. In Übereinstimmung
mit der veranschaulichenden Prozedur wird ein Eingeladener 904 zu
der Gruppe 900 nach einer Anfangsauthentifizierung zugeführt. Die
folgende Erörterung
fokussiert auf den Modus mit der höchsten Sicherheit mit Authentifizierung
und Integrität.
Die anderen vorgesehenen Moden können
aus diesem Modus abgeleitet werden.
-
Die
Zusammenfügeprozedur
beginnt bei Schritt 1000 und schreitet zu Schritt 1002 fort.
In Schritt 1002 sendet der Vorsitz 902 eine Einladungsnachricht
an den potenziellen Eingeladenen 904. Diese Nachricht wird
schematisch durch den Pfeil 912 in 9 veranschaulicht.
Der Inhalt dieser Nachricht wird in 11 veranschaulicht.
Die Nachricht besteht aus einem Kopfteil 1100, gefolgt
von dem Namen des Eingeladenen 1102, bei dem es sich um eine
URL oder eine andere identifizierende Information handeln kann.
Die Reihenfolge des Kopfteils könnte
auch umgekehrt werden, ohne von den Grundsätzen der Erfindung abzuweichen.
Auf den Namen des Eingeladenen folgt ein unterzeichnetes Einladungs-„Einmaligkeitsmerkmal” 1104.
-
Bei
einem unterzeichneten Einmaligkeitsmerkmal handelt es sich um unterzeichnete
Daten, zu denen ein Hash des durch den Vorsitz erzeugten Zeitstempels,
der Name/die URL des Vorsitzes 902, das Zertifikat des
Eingeladenen 904 (wenn verfügbar), der Name/die URL des
Telespace; und einen Einlade-„OpCode” gehören, bei
dem es sich um ein zur Unterscheidung der verschiedenen Kontexte,
in denen unterzeichnete Einmaligkeitsmerkmale auftreten, verwendetes
Tag handelt.
-
Allgemein
ausgedruckt ist ein Einmaligkeitsmerkmal ein zeitlich veränderlicher
Parameter, der durch einen Prinzipal A erzeugt und an einen Prinzipal
B gesendet wird, der nur einmal in einem gegebenen Kontext (z.B.
ein Beispiel, in dem A B über
das hier spezifizierte Einleitungsprotokoll einlädt) verwendet wird. Tatsächlich definiert
das Einmaligkeitsmerkmal den Kontext, es wird nämlich dazu verwendet sicherzustellen,
dass ein Protokoll zeitgerecht läuft,
um Wiederabspiel- und Verschachtelungsangriffe abzuwehren. Ein Einmaligkeitsmerkmal
muss nicht geheim sein, sondern einmalig-eindeutig. Typische Beispiele
von Einmaligkeitsmerkmalen, die in verschiedenen Systemen verwendet
werden, sind: kollisionsfreie Zufallszahlen, Zeitstempel (die für Systeme
mit zuverlässigen
Uhren nahezu ideal sind, insbesondere bei Vorhandensein eines gesicherten
verteilten Zeitsynchronisationsprotokolls) und Sequenzzahlen. In
einer bevorzugten Ausführungsform
werden Zeitstempel verwendet.
-
In
dem vorliegenden Zusammenhang ist es wichtig, dass die Einmaligkeitsmerkmale
für alle Durchläufe des
Protokolls niemals (innerhalb einer kryptografischen Sicherheit)
wiederholt werden können
(innerhalb eines bestimmten, durch eine lokale Richtlinie festgelegten
Zeitfensters). Dies könnte
beispielsweise dadurch erfolgen, dass ein Teilnehmer seine ausstehenden
Einmaligkeitswerte/Einladungen (zusammen mit anderen Informationen über den Protokolldurchlauf)
in einem nicht-flüchtigen
Speicher für
eine Zeitdauer (abhängig
von der lokalen Richtlinie) gemäß der lokalen
Uhr speichert, und die Einmaligkeitsmerkmalsinformation nach Ablauf
dieser Zeit verworfen werden und der Protokolldurchlauf abgebrochen
werden muss.
-
Auf
das unterzeichnete Einmaligkeitsmerkmal 1104 folgen kryptografische
Daten 1106, bei denen es sich um die mit dieser Nachricht
verwendete Sicherheitskontextinformation handelt. Diese Information
wird durch den Vorsitz ausgewählt
und sie sind dafür
erforderlich, dass der Empfänger
die Nachricht richtig interpretieren kann. Sie enthält insbesondere
den Stringnamen des zur Verschlüsselung
der Information mit dem Einmal-Schlüssel verwendeten Algorithmus,
wie unten erörtert.
Sie enthält auch
etwaige andere Informationen, die der Empfänger zur Verarbeitung der Nachricht
benötigt,
beispielsweise die Schlüssellänge, die
Anzahl von Runden, die Namen der verwendeten Hash-Algorithmen, die
Namen der Schlüsselgeneratoralgorithmen
usw.
-
Auf
die kryptografischen Daten 1106 folgen die mit dem öffentlichen
Schlüssel
des Eingeladenen gemäß eines
vorher vereinbarten öffentlichen Schlüssel Verschlüsselungsalgorithmus
verschlüsselten
Einmalschlüsselinformationen 1108.
Bei dem Einmalschlüssel
handelt es sich um einen Schlüssel für eine symmetrische
Chiffre, die nur einmal zum Verschlüsseln der Einladungsinformationen
wie unten erörtert
verwendet werden.
-
Auf
die Schlüsselinformation
folgt Einladungsinformation 1110, die mit dem Einmalschlüssel verschlüsselt ist.
Die Einladungsinformation enthält auch
den von dem Vorsitz erzeugten Zeitstempel, der oben erörtert wird,
und kann mit einem Initialisierungsvektor verkettet werden. Bei
der Einladungsinformation handelt es sich um Anwendungsdaten einschließlich des
Telespace-Namens/URL, die den Eingeladenen 904 über die
Art der Aktivität
informiert, für die
die Einladung ausgegeben wird. Sie kann unter anderem die kryptografischen
Information enthalten, die in dem Telespace, wie durch den Vorsitz 902 festgelegt,
verwendet werden müssen
(z.B. niedrige/mittlere/hohe Ebene, A/I/C-Moden wie oben erläutert). Auf diese Weise wird
der Eingeladene über die
Sicherheitsmerkmale des Telespace, in den er eingeladen wird, informiert
und kann sich beispielsweise entscheiden, nicht daran teilzunehmen.
Wenn das Zertifikat des Eingeladenen nicht bekannt ist, wird der
verschlüsselte
Einmalschlüssel 1108 ausgelassen
und der Zeitstempel und die Einladungsinformation 1110 werden
unverschlüsselt
gesendet.
-
Auf
die Einladungsinformation 1110 folgt die Unterschrift des
Vorsitzes auf einem Hash der Kopfteilinformation 1110,
des Einladungs-Einmaligkeitsmerkmals 1104, des unverschlüsselten
Einmalschlüssels
(wenn er in der Nachricht enthalten ist), der kryptografischen Daten 1106 und
der unverschlüsselten
Einladungsinformationen (ohne den Zeitstempel). Diese Unterschrift
bindet alle angezeigten Informationen an das Zertifikat des Vorsitzes, welches
wiederum über
die lokale Validierungsrichtlinie der öffentlichen Schlüsselzertifikate
an den Vorsitz gebunden ist.
-
Die
letzte gesendete Information 1114 ist das Zertifikat des
Vorsitzes, welches den Namen (URL/Person) des Vorsitzes, den Verifikationsschlüssel der öffentlichen
Unterschrift des Vorsitzes und andere Informationen, wie die Kennzeichnung
des öffentlichen
Schlüsselalgorithmus
(s), den öffentlichen Verschlüsselungsschlüssel usw.
enthält,
alle über
(eine oder mehrere) Unterschriften von „gesicherten" Zertifizierungsstellen
miteinander verbunden. Das Zertifikat wird in ein Zertifikatformat
formatiert, das entweder wohlbekannt oder mindestens durch den Eingeladenen
wiedererkennbar ist. Dieses Format kann ein auf dem öffentlichen
Schlüssel
basierendes Zertifikat sein (wobei die Zertifizierungsstelle in
einer wohlbekannten Hierarchie von Zertifizierungsstellen eingeordnet
ist), oder ein „Vertrauensnetz-Zertifikat", beispielsweise
unter Verwendung von PGP oder SDSI oder sogar lediglich ein selbst
unterzeichnetes Zertifikat, das ad hoc nur für diesen Zweck konstruiert wird.
Der Grad von „Vertrauen", den der Eingeladene in
das Zertifikat legt, hängt
von der lokalen Validierungsrichtlinie für öffentliche Schlüssel des
Eingeladenen ab.
-
Bei
Empfang dieser Nachricht führt
der Eingeladene die in 15 veranschaulichten Schritte aus.
Die Prozedur des Eingeladenen beginnt in Schritt 1500 und
schreitet zu Schritt 1502 fort, in dem der Eingeladene
die kryptografischen Daten 1106 untersucht, um den beim
Verschlüsseln
der Nachricht verwendeten Algorithmus zu lernen. In Schritt 1504 untersucht
der Eingeladene dann den Namen, um sicherzugehen, dass diese Einladung
für ihn
bestimmt ist.
-
Als
nächstes
validiert der Eingeladene in Schritt 1506 die Zertifikation
des Vorsitzes, die den Namen/URL gemäß der lokalen Validierungsrichtlinie des öffentlichen
Schlüssels
des Eingeladenen enthält.
Der Eingeladene tut dies durch Aufrufen eines geeigneten Zertifikatvalidierungsproviders
(der den trivialen/voreingestellten „Jedem-selbst-unterzeichneten-Zertifikat-vertrauen"-Validierungsalgorithmus implementieren
kann, wenn dies die lokale Regelung des Eingeladenen ist).
-
In
Schritt 1508 verifiziert der Eingeladene die Unterschrift
des Vorsitzes, um sicherzustellen, dass diese Einladung wirklich
von dem Vorsitz 902 kam, und dass der Eingeladene 904 wirklich
die eingeladene Partei war.
-
In
Schritt 1510 entschlüsselt
der Eingeladene die Einladungsinformation und untersucht sie, um zu
entscheiden, ob der Eingeladene die Einladung des Vorsitzes annehmen
will. Die Prozedur endet dann in Schritt 1512.
-
Wieder
unter Bezugnahme auf 10 antwortet der Eingeladene 904 in
Schritt 1004, wenn der Eingeladene 904 sich entscheidet,
die Einladung anzunehmen, durch Senden einer Annahmenachricht an
den Vorsitz 902, welche Nachricht in 9 schematisch
als Pfeil 914 dargestellt wird. Wenn sich der Eingeladene
entscheidet, die Einladung nicht anzunehmen, wird alternativ von
dem Eingeladenen 904 an den Vorsitz 902 eine Fehlernachricht
gesendet.
-
Der
Inhalt der Annahmenachricht wird in 12 veranschaulicht.
Die Nachricht besteht aus einem Kopfteil 1200, gefolgt
von dem unterzeichneten Einladungs-„Einmaligkeitsmerkmal" 1202, das von
dem Vorsitz an den Eingeladenen in der Einladungsnachricht gesendet
wurde. Dies wird so verwendet, dass der Vorsitz erkennen kann, dass
diese Annahmenachricht in Reaktion auf die Einladung erfolgt. Auf
das unterzeichnete Einmaligkeitsmerkmal 1202 folgt ein
unterzeichnetes Annahme-Einmaligkeitsmerkmal 1204. Das
unterzeichnete Annahme-Einmaligkeitsmerkmal enthält einen durch den Eingeladenen
erzeugten Zeitstempel, den Namen/URL des Telespace und einen Annahme-OpCode.
-
Auf
das Einmaligkeitsmerkmal 1204 folgen die kryptografischen
Sicherheitskontextdaten 1206, die ähnlich den kryptografischen
Daten 1106 sind.
-
Als
nächstes
wird die Verschlüsselung
mit öffentlichem
Schlüssel
eines neu erzeugten Einmalschlüssels 1208 von
dem Vorsitz 902 unter Verwendung des öffentlichen Verschlüsselungsmechanismus,
Parametern, Informationen und öffentlichem Verschlüsselungsschlüssel an
den Eingeladenen gesendet (z.B. einen öffentlichen RSA-Verschlüsselungsschlüssel).
-
Auf
den verschlüsselten
Einmalschlüssel 1208 folgen
die Anwendungsdaten 1210 einschließlich der beiden Zeitstempel
und Annahmedaten, die unter Verwendung des Einmalschlüssels verschlüsselt werden.
Diese Information 1210 informiert den Vorsitz 902 über die
Annahme des Eingeladenen 904.
-
Danach
wird die Unterschrift des Eingeladenen 904 gesendet. Diese
Unterschrift befindet sich in dem Hash der Kopfteilinformation 1202,
dem Namen des Vorsitzes und dem Einladungs-Einmaligkeitsmerkmal 1202,
das mit dem Annahme-Einmaligkeitsmerkmal 1204 verkettet
ist, dem unverschlüsselten Einmalschlüssel, den
kryptografischen Daten 1206 und den unverschlüsselten
Annahmeinformationen (ohne den Zeitstempel). Diese Unterschrift
bindet alle angezeigten Informationen an das Zertifikat des Eingeladenen
(welches wiederum über
die Validierungsrichtlinie des öffentlichen
Schlüsselzertifikats
des Vorsitzes an den Eingeladenen 904 gebunden ist). Es
sei darauf hingewiesen, dass der Name des Vorsitzes 902 in
dem Umfang dieser Unterschrift enthalten sein muss, um zu verhindern,
dass der Vorsitz den vom Eingeladenen unterzeichneten Einmalschlüssel, der
dem Vorsitz bekannt ist, an eine dritte Partei sendet, wodurch der
Eingeladene entpersonalisiert wird. Schließlich wird das Zertifikat 1214 des
Eingeladenen gesendet.
-
Bei
Empfang dieser Nachricht führt
der Vorsitz 902 die in dem Flussdiagramm von 16 dargestellte
Prozedur aus. Diese Prozedur beginnt bei Schritt 1600 und
schreitet zu Schritt 1602 fort, in dem der Vorsitz 902 den
verschlüsselten
Einmalschlüssel entschlüsselt, wodurch
er den Schlüssel
erfährt.
-
Als
nächstes
verwendet der Vorsitz 902 in Schritt 1604 zum
Entschlüsseln
der verschlüsselten Annahmeinformation
den Einmalschlüssel.
In Schritt 1606 untersucht der Vorsitz das Zertifikat des
Eingeladenen, um den Namen des Eingeladenen zu laden.
-
In
Schritt 1608 berechnet der Vorsitz 902 das Einladungs-Einmaligkeitsmerkmal
neu und prüft
das neu berechnete Einmaligkeitsmerkmal gegenüber dem empfangenen Einladungs-Einmaligkeitsmerkmal,
um zu bestimmen, auf welche Einladung die Annahmeantwort reagiert.
Es sei darauf hingewiesen, dass in Übereinstimmung mit einem Aspekt
der Erfindung, das Einladungs-Einmaligkeitsmerkmal (1104 in 11) „zustandslos" ist, das heißt, es kann
unabhängig
von der involvierten Zeitgebung interpretiert werden. Es sei beispielsweise
angenommen, dass ein Teilnehmer A eine Einladung an einen Eingeladenen
B von Vorrichtung 1 ausgibt, die Annahmenachricht von B aber später an Vorrichtung
2 empfängt. Auch
wenn das Einmaligkeitsmerkmal in der Originaleinladungsnachricht über ein
Delta an alle Vorrichtungen gesendet wurde, die A verwenden könnte, kann
die Annahmenachricht von dem Eingeladenen B vor dem Einmaligkeitsmerkmal
tragenden Delta an Vorrichtung 2 ankommen, so dass an Vorrichtung
2 kein Softwarevergleich durchgeführt werden kann. Zur Verhinderung
dieses Problems wird Information hinsichtlich des Einmaligkeitsmerkmals
sichtbar an Teilnehmer A an allen seinen Vorrichtungen angezeigt,
einschließlich
Vorrichtung 2. Ein Beispiel dieser Anzeige wird in 23 angezeigt,
und die Anzeige kann beispielsweise über eine Nutzerschnittstellen-Dialogkasten 2300 oder
einen ähnlichen
Mechanismus erfolgen. Wie in 23 gezeigt,
werden in der Dialogkasten 2300 drei Informationen angezeigt: den
Subjektnamen des Eingeladenen B 2302, den Nachrichtenextrakt
des Zertifikats des Eingeladenen 2304 und einen Zeitstempel
von dem unterzeichneten Einladungsnachricht-Einmaligkeitsmerkmal 2305.
-
Das „Zertifikat" eines Senders ist
ein Paket, das zwei wichtige Informationen trägt: einen „Subjektname" des Nachrichtensenders
und seinen „öffentlichen
Schlüssel". In diesem Fall
wird der Subjektname durch die Protokollanordnung in Vorrichtung
2 extrahiert und in Dialogkasten 2300 in Textkasten 2302 angezeigt.
Ein Beispiel dieses Namens könnte „wtuvell@groove.net" sein. A kann dann
verifizieren, dass die Annahmenachricht der Einladung entspricht.
-
Da
A den Subjektnamen des Eingeladenen B bereits kennt, muss A, um
die Annahme zu validieren, das Nachrichtenextrakt-Zertifikats über eine
andere Route als das erfindungsgemäße Kollaborationssystem senden.
Ein typischer Weg, diese Information zu empfangen, ist für A beispielsweise,
B über Telefon
anzurufen und zu fragen, welches das Nachrichtenextrakt-Zertifikat
sein soll. Beispielsweise kann diese berechnete Nachricht etwas
wie „0a,
1b, 2c, 3d; 4e, 5f, 6a, 7b; 8c, 9d, ae, cf; c1, d2, e3, f4; 05, 16,
27, 38; 49, 5a, 6b, 7c" sein.
-
Wenn
A das Zertifikat von B über
die Annahmenachricht empfängt,
kann der Nachrichtenextrakt (oder „Fingerabdruck"-Zertifikat) algorithmisch
aus dem Zertifikat von B 1214 in der Annahmenachricht durch
die in 21 und 22 dargestellte
sichere Dienstarchitektur unter Verwendung eines herkömmlichen
Nachrichtenextrakt-Algorithmus
(wie MD5 oder SHA1) berechnet werden. Dieser neu berechnete Nachrichtenextrakt
wird in Kasten 2304 angezeigt. Wenn der neu berechnete
Nachrichtenextrakt mit dem bekannten korrekten Nachrichtenextrakt übereinstimmt,
kann A das übermittelte
Zertifikat als authentisch akzeptieren, ansonsten wird es zurückgewiesen.
Dieser Vorgang wird „Zertifikatvalidierung" genannt.
-
Dem „unterzeichneten
Einmaligkeitsmerkmal" wird
die Unterschrift einer Nachricht gegeben. Somit verbindet es die
Nachrichtenzeitstempel mit Informationen, die das Zertifikat eines
Senders enthalten. Um einen „Wiederabspielangriff" (ein erneutes Senden
einer authentischen Nachricht, die vorher gesendet worden ist),
ist es auch notwendig zu verifizieren, dass der Zeitstempel in dem
Einladungs-Einmaligkeitsmerkmal 1202, der in der Annahmenachricht
enthalten ist, sich in einem akzeptablen Bereich befindet. Die Zeitstempelinformation
wird aus dem Einmaligkeitsmerkmal extrahiert und in Kasten 2305 des
Dialogkastens 2300 angezeigt. Diese Information kann beispielsweise „Einladungsnachricht
an nashgirl@groove.net an 20000407121124Z" sein. Da A den Zeitstempel etwas früher erzeugt
hat, hat A vermutlich Kenntnis über
diese Zeit. Der Teilnehmer A kann dann den Zeitstempel interpretieren und
entscheiden, ob die Information akzeptabel ist. Wenn der Teilnehmer
A die Information akzeptiert, klickt er auf den OK-Schalter 2306,
wenn nicht wird der ABBRECHEN-Schalter 2308 geklickt.
-
Zu
einem ähnlichen
Problem kommt es, wenn der Eingeladene B die Telespacedaten an einer von
der Vorrichtung, von der die Annahme gesendet worden ist, verschiedenen
Vorrichtung empfängt. Dieses
letztere Problem wird auf dieselbe Art gehandhabt.
-
Als
nächstes
validiert der Vorsitz 902 in Schritt 1610 das
Zertifikat des Eingeladenen gemäß der lokalen
Richtlinie des öffentlichen
Schlüssels
des Vorsitzes. Dieser Schritt kann ausgelassen werden, wenn der
Vorsitz bereits zu der Zeit der Einladungsnachricht oben über das
Zertifikat des Eingeladenen verfügte
und mit der Validierung, die zu der Zeit vorgenommen wurde, immer
noch zufrieden ist. Der Vorsitz führt diese Validierung durch,
indem ein geeigneter Zertifikatvalidierungsprovider angerufen wird.
-
Als
nächstes
verifiziert der Vorsitz 902 in Schritt 1612 die
Unterschrift des Eingeladenen, welche wiederum die Authentizität/Integrität der Annahmenachricht
verifiziert, um sicherzugehen, dass diese Annahmenachricht wirklich
von dem Eingeladenen 904 kam.
-
In
Schritt 1614 untersucht der Vorsitz dann die verschlüsselte Annahmeinformation,
um sicherzugehen, dass sie zu der Einladungsinformation passt und
um zu entscheiden, ob der Vorsitz die Annahme durch den Eingeladenen
anerkennt oder nicht.
-
In
Schritt 1616 kann der Vorsitz schließlich gegebenenfalls seine
eigene Unterschrift zu dem Zertifikat des Eingeladenen als zusätzliche
Unterschrift hinzufügen.
Diese zusätzliche
Unterschrift ermöglicht
eine Richtlinie, mit der Gruppenteilnehmer das Zertifikat des Eingeladenen
validieren können, vorausgesetzt,
sie vertrauen dem Zertifikat von dem Vorsitz 902.
-
Die
Prozedur endet dann in Schritt 1618 und, wenn die Information
authentisch ist, wird der Eingeladene daraufhin zu einem „Teilnehmer
des Telespace".
Unter Bezugnahme wieder auf 10 sendet
der Vorsitz 902 dann „Neuen
Teilnehmer hinzugefügt"-Deltas an alle in
der Gruppe 900 existierende Teilnehmer, wie in Schritt 1006 dargelegt.
Diese Neuer-Teilnehmer-Nachrichten werden in 9 schematisch
als Pfeile 916, 918 und 920 veranschaulicht.
-
Der
Inhalt der Neuer-Teilnehmer-hinzugefügt-Nachricht, die der Vorsitz an die anderen
vorher existierenden Teilnehmer sendet, wird in 13 veranschaulicht.
Die Delta-Nachricht umfasst einen Kopfteil 1300 gefolgt
von Aggregat-Schlüsselversionsinformationen,
bei denen es sich um die Verkettung aller Schlüsselversionsnummern für den Gruppenschlüssel und
alle paarweisen Authentifizierungs/Integritätsschlüssel handelt.
-
Auf
die Aggregatschlüsselversion 1302 folgt die
Aggregat-Wiederverschlüsselungsinformation 1304,
die aus der Verkettung verschlüsselter
neuer Gruppenverschlüsselung
und Authentifizierungsschlüssel
besteht. Für
jedes Teilnehmerpaar werden die Verschlüsselungs- und Authentifizierungsschlüssel der
Verkettungsgruppe unter Verwendung paarweiser Schlüssel für das Teilnehmerpaar
verschlüsselt
und das Ergebnis wird mit einem Initialisierungsvektor verkettet.
Diese verketteten Schlüssel
werden dann verkettet, um die Aggregat-Wiederverschlüsselungsinformation 1304 zu
bilden. Die neuen Schlüssel
ersetzen die alten/aktuellen Gruppenschlüssel KG/LG. Der neu hinzugefügte Teilnehmer erfährt die alten/aktuellen
Gruppenschlüssel
nie. Diese Neuverschlüsselung
ist notwendig, um zu verhindern, dass der neue Teilnehmer die vorherige
Telespace-Kommunikationen aufzeichnet und liest.
-
Als
nächstes
wird die Zusammenfügeninformation,
die mit dem Verschlüsselungsschlüssel der neuen
Gruppe verschlüsselt
und mit dem Initialisierungsvektor 1306 verkettet ist,
gesendet. Der Inhalt dieses Delta ist der Name des Eingeladenen,
der mit dem Zertifikat des Eingeladenen und der Zusamenfügeninformation
verkettet ist. Bei der Zusammenfügeninformation
handelt es sich um Anwendungsdaten, die durch den Vorsitz 902 erzeugt
werden, und sie bezieht sich auf Informationen hinsichtlich des neuen
Teilnehmers, den die anderen Teilnehmer kennen müssen, einschließlich der
Teilnehmerverwaltungsinformation. Sie kann auch eine Liste von Telespace-Teilnehmern
und verschiedene andere Informationen, wie die Rollenzuweisungen
des Eingeladenen, enthalten.
-
Schließlich wird
ein Nachrichten-Mehrfach-Authentifizierungscode 1308 gesendet.
Dies kann eine Verkettung von Authentifizierern zwischen dem Vorsitz
und jedem Teilnehmer sein. Bei jedem Authentifizierer handelt es
sich um gehashte Information, die in dem paarweisen Authentifizierungsschlüssel L01 von dem Vorsitz zu dem Teilnehmer geschützt ist.
Die gehashte Information enthält
den Kopfteil 1300, neue Aggregatgruppenschlüsselinformation 1304 und
die unverschlüsselten
Deltainformationen. Alternativ kann es sich bei dem Nachrichtenauthentifikationscode
um die Signatur eines Vorsitzes der vorhergehenden gehashten Information handeln.
-
Bei
Empfang der in 13 veranschaulichten Nachricht
führt jeder
Teilnehmer 906-910 die in dem Flussdiagramm aus 17 veranschaulichten Schritte
aus. Diese Prozedur beginnt mit Schritt 1700 und schreitet
zu Schritt 1702 fort, in dem der Teilnehmer die verschlüsselten
Gruppenschlüssel
verschlüsselt,
wodurch er die neuen Gruppenschlüssel KG/LG erfährt. Jeder
Teilnehmer muss jedoch so lange wie möglich die Kenntnis über die
alten/aktuellen Gruppenschlüssel
KG/LG aufrechterhalten,
um sicherzustellen, dass keine alten in KG/LG geschützten
Deltas mehr existieren. Danach muss jeder Teilnehmer die alten Schlüssel KG/LG verwerfen und
alle Spuren von ihnen zerstören.
-
Als
nächstes
entschüsselt
in Schritt 1704 jeder Teilnehmer die verschlüsselte Deltainformation, wodurch
er die Information im Delta erfährt.
In Schritt 1706 verifiziert der Teilnehmer die Authentifizierung/Integrität der Nachricht über das
Stück des Mehrfachauthentifizierers,
das mit ihrem Authentifizierungsschlüssel verschlüsselt ist.
-
Als
nächstes
prüft der
Teilnehmer in Schritt 1708, um sicherzustellen, dass der
Vorsitz 902 (dessen Identität als Kopfteilinformation gesendet
wird) ein Vorsitz und autorisiert ist, einen neuen Teilnehmer hinzuzufügen.
-
In
Schritt 1710 führt
der Teilnehmer die Deltainformation aus. Im Verlauf dessen erfährt der
Teilnehmer von den Neuer-Teilnehmer-Manager-Informationen, einschließlich des
Namen des Eingeladenen, des Zertifikats und der Zusammenfügeinformation.
Die Prozedur wird dann in Schritt 1712 abgeschlossen.
-
Unter
Bezugnahme auf 10 sendet der Vorsitz 902 schließlich die
Telespace-Information an den Eingeladenen 904, wie schematisch
durch Pfeil 922 gezeigt. Die Prozedur endet dann in Schritt 1010. Die
Telespace-Information wird an den Eingeladenen 904 mit
der in 14 veranschaulichten Nachricht gesendet.
Diese Information beginnt mit einem Kopfteil 1400, gefolgt
von dem unterzeichneten Annahme-Einmaligkeitsmerkmal, welches dasselbe
wie Einmaligkeitsmerkmal 1204 ist. Darauf folgen die kryptografischen
Daten 1404 und der verschlüsselte Einmalschlüssel 1408 (der
neu erzeugt wurde), wie unter Bezug auf die in 12 dargestellte
Annahmenachricht beschrieben.
-
Auf
den verschlüsselten
Einmalschlüssel 1406 folgen
die mit dem Einmalschlüssel
in dem unmittelbar vorangehenden Nachrichtenabschnitt verschlüsselten
Telespace-(TSP)-Daten.
Zu diesen Daten gehört
ein mit einer mit dem Einmalschlüssel
verschlüsselten
Nutzlast verketteter Initialisierungsvektor. Die Nutzlast ist der
durch den Eingeladenen erzeugte Zeitstempel, die verketteten Gruppenverschlüsselungs-
und Authentifikationsschlüssel
KG/LG und die TSP-Daten.
Bei den TSP-Daten handelt es sich um Anwendungsdaten, welche die
Version des Teilnehmers der TSP-Daten
enthalten, für
deren Empfang von dem Teilnehmer der Eingeladene autorisiert ist.
-
Auf
die verschlüsselten
TSP-Daten 1408 folgt die Unterschrift des Vorsitzes 1410 auf
den gehashten Informationen, einschließlich dem Kopfteil, 1400,
der Name des Eingeladenen, das unterzeichnete Einmaligkeitsmerkmal 1402,
die verketteten Gruppenverschlüsselungs-
und Authentifizierungsschlüssel,
der unverschlüsselte
Einmalschlüssel,
die kryptografische Information 1404 und die unverschlüsselten
TSP-Daten. Schließlich
folgt das Zertifikat des Vorsitzes 1412.
-
Bei
Empfang dieser Nachricht führt
der Eingeladene 904 die in 18 dargestellte
Prozedur aus, die bei Schritt 1800 beginnt und zu Schritt 1802 fortschreitet,
in dem der Eingeladene 904 den verschlüsselten Einmalschlüssel entschlüsselt, um
auf den Einmalschlüssel
zuzugreifen.
-
Als
nächstes
verwendet der Eingeladene in Schritt 1804 den Einmalschlüssel, um
die verschlüsselten
TSP-Daten zu entschlüsseln
und auf die TSP-Information zuzugreifen. In Schritt 1806 berechnet
der Eingeladene 904 das unterzeichnete Annahme-Einmaligkeitsmerkmal
neu und vergleicht es mit dem empfangenen Einmaligkeitsmerkmal,
um sicherzustellen, dass es akzeptabel ist. Wie zuvor erwähnt, könnte dieser.
Vergleich zur Software oder visuelle Untersuchung erfolgen. Da dieses
Einmaligkeitsmerkmal das Zertifikat des Vorsitzes enthält, muss
der Eingeladene dieses Zertifikat nicht neu validieren.
-
In
Schritt 1806 verifiziert der Eingeladene 904 die
Unterschrift des Vorsitzes und in Schritt 1808 besetzt
der Eingeladene sein anfängliches „Telescape
im Aufbau" durch
die entschlüsselten
TSP-Daten. Das einzige, was zu tun übrig bleibt, ist der Austausch
paarweiser Schlüssel
mit allen Teilnehmern des Telespace; danach ist der Eingeladene
ein vollständiges
Mitglied des Telespace.
-
Paarweise
Schlüssel
können
ausgetauscht werden durch eine Wiederverschlüsselungsprozedur, in der Wiederverschlüsselungsinformation
im „Huckepack"-Verfahren in das
andere Informationen tragende Delta eingeführt wird. Ein Protokoll zur
Ausführung
dieser Wiederverschlüsselung
wird oben bezüglich
der Neuer-Teilnehmer-hinzugefügt-Delta-Nachricht erörtert, die
in 13 veranschaulicht ist. Wiederverschlüsselungsinformation
kann auch in andere Deltanachrichten eingeführt werden. Eine solche Huckepack-Delta-Nachricht ist
eine normale Deltanachricht, außer,
dass eine Schlüsseländerung (einschließlich gleichzeitig
jeder Kombination aus Gruppen-/Telespaceschlüsseln (KG/LG), Stamm-/Untergruppenschlüsseln (KT1/LT1, KTn/LTn für die Stämme T1,
Tn) und/oder paarweise Schlüssel
(Kij/Lij) per Huckepack-Verfahren
zusammen mit der Deltanachricht übermittelt
wird. Das Delta selbst wird gleichzeitig mit dem neuen Schlüssel gemäß dem Stamm
TK verschlüsselt. Die neuen (wiederverschlüsselten) Schlüssel werden
durch diese Nachricht transportiert. Wenn paarweise Schlüssel per
Huckepack-Verfahren zusammen mit der Nachricht übermittelt werden, wird die
Nachricht durch einen Authentifizierer für die öffentliche-Schlüssel-Unterschrift
geschützt. Andernfalls
wird die Nachricht durch einen Mehrfach-Authentifizierungs-Code unter Verwendung
der aktuellen paarweisen Schlüssel
geschützt.
-
Ein
Beispiel einer solchen Nachricht wird in 19 dargestellt.
Die Deltanachricht umfasst einen Kopfteil 900 gefolgt von
Aggregat-Schlüsselversionsinformation 1902,
bei der es sich um die Verkettung aller Schlüsselversionsnummern für den neuen Gruppenschlüssel und
alle neuen Stamm-Authentifizierungs/Integritätsschlüsselhandelt.
-
Auf
die Aggregat-Schlüsselversionsinformation 1902 folgt
ein zweiter Abschnitt 1904, der ebenfalls Aggregat-Schlüsselversionsinformationen
enthält.
Wenn paarweise Schlüsseländerungen
gesendet werden, enthält
diese Information die Verkettung aller Schlüsselversionsnummern für die neuen
paarweisen Schlüssel.
Alternativ, wenn nur Gruppen- und Stammschlüssel wiederverschlüsselt werden,
enthält die
Information 1904 die Aggregat-Schlüssel versionsinformation für die alten
oder aktuellen paarweisen Schlüssel.
-
Auf
die Aggregat-Schlüsselversionsinformation 1904 folgt
die Aggregat-Schlüsselversionsinformation 1906,
die aus der Verkettung von neuen Gruppen- und Stammschlüsseln (KG/LG und KT/LT) besteht. Für jedes
Teilnehmerpaar werden die verketteten Gruppenverschlüsselungs-
und Authentifizierungsschlüssel
unter Verwendung der paarweisen Schlüssel für ein Teilnehmerpaar verschlüsselt und das
Ergebnis wird mit einem Initialisierungsvektor verkettet. Diese
verketteten Schlüssel
werden dann ihrerseits verkettet, um die Aggregat-Wiederverschlüsselungsinformation 1906 zu
bilden. Die neuen Schlüssel
ersetzen die alten/aktuellen Gruppenschlüssel KG/LG. Wenn neue paarweise Schlüssel transportiert
werden, folgt auf die Gruppenwiederverschlüsselungsinformation die Aggregatwiederverschlüsselungsinformation
für die
neuen paarweisen Schlüssel.
Die K/L-Schlüssel
für jeden
Teilnehmer werden verkettet und unter Verwendung des öffentlichen
Schlüssels
des Teilnehmers verschlüsselt.
Diese verschlüsselten
Schlüssel
werden dann verkettet, um die paarweise Aggregat-Wiederverschlüsselungsinformation zu bilden.
-
Als
nächstes
wird die mit dem neuen Gruppenverschlüsselungsschlüssel verschlüsselte und mit
einem Initialisierungsvektor entsprechend dem neuen Schlüssel 1908 verkettete
Deltainformation gesendet. Der Inhalt dieses Delta kann jede herkömmliche
Deltanachricht sein.
-
Schließlich wird
ein Nachrichten-Mehrfachauthentifikationscode 1910 gesendet.
Dies kann eine Verkettung von Authentifizierern zwischen den Teilnehmern
sein. Jeder Authentifizierer ist gehashte Information, die in dem
paarweisen Authentifikationsschlüssel
Lij von dem sendenden Teilnehmer an den empfangenden
Teilnehmer geschützt
ist. Die gehashte Information enthält den Kopfteil 1900,
die Aggregat-Neue-Gruppenschlüsselinformation 1904 (und
die Aggregat-Neue-Paarweise-Schlüsselinformation,
wenn diese gesendet wird) und die unverschlüsselte Deltainformation. Wenn
paarweise Schlüssel
per Huckepack-Verfahren mit der Nachricht übermittelt werden, wird anstelle
eines Mehrfach-Authentifikationscodes ein Authentifizierer für die öffentliche-Schlüssel-Unterschrift
gesendet.
-
Das
oben genannte Sicherheitssystem kann auf eine Vielzahl von Wegen
implementiert werden. In einer bevorzugten Ausführungsform wir die schematisch
in 20 gezeigte Providerarchitektur verwendet. Eine
solche Architektur wird bevorzugt, da das oben erörterte Sicherheitsprotokoll „Algorithmus-neutral" ist; das heißt, es hängt nicht
von spezifischen Verschlüsselungs-
und Schutzalgorithmen ab. Dieses Protokoll kann von einer Algorithmus-neutralen
Infrastruktur, wie die in 20 gezeigte,
profitieren. 20 zeigt eine zweidimensionale
Struktur, die aus einer vertikalen Dimension und einer horizontalen
Dimension besteht. Die vertikale Dimension besteht aus verschiedenen
Abstraktionsebenen und die horizontale Dimension besteht aus verschiedenen Anwendungen
und Diensten umfassend die vertikalen Schichten. Die oberste Schicht
ist eine Anwendungsschicht, die eine Gruppe von Anwendungen enthält, von
denen Anwendung 2000 und 2002 gezeigt werden.
Diese Anwendungen können
verteilte Kommunikations- und Kollaborationssysteme, wie das oben
erörterte
Kollaborationssystem; geschützten
Datenspeicher; Verfügbarkeit
(Nicht-Verweigerung von Diensten); Systemverwaltung; medizinische Informationssystem;
Luftverkehrssteuersysteme; Kernkraftwerke; militärische Geheimdienst-, Befehls- und
Steuersystem umfassen, sind aber nicht darauf beschränkt.
-
Die
Anwendungen 2000 und 2002 greifen auf einen oder
mehrere Sicherheitsdienste zu, von denen Dienst 2004 und 2006 gezeigt
ist. Diese Dienste könnten
zum Beispiel Dienste für
Identifikation, Authentifizierung, Integrität, Vertraulichkeit, Datenschutz,
Autorisation, Delegierung von Autorisation, Rechenschaft und Nicht-Ablehnung,
Zeitstempeln, Benachrichtigung, Prüfung, Vertrauensrichtlinienverwaltung,
Eingriffsdetektion und -wiederherstellung umfassen.
-
Die
Sicherheitsdienste werden durch eine Kombination aus abstrakten
(oder Algorithmus-neutralen) primitiven Diensten implementiert,
einschließlich
abstrakten primitiven Diensten 2008 und 2010. Die
abstrakten primitiven Dienste werden eigentlich durch eine Gruppe
konkrete (oder Algorithmus-spezifische) primitive Dienste implementiert.
Beispielsweise kann der abstrakte primitive Dienst 2008 durch
die konkreten primitiven Dienste 2012, 2014 und 2016 implementiert
werden, während
der abstrakte primitive Dienst durch die konkreten primitiven Dienste 2018, 2020 und 2022 implementiert
werden kann. Diese konkreten primitiven Dienste enthalten Dienste,
wie besondere kryptografische Dienste und Protokolle.
-
Jede
Abstraktionsschicht erzeugt Dienste, die durch die höhere Abstraktionsschicht
oder -schichten verbraucht werden. In einer bevorzugten Implementation
handelt es sich bei der Zuordnung zwischen den Anwendungen 2000, 2002 und
den Sicherheitsdiensten 2004, 2006, sowie bei
der Zuordnung zwischen den Sicherheitsdiensten 2004, 2006 und
den abstrakten primitiven Diensten 2008, 2010 um
herkömmliche
Zuordnungen, welche statische kompilierte Zeitbindungen zwischen
ihren Schichten sind. Die Verbindung zwischen den abstrakten primitiven
Diensten 2008, 2010 und den konkreten primitiven
Diensten (2012, 2014, 2016 und 2018, 2020, 2022)
ist vorzugsweise eine dynamische Laufzeitverbindung, die auf beschränkte Weise
einen abstrakten primitiven Dienst einem oder mehreren konkreten
primitiven Dienste zuordnet. Diese dynamische Verbindung wird als „Providerarchitektur" bezeichnet und ist ein
Mechanismus, durch den abstrakte oder Algorithmus-neutrale primitive
Dienste implementiert werden können,
indem sie mit jeder konkreten, oder Algorithmus-spezifischen Implementation
ausgeführt
werden, welche zufällig
zu einer gegebenen Zeit in ihrer Umgebung aktiv ist.
-
21 und 22 veranschaulichen
schematisch eine spezifische Implementation der Providerarchitektur.
Obwohl in dieser Implementation objektorientierte Programmiertechniken
verwendet wurden, ist es einem Fachmann ersichtlich, dass sie auch
mit anderen gleichwertigen Techniken und Programmiersprachen implementiert
werden könnte. Insbesondere
verwendet die gezeigte Implementation dynamisch verbundene Bibliotheken
(DLLs) um die verschiedenen Dienste bereitzustellen.
-
Eine
DLL wird jeweils in den 21 und 22 dargestellt.
Die in 11 gezeigte DLL wird der Sicherheitsdienst-Verwalter
(SMM), und die in 22 gezeigte DLL wird ein Sicherheitsdienst-Provider
(SSP, oder nur Provider) genannt. Es wird immer exakt eine SMM-DLL
in jede Laufzeitumschreibung des Sicherheitsuntersystems geladen.
Andererseits kann jede Anzahl von SSP-DLL geladen werden, abhängig nur
von der Einschränkung,
dass sie alle getrennt sein müssen
(in dem Sinne, dass sie alle getrennte LIBIDs und Dateinamen aufweisen müssen, die
in einer Datei, wie einem Systemverzeichnis aufgezeichnet sind).
Die Namen der SSP-DLL werden durch ihre Entwickler ausgewählt. Die
gezeigte Beispiel-SSP-DLL kann mit einem Namen wie SecProvXXX.dll
vorgestellt werden, andere DLL können
zum Beispiel SecYYYProv.dll oder ZZZSecProv.dll genannt werden.
-
Die
Kästen
in 21 und 22 bezeichnen
COM-Klassen, die
mit dem Microsoft Common Object Model übereinstimmen. Diese Klassen
teilen sich in zwei Gruppen: Anordnungsklassen (rechts gezeigt)
und Nicht-Anordnungsklassen (links gezeigt). Jede der COM-Anordnungklassen implementiert
und exportiert exakt eine IDL-Schnittstelle. Beispielsweise exportiert
die Anordnungsklasse 2106 (NachrichtenExtrakt) die Schnittstelle 2104 (INachrichtenExtrakt);
die Anordnungsklasse 2118 (SchlüsselGenerator) exportiert Schnittstelle 2116 (ISchlüsselGenerator);
und die Anordnungsklasse 2126 (Chiffre) exportiert Schnittstelle 2124 (IChiffre).
Dies gilt auch für
die Sicherheitsklasse 2102, welche die Schnittstelle 2100 exportiert.
Dasselbe gilt für
die in 22 gezeigten konkreten Klassen.
Beispielsweise exportiert die konkrete Anordnungsklasse 2204 (XXXNachrichtenExtraktSpi)
die Schnittstelle 2206 (INachrichtenExtraktSpi); die Anordnungsklasse 2208 (XXXSchlüsselGeneratorSpi)
exportiert die Schnittstelle 2206 (ISchlüsselGeneratorSpi)
und die Anordnungsklasse 2210 (XXXChiffreSpi) exportiert die
Schnittstelle 2212 (IChiffreSpi).
-
Dies
gilt auch für
die aus den abstrakten Providerklassen 2122 und den konkreten
XXProvider-Klassen (22) gebildeten „gemischten
Klasse" Provider/XXXProvider.
Insbesondere unterstützt die
Providerklasse 2122 die IProvider-Schnittstelle 2120 und
die XXXX-Providerklasse 2200 unterstützt eine IProviderCtor-Schnittstelle
(in 22 nicht gezeigt). Die Providerklasse 2122 ist
jedoch nur in der XXXProviderklasse 220 aggregierbar und
kann somit nicht unabhängig
instantiert werden. Somit werden sowohl die IProvider-Schnittstelle 2120 und
die IProviderCtor-Schnittstelle
durch die Mischklasse Provider/XXXProvider 2122/220 „exportiert".
-
Die
Mischklasse Provider/XXXProvider und alle in 21 gezeigten
Anordnungsklassen werden mit einer anderen Klasse als Partner versehen
(obwohl es sich dabei um eine facettenreiche Beziehung handeln kann,
da es viele konfigurierte SSP geben kann, die jeweils viele Algorithmen unterstützen), wie in 22 gezeigt.
Der Partner in der SSM-DLL (21) wird
als abstrakter Partner bezeichnet und der Partner in der SSP-DLL
(22) wird als der konkrete Partner bezeichnet.
Auf der linken Seite der 21, 22 gibt
es zwei Arten von COM-Klassen, die die „Master"-Klassen genannt werden, nämlich die
Sicherheitsklasse 2102 und die Provider/XXXProvider-Mischklasse 2122/2200.
Die Sicherheitsklasse 210 ist insofern eine „Master"-Klasse, als dass sie
die verschiedenen „Slave"-Provider/XXXProviderklassen steuert.
Die verschiedenen Provider/XXXProviderklassen sind wiederum insofern „Master"-Klassen, als dass
sie die verschiedenen „Slave"-Anordnungsklassen niedriger Ebene und/oder
die verschiedenen konkreten „Slave"-Anordnungsklassen
steuern. Die Masterklassen sind meist intern zu dem Sicherheitsuntersystem
und für die
meisten Anwendungen nicht sichtbar.
-
Rechts
in den 21 und 22 werden zwei
Arten von COM-Klassen gezeigt, die Anordnungsklassen genannt werden,
nämlich
die in 21 gezeigten abstrakten Anordnungsklassen und
die in 22 gezeigten konkreten Anordnungsklassen.
Eine abstrakte Anordnungsklasse wird rein abstrakt genannt, wenn
ihr m_Anordnungs-Feld einen Nullwert enthält. Zu Veranschaulichungszwecken
werden drei Arten von Anordnungsklassen (NachrichtenExtrakt, SchlüsselGenerator
und Chiffre) gezeigt, obwohl ihre Anzahl grundsätzlich nicht beschränkt ist.
Diese Anordnungsklassen treten in Paaren auf, wie in den 21 und 22 gezeigt, wobei
die Klassen niedriger Ebene in den Klassen hoher Ebene eingekapselt
oder enthalten sind (über das
m_Anordnungselement). Die Funktion der Anordnungsklassen hoher Ebene
ist es, die Anwendungsprogrammierschnittstellen (APIs) zu exportieren,
welche durch die Verbraucher der Sicherheitsdienste aufgerufen werden.
Das Suffix „Spi", das bei Anordnungsklassen
niedriger Ebene auftritt, steht für Server Provider Interface
(Server Provider Schnittstelle) (oder, im Sicherheitskontext, Sicherheits providerschnittstelle,
oder in anderen Zusammenhängen manchmal
Systemprogrammierschnittstelle), deren einzige Verbraucher die Anordnungsklassen
hoher Ebene sind. In diesen Anordnungsklassen hoher Ebene befindet
sich der eigentliche Algorithmus-spezifische Implementationscode
und dies ist die eigentliche Funktionalität, welche die ,SSP-DLL' eigentlich „bereitstellt". Diese Trennung
der Anordnungsklassen in zwei Teile wird in der Namensgebungsstruktur der
Dienste, die sie unterstützen,
reflektiert: ein voll qualifizierter Dienstname strukturiert sich
in ein abstrakt/konkret-Präfix
und ein konkret/Algorithmus-Suffix, wie beispielsweise NachichtenExtrakt.MD5.
-
Jeder
konkrete SSP (XXProviderklasse 2200) enthält statische
Informationen, die seinen Namen (s_MeinName, ein String), Version (s_MeineVersion,
eine Zahl), Klassen-ID (S_MeineClsid, ein binärer 16-Bit-Wert), Information (S_MeineInfo,
ein String) und die Liste der in seine DLL gebündelten Dienste (s_MeineSvcMap
[], eine Liste von Stringpaaren) enthält. In jedem Eintrag von s_MeineSvcMap
[] bedeutet ein String den Namen des Algorithmus, den der Dienst
implementiert, und der andere ist die COM CLSID (Klassen-ID) der
konkreten Anordnungsklasse (in SecProvXXX.dll gebündelt),
die diesen Algorithmus implementiert.
-
Zusätzlich zu
den Anordnungsklassen enthält
das Sicherheitsuntersystem eine Anzahl von Nicht-Anordnungsklassen.
In 21 werden zwei typische, Schlüssel und SchlüsselPaar,
gezeigt. Wie die Darstellung zeigt, handelt es sich bei solchen Nicht-Anordnungsklassen
um verhältnis
mäßig normale
COM-Klassen, deren einziges ungewöhnliches Merkmal ist, dass
die (abstrakte) Schnittstellenklasse und die (konkrete) Implementationsklasse
zwischen der SSM-DLL (21) und der SSP-DLL (22) gegebenenfalls
aufgeteilt werden kann. In dem Fall der Schlüsselklasse 2110 verfügt nur der
SSM über allgemeine
a priori (Schnittstellen-)Kenntnis darüber, wie ein Schlüssel eines
gegebenen SSP aussehen sollte, aber der SSP selbst muss eine detaillierte
Implementation der Schlüsselklasse,
die beispielsweise mit der durch den SSM definierten Schlüsselklasse übereinstimmt,
durch die XXXSchlüsselklasse 2210 bereitstellen.
In dem Fall der SchlüsselPaar-Klasse 2114 verfügt der SSM
bereits über
ausführliche
Informationen seiner Implementation – er besteht aus einem Paar
von Schüssel
(welche auch immer).
-
Wenn
das Sicherheitsuntersystem gebootet wird, beispielsweise, wenn die
Sicherheitsklasse 2102 die erste CoCreated in einer Laufzeit
ist, führt die
Sicherheitsklasse 2102 das Folgenden in dem Sicherheitsklassen-FinalConstruct()-Verfahren.
Zuerst liest die Sicherheitsklasse 2102 die Konfigurationsinformationen,
die beispielsweise in einem Register gespeichert sein können.
-
Als
nächstes
führt die
Sicherheitsklasse auf der Basis von ProgIO (oder CLSID) jedes konfigurierten
konkreten Providers XXProvider (der gerade aus dem Register gelesen
wurde) einen CoCreate-Vorgang eines Beispiels des XXXProviders 2200 aus, wodurch
ein Zeiger auf die IProviderCtor-Schnittstelle des XXXProviders
erhalten wird (Ctor steht für Konstrukteur).
Dieser CoCreate-Vorgang einer XXXProviderklasse führt ferner
einen CoCreate- und Aggregat-Vorgang an dem Endkonstrukt() eines
XXXProviders aus, welches eine Aufgabe des Insider-XXXProviders 220 der
abstrakten Providerklasse ist.
-
Als
nächstes
ruft die Sicherheitsklasse 2102 unter Verwendung der IProviderCtor-Schnittstelle des
XXXProviders, die gerade CoCreated wurde, das no-arg-Ctor()-Verfahren
des XXXProviders von der IProviderCtor-Schnittstelle auf. Dieses spezielle no-arg-Ctor()-Verfahren „lädt" die Namen/Versions/Info/Clsid/Dienstdaten
des XXXProviders aus ihren „fest
verdrahteten" statischen nummervariablen Positionen
in nicht-statische Mitgliedsvariablen in dem aggregierten Providerobjekt
hoch (das no-arg-Ctor()-Verfahren führt dies durch Aufrufen bestimmter
durch das aggregierte Provider Unterobjekt des XXXProviders exportierte
Verfahren aus).
-
Viertens
konstruiert die Sicherheitsklasse 2102 ihre statische interne
Konfigurationsliste s_ProvList[] durch das Zeigen des IProviders
auf die verschiedenen konfigurierten konkreten Provider. Die Sicherheitsklasse
konstruiert jeden IProvider durch Aufrufen des Anfrage-Schnittstellen-Verfahrens
in der IProviderCtor-Schnittstelle des XXXProviders, die von der
Sicherheitsklasse 2102 bis zu diesem Zeitpunkt verwendet
worden ist. Die Liste sProvList[] der konfigurierten SSP wird über das
holeProvider()-Verfahren der Sicherheitsklasse 2102 den
Clients verfügbar
gemacht.
-
Anwendungen
verwenden die Providerarchitektur eigentlich auf folgende Weise.
Es sei eine Anwendung angenommen, die ein Extrakt()-Verfahren an
einem NachrichtenExtrakt-Objekt aufrufen möchte, um den Extrakt einer
spezifischen Nachricht zu berechnen. Diese Anwendung kennt die abstrakten Anordnungsklassen
in dem SSM (d.h. die SLSIDs der Klassen in der SicherheitsSvcs.dll),
da sie während
der Erstellung mit dieser Information verbunden war, aber sie hat
keine a-priori-Kenntnis von den konkreten Anordnungsklassen in den
SSPs (d.h. den CLSIDs der Klassen in SecProvXXX.dll), wo sich die wirkliche
Algorithmusimplementation eigentlich befindet). Daher kann die Anwendung
ein CoCreate-Vorgang direkt an dem abstrakten Anordnungsobjekt ausführen, aber
sie kann kein konkretes Anordnungsobjekt durch CoCreate erstellen.
In Übereinstimmung
mit einer bevorzugten Ausführungsform wird
ein abstraktes Anordnungselement jedoch als ein Klassen-Factory-Objekt mit
einem Factory-Verfahren behandelt, das holeBeispiel() heißt, um ein konkretes
Anordnungsobjekt wie folgt indirekt zu schaffen.
-
Die
Anwendung beginnt durch CoCreating eines reinen abstrakten NachrichtenExtrakt-Objekts aus
der Nachrichten-Extraktklasse 2106.
Ein solches Objekt kann nicht verwendet werden, um einen Extrakt
zu schaffen, da es nicht mit einem konkreten Anordnungsobjekt verbunden
ist, das heißt,
seine Hauptstatusvariable, m_Anordnung, weist einen Nullerwert auf
(wie seine Nebenstatusvariablen m_AlgName und m_ProvName). Unter
Verwendung der InachrichtenExtrakt-Schnittstelle 2104, die es
gerade CoCreated hat, ruft die Anwendung dann das holeBeispiel()-Verfahren
des NachrichtenExtrakts auf, wobei der wohlbekannte Name des Nachrichtenextraktalgorithmus
spezifiziert wird, die es verwenden will. Das holeBeispiel()-Verfahren
ist ein Factory-Verfahren, das die folgenden Schritte ausführt. Zuerst
ruft das holeBeispiel()-Verfahren das holeProvider()-Verfahren in
dem Sicherheitsobjekt aus, um eine Liste von Provider, die gegenwärtig konfiguriert sind,
zu holen. Als nächstes
verwendet das holeBeispiel()-Verfahren die gerade geholte Liste
von SSP, um das hole()Verfahren jedes SSP aufzurufen, bevorzugt
nach Rangfolge, bis es den ersten SSP findet, der den angefragten
Algorithmus unterstützt. Das
hole()-Verfahren des SSP bildet Algorithmusnamen auf konkrete Anordnungsklassen-ProgIDs ab unter
Verwendung des m_SvcMap[] des SSP. Somit gibt das hole()-Verfahren
in Klasse 2022 in diesem Beispiel die ProgID eines NachrichtenExtraktSpi
einer konkreten Anwendungsklasse zurück, die den angeforderten Algorithmus
unterstützt.
-
Als
nächstes
schafft das holeBeispiel()-Verfahren ein neues abstraktes NachrichtenExtrakt-Objekt
durch CoCreate, das sich von dem NachrichtenExtrakt-Objekt unterscheidet,
aus dem das holeBeispiel()-Verfahren aufgerufen wird. Anfangs handelt es
sich bei dem NachrichtenExtrakt- Objekt
um ein weiteres reines abstraktes Anordnungsobjekt, aber in dem
nächsten
Schritt wird das holeBeispiel()-Verfahren es in eine vollständiges/verbundenes
Anordnungsobjekt formen (d.h. ein „nicht-reines" abstraktes Anordnungsobjekt
zusammen mit einer konkreten Anordnung, die in ihm enthalten ist über sein m_Anordnungsfeld).
-
Schließlich ruft
das holeBeispiel()-Verfahren das Konstruktions()-Verfahren des neuen
NachrichtenExtrakt-Objekts
auf, wobei als Parameter die CLISID (oder ProgID) des NachrichtenExtraktSpi
weitergegeben wird, die es von dem obigen hole()-Verfahren-Aufruf
erhalten hat. Dieses Konstruktions()-Verfahren schafft ein Beispiel
des NachrichtenExtraktSpi-Objekts von Klasse 2104 durch
CoCreate und besetzt das m_Anordnungsfeld des neuen NachrichtenExtrakts
mit dem sich ergebenden InachrichtenExtraktSpi-Zeiger.
-
Somit
gibt das holeBeispiel()-Verfahren an die Anwendung ein vollständiges/verbundenes NachrichtenExtrakt-Anordnungsobjekt
zurück.
Zu diesem Zeitpunkt kann die Anwendung das Extrakt()-Verfahren des
Anordnungsobjekts aufrufen, um den Extrakt einer Nachricht aufzurufen.
Das (abstrakte) Extrakt()-Verfahren des Anordnungsobjekts delegiert
oder leitet den Aufruf dann an sein Extrakt()-Verfahren des konkreten Anordnungsobjekt, um
die eigentliche Arbeit auszuführen.
-
Eine
Softwareimplementation der oben beschriebenen Ausführungsform
kann eine Reihe von Computeranweisungen umfassen, die entweder auf einem
greifbaren Medium wie einem computerlesbaren Medium z.B. eine Diskette,
eine CD-ROM, einen RAM-Speicher,
oder eine Festplatte, fixiert sind oder an ein Computersystem über ein
Modem oder eine andere Schnittstellenvorrichtung über ein
Medium übertragbar
sind. Das Medium kann entweder ein greifbares Medium sein, einschließlich, aber
nicht darauf beschränkt,
optische oder analoge Kommunikationsleitungen, oder kann mit drahtloser
Technik implementiert sein, einschließlich, aber nicht beschränkt auf,
Mikrowellentechnik, Infrarot oder andere Sendetechniken. Es kann
sich auch um das Internet handeln. Die Reihe von Computeranweisungen verkörpert einen
Teil oder die gesamten hier oben unter Bezug auf die Erfindung beschriebenen
Funktionalitäten.
Fachleuten wird klar sein, dass solche Computeranweisungen in einer
Vielzahl von Programmiersprachen zur Verwendung mit mehreren Computerarchitekturen
oder Betriebssystemen geschrieben werden kann. Ferner können solche
Anweisungen unter Verwendung von heutiger oder zukünftiger
Speichertechnologie gespeichert werden, einschließlich, aber
nicht beschränkt
auf Halbleiter, magnetische, optische oder andere Vorrichtungen, oder
unter Verwendung einer heutigen oder zukünftigen Kommunikationstechnologie
gesendet werden, einschließlich,
aber nicht beschränkt
auf, optische, Infrarot-, Mikrowellen- oder sonstige Sendetechnologien.
Es wird berücksichtigt,
dass ein solches Computerprogrammprodukt als entfernbares Medium
mit einer begleitenden gedruckten oder elektronischen Dokumentation,
z.B. verpackter Software, die in einem Computersystem vorgeladen
ist, z.B. auf einem System-ROM oder Festplatte, oder von einem Server in
oder einer Elektronische-Bulletin-Stelle über ein Netzwerk, beispielsweise
dem Internet oder World Wide Web, verteilt wird.
-
Obwohl
eine beispielhafte Ausführungsform der
Erfindung offenbart wurde, wird es Fachleuten klar sein, dass zahlreiche Änderungen
und Modifikationen daran vorgenommen werden können, welche einige Vorteile
der Erfindung wie beansprucht erzielen werden. Beispielsweise wird
es Durchschnittsfachleuten klar sein, dass, obwohl sich die Beschreibung
auf ein bestimmtes Hardware- und Betriebssystem gerichtet war, andere
Hardware- und Betriebssysteme auf dieselbe Weise wie beschrieben
verwendet werden könnten.