-
STAND DER TECHNIK
-
Netzsicherheit
wird in dem Maße
immer wichtiger, wie sensiblere Informationen über Kommunikationsnetze übertragen
werden, insbesondere über
das Internet. Infolgedessen hat sich eine Reihe von Sicherheitstechniken
entwickelt, um Daten während
des Transports zu schützen.
Gewisse Netzwerktechnologien können
jedoch einen Zugang zu den geschützten
Daten benötigen,
um zu funktionieren. Zum Beispiel ermöglicht Adressübersetzung
einem Netz, eine Anzahl von Adressen in eine einzige Adresse zu übersetzen
und umgekehrt, was insbesondere für lokale Netze (Local Area
Networks, LANs) nützlich
ist. Adressübersetzung
kann jedoch schwierig auszuführen
sein, wenn geschützte
Daten verwendet werden. Daher kann ein erheblicher Bedarf bestehen,
Adressübersetzung
für geschützte Daten
bei gleichzeitiger Beibehaltung einiger der Vorteile beider Techniken
auszuführen.
-
Ein
Versuch, dieses Problem zu lösen,
wird im Dokument
EP
1 130 846 A2 offenbart, welches ein Netzadressübersetzungs-Gateway beschreibt,
wobei das Gateway eine Tabelle von Sicherheitskennungen verwendet,
um eine Adressübersetzung
auszuführen.
Dieses System weist jedoch ernste Mängel auf. Zum Beispiel ist
das beschriebene Verfahren nicht in der Lage, zwei LAN-Geräte zu handhaben, die
versuchen, eine sichere Kommunikation mit demselben externen Gerät herzustellen.
Ein solches Ereignis tritt häufig
auf, wenn eine große
Anzahl von LANs über
ein Netz verbunden ist.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Aspekte
der Erfindung sind in den beigefügten
Ansprüchen
dargelegt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Der
Gegenstand, der als Ausführungsformen der
Erfindung betrachtet wird, wird im abschließenden Teil der Patentschrift
genau dargelegt und klar beansprucht. Jedoch werden Ausführungsformen der
Erfindung, sowohl was die Organisation als auch was die Funktionsweise
anbelangt, zusammen mit Aufgaben, Merkmalen und Vorteilen derselben,
am besten anhand der nachfolgenden ausführlichen Beschreibung verständlich,
wenn diese in Verbindung mit den beigefügten Zeichnungen studiert wird,
wobei:
-
1 ein
Blockschaltbild eines Systems ist, das für die Realisierung einer Ausführungsform
der Erfindung geeignet ist;
-
2 ein
Blockschaltbild eines Knotens gemäß einer Ausführungsform
der Erfindung ist;
-
3 ein
Blockschaltbild einer Programmpartition gemäß einer Ausführungsform
der Erfindung ist;
-
4 ein
erstes Blockflussdiagramm der Verarbeitungslogik ist, die von einem
Adressmanager für
sichere Verbindungen (Secure Connection Address Manager, SCAM) gemäß einer
Ausführungsform
der Erfindung ausgeführt
wird;
-
5 ein
zweites Blockflussdiagramm der Verarbeitungslogik für einen
SCAM gemäß einer Ausführungsform
der Erfindung ist;
-
6 ein
drittes Blockflussdiagramm der Verarbeitungslogik für einen
SCAM gemäß einer Ausführungsform
der Erfindung ist.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In
der folgenden ausführlichen
Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um
ein umfassendes Verständnis
der Erfindung zu gewährleisten.
Für Fachleute
ist jedoch klar, dass Ausführungsformen
der Erfindung auch ohne diese speziellen Einzelheiten realisiert
werden können.
In anderen Fällen
wurden wohlbekannte Verfahren, Prozeduren, Bauteile und Schaltungen
nicht detailliert beschrieben, um die besagten Ausführungsformen
der Erfindung nicht zu verdecken.
-
Ausführungsformen
der Erfindung können die
Leistungsfähigkeit
eines Kommunikationsnetzes wie etwa eines Paketvermittlungsnetzes
verbessern. Eine Ausführungsform
der Erfindung verbessert die Leistungsfähigkeit eines Paketvermittlungsnetzes, indem
sie die Verwaltung einer Sicherheitsverknüpfung (Security Association,
SA), hier auch als "sichere
Verbindung" bezeichnet,
verbessert. Eine SA kann eine Beziehung zwischen zwei oder mehr
Entitäten definieren,
welche beschreibt, wie die Entitäten
Sicherheitsdienste nutzen werden, um sicher zu kommunizieren. Diese
Beziehung wird durch eine Menge von Informationen repräsentiert,
welche als ein Vertrag zwischen den Entitäten betrachtet werden kann. Die
Informationen sollten zwischen sämtlichen
Entitäten
vereinbart und von ihnen gemeinsam genutzt werden. Manchmal werden
die Informationen allein als eine SA bezeichnet, doch diese sind
normalerweise eine physische Instantiierung der existierenden Beziehung.
Die Existenz dieser Beziehung, die durch die Informationen repräsentiert
wird, ist das, was die vereinbarten Sicherheitsinformationen vorsieht,
um Entitäten
zu ermöglichen,
sicher zu interoperieren.
-
Genauer,
eine Ausführungsform
der Erfindung verwaltet Adressübersetzung
für sichere
Verbindungen. Adressübersetzung
kann in diesem Kontext das Übersetzen
einer großen
Anzahl von Adressen in weniger Adressen oder eine einzige Adresse bezeichnen,
und umgekehrt. Eine Ausführungsform der
Erfindung kann Adressübersetzung
für eine
sichere Verbindung verwalten, indem eine Menge von Heuristiken verwendet wird,
um Routing-Informationen für
ein Paket zu bestimmen. Demzufolge kann dies die Gesamtkapazität und Leistungsfähigkeit
eines Netzes verbessern. Benutzer können dementsprechend von schnelleren
Reaktionszeiten von Netzanwendungen und Diensten profitieren.
-
Paketvermittlung
bleibt nach wie vor eine effiziente Technologie für Sprach-
und Datenübermittlung.
Paketvermittlung kann in diesem Kontext das Übermitteln von Informationen über ein
Netz in der Form von relativ kurzen Paketen bezeichnen. Ein Paket
bezeichnet in diesem Kontext eine Menge von Informationen von einer
begrenzten Länge,
wobei die Länge
normalerweise in Bits oder Bytes ausgedrückt wird. Ein Beispiel einer
Paketlänge
könnte
1000 Bytes sein. Ein Netz umfasst normalerweise eine Anzahl von
Netzknoten, die durch ein Kommunikationsmedium miteinander verbunden
sind. Die Netzknoten können
in der Lage sein, unter Verwendung eines oder mehrerer Protokolle
Informationen über
das Kommunikationsmedium zu anderen Netzknoten zu übermitteln.
Ein Netzknoten kann in diesem Kontext ein beliebiges Gerät beinhalten,
das in der Lage ist, Informationen zu übermitteln, wie etwa einen
Computer, Server, Switch, Router, Bridge, Gateway und so weiter.
Ein Kommunikationsmedium kann ein beliebiges Medium sein, das in
der Lage ist, Informationssignale zu transportieren, wie etwa eine
verdrillte Doppelleitung, ein Koaxialkabel, ein Lichtwellenleiter, Funkfrequenzen
und so weiter. Ein Protokoll kann eine Menge von Anweisungen umfassen,
mittels welcher die Informationssignale über das Kommunikationsmedium übermittelt
werden. Zum Beispiel könnte das
Protokoll ein Paketvermittlungsprotokoll sein, wie etwa das Transmission
Control Protocol (TCP), das von der Internet Engineering Task Force
(IETF) definiert wurde, Standard 7, Request For Comment (RFC) 793,
verabschiedet im September 1981 ("TCP-Spezifikation"), und das Internet
Protocol (IP), das von der IETF definiert wurde, Standard 5, RFC 791
("IP Specification"), verabschiedet
im September 1981, beide erhältlich von "www.ietf.org" (hier zusammen als "TCP/IP-Spezifikation" bezeichnet).
-
Ein
Paketvermittlungsnetz kann eine Anzahl von Netzknoten umfassen,
wie etwa einen Quellknoten, einen Zielknoten und Zwischenknoten.
Der Quellknoten kann einen Knoten umfassen, welcher eine Menge von
Informationen für
die Übermittlung zum
Zielknoten erzeugt. Die Informationen können beliebige Daten umfassen,
die als ein Signal dargestellt werden können, wie etwa ein elektrisches
Signal, optisches Signal, akustisches Signal und so weiter. Beispiele
von Informationen in diesem Kontext können Daten von einem Gespräch, einer
Videokonferenz, Streaming Video, einer elektronischen Nachricht
("E-Mail"), einer Voicemail-Nachricht,
Graphiken, Bilder, Video, Text und so weiter sein. Der Zielknoten
kann einen Knoten umfassen, welcher Informationen empfängt. Die
Zwischenknoten können Knoten
umfassen, welche die Informationen vom Quellknoten zum Zielknoten übertragen.
Um das Routing von Informationen zwischen einem Quellknoten, (einem)
Zwischenknoten und einem Zielknoten zu unterstützen, kann jedem Knoten eine
Netzadresse zugewiesen sein, wie etwa eine IP-Adresse.
-
In
Betrieb kann der Quellknoten Informationen in der Form von Paketen über einen
oder mehrere Zwischenknoten zum Zielknoten senden. Der Quellknoten
zerlegt eine Menge von Informationen in eine Reihe von Paketen.
Jedes Paket kann einen Abschnitt der Informationen plus gewisse
Steuerungsinformationen enthalten. Die Steuerungsinformationen können Zwischenknoten
im Netz dabei unterstützen, jedes
Paket zum Zielknoten zu routen. Der Quellknoten sendet die Pakete über das
Netz, wo ein Zwischenknoten die Pakete empfängt, sie kurzzeitig speichert
und sie zum nächsten
Zwischenknoten weitersendet. Dies setzt sich so lange fort, bis
der Zielknoten letzten Endes die gesamte Reihe von Paketen empfängt und
sie verwendet, um die Informationen vom Quellknoten zu reproduzieren.
-
Pakete
werden normalerweise in "Klartext" gesendet. Dies bedeutet,
dass ein beliebiges Gerät Zugang
zu den Informationen innerhalb eines Paketes haben kann, einschließlich der
Header-Information und der Paketdaten. Unter gewissen Umständen kann
es wünschenswert
sein, eine Sicherheitstechnik zu verwenden, um zu verhindern, dass
unbefugte Benutzer oder Geräte
auf Paketinformationen zugreifen. Pakete können unter Anwendung einer
Anzahl von Sicherheitstechniken geschützt werden, wie etwa gemäß einem
IP-Sicherheitsprotokoll ("IPSec"), wie es in IETF
RFC 2401, 2406, 2407, 2408, 2409 und anderen definiert ist. Ein
Sicherheitsprotokoll enthält
normalerweise Verschlüsselungs-
und Entschlüsselungsalgorithmen,
um ein Paket von Daten während
des Transportes zu schützen.
Dies kann zum Beispiel beim Erzeugen eines virtuellen Privatnetzes
(Virtual Private Network, VPN) zwischen zwei Geräten unter Verwendung physikalischer
Verbindungen, die mit anderen Netzknoten gemeinsam genutzt werden,
von Nutzen sein.
-
Bei
einer Ausführungsform
der Erfindung kann eine sichere Verbindung zum Beispiel gemäß dem von
der IETF vorgeschlagenen Standard mit dem Titel "Internet Security Association and Key
Management Protocol",
RFC 2408, veröffentlicht
im November 1998 ("ISAKMP-Spezifikation"), erzeugt werden.
Die ISAKMP-Spezifikation beschreibt ein Protokoll, das Sicherheitskonzepte
benutzt, die von Nutzen sind, um sichere Verbindungen und kryptographische
Schlüssel
in einer Internet-Umgebung herzustellen. Zum Beispiel kann die ISAKMP-Spezifikation die
Protokollaustausche vorsehen, um eine sichere Verbindung zwischen
verhandelnden Entitäten
herzustellen, gefolgt von der Herstellung einer sicheren Verbindung
durch diese verhandelnden Entitäten
auf der Basis irgendeines Protokolls. Ein Beispiel eines solchen
Protokolls kann ein Protokoll sein, wie das IP Encapsulating Security
Protocol (ESP), das in dem von der IETF vorgeschlagenen Standard
RFC 2406 dargelegt ist, der im November 1998 veröffentlicht wurde ("ESP-Spezifikation"). Die ISAKMP-Spezifikation
kann ferner Prozeduren zum Authentifizieren eines kommunizierenden
Peers, zur Erzeugung und Verwaltung von sicheren Verbindungen, für Schlüsselerzeugungsverfahren
und zur Verminderung von Bedrohungen (Threat Mitigation) (z.B. Denial-of-Service-
und Replay-Attacken) definieren. Alle diese Funktionen können wünschenswert
sein, um sichere Übertragungen
in einer Internet-Umgebung herzustellen und aufrechtzuerhalten.
-
Sichere
Verbindungen und verschlüsselte Pakete
können
jedoch ein Problem für
Netzknoten erzeugen, die dafür
konfiguriert sind, eine Netzadressübersetzung (Network Address
Translation, NAT) auszuführen.
NAT versetzt ein Netz wie etwa ein LAN in die Lage, eine Menge von
IP-Adressen für internen
Verkehr ("interne
Adressen") und eine
zweite Menge von Adressen für
externen Verkehr ("externe
Adressen") zu verwenden.
Zum Beispiel kann ein NAT-Gerät
so betrieben werden, dass es als ein Gateway zwischen einem LAN
und einem anderen Netz wirkt, wobei jeder Netzknoten im LAN ("interner Knoten") eine separate interne
Adresse hat. Jedes Mal, wenn ein Netzknoten aus dem LAN ein Paket
an einen Netzknoten außerhalb
des LAN ("externer Knoten") sendet, kann dieses
das NAT-Gerät
durchlaufen. Das NAT-Gerät kann die
interne Adresse für den
internen Knoten in eine externe Adresse übersetzen, welche von sämtlichen
internen Knoten gemeinsam verwendet wird. In ähnlicher Weise kann jedes Mal,
wenn ein externer Knoten ein Paket an einen internen Knoten sendet,
das NAT-Gerät
die gemeinsam genutzte externe Adresse in eine interne Adresse für den entsprechenden
internen Knoten übersetzen.
Dies kann verschiedene Vorteile bieten, wie etwa eine Erhöhung der
Anzahl von IP-Adressen für einen
Client oder eine Organisation und die Verringerung der Möglichkeit
eines Konflikts mit IP-Adressen, die von anderen Firmen und Organisationen
verwendet werden. Ein NAT-Gerät
benötigt
jedoch normalerweise Informationen aus dem Header eines Pakets, um
eine NAT ordnungsgemäß auszuführen. Diese
Informationen können
zum Beispiel die IP-Adresse und das User Datagram Protocol (UDP)
oder die TCP-Portnummer umfassen. Ein NAT-Gerät ist möglicherweise nicht in der Lage,
diese Informationen aus einem verschlüsselten Paket abzufragen.
-
Herkömmliche
Lösungen
für dieses
Problem sind aus einer Reihe von Gründen nicht zufrieden stellend.
Eine Lösung
könnte
zum Beispiel darin bestehen, verschlüsselte Pakete in UDP- oder
TCP-Pakete einzukapseln, bevor eine NAT ausgeführt wird. Dies wäre jedoch
ein firmenspezifisches Verfahren, für dessen Ausführung viele
herkömmliche
Netzknoten möglicherweise
nicht konfiguriert sind. Eine andere Lösung könnte darin bestehen, ein NAT-Gerät als Teil
der sicheren Verbindung einzubeziehen. Dies könnte eine potentielle Sicherheitsverletzung
verursachen, da Benutzer des NAT-Gerätes Zugang
zu Informationen gewinnen können,
die über
die sichere Verbindung gesendet werden.
-
Ausführungsformen
der Erfindung, die im Folgenden ausführlicher beschrieben werden,
können
Adressübersetzungen über sichere
Verbindungen auf eine Art und Weise bewerkstelligen, welche diese
und andere Probleme verringern oder beseitigen kann. Bei einer Ausführungsform
der Erfindung kann ein Adressmanager für sichere Verbindungen (Secure
Connection Address Manager, SCAM) eine Liste von sicheren Verbindungen
zwischen internen Knoten und externen Knoten verwalten. Diese Liste kann
hier als eine "Flussliste" bezeichnet werden.
Ein "Fluss" kann in diesem Kontext
zum Beispiel einen Fluss von Paketen bezeichnen, der mit einer sicheren
Verbindung verknüpft
ist oder eine solche umfasst. Der SCAM kann eine Flussliste erzeugen,
indem er eine Überwachung
bezüglich
eines bestimmten verschlüsselten
Paketes durchführt,
welches den Beginn eines Flusses kennzeichnet. Bei einer Ausführungsform
der Erfindung führt
der SCAM eine Überwachung
bezüglich
eines ESP-Pakets durch, das eine Sequenznummer eins (1) hat. Normalerweise
gibt das ESP mit dieser Sequenznummer den Beginn eines Flusses von
Paketen an. Der SCAM zeichnet dann eine Kennung für das ESP-Paket
zusammen mit einem Zeitstempel, der angibt, wann das ESP-Paket empfangen
wurde, als Teil der Flussliste auf. Ein Beispiel für die Kennung
kann ein Sicherheitsparameterindex (Security Parameter Index, SPI) sein,
welcher verwendet wird, um zu helfen, ein ESP-Paket zu identifizieren.
Jedes Mal, wenn der SCAM ein ESP-Paket von einem externen Knoten mit
einer externen Adresse als Zieladresse für einen der internen Knoten
in einem LAN empfängt,
kann der SCAM versuchen, eine Kennung für das ESP-Paket des externen
Knotens mit einer Kennung für
ein ESP-Paket zu paaren, die in der Flussliste gespeichert ist.
Zum Beispiel kann der SCAM eine ESP-Paket-Kennung, die den ältesten
Zeitstempel hat, aus der Flussliste wählen. Bei einer alternativen
Ausführungsform
der Erfindung kann der SCAM bestimmen, welcher ISAKMP-Fluss am aktivsten
ist, und das Paket dementsprechend zu der betreffenden internen Adresse
weiterleiten. Die Ausführungsformen
der Erfindung können
weiter unten ausführlicher
beschrieben werden.
-
Es
ist anzumerken, dass eine beliebige Bezugnahme auf "eine Ausführungsform" in der Patentbeschreibung
in diesem Kontext bedeutet, dass ein bestimmtes Merkmal, eine Struktur
oder charakteristische Eigenschaft, die in Verbindung mit der Ausführungsform
beschrieben ist, in wenigstens einer Ausführungsform der Erfindung enthalten
sein kann. Die an verschiedenen Stellen in der Patentbeschreibung verwendete
Formulierung "bei
einer Ausführungsform" bezieht sich nicht
notwendigerweise immer auf dieselbe Ausführungsform.
-
Es
wird nun im Einzelnen auf die Zeichnungen Bezug genommen, in denen
gleiche Teile durchgehend mit denselben Bezugszeichen bezeichnet sind;
in 1 ist ein System dargestellt, das für die praktische
Realisierung einer Ausführungsform
der Erfindung geeignet ist. 1 ist ein
Blockschaltbild eines Systems 100, das einen Netzknoten 102 umfasst,
der mit einem Netz 104 verbunden ist. Ein Netzknoten 106 kann
mit dem Netz 104 verbunden sein, ebenso wie Netzknoten 110 und 112 über ein LAN 108.
Obwohl 1 eine begrenzte Anzahl von Netzknoten zeigt,
ist es klar, dass eine beliebige Anzahl von Netzknoten in dem System 100 verwendet werden
kann und nach wie vor in den Schutzbereich der Erfindung fällt. Ferner
können
der Begriff "Verbindung" und Varianten davon
in diesem Kontext physikalische Verbindungen und/oder logische Verbindungen
bezeichnen.
-
Bei
einer Ausführungsform
der Erfindung kann der Netzknoten 102 ein Quellknoten sein,
der in der Lage ist, eine sichere Verbindung mit einem Zielknoten
zu konfigurieren, wie etwa dem Netzknoten 110 und/oder 112.
Der Netzknoten 102 kann ein Beispiel eines externen Knotens
wie oben beschrieben sein. Der Netzknoten 106 kann ein
Netzknoten wie etwa ein Router sein, der dafür konfiguriert ist, eine NAT
für die
Netzknoten 110 und 112 auszuführen. Bei einer Ausführungsform
der Erfindung umfasst das LAN 108 Netzknoten 106, 110 und 112,
die dafür konfiguriert
sind, miteinander zum Beispiel gemäß einem oder mehreren Ethernet-Protokollen
zu kommunizieren. Die Netzknoten 110 und 112 können Beispiele
eines internen Knotens wie oben beschrieben sein. Bei einer Ausführungsform
der Erfindung kann das Netz 104 Netzknoten umfassen, die
dafür konfiguriert
sind, Informationen gemäß einem
oder mehreren Internet-Protokollen zu übermitteln, wie etwa gemäß der TCP/IP-Spezifikation.
-
Bei
einer Ausführungsform
der Erfindung kann der Netzknoten 102 dafür konfiguriert
sein, eine sichere Verbindung mit einem anderen Netzknoten herzustellen,
wie etwa dem Netzknoten 110 oder 112. Die Netzknoten 110 und 112 können ebenfalls
dafür konfiguriert
sein, eine sichere Verbindung mit einem anderen Netzknoten herzustellen,
wie etwa dem Netzknoten 102. Bei einer Ausführungsform
der Erfindung können
die Netzknoten 102, 110 und 112 eine
sichere Verbindung gemäß der ISAKMP-Spezifikation
und der ESP-Spezifika tion erzeugen, obwohl die Ausführungsformen
der Erfindung in diesem Zusammenhang nicht eingeschränkt sind.
-
2 ist
ein Blockschaltbild eines Knotens gemäß einer Ausführungsform
der Erfindung. 2 zeigt einen Knoten 200,
welcher für
einen beliebigen in 1 dargestellten Netzknoten repräsentativ
sein kann, einschließlich
des Netzknotens 106, der dafür konfiguriert ist, ein NAT
auszuführen.
Der Netzknoten 106 kann eine NAT zum Beispiel gemäß der Informationsspezifikation
mit dem Titel "Traditional
IP Network Address Translator" ausführen, die
durch die RFC 2022 definiert ist, die im Januar 2001 veröffentlicht
wurde ("NAT-Spezifikation"), in der durch die
hier dargelegten Prinzipien modifizierten Form.
-
Der
Knoten 200 kann eine Computerplattform umfassen. Bei dieser
Ausführungsform
der Erfindung umfasst der Knoten 200 einen Prozessor 202,
eine Eingangs-/Ausgangs-(E/A-) Adapter 204, eine Bedienerschnittstelle 206 und
einen Speicher 210. Der Speicher 210 kann Computerprogrammanweisungen
und Daten speichern. Der Prozessor 202 kann Programmanweisungen
ausführen
und die Daten verarbeiten, die im Speicher 210 gespeichert sind.
Der E/A-Adapter 204 kann mit anderen Geräten kommunizieren
und über
eine Verbindung 224 Daten in einen und aus einem Zwischenknoten 200 übertragen.
Die Bedienerschnittstelle 206 kann eine Schnittstelle zwischen
einem Benutzer und einem Betriebssystem 216 zur Verfügung stellen.
Die Bedienerschnittstelle 206 kann Befehle zwischen dem
Benutzer und dem Betriebssystem 216 übertragen und stellt dem Benutzer
Zustandsinformationen zur Verfügung.
Sämtliche
Elemente sind durch einen Bus 208 miteinander verbunden,
welcher ermöglicht, dass
Daten zwischen den Elementen übertragen werden.
Der E/A-Adapter 204 kann einen oder mehrere E/A-Adapter
oder Netzschnittstellen repräsentieren,
welche mit Lokalnetzen oder Weitverkehrsnetzen verbunden sein können, wie
zum Beispiel dem Netz 200. Daher kann die Verbindung 224 eine
Verbindung zu einem Netz oder eine direkte Verbindung zu einem anderen
Gerät darstellen.
Es ist klar, dass der Knoten 200 eine beliebige Anzahl
von E/A-Adaptern und Verbindungen von der Art des E/A-Adapters 204 und
der Verbindung 224 aufweisen kann und nach wie vor in den
Schutzbereich der Erfindung fällt.
-
Der
Prozessor 202 kann ein Prozessor eines beliebigen Typs
sein, der in der Lage ist, die Geschwindigkeit und den Funktionsumfang
zur Verfügung
zu stellen, die gewünscht
werden, um Ausführungsformen
der Erfindung zu implementieren. Zum Beispiel kann der Prozessor 202 ein
Prozessor aus einer Familie von Prozessoren sein, die von Intel
Corporation, Motorola, Compaq, AMD Corporation und Sun Microsystems
hergestellt werden.
-
Der
Speicher 210 kann beliebige Medien umfassen, die in der
Lage sind, Anweisungen zu speichern, die so beschaffen sind, dass
sie von einem Prozessor ausgeführt
werden können.
Zu den Beispielen für
solche Medien gehören
unter anderem Nur-Lese-Speicher (Read-Only Memory, ROM), Direktzugriffsspeicher
(Random Access Memory, RAM), programmierbarer ROM, löschbarer
programmierbarer ROM, elektronisch löschbarer, programmierbarer
ROM, dynamischer RAM, Magnetplatte (z.B. Diskette und Festplattenlaufwerk),
optische Platte (z.B. CD-ROM) und beliebige andere Geräte oder
Signale, welche digitale Informationen speichern können. Bei
einer Ausführungsform
können
die Anweisungen auf dem Medium in einem komprimierten und/oder verschlüsselten
Format gespeichert sein. Die Formulierung "so beschaffen, dass sie von einem Prozessor
ausgeführt
werden können" wird hier in dem
Sinne verwendet, dass sie Anweisungen umfasst, die in einem komprimierten
und/oder verschlüsselten
Format gespeichert sind, sowie Anweisungen, welche kompiliert oder
von einem Installationsprogramm installiert werden können, bevor
sie von dem Prozessor ausgeführt
werden. Ferner kann der Knoten 200 über andere E/A-Steuerungen
verschiedene Kombinationen von maschinenlesbaren Speichergeräten enthal ten,
auf welche durch den Prozessor 202 zugegriffen werden kann
und welche in der Lage sind, eine Kombination von Computerprogrammanweisungen
und Daten zu speichern.
-
Bei
einer Ausführungsform
der Erfindung umfasst der Speicher 210 ein Betriebssystem 216, eine
Programmpartition 212 und eine Datenpartition 214.
Die Programmpartition 212 kann Programmanweisungen speichern
und deren Ausführung
durch den Prozessor 202 ermöglichen, welche die Funktionen
jedes jeweiligen Knotens hier beschriebenen Knotens implementieren,
wie etwa der Netzknoten 102, 106, 110 und 112.
Die Datenpartition 214 kann Daten speichern, die während der
Ausführung
von Programmanweisungen verwendet werden sollen.
-
Der
E/A-Adapter 204 kann eine Netzschnittstelle sein, welche
eine beliebige geeignete Technologie zur Steuerung von Kommunikationssignalen zwischen
Netzgeräten
unter Verwendung einer gewünschten
Menge von Kommunikationsprotokollen, Diensten und Arbeitsabläufen umfassen
kann. Bei einer Ausführungsform
der Erfindung arbeitet der E/A-Adapter 204 gemäß der TCP/IP-Spezifikation, obwohl
die Ausführungsformen
der Erfindung in diesem Zusammenhang nicht beschränkt sind.
-
Der
E/A-Adapter 204 weist außerdem Verbinder zum Verbinden
des E/A-Adapters 204 mit einem geeigneten Kommunikationsmedium
auf. Für Fachleute
ist klar, dass der E/A-Adapter 204 Informationssignale über ein
beliebiges geeignetes Kommunikationsmedium empfangen kann, wie etwa
eine verdrillte Doppelleitung, ein Koaxialkabel, einen Lichtwellenleiter,
Funkfrequenzen und so weiter.
-
3 ist
ein Blockschaltbild einer Programmpartition gemäß einer Ausführungsform
der Erfindung. 3 zeigt eine Programmpartition,
welche für
die Programmpartition 212 repräsentativ sein kann, wobei die
Programmpartition einen Adressmanager für sichere Verbindungen (Secure
Con nection Address Manager, SCAM) 300 aufweist. Bei dieser Ausführungsform
kann der SCAM 300 Programmanweisungen enthalten, um eine
Adressübersetzung für sichere
Verbindungen über
ein NAT-Gerät,
wie etwa den Netzknoten 106, zu bewerkstelligen. Genauer,
der SCAM 300 kann drei Mengen von Programmanweisungen benutzen,
die hier als ein Flussmodul 302, ein Übersetzungsmodul 304 bzw.
ein Kommunikationsmodul 306 bezeichnet werden. Natürlich ist
der Schutzbereich der Erfindung nicht auf diese speziellen Mengen
von Anweisungen beschränkt.
-
Die
Funktionsweisen der Systeme 100 und 102 sowie
der Modele 300, 302, 304 und 306 können unter
Bezugnahme auf 4-6 und die
beigefügten
Beispiele genauer beschrieben werden. Obwohl die 4-6 in
der hier dargestellten Form eine bestimmte Verarbeitungslogik enthalten
können, ist
klar, dass die Verarbeitungslogik lediglich ein Beispiel dafür liefert,
wie der allgemeine Funktionsumfang, der hier beschrieben ist, implementiert
werden kann. Ferner muss nicht jede Operation innerhalb einer angegebenen
Verarbeitungslogik zwangsläufig
in der dargestellten Reihenfolge ausgeführt werden, sofern nichts anderes
angegeben ist.
-
4 ist
ein erstes Blockflussdiagramm der Verarbeitungslogik, die von einem
SCAM gemäß einer
Ausführungsform
der Erfindung ausgeführt
wird. Die Verarbeitungslogik 400 kann ein Verfahren zum Verwalten
der Adressübersetzung
für sichere
Verbindungen veranschaulichen. Ein verschlüsseltes Paket mit einer Kennung
und einer externen Adresse, welche mehrere interne Adressen repräsentiert,
wird in einem Block 402 empfangen. Eine der internen Adressen
wird im Block 404 ausgewählt. Das verschlüsselte Paket
wird im Block 406 zu der ausgewählten internen Adresse übertragen.
-
5 ist
ein zweites Blockflussdiagramm der Verarbeitungslogik, die von einem
SCAM gemäß einer
Ausführungsform
der Erfindung ausgeführt wird.
Die Verarbeitungslogik 500 kann ein Verfahren zum Verwalten
der Adressübersetzung
für sichere Verbindungen
veranschaulichen, und insbesondere zum Auswählen einer internen Adresse
aus einer Flussliste. Eine Liste von Kennungen mit zugehörigen Zeiten
kann im Block 502 durchsucht werden. Eine Kennung mit einer
frühesten
Zeit kann im Block 504 ausgewählt werden. Eine interne Adresse,
die mit der ausgewählten
Kennung verknüpft
ist, kann im Block 506 abgerufen werden.
-
Bei
einer Ausführungsform
der Erfindung kann eine Liste wie folgt durchsucht werden. Zuerst wird
eine Flussliste erzeugt. Die erzeugte Liste kann dann durchsucht
werden. Die Liste kann erzeugt werden, indem ein verschlüsseltes
Paket, das eine vorgegebene Sequenznummer und eine Kennung aufweist,
von einem Gerät
empfangen wird, das mit einer der oben erwähnten internen Adressen verknüpft ist.
Es wird eine Bestimmung hinsichtlich einer Zeit vorgenommen, zu
der das Paket empfangen wurde. Die Zeit und die interne Adresse
können
mit der Kennung verknüpft
werden und in einem Speicher gespeichert werden.
-
Bei
einer Ausführungsform
der Erfindung kann das Paket zum Beispiel gemäß der ISAKPM-Spezifikation
verschlüsselt
sein. Das verschlüsselte
Paket kann zum Beispiel ein ESP-verschlüsseltes Paket sein. Die Kennung
kann zum Beispiel ein SPI sein.
-
Bei
einer Ausführungsform
der Erfindung wird möglicherweise
keine interne Adresse für
das verschlüsselte
Paket gefunden, oder das verschlüsselte
Paket kann an die falsche interne Adresse gesendet worden sein.
In diesem Falle kann das NAT-Gerät
eine Nachricht empfangen, dass das verschlüsselte Paket an eine falsche
interne Adresse gesendet wurde, und ein Aktivitätsniveau für jeden Tunnel bestimmen, der
an irgendeinem Gerät
endet, das durch die mehreren internen Adressen repräsentiert
wird. Das verschlüsselte
Paket kann dann zu einer internen Adresse übermittelt werden, die einen Tunnel
mit einem höchsten
Aktivitätsniveau
aufweist.
-
6 ist
ein drittes Blockflussdiagramm der Verarbeitungslogik, die von einem
SCAM gemäß einer
Ausführungsform
der Erfindung ausgeführt
wird. Die Verarbeitungslogik 600 kann ein Verfahren zum Verwalten
der Adressübersetzung
für sichere
Verbindungen veranschaulichen. Eine Liste von Kennungen kann im
Block 602 erzeugt werden. Jede Kennung in der Liste kann
einen Tunnel repräsentieren, der
an einem Gerät
mit einer internen Adresse endet. Jede der internen Adressen wird
im Block 604 in eine externe Adresse übersetzt. Ein verschlüsseltes
Paket, welches die externe Adresse aufweist, kann im Block 606 empfangen
werden. Eine der internen Adressen kann im Block 608 unter
Verwendung der Liste von Kennungen ausgewählt werden. Das verschlüsselte Paket
kann im Block 610 zu der ausgewählten internen Adresse übermittelt
werden.
-
Die
Funktionsweisen der Systeme 100 und 102 sowie
der Modele 300, 302, 304 und 306 können unter
Verwendung des folgenden Beispiels noch weiter beschrieben werden.
Angenommen, ein Netzknoten wie etwa der Netzknoten 110 wird
angewiesen, eine sichere Verbindung mit dem Netzknoten 102 herzustellen.
Der Netzknoten 112 kann für die sichere Verbindung zum
Beispiel gemäß der ISAKMP-Spezifikation
verhandeln. Zum Beispiel kann die ISAKMP-Spezifikation die Protokollaustausche
vorsehen, um eine sichere Verbindung zwischen verhandelnden Entitäten herzustellen,
gefolgt von der Herstellung einer sicheren Verbindung durch diese
verhandelnden Entitäten
auf der Basis irgendeines Protokolls. Ein Beispiel eines solchen
Protokolls kann ein Protokoll sein, wie es in der ESP-Spezifikation
dargelegt ist. Zuerst ermöglicht ein
Anfangs-Protokollaustausch, dass eine Grundmenge von Sicherheitsattributen
vereinbart wird. Diese Grundmenge gewährleistet einen Schutz für anschließende ISAKMP-Austausche.
Sie gibt außerdem
das Authentifi zierungsverfahren und den Schlüsselaustausch an, welche als
Teil des ISAKMP-Protokolls ausgeführt werden sollen. Nachdem
die Grundmenge von Sicherheitsattributen vereinbart worden ist,
eine Anfangskennung authentifiziert worden ist und erforderliche
Schlüssel
erzeugt worden sind, kann die hergestellte SA für nachfolgende Übertragungen
durch die Entität,
welche ISAKMP aufgerufen hat, verwendet werden.
-
Als
Teil des Verhandlungsprozesses zum Aufbauen der sicheren Verbindung
kann der Netzknoten 110 beginnen, Pakete über den
Netzknoten 106 zum Netzknoten 102 zu senden. Bei
einer Ausführungsform
der Erfindung ist der Netzknoten 106 ein Router, der dafür konfiguriert
ist, NAT zum Beispiel gemäß der NAT-Spezifikation
auszuführen.
Der Netzknoten 106 kann auch mit einem SCAM konfiguriert
sein, wie etwa einem SCAM 3000. Der Netzknoten 106 kann
die Quell-/Zieladressen und die Quell-/Zielports für den UDP-Fluss
mitteilen, die für das
ISAKMP verwendet wurden. Der Netzknoten 106 kann die interne
Adresse für
den Netzknoten 110 in eine einzige externe Adresse übersetzen,
die von dem Netzknoten 106 für alle von dem LAN 108 stammenden
Pakete verwendet wird.
-
In ähnlicher
Weise werde angenommen, dass der Netzknoten 112 ebenfalls
den Verhandlungsprozess für
eine sichere Verbindung zum Netzknoten 102 über den
Netzknoten 106 unter Verwendung von ISAKMP beginnt. Der
Netzknoten 106 kann denselben Benachrichtigungs- und Übersetzungsprozess
ausführen,
der für
die sichere Verbindung des Netzknotens 110 ausgeführt wurde.
Falls der UDP-Quellport für
den Netzknoten 112 derselbe ist wie der UDP-Quellport für den Netzknoten 110,
wird er zu einem nicht verwendeten Wert übersetzt.
-
Angenommen,
der Netzknoten 110 sendet sein erstes verschlüsseltes
ESP-Paket. Das Flussmodul 302 kann das ESP-Paket verwenden,
um eine Flussliste zu erzeugen. Die Flussliste kann zum Beispiel
durch Inspizieren der Verhandlung einer sicheren Verbindung erzeugt
werden. In diesem Bei spiel kann eine sichere Verbindung gemäß der ISAKMP-Spezifikation
erzeugt werden. Gemäß der ISAKMP-Spezifikation
werden alle sicheren Verbindungen unter Verwendung einer speziellen
Portnummer erzeugt, welche Port 500 ist. Das Flussmodul 302 kann
dafür konfiguriert
sein, alle Flüsse
zu überwachen,
die einen Zielport das abgehenden Verkehrs 500 oder einen
Quellport des ankommenden Verkehrs 500 haben, und einen
SPI für
alle ESP-Pakete abrufen, die eine bestimmte Sequenznummer haben, wie
etwa die Sequenznummer 1. Dieses Paket kennzeichnet normalerweise
den Beginn eines Flusses. Das Flussmodul 302 des SCAM 300 kann
dieses ESP-Paket
empfangen und seinen SPI abrufen. Das Flussmodul 302 kann
dann den abgerufenen SPI und einen Zeitstempel in seiner Flusstabelle
speichern, zusammen mit der internen Adresse für den Netzknoten 110.
Das ESP-Paket kann dann zu dem Netzknoten 102 weitergeleitet
werden, zum Beispiel durch das Kommunikationsmodul 306.
-
Angenommen,
der Netzknoten 112 sendet sein erstes ESP-Paket. Das Flussmodul
kann dann einen neuen Eintrag in der Flusstabelle erzeugen, indem
es den SPI und den Zeitstempel für
dieses Paket und die interne Adresse des Netzknotens 112 verwendet.
-
Der
Netzknoten 102 kann sein erstes ESP-Paket an den Netzknoten 106 senden.
Der Netzknoten 102 tut dies, da die Zieladresse, die er aus
den ESP-Paketen empfangen hat, die von den Netzknoten 110 und 112 an
ihn gesendet wurden, eine einzige externe Adresse war, die den Netzknoten 106 identifiziert.
Der Netzknoten 106 muss nun bestimmen, ob das ESP-Paket vom Netzknoten 102 für den Netzknoten 110 oder
den Netzknoten 112 bestimmt ist. Das Übersetzungsmodul 304 des
SCAM 300 kann dies bewerkstelligen, indem es nach dem ältesten
nicht gepaarten ESP-Paket in der Flussliste sucht, das eine Sequenznummer
1 hat. Da das älteste
ESP-Paket dasjenige von dem Netzknoten 110 war, ruft das Übersetzungsmodul 304 die
interne Adresse für
den Netzknoten 110 ab und gibt diese Information an das
Kommunikationsmodul 306 weiter. Das Kommunikationsmodul 306 kann
das ESP-Paket vom Netzknoten 102 unter Verwendung der abgerufenen
internen Adresse zum Netzknoten 110 weiterleiten. Danach
kann der Netzknoten 106 Pakete, welche denselben SPI wie
das erste ESP-Paket haben, an dieselbe interne Adresse weiterleiten.
-
Der
Netzknoten 102 kann ein zweites ESP-Paket an den Netzknoten 106 senden.
Der Netzknoten 106 muss nun erneut bestimmen, ob das ESP-Paket
vom Netzknoten 102 für
den Netzknoten 110 oder den Netzknoten 112 bestimmt
ist. Das Übersetzungsmodul 304 greift
auf seine Flusstabelle zu, um nach dem ältesten nicht gepaarten ESP-Paket
in der Flussliste zu suchen, das eine Sequenznummer 1 hat. Dies
ist das ESP-Paket vom Netzknoten 112. Das Übersetzungsmodul 304 ruft
die interne Adresse für
den Netzknoten 112 ab und gibt diese Information an das
Kommunikationsmodul 306 weiter. Das Kommunikationsmodul 306 kann
das ESP-Paket vom Netzknoten 102 unter Verwendung der abgerufenen internen
Adresse zum Netzknoten 112 weiterleiten. Danach kann der
Netzknoten 106 Pakete, welche denselben SPI wie das zweite
ESP-Paket haben, an dieselbe interne Adresse weiterleiten.
-
Obwohl
gewisse Merkmale der Ausführungsformen
der Erfindung hier dargestellt und beschrieben wurden, sind für Fachleute
nun viele Modifikationen, Substitutionen, Änderungen und Äquivalente denkbar.
Es versteht sich daher, dass die beigefügten Ansprüche alle solchen Modifikationen
und Änderungen,
die in den Schutzbereich der Ansprüche fallen, mit einschließen sollen.