-
Die
voliegende Erfindung betrifft Schutz- und Zugriffsprotokolle für Netzwerke,
wie Computernetzwerke und dergleichen. Insbesondere betrifft die
vorliegende Erfindung ein Schema, das Zugang zu und von Vorrichtungen
auf geschützten
Netzwerken von außerhalb
der geschützten
Netzwerke gestattet.
-
Netzwerke,
die mit dem Internet verbunden sind, verlassen sich auf Firewalls
und Proxyserver, um die Netzwerke vor dem Eindringen unbefugter Personen
zu schützen.
Firewalls erlauben typischerweise nur ankommende Verbindungen zu
bestimmten Maschinen und/oder über
besondere Protokolle (TCP/IP, HTTP, FTP usw.), während sie jeglichen anderen
Verkehr unterbinden. Firewalls können,
genauso wie ausgehende Proxyserver, auch den Verkehr von dem Netzwerk
zum Internet einschränken,
durch Einschränken
von Zielen und/oder durch Protokolle. Diese Sicherheitsbeschränkungen
vereiteln jedoch oft einige Anwendungen des Internet für rechtmäßige Zwecke.
Zum Beispiel werden die Diagnose und Wartung von entfernten Netzwerkvorrichtungen durch
Firewalls stark beeinträchtigt,
wenn nicht gänzlich
unterbunden.
-
Einige
Firewalls können
modifiziert und/oder rekonfiguriert werden, um den Eintritt von
Verkehr zu erlauben, aber dies kann den Kauf zusätzlicher Hardware und/oder
Software erfordern. Die mit dem Kauf von Hardware und/oder Software
verbundenen Kosten, verbunden mit der Schwierigkeit, eine Änderung in
der Firmenpolitik bezüglich
der Netzwerksicherheit zu bewirken, würde wahrscheinlich ein bedeutsames Hindernis
für die
Verwirklichung solcher Modifikationen sein. Außerdem setzen viele Firewalls
und/oder Router Adressen-Verschleierung und Netzwerkadressen-Übersetzung
(NAT) ein. Verschleierung und NAT erlauben den Gebrauch von internen
Netzwerk-Adressräumen,
verhindern aber typischerweise, dass ankommender Verkehr die internen
Adressen erreicht, da die internen Adressen nicht routbar und nicht
einmalig sind. Keine kommerziell genutzte oder verfügbare Technik
scheint in der Lage zu sein, all diese Probleme ohne Änderungen
von Firewall-/Proxyserver-Konfigurationen, Firewall-/Proxyserver-Fähigkeiten
und/oder der Netzwerk-Sicherheitspolitik zu lösen. Viele virtuelle Privatnetzwerk- (VPN)
Schemas stellen Zugang zu privaten Netzwerken über das Internet bereit, aber
alle benötigen
umfangreiche Änderungen
an den Firewalls, Proxyservern und/oder der Sicherheitspolitik der
verbundenen Netzwerke.
-
WO-A-01/65768,
veröffentlicht
am 7. September 2001 und somit Bestandteil des Standes der Technik
unter Artikel 54 (3) EPC, offenbart ein Zugangssystem, bei dem ein
Proxyserver und ein Abrufserver auf entgegengesetzten Seiten einer
Firewall angeordnet sind. Der Abrufserver befragt periodisch den
Proxyserver durch die Firewall, um festzustellen, ob Anwendungsdaten
in einer Warteschlange des Proxyservers warten.
-
Nach
einem Aspekt der vorliegenden Erfindung umfasst ein Rückwärts-Proxynetzwerk-Kommunikationsschema:
einen
Proxyagenten, der innerhalb eines geschützten Netzwerks gelegen ist
und durch wenigstens eine interne Netzwerkvorrichtung adressierbar
ist, wobei der Proxyagent ausgehende Netzwerkverbindungen herstellt;
eine
Sicherheitsvorrichtung, durch die jeder Verkehr zwischen dem geschützten Netzwerk
und externen Netzwerken laufen muss, wobei die Sicherheitsvorrichtung
wenigstens ausgehende Verbindungen über wenigstens ein vorbestimmtes
Netzwerkprotokoll gestattet;
einen externen Proxyserver außerhalb
des geschützten
Netzwerks und erreichbar durch den Proxyagenten über ausgehende Netzwerkverbindungen
durch die Sicherheitsvorrichtung, wo wobei der externe Proxyserver
auch durch wenigstens eine externe Netzwerkvorrichtung adressierbar
ist, um dadurch Kommunikation zwischen der wenigstens einen externen
Netzwerkvorrichtung und der wenigstens einen internen Netzwerkvorrichtung
zu gestatten, wobei der Proxyagent und der externe Proxyserver eingerichtet
sind, zu kommunizieren, indem der Proxyagent veranlasst wird, sich
mit dem externen Proxyserver zu verbinden, um anhängigen Verkehr
zu prüfen,
wobei der externe Proxyserver einen langsamen Strom von unechten
Bytes zurückgibt,
der von dem Proxyagenten ignoriert wird, wenn nichts anhängig ist,
und der externe Proxyserver sofort Daten an den Proxyagenten sendet,
wenn der externe Proxyserver Daten von einem Client empfängt, um
so die Verbindung zu schließen,
um jegliche durch eingreifende (ausgehende) Proxyserver durchgeführte Pufferung auszuspülen.
-
Nach
einem zweiten Aspekt der vorliegenden Erfindung umfasst ein Verfahren,
um auf eine interne Netzwerkvorrichtung auf einem geschützten Netzwerk,
das eine Sicherheitsvorrichtung enthält, zuzugreifen, die folgenden
Schritte:
Speichern von Daten, die an die interne Netzwerkvorrichtung
adressiert sind, in einem externen Proxyserver;
Unterhalten
eines Proxyagenten auf dem geschützten
Netzwerk, wobei der Proxyagent die folgenden Schritte ausführt:
Abfragen
des externen Proxyservers nach Daten, die an die interne Netzwerkvorrichtung adressiert
sind;
Befördern
aller Daten, die sich auf dem externen Proxyserver befinden und
an die interne Netzwerkvorrichtung adressiert sind, zu der internen
Netzwerkvorrichtung, und
Befördern aller Daten, die an eine
externe Vorrichtung in Kommunikation mit dem externen Proxyserver
adressiert sind, zu dem externen Proxyserver, wobei das Abfragen
umfasst:
Verbinden mit dem externen Proxyserver, um anhängigen Verkehr
zu prüfen;
Zurückgeben
eines langsamen Stromes von unechten Bytes, die von dem Proxyagenten
ignoriert werden, wenn nichts anhängig ist;
sofortiges Senden
von Daten von dem externen Proxyserver an den Proxyagenten, wenn
der externe Proxyserver Daten von einem Client empfängt, um
so die Verbindung zu schließen,
um jegliche durch eingreifende (ausgehende) Proxyserver durchgeführte Pufferung
auszuspülen.
-
Verschiedene
Ausführungen
der Erfindung erlauben, dass Verkehr von außerhalb eines geschützten Netzwerks
mit einer internen Netzwerkvorrichtung des geschützten Netzwerks durch eine
zum Schützen
des Netzwerks konfigurierte Firewall verbunden wird. Zum Beispiel
kann TCP/IP-Verkehr, der über
das Internet zu dem geschützten
Netzwerk läuft, einen
beabsichtigten Computer auf dem internen Netzwerk erreichen. Die
eingesetzte Technik erfordert wenig oder keine Veränderung
der beabsichtigten internen Netzwerkvorrichtung, des Proxyservers oder
der sicherheitspolitischen Konfiguration, solange ausgehende Verbindungen über wenigstens
ein Protokoll, wie z. B. HTTP, erlaubt sind. Die ausgehenden Verbindungen
können,
wenn nötig, über einen Proxyserver
hergestellt werden. Selbst wenn die ausgehende Verbindung auf ein
Protokoll begrenzt werden kann, ist ankommender Verkehr dennoch
nicht auf das eine Protokoll begrenzt und kann jedes Protokoll einsetzen,
das das Internet und das geschützte Netzwerk
sowie die beabsichtigte Vorrichtung zu übertragen und/oder zu handhaben
imstande sind. Öffentliche
Adressierbarkeit des geschützten
Netzwerks ist nicht erforderlich, was einen Zugang zu dem privaten,
nicht einmaligen Adressraum ermöglicht,
der gewöhnlich
von Clients außerhalb
des geschützten
Netzwerks nicht erreichbar ist. Dennoch bewahrt die Technik die
Netzwerksicherheit durch mehrere eingebaute Sicherheitsmaßnahmen.
-
Die
von verschiedenen Ausführungen
der Erfindung angewandte Technik wird als "Reverse Proxying" bezeichnet, zum Teil deshalb, weil
sie zwei Hauptkomonenten umfasst: einen Pro xyagenten, der sich innerhalb
des geschützten
Netzwerks befindet, und einen externen Proxyserver, der sich außerhalb des
geschützten
Netzwerks (z. B. auf dem Internert) an einer Stelle befindet, die
durch den Proxyagenten erreichbar ist. Der externe Proxyserver speichert
Verkehr, der an Vorrichtungen innerhalb des geschützten Netzwerks
adressiert ist, bis ein Proxyagent in eine Warteschlange gestellten
Verkehr entdeckt, der für
das geschützte
Netzwerk bestimmt ist, wobei dann der externe Proxyserver diesen
Verkehr zu der oder den beabsichtigten internen Netzwerkvorrichtung(en)
befördert.
Der Proxyserver wiederum leitet alle Antworten, die er von der oder
den internen Netzwerkvorrichtung(en) empfängt, zurück zu dem externen Proxyserver,
der die Antworten an die beabsichtigten Clients sendet.
-
Der
externe Proxyserver repräsentiert
Clients, die mit den internen (geschützten) Netzwerkvorrichtungen
verbunden sind. Zum Beispiel können Clients
TCP/IP-Verbindungen zu dem Proxyserver herstellen und Daten an den/von
dem externen Proxyserver auf designierten TCP/IP-Ports senden bzw. empfangen,
die tatsächlich
durch den externen Proxyserver zu dem Proxyagenten befördert werden. Desgleichen
ist der Proxyagent mit den ansonsten unzugänglichen internen Netzwerkvorrichtungen
verbunden und sendet/empängt
Daten, als ob er der Client wäre.
Für einen
wirklichen externen Client ist der externe Proxyserver die interne
Netzwerkvorrichtung. Der externe Proxyserver verkleidet sich daher als
die interne Netzwerkvorrichtung oder "gibt vor", diese zu sein. Für eine interne Netzwerkvorrichtung ist
der Proxyagent der externe Client. Der Proxyagent verkleidet sich
daher als Client oder "gibt
vor", dieser zu
sein. Die Verbindung zwischen dem externen Proxyserver und dem Proxyagenten
ist sowohl für
den externen Client als auch die interne Netzwerkverbindung transparent
und stellt kein Problem für
sie dar.
-
Um
die transparente Verbindung zu bewerkstelligen, setzt die Erfindung "trickle down polling" ein, um Latenz zu
verringern und hoch ansprechenden Servive bereitzustellen, ohne
die hohen Netzwerkbelasungen aufzubürden, die aus zu häufigem Abfragen
entstehen können.
Außerdem
können
verschiedene Sicherheitsmaßnahmen
eingebaut sein, um sicherzustellen, dass sie nicht benutzt werden kann,
um die Integrität
und Vertraulichkeit des Netzwerks, das sie bedient, zu verletzen,
bis zu den höchsten
Standards, die von gegenwärtigen
Internet-Anwendungen erfüllt
werden. Zum Beispiel kann die Kommunikation zwischen dem Proxyagenten
und dem externen Proxyserver mit einem Verschlüsselungssystem, z. B. der Industrie-Standard
Secure Sockets Layer (SSL) für
HTTP, verschlüsselt
werden, um Belauschen zu verhindern. Die Beglaubigung des Agenten
und des Servers kann durchgeführt
werden, indem z. B. x.509 Zertifikate für beide verlangt werden, oder
mit einer anderen Beglaubigungstechnik, z. B. anderen "public key" basierten Verschlüsselungssystemen,
und können
durch eine vertraute Zertifizierungs-Autorität verifiziert werden. Der externe
Proxy server implementiert auch einen Cookie-Umschreibprozess, der
sicherstellt, dass alle Cookies wirklich einmalige Identifizierer
haben. Sollte ein Browser versuchen, ein Cookie zu einem Ziel zu senden,
für das
es nicht gedacht ist, wird der externe Proxyserver stillschweigend
das Cookie aus der Anforderung entfernen. Des Werteren kann Netzwerk-Administratoren
eine feinkörnige
Kontrolle über das
Reverse Proxying System eingeräumt
werden.
-
Einige
Beispiele von erfindungsgemäßen Schemas
und Verfahren werden nun mit Verweis auf die begleitenden Zeichnungen
beschrieben. Inhalt der Zeichnungen:
-
1 veranschaulicht
ein typisches geschütztes
Netzwerk, das mit dem Internet verbunden ist.
-
2A zeigt
ein vereinfachtes Schaltbild der Verbindungen zwischen einer Client-Maschine
auf einem geschützten
Netzwerk und einem Server auf dem Internet.
-
2B zeigt
ein vereinfachtes Schaltbild der Verbindungen zwischen einer Client-Maschine
auf dem Internet und einem Server auf einem geschützten Netzwerk
nach den Prinzipien der in dieser Anmeldung beschriebenen Erfindung.
-
3 zeigt
ein ausführlicheres
Schaltbild der Verbindungen zwischen Client-Maschinen und Servern
auf geschützten
Netzwerken nach den Prinzipien der in dieser Anmeldung beschriebenen
Erfindung.
-
4 zeigt
zwei exemplarische private Netzwerke, mit denen ein Web-Browser
durch einen Rückwärts-Proxyserver
verbunden ist. Die zwei getrennten Netzwerke besitzen identische
private Netzwerkadressen, und die Zeichnung zeigt, wie Cookies, die
von diesen Netzwerken herrühren,
durch den Browser verwechselt werden können.
-
5 zeigt
eine exemplarische Zeitlinie eines HTTP-Cookie-Protokolls, das in
Ausführungen der
Erfindung benutzt werden kann, wo ein Browser mit einem einmaigen
Netzwerk-Adressraum verbunden ist.
-
6 zeigt
eine exemplarische Zeitlinie eines HTTP-Cookie-Protokolls, das in
Ausführungen der
Erfindung benutzt werden kann, wo duplizierte private Netzwerk-Adressräume verwechselt
werden.
-
Bei
verschiedenen Ausführungen
der Erfindung kann Kommunikation zwischen einer internen Vorrichtung
eines geschützten
Netzwerks und einer externen Vorrichtung eines geschützten Netzwerks zustande
gebracht werden, wo herkömmliche
Sicherheitsvorrichtun gen wie Firewalls und/oder Proxyserver eine
solche Kommunikation nicht zulassen würden. Zum Beispiel können ankommende
TCP/IP-Verbindungen von einem Netzwerk 10, z. B. dem Internet,
außerhalb
eines Firewall-geschützen
Netzwerks 50 mit geschützten/internen
Vorrichtungen auf dem geschützten
Netzwerk vorkommen. Die in verschiedenen Ausführungen benutzte Technik verlangt
keine Änderung
der Firewall 20 Konfiguration oder der bestehenden Sicherheitspolitik,
vorausgesetzt dass die Firewall 20 ausgehende HTTP-Verbindungen
von der geschützten/internen
Vorrichtung erlaubt. Ankommende Verbindungen sind nicht auf ein
bestimmtes Protokoll, z. B. HTTP, beschränkt, können aber geeignete Netzwerkprotokolle
sein, z. B. FTP, Gopher, Smtp, Pop, HTTP, Rtsp und IPX und andere. Die
ausgehenden Verbindungen sind nicht auf HTTP begrenzt, können aber
jedes geeignete Protokoll sein, das die Netzwerke, die Firewall
und/oder die Proxyserver handhaben können. Weder ist eine Änderung
der typischerweise mit einem geschützten Netzwerk verbundenen
Vorrichtungen erforderlich, noch erfordert ein nach den Prinzipien
der Erfindung eingesetztes System, dass das geschützte Netzwerk öffentlich
adressierbar ist. In diesem Beispiel enthält das geschützte Netzwerk 50 eine
Anzahl von Desktop-Vorrichtungen 52 einen Internet-Web-Server 51, der
mit einem Router 53 verbunden ist. Die verwendete Technik
wird unverändert
in einem privaten, nicht einmaligen Adressraum funktionieren, der
gewöhnlich
für Clients
auf dem Internet 10 nicht erreichbar ist. Mehrere eingebaute
Sicherheitsmaßnahmen bewahren
die Vertraulichkeit des mit einer Firewall versehenen Netzwerks.
-
1 veranschaulicht
eine hoch sichere Netzwerkkonfiguration mit doppelten Firewalls 20,
einem öffentlichen "Demilitarisierte-Zone"- (DMZ) Segment 30 mit
einem Webserver 31 und Mailserver 32, die durch
einen Router 33 verbunden sind, und einem privaten Adressraum 50,
der für äußere Hosts völlig unzugänglich ist
und mit dem DMZ-Segment 30 über eine NAT-Verschleierungs-Firewall 40 verbunden
ist. Vorrichtungen und Server zum internen Gebrauch würden auf
dem privaten Segment untergebracht werden und würden daher gewöhnlich von dem
Internet 10 völlig
isoliert sein.
-
Durch
Anwenden der Techniken von verschiedenen Ausführungen der Erfindung ist Netzwerkverkehr
zwischen externen Netzwerkvorrichtungen und hinter der Sicherheitsvorrichtung 20 verborgenen
internen Netzwerkvorrichtungen möglich, selbst
wenn das geschützte
Netzwerk einen privaten Adressraum verwendet. Zum Beispiel können Ausführungen ähnlich der
in 2B gezeigten TCP/IP-Konnektivität zwischen
einer externen Vorrichtung und hinter Firewalls 20 verborgenen
Vorrichtung aufweisen. Die einzige Annahme, die getroffen wird ist,
ist die, dass ausgehende Verbindungen, z. B. Internet-Verbindungen,
durch die externe Firewall-Konfiguration erlaubt sind, möglicherweise durch
einen ausgehenden Proxyserver und durch Firmen-Sicherheitspolitik.
Keine Änderungen
sind nötig
an:
- 1. Den Netzwerkvorrichtungen.
- 2. Den zum Schützen
des Netzwerks benutzten Firewalls.
- 3. Der Firmen-Sicherheitspolitik.
- 4. Den Adrressräumen.
- 5. Den zum Verbinden mit den verborgenen Vorrichtungen verwendeten
Clients.
- 6. Dem von dem Client und dem Server verwendeten TCP/IP-Protokoll.
-
Das
Nichtvorhandensein solcher Änderungen
kann es einfach und billig machen, die Prozesse der vorliegenden
Erfindung im Wesentlichen ohne Störung des bestehenden Netzwerks
einzusetzen, was eine beträchtliche
Verbeeserung gegenüber
bestehenden Lösungen
sein kann.
-
Wie
z. B. in 2B und 3–6 gezeigt,
umfasst "Reverse
Proxying" hauptsächlich zwei
Komponenten: Den Proxyagenten 240 und den externen Proxyserver 250.
Der Proxyagent 240 befindet sich innerhalb des geschützten Netzwerks 50 und
ist mit einer geschützten
Vorrichtung 200 verbunden. Es wird angenommen, dass dieser
Agent die Fähigkeit
besitzt, ausgehende Netzwerkverbindungen, z. B. HTTP-Verbindungen,
möglicherweise durch
einen ausgehenden Proxyserver, mit dem Internet 10 herzustellen.
Zu Zwecken der Erklärung von
Ausführungen
der Erfindung werden bestimmte Protokolle benutzt werden, aber die
Erfindung ist nicht auf die in diesem Beispiel benutzten Protokolle begrenzt.
In dem Beispiel von 2B befindet sich der externe
Proxyserver 250 außerhalb
des geschützten
Netzwerks 50 auf dem Internet 10 an einer von
dem Agenten erreichbaren Stelle und empfängt Verkehr von externen Vorrichtungen 230,
der an die internen Netzwerkvorrichtungen 200 adressiert
ist. Zwischen dem Proxyserver 250 und dem Proxyagenten 240 ist
eine Firewall vorhanden. Der Proxyagent 240 befragt periodisch
den externen Proxyserver 250, um nach für das geschützte Netzwerk bestimmtem in
Warteschlange gestelltem Verkehr zu sehen. Wenn der Proxyagent 240 für interne
Netzwerkvorrichtungen 200 bestimmten Verkehr entdeckt,
befördert
er diesen Verkehr zu den beabsichtigten Empfängern. Im Gegenzug wird der
Proxyagent 240 alle Antworten, die er empfängt, zurück zu dem
externen Proxyserver 250 befördem, der die Antworten zu
den beabsichtigten externen Netzwerkvorrichtungs-Clients 230 senden
wird. 3 veranschaulicht eine Ausführung dieser Architektur:
-
Für Clients,
die mit den verborgenen (geschützten)
internen Netzwerkvorrichtungen verbunden sind, stellt der externe
Proxyserver diese Vorrichtungen dar und verkleidet sich somit als
die internen Netzwerkvorrichtungen. In verschiedenen Ausführungen
der Erfindung errichten Clients TCP/IP-Verbindungen zu dem externen
Proxyserver 250 und senden und empfangen Daten an den bzw.
von dem externen Proxyserver 250 auf designierten TCP/IP-Ports,
die tatsächlich
durch den externen Proxyserver 250 zu dem Proxyagenten 240 berfördert werden.
Desgleichen verbindet sich der Proxyagent 240 mit den ansonsten
verborgenen internen Netzwerkvorrichtungen und sendet und empfängt Daten,
als ob er der externe Netzwerkvorrichtungs-Client ist. Der Proxyagent 240 verkleidet
sich somit als der externe Netzwerkvorrichtungs-Client. Die Verbindung
zwischen dem externen Proxyserver 250 und dem Proxyagenten
ist sowohl für
den externen Netzwerkvorrichtungs-Client als auch für die interne
Netzwerkvorrichtung transparent und stellt kein Problem für sie dar.
-
Wie
oben erwähnt,
werden in verschiedenen Ausführungen
der Erfindung Verbindungen und durch den externen Proxyserver 250 empfangene Daten
zur späteren
Rückgewinnung
durch den Proxyagenten 240 gespeichert. Der Proxyagent
befragt in regelmäßigen Abständen den
externen Proxyserver 250 unter Verwendung von z. B. einer
HTTP-Verbindung, um anhängige
Verbindungen und Daten zu entdecken und Antworten von den beabsichtigten
internen Netzwerkvorrichtungen zu liefern. In der Tat wird auf diese
Weise der TCP/IP-Verkehr zwischen dem externen Netzwerkvorrichtungs-Client
und der internen Netzwerkvorrichtung "getunnelt" durch HTTP, eingekapselt in HTTP-Anforderungen
und Antworten mit Vorspann-Information, die Quellen- und Ziel-IP-Adressen
und die beabsichtigten Ports angibt. Um die Effizienz zu verbessern,
können
mehrfache Anforderungen durch die gleiche HTTP-Verbindung gemultiplext
werden.
-
Es
ist lehrreich, das Reverse Proxying mit traditionellem "Forward" Proxying zu vergleichen. 2A und 2B veranschaulichen
den Unterschied zwischen herkömmlichem
Proxying (2A) und dem von Ausführungen
der Erfindung eingesetzten Rückwärts-Proxying
(2B).
-
Das
Bereitstellen von Zugang zu privaten IP-Adressen ist das, was den
Erfolg und die Allgemeinheit dieses Schemas erlaubt. Die privaten IP-Adressräume 50 sind über das
Internet 10 hinweg nicht einmalig, und viele verschiedene
Organsisationen verwenden die gleichen IP-Adressräume 50 wieder. Damit
die Adressräume 50 und
die internen Netzwerkvorrichtungen 200, die darin residieren, durch
externe Netzwerkvorrichtungs-Clients 230 adressierbar sind,
unterhält
der externe Proxyserver 250 einen Plan zwischen lokalen
TCP/IP-Ports auf dem Proxyserver 250 und entfernten, privaten IP-Adressen,
unerschieden durch den Identifizierer des zum Zugreifen auf sie
verwendeten Proxyagenten. Proxyagenten veröffentlichen eine Liste von Adressen,
die sie erreichen können,
für den
externen Proxyserver 250, und diese Liste wird von dem
externen Proxyserver 250 verwendet, um den Plan zwischen
lokalen Ports und Agenten/entfernten Adressen zu errichten.
-
Keine
Annahmen müssen
hinsichtlich des durch den externen Netzwerkvorrichtungs-Client verwendeten
Netzwerkprotokolls gemacht werden, um mit der internen Netzwerkvorrichtung
und/oder dem (verborgenen) Server auf dem geschützten Netzwerk zu kommunizieren.
Aller Netzwerkverkehr, z. B. TCP/IP-Verkehr, wird durch den Proxyagenten 240 durch
die exemplarische HTTP-Verbindung zwischen dem Proxyagenten 240 und
dem externen Proxyserver 250 getunnelt, und es besteht
grundsätzlich
keine Notwendigkeit für
sie, diese Daten zu ändern,
mit einigen bemerkenswerten Ausnahmen. Bestimmte Protokolle können eine
spezielle Behandlung erfordern, besonders HTTP selbst. Der Gebrauch
von eingebetteten Hyperlinks in HTML-Seiten bedeutet, dass ein Client
durch einen Link zu einem hinter der Sicherheitsvorrichtung/Firewall 20 verborgenen
unzugänglichen
URL weg von dem externen Proxyserver 250, der seinen Zugang
zu dem verborgenen Netzwerk ermöglicht,
umgeleitet werden kann. Um eine solche unerwünschte Umleitung zu verhindern oder
zu minimieren, kann ein Web-Browser/externe Client-Vorrichtung 230 konfiguriert
werden (durch Standard-Browser-Einstellungen),
um den externen Proxyserver 250 als einen wahren HTTP-Proxyserver
unter Verwendung des lokalen Ports auf dem oben beschriebenen Server
zu verwenden. Dies stellt sicher, dass alle HTTP-Anforderungen unversehrt
und uninterpretiert zu dem externen Proxyserver 250 befördert werden,
der diese Anforderungen an den Proxyagenten 240 weiterleitet.
Der Agent 240 gewinnt die verlangten URLs zurück, die
ihm direkt zugänglich
sind, da er sich hinter der Firewall 20 befindet.
-
Der
Proxyagent 240 ist gezwungen, den externen Proxyserver 250 nach
anhängigem
Verkehr zu befragen, weil angenommen wird, dass nur ausgehende HTTP-Verbindungen
durch die Netzwerksicherungs-Vorrichtung 20 erlaubt werden.
Dies bringt ein Latenzproblem ein, da das Abfrageintervall das Ansprechverhalten
des über
die abgefragte HTTP-Verbindung getunnelten TCP/IP-Verkehrs bestimmt.
Die Latenz bezieht sich auf Verzögerungen, die
durch die Zeit eingebracht werden, die der Verkehr braucht, um von
einem Ursprung zu einem Ziel und von dem Ziel zurück zu dem
Ursprung zu laufen. Da der Verkehr durch den Proxyserver in eine
Warteschlange gestellt wird, bis der Proxyagent ihn abfragt, gibt
es eine Verzögerung
zwischen der Ankunft des Verkehrs an dem Proxyserver und der Ankunft
an dem Proxyagenten, was die Latenz vergrößert. Hohe Latenz, Verzögerungen
in der Größe von Zehntelsekunden
oder mehr zwischen Anforderungen und Antworten können die praktische Nutzbarkeit
eines Systems, das Rückwärts-Proxying
einsetzt, beeinträchtigen.
Die Latenz kann durch ein verkleinertes Abfrageintervall verringert
werden, aber dies bürdet
dem Netzwerk eine zunehmende Belastung auf und kann durch die Mindestzeit
begrenzt sein, die nötig
ist, eine ausgehende HTTP-Anforderung zu errichten und zu vollenden.
-
Um
einen geeigneten Kompromiss zwischen Latenzverringerung und Netzwerkbelastung
zu erreichen, setzt die Erfindung "trickle down" Polling ein, um Latenz zu vorringern
und hoch ansprechenden Service bereitzustellen, ohne die höheren Netzwerklasten
aufzubürden,
die sich durch zu häufiges
Abfragen ergeben. Der Proxyagent 240 verbindet sich mit
dem externen Proxyserver 250, um anhängigen Verkehr zu entdecken.
Wenn nichts anhängig
ist, gibt der externe Proxyserver 250 eine langsamen Strom von
unechten Bytes zurück,
die von dem Proxyagenten 240 ignoriert werden. Wenn der
externe Proxyserver 250 Daten von einer externen Netzwerkvorrichtung
oder Client/Browser 230 empfängt, werden sie sofort zu dem
Proxyagenten 240 übertragen,
und die Verbindung wird geschlossen, um jede durch eingreifende
(ausgehende) Proxyserver durchgeführte Pufferung auszuspülen. Um
Reaktionszeiten zu verbessern, kann der Agent 240 mehrere
Verbindungen zu dem Proxyserver 250 öffnen, um die Wahrscheinlichkeit
zu verringern, dass keine Verbindungen offen sein werden, wenn Verkehr
eintrifft. Das Herabsickern von unechten Bytes verhindert Timeouts
auf ausgehenden HTTP-Anforderungern, was durch eingreifende ausgehende
Proxyserver bestärkt
werden kann. In dieser Weise wird ein hoch ansprechender Sevice
garantiert, da der Proxyagent 240 gewöhnlich sofort über ankommenden
Verkehr informiert werden kann, um die unerwünsche Latenz zwischen der Zeit, dass
dieser Verkehr auf dem externen Proxyserver 250 in Warteschlange
gestellt wird, und der Zeit zu entfernen, dass der Proxyagent 240 ihn
zurückgewinnt.
Das Internet 10 selbst kann jedeoch der Latenz eine niedrigere
Schranke auferlegen, da es die Zeit bestimmen kann, die gebraucht
wird, um Anforderungen und Antworten zu übertragen, und durch das Internet
verwendete Protokolle, z. B. TCP/IP, keinen garantierten Service
bereitstellen.
-
Mehrere
Sicherheitsmaßnahmen
können
in die Erfindung eingebaut werden, um sicherzustellen, dass sie
nicht benutzt werden kann, um die Integrität und Vertraulichkeit des Netzwerks,
das sie bedient, zu beeinträchtigen,
bis zu den höchsten
Standards, die von gegenwärtigen
Internet-Anwendungen erfüllt werden.
-
Die
Kommunikation zwischen dem Proxyagenten 240 und dem externen
Proxyserver 250 kann z. B. unter Verwendung eines Verschlüsselungssystems,
wie z. B. das Industrie Standard Secure Socket Layer (SSL) für HTTP,
verschlüsselt
werden, um Belauschen zu verhindern. Die Beglaubigung des Agenten 240 und
des Servers 250 kann durchgeführt werden, indem z. B. X.509
Zertifikate von beiden verlangt werden, oder eine andere Beglaubigungstechnik
verwendet wird, z. B. andere "Public
Key"-basierte Verschlüsselungssysteme,
und kann durch eine vertraute Zertifizierungs-Autorität verifiziert
werden. Der externe Proxyserver 250 kann auch einen Cookie-Umschreibprozess
implementieren, z. B. den in 4–6 gezeigten
exemplarischen Prozess, um sicherzustellen, dass alle Cookies wahrlich
einmalige Identifizierer aufweisen.
-
Wie
in 5 gezeigt, können
Webserver 200 verlangen, dass Clients 230 (Web-Browser)
einen Status durch einen als "Cookies" bekannten Mechanismus
unterhalten. Um Cookies zu bewerkstelligen, fügen Server zusätzliche
Vorspanne in Antwoerten auf HTTP-Anforderungen ein, die benannte "Echo"-Daten spezifizieren,
die der Browser zurück zu
dem Server wiederholen sollte, wenn auf bestimmte in dem Vorspann
identifizierte Ressourcen zugegriffen wird. Jedes Datenelement,
das zu speichern und als Echo zurückzugeben ist, wird ein "Cookie" genannt.
-
Nach
einem solchen Cookie-Protokoll verbindet ein Web-Browser Cookies
mit den Uniform Resource Locators (URLs), an die sie durch den Webserver
gebunden waren. Im normalen Internet-Gebrauch sollen diese URLs
garantiert einmalig sein. In einer Rückwärts-Proxying-Situation, bei der die
Adressierung privater Netzwerke ein Faktor wird, sind diese URLs
jedoch nicht unbedingt einmalig. Dies gilt gleichgültig, ob
IP-Adressen oder symbolische Adresseen in dem URL benutzt werden
oder nicht, da symbolische Domänennamen über private IP-Räume hinweg
nicht einmalig sein müssen.
Dies kann zwei Probleme schaffen:
-
1.
Rennbedingungen. In dieser Situation überschreibt der Browser ein
bestehendes Cookie für eine
URL mit dem zuallerletzt an diesen URL angebundenen Wert. Es gibt
folglich ein Rennen zwischen Servern, um die Cookie-Daten zu bestimmen.
Einem Server, der Cookie-Daten
mit einem URL verbindet, wird daher nicht garantiert, dass er die
gleichen Daten wieder empfangen wird. Dies kann Webserver/Anwendungen,
die sich auf in Cookies zurückgegebene
richtige Statusdaten verlassen, teilweise oder ganz außer Betrieb
setzen.
-
2.
Vertraulichkeitsverletzung. In dieser Situation können mit
einem URL verbundene Cookie-Daten
private Daten von einem geschützten
Netzwerk enthaften, da Server in solchen Netzwerken annehmen können, dass
alle Übertragungen
zwischen ihnen und Clients gesichert sind. Der Browser könnte jetzt
aber diese privaten Daten unbewusst an ein gänzlich verschiedenes Netzwerk
senden, da er nicht einmalige URLs verwechselt. Server in dem falschen Netzwerk
könnten
daher auf diese Weise, absichtlich oder unabsichtlich, empfindliche
Daten von anderen privaten Netzwerken erlangen. Dies kann die durch das
Firewall-/private IP-Raumsystem hergestellte Netzwerksicherheit
ernsthaft beeinträchtigen.
-
4 veranschaulicht,
wie Cookies von verschiedenen Netzwerken durch Web-Browser verwechselt
werden können.
Web-Clients (Browser) 230 verwenden URLs, um Ressourcen
auf dem Internet 10 eindeutig zu identifizieren. Dies wird
sowohl durch die relevanten Standards als auch durch allgemeine Praxis
spezifiziert. Durch Bereitstellen von Zugang zu privaten/geschützten Netzwerken 50 mit
nicht unbedingt einmaligen URLs schaffen Rückwärts-Proxy ing-Systeme Verwirrung
zwischen diesen URLs. Dies wird jedoch nur ein Thema, wenn ein gespeicherter Status
mit einem (nicht einmaligen) URL verbunden und später als
Teil von Anforderungen für
andere Netzwerke gesendet wird, da alle gegenwärtigen Anforderungen durch
die Proxyserver-Konfiguration an die richtigen Ziele geleitet werden.
Diese Situation ist analog zu Gepäckhandhabungsfehlern auf Luftverkehrslinienflügen, wo
infolge eines nicht eindeutigen Labels auf dem Gepäck das falsche
Gepäck
auf einem Flug transportiert wird, der an ein ansonsten richtiges
Ziel gerichtet ist.
-
Bei
verschiedenen Ausführungen
der Erfindung beseitigt ein als "Cookie-Umschreiben" bezeichneter Prozess
die Cookie-Mehrdeutigkeit. Alle Cookies haben Namen. Proxyserver ändern typischerweise
keine stellvertretend gesendeten oder empfangenen Daten. In verschiedenen
Ausführungen
macht die Erfindung eine Ausnahme für Cookie-Namen, die durch den
Proxyserver umgeschrieben werden, wenn sie zur Speicherung an Browser
zurückgesendet
werden, um klar anzuzeigen, von welchem privaten Netzwerk sie herrühren. Das
Rückwärts-Proxying-Schema
verfügt über eine Möglichkeit,
private Netzwerke in Ausführungen
der Erfindung zu unterscheiden (z. B. durch die Identität des Agenten
in diesen Netzwerken, der das Queren der Firewall bewerkstelligt),
oder der Proxyserver würde
nicht richtig funktionieren. Eine Möglichkeit dafür ist, die
eindeutige Identität
des privaten Netzwerks im Voraus an jeden Cookie-Namen anzuhängen (d. h.
anstelle des privaten Netzwerk-Identifizierers auf der "Stirn" des Cookies als
ein "Präfix"), was die in verschiedenen
Ausführungen
benutzte Implementierung ist, obwohl andere Umschreibverfahren möglich sind.
Das Präfix
kann dann von dem Cookie abgestreift werden, wenn es gesendet wird.
Cookies, die von dem Browser mit einer Anforderung übergeben werden,
die von einem anderen Netzwerk herrührte, werden durch den Proxyserver
stillschweigend fallen gelassen. Der externe Proxyserver bewahrt
daher die Vertraulichkeit der Netzwerke und stellt richtige Cookie-Speicherung
und Übergabe
durch Browser sicher.
-
Bei
der in 6 gezeigten Situation gibt ein Browser zuerst
eine HTTP GET Anforderung für
den URL http://someserver über
den Proxyserver aus. Der Browser ist konfiguriert, Port A auf dem
Proxyserver zu verwenden, der Port A mit dem privaten Netzwerk A
verbindet. Der Proxyserver führt
die Anforderung in Vertretung des Browsers aus (mit jedewedem Firewall-Querungsschema, der
er unterstützt)
und untersucht alle Cookies, die someserver in der Antwort zurückgibt.
In diesem Fall ist das Cookie xyz mit dem Wert s durch someserver
festgelegt worden. Der Proxyserver schreibt den Namen des Cookies
in A_xyz um, sodass es klar als ein für das private Netzwerk A bestimmtes
Cookie markiert ist. Man beachte, dass der Web-Browser keine intrinsische
Bedeutung an Cookie-Namen anhängt,
er gibt sie einfach als Echo zurück
an die URLs, mit denen sie verbunden sind. Der Browser empfängt die HTTP-Antwort
von dem Proxyserver und speichert das Cookie A_xyz = s.
-
Später wird
der Browser rekonfiguriert, um Port B auf dem Proxyserver zu verwenden,
der Port B mit dem privaten Netzwerk B verbindet. Der Browser gibt
eine HTTP GET Anforderung an den gleichen URL http:/someserver aus,
der das Cookie A_xyz = s endet. Er verfährt so, weil er keine Möglichkeit
hat, um festzustellen, dass sich das beabsichtigte Netzwerk geändert hat.
Der Proxyserver untersucht alle in der Anforderung enthaltene Cookies,
bevor er sie zu someserver im Netzwerk B befördert. Da das Cookie A_xyz
= s für
A und nicht für
B bestimmt ist, wird es durch den Proxyserver weggeworfen, und der
Rest der Anforderung wird befördert.
Wie vorher schreibt der Proxyserver die Namen aller in der HTTP-Antwort enthaltenen
Cookies um, sodass xyz = t B_xyz = t wird. Dies stellt sicher, dass
in Zukunft das Cookie nicht zu dem Netzwerk A oder zu einem anderen Netzwerk,
für das
es nicht bestimmt war, geleitet wird.
-
Zusätzlich zu
den obigen Sicherheitsmaßnahmen
kann Netzwerk-Administratoren eine feinkörnige Kontrolle über das
Rückwärts-Proxying-System
eingeräumt
werden. Zum Beispiel kann Administratoren die Autorität und/oder
Fähigkeit
gewährt werden,
Eintritt in ihr Netzwerk auf einer Pro-Sitzung-Basis zu erlauben
oder zu verneinen, indem eine Erlaubnis, z. B. ein kurzlebiger Schlüssel, gewährt wird.
Administratoren kann auch die Autorität und/oder Fähigkeit
gegeben werden, den Zugang ganz zu unterbinden oder ihn durch andere
Kriterien zu begrenzen.