-
TECHNISCHES
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft die Datenvernetzung
im Allgemeinen und insbesondere die Ver- und Entschlüsselung
von Daten in Datennetzen. Im Einzelnen betrifft die Erfindung die
Auswahl, Verbreitung und Verwendung mehrerer Codes in Netzwerken zum
Zwecke der Datenverschlüsselung
und Datenentschlüsselung
in einer Weise, bei der Sicherheitsprobleme vermieden werden, wenn
private Netzwerke nicht private Abschnitte enthalten, und verringert darüber hinaus
das bekannte Problem der Codeverbreitung.
-
STAND DER
TECHNIK
-
Angesichts der heutigen heterogenen
und herstellerunabhängigen
Netzwerke gibt es Probleme hinsichtlich der Sicherheit bei der Kommunikation
in einem Netzwerk. Ein solches Problem entsteht beispielsweise dadurch,
dass ein privates Netzwerk Kommunikationsknoten enthält, die
von unabhängigen
Netzwerkherstellern zur Verfügung
gestellt werden.
-
Eine allgemein übliche Technik für eine sichere
Kommunikation ist die Ver- und Entschlüsselung von Nachrichten, die
zwischen benachbarten Knoten eines Netzwerks auf dem Weg zu einem
Zielknoten übermittelt
werden. Ein sendender Knoten verschlüsselt also eine Nachricht und
verwendet hierzu einen Code, den er mit dem nächsten benachbarten Knoten
auf der Route gemeinsam nutzt. Wenn er die verschlüsselte Nachricht
erhält,
entschlüsselt der
benachbarte Knoten die Nachricht und verschlüsselt dann die jetzt freie
Nachricht mit einem neuen Code, den er mit dem nächsten benachbarten Knoten
auf der Route gemeinsam nutzt, usw. Diese Technik wird in den Teilbereich-SNA
(System Network Architecture) Netzwerken von IBM eingesetzt. Jeder Knoten
im Netzwerk muss einen Verschlüsselungscode
mit jedem seiner Nachbarknoten in dem Netzwerk gemeinsam nutzen.
Das bedeutet, dass wenn irgendein Knoten auf der Route zwischen
einem Ursprungsknoten einer Nachricht und einem Zielknoten zu einem
unabhängigen
Hersteller gehört,
dieser unabhängige
Knoten mit den benachbarten Knoten des privaten Netzwerks Codes
gemeinsam nutzen muss. Dies ist ein nicht akzeptables Sicherheitsrisiko
für viele
Netzwerkbenutzer.
-
Eine mögliche Lösung für dieses Problem ist die Zuweisung
eines einzigen Codes für
alle verschlüsselten
Kommunikationen zwischen den privaten Userknoten eines Netzwerks.
Hierdurch kann ein Netzwerk Abschnitte öffentlicher Anbieter nutzen, ohne
die Codes mit dem unabhängigen
Hersteller gemeinsam zu nutzen. Besonders in großen Netzwerken gilt dies jedoch
aufgrund des erhöhten
Risikos, das bei Verwendung eines einzigen Codes für alle Userknoten
vorhanden ist, gewöhnlich
als nicht akzeptabel.
-
Eine andere Lösung für das o. a. Problem ist die
Pflege separater Codes an jedem privaten Knoten für jeden
anderen privaten Knoten in einem User-Netzwerk. Für viele
Netzwerkbesitzer ist dies jedoch wegen der Codeverbreitung nicht
akzeptabel. Zum Beispiel erfordert diese Lösung in einem Netzwerk mit
eintausend privaten Userknoten, dass in jedem privaten Knoten 999
separate Codes für
die übrigen
Userknoten gespeichert werden.
-
In der europäischen Patentanmeldung EP-A-0
554 182 (Electricite de France) vom 4. August 1993 wird eine Methode
zur Verschlüsselung von
Nachrichten beschrieben, die zwischen mindestens zwei Netzwerken übertragen
werden, die über mindestens
eine Vielfachleitung miteinander verbunden sind, wobei die miteinander
verbundenen Netzwerke das Internetprotokoll (IP) als Netzwerkschichtprotokoll
und das TCP- oder UDP-Protokoll als Transportschichtprotokoll verwenden,
die Vielfachleitung ein spezifiziertes Netzwerkschichtprotokoll
verwendet, jede Nachricht eine Vielzahl von Nachrichtenköpfen umfasst,
darunter einen IP-Kopf und einen TCP- oder UDP-Kopf, und Daten.
Das spezifizierte Netzwerkschichtprotokoll der Vielfachleitung ist
das Internetprotokoll (IP). Für
jede Nachricht wird mindestens ein Teil des TCP- oder UDP-Kopfes
verschlüsselt,
und zwar zum gleichen Zeitpunkt, an dem die Daten und der IP-Kopf
nicht verschlüsselt
sind, um die Übertragung
der Nachricht über
die Vielfachleitung entsprechend dem Internetprotokoll (IP) zu ermöglichen.
-
In der US Patentschrift US-A-5 115
433 (BARAN PAUL et. al.) vom 19. Mai 1992 werden eine Paket-Routingmethode
in einem Netzwerk und ein System beschrieben, die auf den Kennungen
geographischer Koordinaten basieren. Jeder Knoten in einem Netzwerk
ist durch absolute geographische Koordinaten oder durch einen Code,
der die absolute Lage in einem externen koordinatenbasierten Bezugssystem
angibt (Knotenkoordinaten) eindeutig gekennzeichnet, und diese absoluten
geographischen Koordinaten oder ihre Entsprechung werden als Teil
einer Paketkennung für
jedes Paket verwendet, das zur Verwendung bei der Entscheidung über die
Leitweglenkung generiert wird. Die Knotenkoordinaten eines lokalen
Knotens und seiner Nachbarknoten und die Paketkoordinaten werden
von Mitteln an jedem Knoten verwendet, durch die ein Paket geleitet
wird, um eine gewünschte
Transportroute eines Datenpakets zu bestimmen. Die Leitweglenkung
kann nach ausgewählten
Kriterien priorisiert werden, mit denen vorzugsweise ein maximaler
Transportfortschritt mit der geringsten Leistung erreicht wird.
Das Paket-Leitweglenkungsprotokoll gemäß der Erfindung erfordert für die Leitweglenkung
der Daten kein Routing-Verzeichnis
oder eine Routing-Tabelle.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die Erfindung verbessert die Sicherheit
der Datenkommunikation in einem Netzwerk, indem sie den Netzwerkbesitzern
erlaubt, bestimmte Netzknoten auszuwählen und zu benennen, damit
diese Verschlüsselungscodes
mit anderen ausgewählten
Knoten des Netzwerks gemeinsam nutzen. Die Anordnung erlaubt eine
verschlüsselte
Kommunikation in einem entsprechend ausgelegten Netzwerk, wobei gleichzeitig
eine gemeinsame Nutzung der Verschlüsselungscodes mit den Knoten
unabhängiger Hersteller
und die in anderen Netzwerken bestehende Codeverbreitung vermieden
wird.
-
Ein Ursprungsknoten, der eine verschlüsselte Nachricht
an einen Zielknoten senden möchte,
legt eine Route zum Zielknoten fest. Der Ursprungsknoten bestimmt
dann auf dieser Route diejenigen Knoten, mit denen er Verschlüsselungscodes
gemeinsam nutzen möchte.
Der Ursprungsknoten wählt
einen Code aus, der einem dieser Knoten zugeordnet ist, und verschlüsselt die
Nachricht mit diesem Code. Er fügt
der verschlüsselten
Nachricht seine eigene Identität
sowie die Identität
des Knotens bei, der dem ausgewählten
Code zugeordnet ist. Die Nachricht wird dann über die gewählte Route übermittelt. Wenn der Knoten,
mit dem der ausgewählte
Code gemeinsam genutzt wird, die Nachricht erhält, erkennt er anhand der in
unverschlüsselter
Form in der Nachricht enthaltenen Knotenkennungen, dass er der Entschlüsselungsknoten
sein soll. Er entschlüsselt
den verschlüsselten
Teil der Nachricht anhand des mit dem Ursprungsknoten gemeinsam
genutzten Codes. Außerdem
prüft er,
ob er der Zielknoten ist. Wenn ja, verarbeitet er die entschlüsselte Nachricht
in der entsprechenden Weise. Ist er nicht der Zielknoten, wiederholt
er den Prozess des Auswählens
eines neuen Verschlüsselungsknotens,
mit dem er einen Code gemeinsam nutzt, verschlüsselt die Nachricht erneut, fügt dieser
wieder verschlüsselten
Nachricht seine Identität
und die des neuen Entschlüsselungsknotens
in unverschlüsselter
Form bei und übermittelt
die neue Nachricht weiter zum Zielknoten.
-
Das bevorzugte Ausführungsbeispiel
der Erfindung kommt in Verbindung mit nicht hierarchischen Netzwerken
vor, beispielsweise der Advanced-Peer-to-Peer Networking (APPN)
Architecture von IBM. Advanced-Peer-to-Peer Networking und APPN
sind Warenzeichen von IBM. Die Erfindung löst das Sicherheitsproblem mit
herstellerunabhängigen
Knoten und verhindert gleichzeitig das Problem der Codeverbreitung
in APPN-Netzwerken. APPN-Netzwerke haben sowohl Endknoten als auch Netzknoten,
die Endknoten als Server dienen und andere generische Netzwerkdienste
bereitstellen, beispielsweise die Leitweglenkung von Nachrichten.
In einem APPN-Netzwerk ermöglicht
die Erfindung jedem privaten Knoten in dem Netzwerk, aus mehreren Codes
einen für
die Verschlüsselung
einer Sendung auszuwählen.
Aufgrund der Zwangsbedingungen in einem APPN-Netzwerk kann ein Ursprungs-Endknoten
einen Code mit einem Ziel-Endknoten oder mit einem Netzknoten, der
einem Ziel-Endknoten
als Server dient, oder mit einem Netzknoten, der dem Ursprungs-Endknoten
als Server dient, gemeinsam nutzen. Netzknoten können Codes mit anderen Netzknoten
sowie den Endknoten, deren Server sie sind, gemeinsam nutzen. Wenn
für die
verschlüsselte Kommunikation
zwischen den Knoten mehrere alternative Codes zur Auswahl stehen,
kann die Auswahl anhand jedes gewünschten Kriteriums erfolgen.
In dem bevorzugten Ausführungsbeispiel
wählt der
Ursprungsknoten den gemeinsäm
genutzten Code für die
längstmögliche Spanne
zwischen sich und dem Zielknoten aus und verschlüsselt eine Nachricht unter
Verwendung dieses Codes. Er hängt
an die verschlüsselte
Nachricht eine Kennung des Entschlüsselungsknotens, der dem ausgewählten Code
entspricht, sowie seine eigene Identität in unverschlüsselter
Form an. Jeder am Übermittlungsweg
liegende Knoten, der diese Sendung empfängt, prüft die Kennung des Entschlüsselungsknotens
und gibt die Sendung so lange weiter, bis sie den Knoten mit der
richtigen Kennung erreicht hat. Der gekennzeichnete Knoten entschlüsselt die
Nachricht mit Hilfe des Codes, den er gemeinsam mit dem Ursprungsknoten nutzt.
Handelt es sich bei dem Entschlüsselungsknoten
nicht um den Zielknoten, wählt
dieser einen anderen ihm bekannten Code, den er gemeinsam mit einem
anderen Knoten auf dem weiteren Weg der Nachricht nutzt, und zwar
nach einem ähnlichen
Kriterium, wie es vom Ursprungsknoten genutzt wird. Die entschlüsselte Nachricht
wird mit dem neuen Code erneut verschlüsselt, die Kennung dieses neuen
Verschlüsselungsknotens
und die Kennung des Entschlüsselungsknotens
auf der weiteren Route, der den neuen Code ebenfalls nutzt, wird
an die neu verschlüsselte
Nachricht angehängt
und die Sendung wird auf dem Weg zum Zielknoten weitergeleitet.
Natürlich
befindet sich auf dieser Route der gekennzeichnete Knoten, der als
nächster
die Nachricht entschlüsseln
muss. Private Netzknoten nutzen niemals einen Code gemeinsam mit
den Knoten unabhängiger
Hersteller. Das Problem der Codeverbreitung wird geringer, weil
nicht jeder private Knoten einen Code mit jedem benachbarten Knoten
oder mit jedem anderen Knoten im Netzwerk gemeinsam nutzen muss.
-
Im Allgemeinen haben Netzwerkbesitzer eine
große
Flexibilität
bei der Benennung derjenigen Knoten, die Codes mit anderen Knoten
gemeinsam nutzen dürfen;
dementsprechend kann die Auswahl der Route so erfolgen, dass sichergestellt
ist, dass eine zufrieden stellende verschlüsselte Kommunikation im Netz
möglich
ist. Dasselbe gilt für
ein APPN-Netzwerk innerhalb der kurz dargestellten festgelegten
Zwangsbedingungen, die für
Endknoten und die Netzknoten gelten, die ihnen als Server dienen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die Erfindung wird unter Bezugnahme
auf die Zeichnungen verständlich;
es zeigt:
-
1 ein
vereinfachtes Blockdiagramm eines als Beispiel dienenden allgemeinen
Netzwerks;
-
2 das
Netzwerk aus 1, in dem
jedoch ein Transportabschnitt von einem unabhängigen Hersteller bereitgestellt
wird;
-
3,
gemäß der Erfindung,
ein als Beispiel dienendes Format für eine Codeauswahltabelle,
die an jedem privaten Knoten eines User-Netzwerks gepflegt wird;
außerdem
werden andere Knoten gekennzeichnet, mit denen ein Knoten Ver- und
Entschlüsselungscodes
gemeinsam nutzt, sowie die gemeinsam genutzten Codes;
-
4 zeigt
das Beispiel einer Datenpaketsendung zur Übermittlung in einem Netzwerk,
die ein Feld mit einer verschlüsselten
Nachricht und Kennzeichnungsfelder zur Kennzeichnung eines Knotens enthält, der
die Nachricht verschlüsselt
hat, und einen Entschlüsselungsknoten,
der einen Code mit dem Verschlüsselungsknoten
gemeinsam nutzt und der die Nachricht entschlüsseln soll;
-
5 ein
Beispiel-Netzwerk, ähnlich
dem aus 2, jedoch formuliert
im Sinne der Advanced-Peer-to-Peer Networking Architecture von IBM, bei
der einige Knoten full-service Netzknoten und andere Knoten Endknoten
sind, beispielsweise Workstations, Drucker und ähnliches, die andere Netzknoten
als Server nutzen;
-
6 zeigt
eine Transaktion in einem APPN-Netzwerk, bei der ein sekundärer Knoten
oder eine Netzwerkressource an einem Knoten in Antwort auf eine
ORTEN-Anfrage eines primären
Knotens geortet wird, und die ANTWORT auf die ORTEN-Anfrage enthält einen
Code für
eine verschlüsselte
Sitzung zur Verschlüsselung
weiterer Nachrichten zwischen den primären und den sekundären Knoten bzw.
Ressourcen. Gemäß der Erfindung
kann der sekundäre
Knoten über
eine Auswahl von Kreuzdomänencodes
verfügen,
mit denen der Sitzungscode verschlüsselt werden kann, wie noch
erläutert
wird;
-
7 zeigt
das Beispiel eines ANTWORT-Pakets für das APPN-System der 6; und
-
8 bis 11 zeigen Beispiele von Flussbildern
der Algorithmen, die an den Knoten eines APPN-Netzwerks ausgeführt werden,
um eine verschlüsselte,
sichere Kommunikation gemäß der Erfindung
zu erreichen.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
1 zeigt
ein vereinfachtes Blockdiagramm eines Beispiels eines User-Netzwerks
mit den Knoten A bis F. Diese Knoten sind hier vereinfacht in Tandemschaltung
dargestellt, es ist jedoch jede andere Verbindungsart möglich. Im
bisherigen Teilbereichsnetzwerk von IBM gilt, dass ein Knoten A
(100), der mit einem Knoten F (110) verschlüsselt kommunizieren
möchte,
einen Code mit Knoten B (102) gemeinsam nutzt, Knoten B
nutzt einen Code gemeinsam mit Knoten C (104) und so weiter.
Eine verschlüsselte
Nachricht, die von Knoten A an Knoten F gesendet wird, wird zunächst von
Knoten B entschlüsselt,
wenn dieser die Nachricht empfängt,
unter Verwendung des mit Knoten A gemeinsam genutzten Codes. Knoten
B verschlüsselt
dann erneut die Nachricht mit dem Code, den er mit Knoten C gemeinsam
nutzt, und sendet die wieder verschlüsselte Nachricht an Knoten
C. Knoten C wiederholt diese Operationen und so weiter, bis Knoten
F die Nachricht empfängt
und sie mit dem Code entschlüsselt, den
er mit Knoten E (108) gemeinsam nutzt. Diese Methode der
Verschlüsselung
zwischen benachbarten Knoten eines Teilbereichsnetzwerks wird in
der IBM-Publikation "SNA
Format Protocol Reference Architecture Logic for LU 6.2", Veröffentlichung
Nummer SC30-3269, beschrieben.
-
2 zeigt
dasselbe Netzwerk wie 1, wobei
jedoch die Transportknoten C und D (204 bzw. 206)
von einem Hersteller bereitgestellt werden, der vom übrigen Netzwerk
unabhängig
ist. Wie zu erkennen ist, muss Knoten B, um die Teilbereichs-Verschlüsselungstechnik
der 1 von IBM nutzen
zu können,
einen Code mit dem Knoten C des unabhängigen Herstellers gemeinsam
nutzen; das gleiche gilt für
die Knoten D und E. Dies ist für
viele Netzwerkbesitzer eine nicht akzeptable Situation und wird
daher von der Erfindung vermieden. Wie beschrieben wird, kann der
Besitzer der privaten Netzknoten A, B, E und F aus 2 gemäß der Erfindung
beliebig Knoten benennen, die Codes mit anderen Knoten gemeinsam
nutzen, natürlich
unter der Zwangsbedingung, dass es einen Pfad von einem Ursprungsknoten
zu einem Zielknoten geben muss, der auch eine vollständige endto-end
Ver- und Entschlüsselung
ermöglicht.
-
3 zeigt
das Beispiel eines Tabellenformats für eine Codeauswahltabelle (CAT),
welche die Benennung der oben beschriebenen Codes ermöglicht.
Eine unterschiedliche CAT wird an jedem privaten Knoten gepflegt
und kennzeichnet andere Knoten, mit denen ein Knoten einen Code
gemeinsam nutzt; außerdem
kennzeichnet sie jeden gemeinsam genutzten Code. Unter Bezugnahme
auf 3; jeder CAT-Eintrag
enthält
ein Knotenidentifikationsfeld 300 und ein Codefeld 302.
Das Beispiel aus 3 ist
eine Beispiel-CAT für
Knoten A (200) aus 2.
Der Netzwerkbesitzer hat entschieden, dass Knoten A Codes nur mit
den Knoten B (202) und E (208) gemeinsam nutzen
darf. Die Zahl der CAT-Einträge
N für Knoten
A in diesem vereinfachten Netzwerk beträgt also Zwei. Wenn eine Nachricht
von Knoten A an Knoten F gesendet wird, prüft Knoten A die CAT und wählt einen
Code eines Knotens auf der Route zum Zielknoten aus. Es kann jedes
gewünschte
Auswahlkriterium eingesetzt werden, obwohl vielleicht ein bevorzugtes
Kriterium die Auswahl des Knotens wäre, mit dem der sendende Knoten
einen Code gemeinsam nutzt, der außerdem die geringste Entfernung
zum Zielknoten hat. Wenn dieses zuletzt genannte Kriterium eingesetzt
wird, würde
zur Übertragung
einer verschlüsselten
Nachricht an Knoten F der Knoten A seine CAT prüfen und Eintrag 2 auswählen, der
dem Knoten E entspricht. Es wird dann ein Paket gebildet, das in
Feld 404 der 4 eine Nachricht
enthält,
die mit dem Code 302 aus dem ausgewählten Eintrag der CAT-Tabelle
verschlüsselt ist.
Der sendende Knoten A fügt
an die verschlüsselte Nachricht
einen Nachrichtenkopf an, der in Feld 400 die Identität des verschlüsselnden
Knotens (in diesem Fall Knoten A) und in Feld 402 die Identität des ausgewählten Knotens
enthält,
der den Code gemeinsam mit dem verschlüsselnden Knoten nutzt (in diesem
Beispiel Knoten E). Der Paketkopf enthält außerdem weitere Informationen,
die es den Knoten auf der Route ermöglichen, die ausgewählte Route
zum Zielknoten zu ermitteln. Hierzu stehen viele konventionelle
Wege zur Verfügung,
die in den handelsüblichen
Netzwerken zur Anwendung kommen. In APPN-Netzwerken ist beispielsweise
ein Route Selection Control Vector (RSCV) im Nachrichtenkopf enthalten,
wie weiter unten beschrieben wird. Die Technik zur Ermittlung der
Route durch die Zwischenknoten ist jedoch kein wesentlicher Bestandteil
der Erfindung und wird daher an dieser Stelle nicht ausführlich beschrieben.
-
Knoten A sendet nun das Paket an
Knoten B. Knoten B prüft
das übermittelte
Paket und stellt fest, dass es nicht in Feld 402 gekennzeichnet
ist. Er führt daher
keine weitere Aktion in Verbindung mit der Erfindung durch, außer der
Weiterleitung der Nachricht zu ihrem endgültigen Bestimmungsort. In dem
Beispiel der 2 haben
die Knoten C und D der unabhängigen
Hersteller keine Möglichkeit
zur Entschlüsselung
der Nachricht und leiten diese nur auf die herkömmliche Weise weiter. Die Nachricht
kommt schließlich
an Knoten E an, wo festgestellt wird, dass Knoten E im Kopffeld 402 gekennzeichnet
ist. Knoten E ermittelt daher aus Feld 400, dass Knoten
A die Nachricht im Feld 404 verschlüsselt hat. Knoten E durchsucht
seine CAT-Tabelle nach Knoten A, ruft den gemeinsam mit Knoten A
genutzten Code ab und entschlüsselt
dementsprechend den Nachrichtenteil der Sendung. Knoten E prüft, ob er
der endgültige Bestimmungsort
ist. Wenn ja, verarbeitet er die entschlüsselte Nachricht in der gewünschten
Weise. Wenn er nicht der endgültige
Bestimmungsort ist, wiederholt er die ursprünglich von Knoten A zur Verschlüsselung
und zum Weiterleiten der Nachricht zu ihrem Ziel durchgeführten Schritte.
Hierbei stellt er anhand des Kopfes fest, dass Knoten F der Zielknoten
ist; er ermittelt aus seiner CAT, dass er einen Code mit Zielknoten
F gemeinsam nutzt. Er verschlüsselt
dann die Nachricht erneut mit dem Code, den er mit Knoten F gemeinsam
nutzt, fügt
in das Feld 400 einer neuen Sendung seine Identität ein, fügt die Identität des Knotens
F in das Feld 402 ein und übermittelt die Sendung an Knoten
F. Bei Erhalt der Sendung ermittelt Knoten F aus Feld 402,
dass er den Nachrichtenteil der Sendung entschlüsseln soll. Er ermittelt außerdem auf
jede gewünschte
Art, dass er der Zielknoten ist; je nach Art der Nachricht verarbeitet
er daher die entschlüsselte
Nachricht in der geeigneten Weise.
-
Das bevorzugte Ausführungsbeispiel
der Erfindung befindet sich in einem Netzwerk, das die Advanced
Peer-to-Peer Networking (APPN) Architektur von IBM einsetzt. Ein
solches Netzwerk ist in 5 dargestellt.
Ein APPN-Netzwerk kann sowohl aus Netzknoten als auch aus Endknoten
bestehen. In 5 wird
beispielsweise angenommen, dass die Knoten C, D, E und F (500, 502, 504 bzw. 506)
Netzknoten sind. Von den Knoten A, B und G wird angenommen, dass
es sich um Endknoten handelt. Die APPN-Architektur ist gut bekannt und öffentlich
dokumentiert. Sie wird hier nur insofern erörtert, als dies zum Verständnis der
Erfindung in dieser Umgebung notwendig ist. Endknoten sind typischerweise
Workstations, Drucker oder ähnliches,
sie können
jedoch auch aufwendigere Recheneinheiten enthalten, beispielsweise
Minicomputer oder größere Systeme
zur Verarbeitung von Daten. Ein Netzknoten bietet seine Dienste
den an ihn angeschlossenen Endknoten an und kommuniziert mit anderen
Netzknoten. Ein Netzknoten führt
beispielsweise Dienste wie den Aufbau von Sitzungen und das Routing
zwischen sich und den Endknoten, denen er als Server dient, und
anderen Netz- und Endknoten aus. Netzknoten übernehmen außerdem Verzeichnisdienste
zur Ortung von Ressourcen in einem Netzwerk in Antwort auf Anfragen
zum Aufbau von Sitzungen mit anderen Ressourcen im Netz. Ein Endknoten
nimmt immer die Dienste eines Netzknotens in Anspruch. Ein Beispiel für ein APPN-Netzwerk,
in dem gekennzeichnete Netzknotenprozessoren und andere öffentlich
bekannte Strukturen eingesetzt werden, ist das System AS/400 von
IBM.
-
Wenn ein APPN-Knoten eine Sitzung
mit einem anderen Knoten aufbauen möchte, leitet der Knoten eine
Anfrage ORTEN ein, die durch das Netz übermittelt wird und schließlich zu
einer ANTWORT-Nachricht führt,
die an den ORTUNGS-Knoten zurückgesendet
wird. In der Terminologie der SNA (System Network Architecture)
wird der ORTUNGS-Knoten als primärer
Knoten betrachtet und ist durch eine Kennzeichnung als primäre logische Einheit
(PLU) dargestellt. Der gewünschte
Knoten oder ein Knoten, der die gewünschte Ressource enthält, wird
als sekundär
betrachtet und wird durch eine Kennzeichnung als sekundäre logische
Einheit (SLU) dargestellt. Die Methode, mit der ein Knoten oder eine
Ressource in einem APPN-Netzwerk geortet wird, wird in der US Patentschrift
4,914,571 beschrieben, die am 3. April 1990 an Baratz et. al. erteilt
wurde. Es wird auf diese Patentschrift Bezug genommen. Es sind jedoch
in dieser Patentbeschreibung genügend
Details enthalten, um die Anwendung der Erfindung in allgemeinen
Netzwerk- und APPN-Netzwerkumgebungen zu lehren. 6 zeigt ein spezifisches Beispiel einer
ORTEN-Anfrage und eines Sitzungsaufbaus in dem Netzwerk der 5. In diesem Beispiel wünscht der
Endknoten G (612) den Aufbau einer Sitzung mit dem Endknoten
B (610). Es wird für dieses
Beispiel angenommen, dass B Codes mit dem für ihn als Server arbeitenden
Netzknoten C und dem Server-Netzknoten F des Ortungsknotens G gemeinsam
nutzt. Um mit dem Sitzungsaufbau zu beginnen leitet der Endknoten
G eine Anfrage ORTEN an seinen Server-Netzknoten F (606)
ein, um den Knoten B (oder eine Ressource, die sich an Knoten B
befindet) zu orten und die Sitzung aufzubauen. Dies wird in 6 bei 614 dargestellt.
Als Antwort leitet Netzknoten F eine Anfrage ORTEN SLU B ein, die
er in das Netz übermittelt.
Die o. a. Patentschrift 4,914,571 erläutert die vollständigen Details
der ORTEN-Anfrage. Für
unsere Zwecke reicht es, zu wissen, dass die ORTEN-Anfrage sich
bis zum Netzknoten E (604) fortpflanzt, von dort zum Netzknoten
D (602), von dort zum Netzknoten C (600) und von
dort zu dem gewünschten
Endknoten B (610). Dies wird in 6 bei 616 und 618 gezeigt.
Die ORTEN-Nachricht
identifiziert den anfragenden Knoten (in diesem Beispiel G). Nachdem
der Zielknoten geortet ist, sendet er auf demselben Pfad, auf dem
die ORTEN-Nachricht gesendet wurde, um den gewünschten Knoten bzw. die gewünschte Ressource
zu orten, eine ANTWORT an den anfordernden Knoten. In 6 wird die ANTWORT als Übertragung 620 von
Knoten B an Knoten C, 622 von Knoten C an Knoten F und 624 von
Knoten F an Knoten G gezeigt.
-
In APPN-Netzwerken wird eine Sitzung
verschlüsselt,
indem man zuerst einen Sitzungscode einrichtet, mit dem alle nachfolgenden
Nachrichten dieser Sitzung verschlüsselt werden. Mit anderen Worten,
der Sitzungscode wechselt bei jeder Sitzung. Hierzu wird von dem
SLU-Knoten ein Sitzungscode generiert, der mit einem Kreuzdomänencode
(KDC) verschlüsselt
wird (in einem APPN-Netz wird ein Knoten gewöhnlich als Domäne betrachtet),
und der verschlüsselte
Sitzungscode wird in der ANTWORT-Sendung an die PLU übertragen.
Der KDC ist ein Code, den verschiedene Knoten gemeinsam nutzen.
Die verschlüsselte
Nachricht, die in früheren
Figuren erörtert
wurde, ist ein verschlüsselter
Sitzungscode und die ANTWORT-Sendung eines APPN-Netzwerks wird zur
Verteilung des Sitzungscodes in verschlüsselter Form verwendet; alle
nachfolgenden verschlüsselten
Sendungen dieser Sitzung zwischen den beiden Knoten werden mit dem verteilten
Sitzungscode verschlüsselt.
-
Ein Beispiel-Format einer ANTWORT-Sendung
ist in 7 dargestellt.
Hier entspricht die verschlüsselte
Nachricht in Feld 700 dem weiter oben beschriebenen verschlüsselten
Sitzungscode. An den verschlüsselten
Sitzungscode wird ein Kommunikationskopf angehängt; der Kopf enthält in Feld 702 die
Kennung des Knotens, der den Sitzungscode verschlüsselte,
in Feld 704 die Kennung des Knotens, der den Sitzungscode
entschlüsseln
soll und in Feld 706 die Kennung der SLU (in diesem Beispiel
Knoten B). Ist die SLU ein Endknoten, enthält Feld 708 außerdem eine
Kennung des Netzknotens, welcher der SLU als Server dient. Feld 710 enthält eine
Kennung der PLU (in diesem Beispiel Knoten G) und, wenn die PLU
ein Endknoten ist, enthält
Feld 712 eine Kennung des Netzknotens (in diesem Beispiel
F), welcher der PLU (G) als Server dient. Außerdem enthält der Kopf einen Route Selection
Control Vector (RSCV) 714, der in geordneter Reihenfolge
Kennungen aller Knoten auf der Route zwischen der SLU und der PLU
enthält.
Beispielsweise enthält
das erste Feld 716 des RSCV 714 die Identität des SLU-Knotens B und das
letzte Feld 718 enthält
die Identität des
PLU-Knotens G. Andere Felder (hier nicht gezeigt) enthalten gegebenenfalls
die Identitäten
der Server-Netzknoten, die der PLU und der SLU ihre Dienste anbieten,
wenn sie Endknoten sind. Andere Felder wiederum, wie z. B. Feld 720,
enthalten Kennungen aller anderen Zwischenknoten auf der Route. In
dem Beispiel der 5 und 6 sind die Knoten D und E
die Zwischenknoten. Der Kopf, wie hier zusammengefasst, wird im
Rahmen der normalen APPN-Dienste generiert und wird in vielen von
IBM erhältlichen
APPN-Publikationen ausführlicher
beschrieben.
-
Zurück zu 6; bei 622, und wie in 7 gezeigt wird, ist das
Beispiel-Format der ANTWORT-Kommunikation wie folgt:
ANTWORT-Verschlüsselungsknoten,
Eetschlüsselungsknoten,
SLU, SLU NN Server, PLU, PLU NN Server, EXY(SK);
hierbei gilt
SLU = sekundäre
logische Einheit
PLU = primäre
logische Einheit
NN = Netzknoten
SK = Sitzungscode
EXY(SK)
= der verschlüsselte
Sitzungscode, unter Verwendung eines Codes, der von den Knoten X
und Y gemeinsam genutzt wird.
-
Da angenommen wurde, dass Knoten
B Codes mit seinem Server-Netzknoten
C und mit dem Server-Netzknoten F des Knotens G gemeinsam nutzt,
wählt Knoten
B entsprechend dem bevorzugten Codeauswahlalgorithmus den gemeinsam
genutzten Code mit Knoten F, welcher dem Zielknoten G am nächsten liegt.
Daher enthält
die ANTWORT-Kommunikation 622 die Information
ANTWORT
B, F, B, C, G, F, EBF[SK]
-
Hierbei gilt: das erste B ist der
verschlüsselnde
Knoten, das erste F ist der Knoten, der die Nachricht entschlüsseln soll,
das zweite B ist die SLU-Kennung, C ist der Server-Netzknoten für SLU B,
G ist die PLU, das zweite F ist der Server-Netzknoten für die PLUG und EBF[SK] stellt
den Sitzungscode SK dar, der mit dem Code verschlüsselt ist,
den die Knoten B und F gemeinsam nutzen. Knoten B übermittelt dann
die Sendung an seinen Server-Netzknoten C. C prüft den Kopf und stellt fest,
dass er nicht als ein Knoten gekennzeichnet ist, der die Sendung
entschlüsseln
soll. Knoten C leitet also die Sendung weiter. Wenn Knoten F die
ANTWORT-Sendung empfängt,
erkennt er, dass er der Entschlüsselungsknoten
ist, entschlüsselt
den Sitzungscode, stellt fest, dass G das Ziel ist, verschlüsselt den
Sitzungscode erneut mit einem Code, der gemeinsam mit G genutzt wird,
und übermittelt
dann eine neue ANTWORT-Sendung mit dem neu verschlüsselten
Sitzungscode an G. Diese neue ANTWORT-Sendung ist in 6 als 624 dargestellt
und enthält
die folgende Information, entsprechend dem weiter oben erörterten
Format:
ANTWORT F, G, B, C, G, F, EFG[SK].
-
Die Operation zum Aufbau des Sitzungscodes
in dem Beispiel der 6 wird
jetzt ausführlich unter
Verwendung der Flussbilder der 8 bis 11 beschrieben.
-
8 zeigt
einen Beispiel-Algorithmus, der in jedem Knoten (SLU) ausgeführt wird
und eine ANTWORT-Sendung in Reaktion auf eine ORTEN-Sendung erzeugt.
Man erinnere sich daran, dass der verschlüsselte Sitzungscode als verschlüsselte Nachricht
in der ANTWORT-Kommunikation von der SLU an die PLU übertragen
wird. In diesem Beispiel der 6 ist
der Endknoten G die PLU und der ANTWORT-Zielknoten B ist die SLU.
Der Algorithmus wird in der SLU ausgeführt und beginnt an Schritt 800.
Schritt 802 ermittelt, ob die SLU (Knoten B) ein Endknoten
ist, was in diesem Beispiel der Fall ist. Daher wird Schritt 804 ausgeführt, womit
festgestellt wird, ob die PLU (Knoten G) ein Endknoten ist, was
ebenfalls in diesem Beispiel zutrifft (die vorangehende ORTEN-Nachricht
kennzeichnete den Typ des anfordernden Knotens). In diesem Vorgang
beginnt Schritt 806 mit dem Abschnitt des Algorithmus,
in dem sowohl die SLU als auch die PLU Endknoten sind. Aufgrund
von Zwangsbedingungen in einem APPN-Netzwerk, die auf die Erfindung
nicht allgemein anzuwenden sind, insbesondere dass Zwischenknoten
keine Nachrichtenköpfe
prüfen,
außer RSCV,
besteht die einzige Möglichkeit
darin, dass die SLU einen KDC mit der PLU gemeinsam nutzt, oder mit
dem Netzknoten, welcher der PLU als Server dient, oder mit dem Netzknoten,
welcher der SLU als Server dient. In Schritt 806 durchsucht
die SLU ihre CAT-Tabelle um festzustellen, ob sie einen Kreuzdomänencode
(KDC) für
die PLU (Knoten G) enthält. Wenn
ja, dann erzeugen die Schritte 808 und 810 einen
beliebigen Sitzungscode (SK) und verschlüsseln ihn mit dem gemeinsam
genutzten KDC. Die Sendung, die den verschlüsselten SK enthält, wird
in einer ansonsten bekannten Weise aufgebaut und in Schritt 812 zur
PLU übermittelt.
Hiermit ist der Algorithmus an der SLU für diese Übermittlung erfolgreich beendet.
-
Schritt 814 wird in der
SLU ausgeführt,
wenn die SLU keinen KDC gemeinsam mit dem PLU-Endknoten nutzt. Schritt 814 durchsucht
die CAT nach einem gemeinsam genutzten Code mit dem Netzknoten F,
welcher dem PLU-Endknoten (G) als Server dient. Wird dieser KDC
in Schritt 815 gefunden, baut Schritt 810 die
Sendung unter Verwendung dieses gemeinsam genutzten Codes auf und überträgt sie wie
oben besprochen. Wenn für
den Server von Knoten G kein gemeinsam genutzter Code gefunden wird,
durchsucht Schritt 816 die CAT nach einem Code, der mit
dem Serverknoten für
diese SLU gemeinsam genutzt wird. In 6 ist
dies Knoten C. Dies ist die letzte Möglichkeit in einer APPN-Architektur
und bei entsprechendem Entwurf durch den Besitzer ist dieser Code
vorhanden und es wird angenommen, dass die verschlüsselte Sendung
zwischen der PLU und der SLU zulässig
ist. In diesem Fall führt
Schritt 818 zur Anwendung dieses Codes zur Verschlüsselung
und Übertragung
des SK an die PLU. Andernfalls ist die Sitzung bei Schritt 820 fehlgeschlagen.
-
Wenn in Schritt 802 festgestellt
wird, dass die SLU kein Endknoten ist, dann muss sie ein Server-Netzknoten
sein und der Algorithmus, der an Sprungmarke A (900) der 9 beginnt, wird eingeleitet.
In Schritt 902 wird ermittelt, ob die PLU ein Endknoten
ist. Wenn die Antwort ja ist, handelt es sich hier um den Fall,
wo die PLU ein Endknoten und die SLU ein Netzknoten ist. Dies wäre z. B.
in 6 der Fall, wenn
Knoten G der Knoten wäre,
der eine Sitzung mit Netzknoten C anfordern würde. In diesem Fall sind die
einzigen Möglichkeiten
in einem APPN-Netzwerk
gemeinsame Codes zwischen dem SLU-Netzknoten C und dem Endknoten
G oder mit dem Netzknoten F, der dem PLU-Endknoten G als Server
dient. In Schritt 904 wird die SLU CAT nach einem gemeinsam
genutzten KDC mit der PLU durchsucht. Wenn ein solcher Code in Schritt 906 gefunden
wird, dient er zur Verschlüsselung
einer SK und deren Übermittlung
an die PLU, u. z. in den Schritten 908, 910 und 912.
Ist die Suche bei Schritt 906 erfolglos, wird in Schritt 914 die
CAT nach einem gemeinsamen KDC mit dem Netzknotenserver der PLU durchsucht.
Dieser KDC wird verwendet, wenn er in Schritt 916 gefunden
wird. Andernfalls ist die Sitzung bei Schritt 918 fehlgeschlagen.
-
Wenn die Prüfung in Schritt 902 ergibt,
dass die PLU kein Endknoten ist, wird Schritt 920 ausgeführt. In
diesem Fall sind sowohl die SLU als auch die PLU Netzknoten. Die
einzige Möglichkeit
in einem APPN-Netzwerk ist nun, dass die SLU einen Code gemeinsam
mit der PLU nutzt. In Schritt 920 wird die CAT nach diesem
Code durchsucht. Wenn dieser gefunden ist, wird er in Schritt 916 verwendet.
Andernfalls ist die Sitzung in Schritt 918 fehlgeschlagen.
-
Wenn in Schritt 804 festgestellt
wird, dass die PLU kein Endknoten ist, wird Sprungmarke B (1000)
in 10 angesprungen.
Dieser Punkt stellt den Fall dar, in dem die SLU ein Endknoten und
die PLU ein Netzknoten ist. In diesem Fall gibt es nur die Möglichkeit,
dass die SLU einen KDC mit dem PLU-Netzknoten oder dem Netzknoten,
der dem SLU-Endknoten als Server dient, gemeinsam nutzt. Schritt 1002 durchsucht
die CAT nach einem KDC, der gemeinsam mit dem PLU-Netzknoten genutzt wird.
Wenn der KDC gefunden ist, wird er, wie bereits erörtert, zur
Verschlüsselung
eines Sitzungscodes in den Schritten 1004, 1006, 1008 und 1010 verwendet. Wird
dieser Code nicht gefunden, wird die CAT nach einem gemeinsamen
KDC mit dem Netzknotenserver der SLU durchsucht. Wird der Code gefunden, wird
er bei 1012 verwendet. Andernfalls ist die Sitzung bei
Schritt 1014 fehlgeschlagen.
-
11 zeigt
einen Beispiel-Algorithmus, der von jedem Knoten bei Erhalt der
ANTWORT-Kommunikation ausgeführt
wird. Der Startpunkt liegt bei Schritt 1100. Man erinnere
sich daran, dass in APPN-Netzwerken Zwischenknoten lediglich die Sendung
zum Zielort weitergeben, ohne irgendeinen wesentlichen Verarbeitungsschritt
durchzuführen.
In Schritt 1102 wird der Route Selection Control Vector (RSCV)
im Kopf der Sendung geprüft
um festzustellen, ob dieser empfangende Knoten ein Zwischenknoten
ist. In diesem Fall sendet Schritt 1104 die Sendung weiter,
wie weiter oben angegeben. Andernfalls prüft Schritt 1106 Feld 704 des
Kopfes um festzustellen, ob dieser empfangende Knoten als Entschlüsselungsknoten
gekennzeichnet ist. Ist dieser Knoten nicht entsprechend gekennzeichnet, transportiert
Schritt 1104 die Sendung erneut weiter, entsprechend seiner
Routingliste im RSCV. Wenn der Empfangsknoten als Entschlüsselungsknoten gekennzeichnet
ist, ermittelt Schritt 1108 aus dem Kopf den Knoten, der
den Nachrichtenteil verschlüsselte,
wählt aus
seiner CAT den KDC, der gemeinsam mit dem verschlüsselnden
Knoten genutzt wird, und entschlüsselt
den in der Nachricht enthaltenen Sitzungscode. Der Empfangsknoten
ermittelt nun, was er mit dem entschlüsselten Sitzungscode tun muss.
Wenn der RSCV diesen Knoten als das endgültige Ziel (die PLU) identifiziert,
wird der Sitzungscode an eine andere Anwendung an dem Knoten zur normalen
Weiterverarbeitung weitergegeben (Schritt 1112). Handelt
es sich bei diesem Knoten nicht um den Zielknoten, muss es entweder
der Netzknoten sein, der dem Urheber (der SLU) als Server dient, oder
der Netzknoten, der dem Zielknoten (der PLU) als Server dient. Dies
wird in Schritt 1114 festgestellt. Ist dieser Knoten der
SLU-Server, wird Marke C in 9 angesprungen,
wie im Ursprungsknoten, wo die CAT durchsucht wird, um einen KDC
entweder für die
PLU oder den Server der PLU zu orten. Wenn ein KDC gemeinsam mit
der PLU genutzt wird, wird dieser Code ausgewählt und zur erneuten Verschlüsselung
des Sitzungscodes verwendet und die neue Sendung wird weiter zur
PLU übermittelt.
Wenn mit der PLU kein KDC gemeinsam genutzt wird, wird der Code
ausgewählt,
der mit dem PLU-Server gemeinsam genutzt wird und es werden dieselben
Schritte mit diesem KDC ausgeführt.
Wenn in Schritt 1114 festgestellt wird, dass dieser Knoten
der Server für den
PLU-Endknoten ist, wird Marke D in 9 angesprungen,
um den KDC auszuwählen,
der gemeinsam mit der PLU genutzt wird.