DE60125833T2 - Verfahren und Vorrichtung zum Durchqueren einer Firewall - Google Patents

Verfahren und Vorrichtung zum Durchqueren einer Firewall Download PDF

Info

Publication number
DE60125833T2
DE60125833T2 DE60125833T DE60125833T DE60125833T2 DE 60125833 T2 DE60125833 T2 DE 60125833T2 DE 60125833 T DE60125833 T DE 60125833T DE 60125833 T DE60125833 T DE 60125833T DE 60125833 T2 DE60125833 T2 DE 60125833T2
Authority
DE
Germany
Prior art keywords
connection
proxy
successful
address
http
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60125833T
Other languages
English (en)
Other versions
DE60125833D1 (de
Inventor
Elliot San Francisco SCHWARTZ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digi International Inc
Original Assignee
Digi International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digi International Inc filed Critical Digi International Inc
Publication of DE60125833D1 publication Critical patent/DE60125833D1/de
Application granted granted Critical
Publication of DE60125833T2 publication Critical patent/DE60125833T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Control And Safety Of Cranes (AREA)
  • Lubrication Of Internal Combustion Engines (AREA)
  • Multi-Process Working Machines And Systems (AREA)
  • Spinning Or Twisting Of Yarns (AREA)
  • Wrapping Of Specific Fragile Articles (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet von Computern und Kommunikation. Genauer, bezieht sich die vorliegende Erfindung auf das Durchqueren einer Firewall.
  • HINTERGRUND DER ERFINDUNG
  • Computernetzwerke sind verbreitet. Die Verbindung zu anderen Computernetzwerken ist ebenfalls verbreitet. Bei der Verbindung von Netzwerken, zum Beispiel ein lokales Netzwerk (LAN) an ein Weitraumnetzwerk (WAN), kann das Bedürfnis bestehen, die Netzwerke zu isolieren um den Zugriff einzuschränken. Es gibt verschiedene Ansätze, um diese Isolierung zu erreichen. Ein Ansatz ist die Verwendung von dem, was in der Technik als eine Firewall bezeichnet wird. Eine Firewall kann auf einer Vielzahl von Wegen implementiert werden.
  • Einen Ansatz, den eine Firewall implementieren kann, ist Paketfilterung. Bei der Paketfilterung analysiert die Firewall den Netzwerkverkehr auf und unterhalb der Transportprotokollschicht. In Bezug auf das Internet kann eine Firewall das Internetprotokoll (IP) Paket untersuchen. Auf einen vordefinierten Satz von Regeln basierend, kann die paktefilternde Firewall die Kommunikation basierend auf solchen Faktoren wie Richtung der Kommunikation, wo das Paket physikalisch ankommt, die vermeintliche Quelle und/oder das vermeintliche Ziel der Kommunikation, den Typ der Transportschicht etc., erlauben. Gewöhnliche Transportschichten, die in der Umgebung des Internets überprüft werden können sind Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), etc. Zum Beispiel kann eine Firewall ein TCP und/oder UDP Transportschichtprotokoll untersuchen, um die Quell- und Zielportnummern zu überprüfen. Zusätzlich können Firewalls, die Paketfilterung verwenden, ebenfalls eine Netzwerk-Adressenübersetzung (NAT) durchführen. NAT adressiert Pakete neu, sodass die Topologie eines internen Netzwerkes für einen Außenstehenden verborgen bleibt. Dies bedeutet, dass das Neuadressieren auf ein Verstecken der internen IP Adressen vor externer Sicht abzielt. Verkehr, der im internen Netzwerk entsteht und durch die Firewall hinaus gesendet wird, wird neu adressiert, sodass der ausgehende Verkehr den Anschein haben kann, von einem anderen Host als dem internen Host zu entspringen.
  • Ein weiterer Ansatz für die Sicherheit ist eine Firewall auf Schaltkreisebene. Dieser Ansatz versucht das Aufbauen und Abbauen von Verbindungen zu überwachen und zu validieren. Sobald eine Verbindung aufgebaut ist, werden die Kommunikationen mittels dieses Verbindungsschaltkreises validiert und ihr Durchgang erlaubt. Zum Beispiel kann eine Firewall das Aufbauen einer TCP Verbindung überwachen und, nach Überprüfung, dass die TCP Verbindung richtig aufgebaut wurde, den Durchgang der Kommunikation erlauben, bis zu dem Zeitpunkt, an dem die Verbindung abgebaut wird. Die Firewall kann ebenfalls die Quell- und Ziel- IP Adressen für zusätzliche Sicherheit überwachen, um zu versuchen eine andere Einheit davon abzuhalten, unbekannte Pakete zu senden und/oder zu empfangen. Zusätzlich kann eine Firewall auf Schaltkreisebene ein NAT, wie oben diskutiert, einsetzen.
  • Ein weiterer Ansatz wird Application Layer Firewall genannt. Wie der Name andeutet, wertet die Application Layer Firewall die Gültigkeit von Paketen im Hinblick auf eine Anwendung aus. Application Layer Firewalls beinhalten im Allgemeinen Proxydienste. Proxydienste sind Programme, die den Netzwerkverkehr durch eine Firewall für einen spezifischen Typ von Dienst verwalten. Zum Beispiel beinhalten viele gewöhnliche Proxydienste die Unterstützung für das Hypertext Transfer Protocol (HTTP), das File Transfer Protocol (FTP), Gopher, Telnet, etc. Da die Proxydienste eingehende Anfragen von lokalen Benutzern untersuchen, sie validieren und dann an ein außenseitiges Netzwerk weiterleiten und dann eine Antwort vom außenseitigen Netzwerk empfangen und diese an den ursprünglich Anfragenden zurück weiterleiten, werden Proxydienste manchmal einfach als ein Proxy und/oder ein Proxyserver bezeichnet. Dies bedeutet, dass im Hinblick auf den lokalen Anwender der Proxy die Funktion eines Servers erfüllt, indem er die Information an den lokalen Anwender liefert, ohne dass der lokale Anwender wirklich direkt zu der außenseitigen Informationsquelle verbunden ist. Im Hinblick auf eine außenseitige oder externe Quelle, erscheint der Proxy wie ein Standardclient, der eine Anfrage aufgibt und Information empfängt. Wegen dieses Proxy Prozesses, sind interne IP Adressen generell von externem Zugang abgeschirmt. Zusätzlich ist ein Proxy, da ein Proxy Pakete im Hinblick auf spezifische Anwendungen untersuchen kann, in der Lage, abgefragte Informationen zwischenzuspeichern, spezifische Informationen herauszufiltern, Authentifizierung des Benutzers durchzuführen, etc.
  • WO A-98/34385 beschreibt ein Verfahren zum Durchqueren einer Firewall, das automatisch das vorteilhafteste Protokoll für die Kommunikation mit einem Client-Computer erkennt, wobei der Client-Computer zur Kopplung mit einem Server-Computer über ein Computernetzwerk konfiguriert wird. Das Verfahren schließt das Einleiten einer Vielzahl von Protokoll-Threads ein zum Senden einer Vielzahl von Datenanfragen vom Client-Computer zum Server-Computer. Jede der Datenanfragen setzt ein unterschiedliches Protokoll und eine unterschiedliche Verbindung ein. Der Client sendet mehrere Protokoll-Threads zum, im Wesentlichen, gleichen Zeitpunkt, oder gibt anderenfalls mehrere Protokoll-Threads aus, die simultan ausgeführt werden, unabhängig davon, wann sie eingeleitet wurden. Die Datenanfragen sind konfiguriert, um beim Server-Computer einen Satz von Antworten in Antwort auf die Datenanfragen nachzufragen. Jede dieser Antworten verwendet ein Protokoll, das zu jeweils einer der Datenanfrage gehört.
  • US 6,044,401 beschreibt ein System zur Lokalisierung von angeforderten Datenströmen mittels Zuordnung der Daten, die überwacht wurden durch einen „Netzwerk Sniffer" für einen bestimmten Knotenpunkt und Auswertung der Daten, die innerhalb der Privilegien eines bestimmten Nutzers liegen. Ein Netzwerk Sniffer wird gewöhnlich verwendet, um die Netzwerkaktivität bei der Lösung von Netzwerkproblemen zu überwachen, oder bei der Verbesserung der Netzwerkeffizienz; wegen der Sensitivität von manchen Daten in Netzwerken ist den durchschnittlichen Benutzern generell der Zugang zu Netzwerk Sniffer nicht erlaubt. Ein „Zugangs Sniffer" wird ebenfalls vom System eingesetzt und beinhaltet ein Zugangselement und eine Zugangschnittstelle; das Zugangselement besitzt eine Datenbank, während die Zugangsschnittstelle mit einem Netzwerkcontroller verbunden ist. Das Zugangselement greift auf den Netzwerk Sniffer zu und filtert nichtverfügbare Informationen, die jenseits der Privilegierungsstufe eines bestimmten Anwenders liegen aus; es wertet öffentliche Informationsdatenströme aus und speichert diese, falls diese die festgelegten Kriterien erfüllen, in seiner Datenbank. Informationen, die als für einen bestimmten Anwender verfügbar bestimmt wurden, werden mittels des Zugangselements zur Zugangsschnittstelle transferiert, von wo aus sie sukzessiv an den Netzwerkcontroller transferiert werden. Der Internet-Draft „Web Proxy Auto-Discovery Protocol" <drfat-cooper-webi-wpad-00.txt>, Cooper I, et al., beschreibt einen Mechanismus, um es Netz-Clienten zu erlauben, in der Nähe befindliche (zwischenspeichernde) Netzproxies zu lokalisieren.
  • Ein hinter einer Firewall befindliches Gerät ist mit Problemen beim Versuch eine externe oder außenseitige Quelle zu kontaktieren konfrontiert. Ähnlich präsentiert sich einem externen Gerät, das versucht eine interne Quelle hinter einer Firewall zu erreichen, das Erfordernis durch diese Firewall hindurch zu kommen. Falls die Geräte hinter der Firewall Computer mit Tastaturen, Monitoren und ladbarer Software sind, ist es häufig möglich, Konfigurationsseiten aufzurufen, um die Geräte korrekt für die Kommunikation durch die Firewall zu konfigurieren. Es ist nicht so einfach im Falle eines Geräts vom Typ einer Vorrichtung, dem die Möglichkeit der Anwendereingabe fehlt um konfiguriert zu werden. Dies stellt ein Problem dar.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Verfahren, ein maschinenlesbares Medium und eine Vorrichtung wie in Ansprüchen 1 beziehungsweise 10 und 13, zum Durchqueren einer Firewall sind offenbart. Andere Merkmale der vorliegenden Erfindung werden aus den begleitenden Zeichnungen und aus der folgenden detaillierten Beschreibung ersichtlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird exemplarisch illustriert, und nicht limitiert, mittels der Abbildungen der begleitenden Zeichnungen, in denen gleiche Referenzen ähnliche Elemente anzeigen und in denen:
  • 1 eine vernetzte Computerumgebung illustriert;
  • 2 ein Blockdiagramm eines Computersystems ist;
  • 3 eine Firewall zwischen zwei Netzwerken illustriert; und
  • 4, 5 und 6 mögliche Ausführungsformen der Erfindung illustrieren.
  • DETAILLIERTE BESCHREIBUNG
  • Ein Verfahren und eine Vorrichtung zum Durchqueren einer Firewall werden beschrieben. Zum Zwecke der Diskussion der Erfindung versteht es sich, dass verschiedene Begriffe von denjenigen verwendet werden, die in der Technik bewandert sind, um Kommunikationen, Protokolle, Anwendungen, Sicherungsmechanismen etc. zu beschreiben. Ein solcher Begriff ist Firewall. Eine Firewall ist ein industrieller Standardbegriff der in einer Ausführungsform Hardware, Software, oder jegliche Kombination dieser umfassen kann. Die Funktion einer Firewall ist, in irgendeiner Art und Weise den Zugang und/oder die Kommunikation zwischen zwei Netzwerken zu kontrollieren. Zum Beispiel kann eine Firewall in einem Fall einen Internetbenutzer davon abhalten auf ein privates Intranet zuzugreifen. Die obige kurze Beschreibung soll nur als Beispiel dienen und soll nicht die Standarddefinitionen der Industrie aufheben, die vom Fachmann verstanden werden.
  • Ein maschinenlesbares Medium wird verstanden, jeglichen Mechanismus zur Speicherung oder Übermittlung von Informationen zu enthalten, in einer Form, die von einer Maschine (z.B. einem Computer) lesbar ist. Zum Beispiel schließt ein maschinenlesbares Medium, Festspeicher (ROM); frei adressierbaren Festspeicher (RAM); magnetische Disketten-Speichermedien; optische Speichermedien; Flash-Speicher Geräte; elektrische, optische, akustische, oder andere Formen von propagierte Signalen (z.B. Trägerwellen, Infrarotsignale, Digitalsignale, etc.); etc. ein.
  • 1 illustriert eine Netzwerkumgebung, in der die beschriebene Technik angewendet werden kann. Wie gezeigt, sind verschiedene Computersysteme in der Form von M Servern 104-1 bis 104-M und N Clienten 108-1 bis 108-N miteinander über ein Netzwerk 102 verbunden, das zum Beispiel das Internet sein kann. Beachte, dass Netzwerk 102 alternativ sein oder enthalten kann, eines oder mehre von: einem lokalen Netzwerk (LAN), Weitraumnetzwerk (WAN), Heimnetzwerk, Satellitenverbindung, Glasfasernetzwerk, Kabelnetzwerk, oder eine Kombination dieser und/oder anderer. Das Verfahren und die Vorrichtung, die hier beschrieben sind, können im Wesentlichen auf jeglichen Typ von Kommunikationsmittel oder -gerät, ob lokal oder entfernt, wie ein LAN, ein WAN, ein Computer, einer Vorrichtung, ein Heimsicherheitssystem, ein Diskettenlaufwerk, eine Heimcomputerumgebung, ein Unterhaltungssystem, Medienspeicher, etc., angewendet werden.
  • 2 illustriert einen Computer in Blockdiagrammform, der für jeglichen der in 1 gezeigten Clienten und Server repräsentativ sein kann. Das Blockdiagramm ist eine konzeptionelle Darstellung auf hohem Niveau und kann in einer Vielzahl von Wegen und mittels verschiedener Architekturen implementiert werden. Bus-System 202 verbindet eine Zentraleinheit (CPU) 204, Festspeicher (ROM) 206, frei adressierbarer Festspeicher (RAM) 208, Speicher 210, Bildschirm 220, Audio 222, Tastatur 224, Zeiger 226, verschiedene Eingabe/Ausgabe (I/O) Geräte 228 und Kommunikationen 230 miteinander. Das Bus-System 202 kann zum Beispiel ein oder mehrere solcher Busse als einen System-Bus, Peripheral Component Interconnect (PCI), Advanced Graphics Port (AGP), Small Computer System Interface (SCSI), Institute of Electrical and Electronics Engineers (IEEE) Standardnummer 1394 (FireWire), etc., sein. Die CPU 204 kann eine einzelne, mehrere, oder sogar eine verteilte Computer-Ressource sein. Das ROM 206 kann jeglicher Typ von nicht-flüchtigem Speicher sein, der programmierbar sein kann, wie maskenprogrammierbar, Flash, etc. RAM 208 kann, zum Beispiel, statisch, dynamisch, synchron, asynchron, oder jegliche Kombination sein. Speicher 210 kann sein eine Compact Disc (CD), Digital Versatile Disk (DVD), Festplatten, optische Disketten, Band, Flash, Speichersticks, Videorecorder, etc. Der Bildschirm 220 kann, zum Beispiel, eine Kathodenstrahlenröhre (CRT), eine Flüssigkristallanzeige (LCD), ein Projektionssystem, ein Fernseher (TV), etc. sein. Audio 222 kann eine monophonische, eine stereo, eine dreidimensionale Tonkarte sein, etc. Die Tastatur 224 kann eine Tastatur, eine Klaviatur, ein Tastenfeld, eine Reihe von Schaltern, etc. sein. Der Zeiger 226 kann, zum Beispiel, eine Maus, ein integriertes Berührungsfeld, eine Steuerkugel, ein Steuerknüppel, etc. sein. I/O Geräte 228, können ein Stimmkontroll-Eingabegerät, ein Fingerabdruck-Eingabegerät, ein Schacht für eine SmartCard, eine Personal Computer Karten (PC Card) Schnittstelle, Zubehör für virtuelle Realität, etc. sein, die optional mit einem Eingabe/Ausgabeanschluss 229 an andere Geräte oder Systeme verbunden werden können. Ein Beispiel für ein sonstiges I/O Gerät 228 wäre eine Musikinstrumenten-Schnittstellen (MIDI) Karte, deren I/O Anschluss 229 mit dem/den Musikinstrument(en) verbunden ist. Das Kommunikationsgerät 230 könnte, zum Beispiel, ein Ethernetadapter für lokale Netzwerk (LAN) Verbindungen, eine Satellitenverbindung, ein Set-Top-Box Adapter, ein Adapter für eine digitale Teilnehmeranschlussleitung (xDSL), ein drahtloses Modem, ein konventionelles Telefonmodem, eine direkte Telefonverbindung, eine Hybrid-Faser Koaxial (HFC) Verbindung, ein Kabelmodem, etc. sein. Der externe Verbindungsport 232 kann jegliche Verbindung, wie benötigt, zwischen einem entfernten Gerät und dem Bus-System 202 durch das Kommunikationsgerät 230 zur Verfügung stellen. Das Kommunikationsgerät 230 könnte, zum Beispiel, ein IEE 802.3 (Ethernet) Adapter sein, welcher über den Verbindungsport 232 mit, zum Beispiel, einem externen DSL Modem verbunden ist. Beachte, dass abhängig von der wirklichen Konfiguration eins Computersystems, das Computersystem einige, alle, mehrere, oder ein Umstellung der Komponenten des Blockdiagramms enthalten kann. Zum Beispiel könnte ein Thin-Client aus einem drahtlosen, tragbaren Gerät bestehen, das zum Beispiel keine traditionelle Tastatur besitzt.
  • Ein anderes Beispiel kann, zum Beispiel, ein Heimvideorekorder mit begrenzter Benutzer-Eingabekapazität sein. Noch ein weiteres Beispiel kann ein Haushaltsgerät, wie eine Waschmaschine, ein Trockner, ein Kühlschrank, eine Klimaanlage etc., sein. Was zu würdigen ist, ist dass alle diese Geräte mit unterschiedlicher Unterstützung und Benutzereingabe-Ressourcen an ein Netzwerk, zum Beispiel ein Heimnetzwerk, angeschlossen werden können. Daher sind viele Variationen des Systems aus 2 möglich.
  • Auf 1 zurückverweisend, sind Clienten 108-1 bis 108-N effektiv über das Netzwerk 102 mit Webseiten, Anwendungsdienstleistungsprovidern, Suchmaschinen und/oder Datenbank Ressourcen verbunden, die durch Server, wie Server 104-1 bis 104-M, repräsentiert werden. Die Webbrowser und/oder andere Anwendungen laufen für gewöhnlich auf den Clienten 108-1 bis 108-N. während die Information generell auf den Servern 104-1 bis 104-M liegt. Zur Vereinfachung der Erklärung, wird angenommen, dass ein einzelner Client 108-1 eine Ausführungsform der vorliegenden Techniken darstellt. Es wird leicht ersichtlich sein, dass solche Techniken einfach auf mehrere Clienten angewendet werden können.
  • In 1 kann Client 108-1 die Fähigkeit haben, auf das Netzwerk 102 zuzugreifen. Diese Fähigkeit kann das Hochfahren, Aktualisierungen, oder der Transfer von Informationen dorthin von einem Server über das Internet, einem anderen Netzwerk, einem lokalen Netzwerk, einer lokalen Maschine, oder einer Kombination dieser zu/vom Clienten erlauben. Eine Beschreibung des Verfahrens zur Aktualisierung oder Installation von jeglichem überarbeiteten Code und/oder Daten oder Einstellungen ist für das Verstehen der vorliegenden Erfindung nicht erforderlich.
  • Der Transfer von Informationen in der vorliegenden Erfindung können, jedoch ohne darauf beschränkt zu sein, Zugriffe über, zum Beispiel, das Kommunikationsgerät 230 sein, welches, zum Beispiel, ein Ethernet Adapter sein könnte, der es erlaubt auf ein Netzwerk zuzugreifen, aus dem die Information abgerufen werden kann.
  • Ein Client kann, ohne darauf beschränkt zu sein, ein oder mehrere der Elemente von 2 sein. Zum Beispiel, kann Speicher 210 ein autonomer Client sein, der abwickelt, wie Daten gespeichert und abgefragt werden sollen. Audio 222 kann ein Subsystem sein, das zum Beispiel abwickelt: Zugreifen auf Ressourcen; Pufferung von erhaltenem Inhalt von, zum Beispiel, einer Webseite; Abspielen von Musik; Abschalten von Lautsprechern; etc. Das Kommunikationsgerät 230 kann, zum Beispiel, ein Teil eines Systems sein, das auf das Erhalten einer Nachricht hin starten kann, oder mit anderen Geräten kommuniziert.
  • 3 stellt eine Netzwerkumgebung in größerem Detail dar, in welchem die beschriebenen Techniken angewendet werden können. Wie gezeigt, sind mehrere Computersysteme in Form von M Servern 304-1 bis 304-M und N Clienten 308-1 bis 308-N miteinander über ein Netzwerk 302 verbunden, das zum Beispiel das Internet sein kann. Beachte, dass alternativ das Netzwerk 302 sein oder einschließen kann eins oder mehrere von: einem lokales Netzwerk (LAN), einem Weitraumnetzwerk (WAN), einem Heimnetzwerk, einer Satellitenverbindung, einem Glasfasernetzwerk, einem Kabelnetzwerk, oder einer Kombination von diesen und/oder anderen.
  • Die Firewall 310 ist mit dem Netzwerk 302 und einem lokalen Netzwerk (LAN) 311 verbunden, welches hinter der Firewall 310 lokalisiert ist. Das LAN 311 besitzt Computer 312-1 bis 312-P, die mit der Firewall 310 verbunden sind. Zusätzlich verbindet das LAN 311 einige untraditionelle Geräte (314-1 bis 314-Q mit der Firewall 310. Diese untraditionellen Geräte werden durch eine Waschmaschine 314-1, einen Trockner 314-2, einen Kühlschrank 314-3, eine Luftstromheizungs/Klimaanlagen (HVAC) Einheit 314-4, ein Heimunterhaltungssystem 314-5 und andere 314-Q Geräte dargestellt.
  • Traditionell haben verbundene Geräte, wie Computer 312-1 bis 312-P, für gewöhnlich Benutzerschnittstellen wie Tastaturen und Bildschirme, welche die Einstellung von Parametern zur Konfiguration des Geräts für die Kommunikation durch die Firewall 310 zu, zum Beispiel, einem außenseitigen Netzwerk 302, das zum Beispiel das Internet sein kann, ermöglichen. Untraditionelle Geräte, wie durch 314-1 bis 314-Q veranschaulicht, haben für gewöhnlich keine solchen Schnittstellen zur Konfiguration ihrer jeweiligen Geräte zur Kommunikation durch eine Firewall.
  • Die Verbindung von untraditionellen Geräten mit, zum Beispiel, dem Internet kann fortgeschrittene Merkmale zur Verfügung stellen. Zum Beispiel kann die Verbindung einer Waschmaschine 314-1, eines Trockners 314-2, eines Kühlschranks 314-3 und HVACs 314-4 diesen Geräten erlauben, betriebliche Informationen, wie Störungen, Temperatur, Gasdruck und Betriebsbedingungen an, zum Beispiel einen Hersteller oder eine Reparatureinrichtung, weiterzuleiten, die ebenfalls mit dem Internet verbunden sind. In diesem Szenario kann ein frühe Diagnose und präventive Wartung möglich sein. Diese Information muss von den untraditionellen Geräten über das LAN 311, durch die Firewall 310 zu einem Ziel transferiert werden. Ein weiteres Beispiel ist ein Heimunterhaltungssystem 314-5, das, wenn es zunächst gekauft und, zum Beispiel in ein Heimnetzwerk eingestöpselt wurde, fähig sein kann, sich zum Sitz des Herstellers zu verbinden, registriert zu werden und vollen Zugriff auf, zum Beispiel, einen Musikanbieter zu haben. Andere Anbieter können lediglich einen beschränkten Zugriff zulassen, zum Beispiel, um einen einführenden Musiktitel anzuhören, oder sie können eine Werbung empfangen, die dem Kunden mitteilt, wie und wann ein Produkt erworben werden kann. Es ist einzusehen, dass sich verschiedene Geschäftsmodelle aus solchen Fähigkeiten entwickeln können. Die Fähigkeit durch eine Firewall hindurch zu dringen, ist wo die vorliegende Erfindung zum Durchqueren einer Firewall anwendbar ist. Der Fachmann wird erkennen, dass eine zweiseitige Kommunikation bequem möglich ist, sobald die Firewall durchquert wurde.
  • Das Netzwerk, mit dem dieses untraditionelle Gerät verbunden sein kann, kann einen Dynamic Host Configuration Protocol (DHCP) Server haben, der einem Gerät erlauben kann, eine IP Adresse für die Kommunikation zu erhalten. Falls das Gerät nicht erfolgreich ist, ohne Benutzerinteraktion eine IP Adresse für die Kommunikation zu erhalten, können andere Verfahren zur Eingabe einer IP Adresse vonnöten sein. Ein solcher Ansatz kann sein, dass der Benutzer Informationen mittels einer Eingabe/Ausgabe Schnittstelle eingibt. Zum Beispiel kann das Gerät ein Tastenfeld zur Eingabe solcher Informationen haben. Ein anderer Ansatz, falls das Gerät mit einem Netzwerk mit einem angeschlossenen Computer verbunden ist, kann sein den Computer zu verwenden, um das Gerät zu konfigurieren. Zum Beispiel kann der Benutzer in der Lage sein, Adress- und Konfigurationsinformationen einzugeben, die an das Gerät transferiert werden, oder der Computer kann in der Lage sein, zum Beispiel ein Zusatzmodul herunter zu laden, dass das Gerät konfiguriert. Eine andere Alternative kann zum Beispiel sein, eine serielle Verbindung, wie den Electronic Industries Association (EIA) RS232 Standard, den Universal Serial Bus (USB), den infrarot Datenverbindung (IrDA) Standard etc., zwischen einem Computer und dem Gerät zu verwenden, um das Gerät zu konfigurieren. Noch ein weiterer Ansatz kann sein, es das Gerät versuchen zu lassen, verschiedene Adressen auszuprobieren.
  • 4 zeigt ein Flussdiagramm, welches die Hauptoperationen zum Durchqueren einer Firewall in einer Ausführungsform darstellt. Es versteht sich, dass das Öffnen einer Verbindung oder die Herstellung einer Kommunikationsverbindung sich effektiv auf dieselbe Sache beziehen, dass sobald erreicht, ein Transfer von Informationen (d.h. Kommunikation) mit einer Einheit auf der anderen Seite einer Firewall möglich ist. Der Fachmann wird erkennen, dass ein bestimmtes Protokoll, zum Beispiel, Handshakes, Synchronisationsbits, einen Identifikationsnachweis etc. verlangen kann, bevor eine Verbindung geöffnet wird, so dass die Kommunikation zwischen Geräten fortgeführt werden kann. Für Zwecke dieser Diskussion sind diese Details jedoch nicht nötig, um die Erfindung zu verstehen. Daher, wenn nicht anderweitig angegeben, bezieht sich eine Bezugnahme auf das Offnen einer Verbindung und/oder der Herstellung einer Kommunikationsverbindung auf das Endergebnis, dass Geräte fähig sind, Information zu transferieren und dabei miteinander kommunizieren können. Transfer von Information wird verstanden als Senden von Information, Empfangen von Information, oder sowohl Senden als auch Empfangen von Information.
  • Bezug nehmend auf 4, versucht ein Gerät gemäß einer Ausführungsform der Erfindung, eine TCP Verbindung zu einem zuvor spezifizierten Port (angegeben als x) 402 bei einer gegebenen Adresse zu öffnen. Da das Gerät versucht, eine Verbindung zu öffnen, werden wir es als Client bezeichnen und das Ziel, mit dem es eine Verbindung herstellen möchte, werden wir einen Server nennen. Dies sind Standard-Industrie-Bezeichnungen und in der Technik wohl bekannt. Der zuvor spezifizierte Port kann basierend auf, zum Beispiel, der Charakterisierung von Firewalls von verschiedenen Herstellern ausgewählt werden und repräsentiert eine anfängliche beste Schätzung eines Ports der eine Verbindung erlauben wird. Da TCP das IP im Internet verwendet, kann eine IP Adresse, zum Beispiel die des Herstellers des Geräts oder eine zentrale Stelle verwendet werden. Das Verbinden zur Herstellerstelle, zum Beispiel im Internet, kann dem Hersteller erlauben, Diagnostiken an dem Gerät durchzuführen, Aktualisierungen an Code oder der Firmware durchzuführen, etc. Solche Dienstleistungen können kostenlos und/oder kostenpflichtig sein. Auf ähnliche Weise kann ein(e) zentrale(r) Stelle oder Anbieter kontaktiert werden, welche(r) solche Dienstleistungen ausführen kann. Zusätzlich kann eine zentrale Stelle das Gerät an (eine) andere Stelle(n) weiterleiten. Diese anderen Stellen können weitere Dienstleistungen zur Verfügung stellen und/oder eine Betreuung durch eine dritte Person sein. Zum Beispiel kann eine Stelle das Gerät hinsichtlich der neuesten und/oder besten Ansätze von Strategien zur Firewall Durchquerung aktualisieren. Solche Aktualisierungen können innerhalb des Geräts selbst (z.B. Flash Speicher, etc.) und/oder eines Speichergeräts gespeichert werden, auf das das Gerät Zugriff hat (z.B. Diskettenspeicher, etc.).
  • Als nächstes wird eine Kontrolle durchgeführt um festzustellen, ob die TCP Verbindung mit zuvor spezifiziertem Port x hergestellt ist 404. Falls die TCP Port x Verbindung hergestellt ist, kann das Gerät dann die Kommunikation beginnen 406. Falls die TCP Port x Verbindung nicht hergestellt ist, kann das Gerät dann versuchen eine HTTP Verbindung zu öffnen 408. Eine Prüfung wird durchgeführt um festzustellen, ob die HTTP Verbindung hergestellt ist 410. Falls eine HTTP Verbindung hergestellt ist, kann das Gerät dann mit der Kommunikation beginnen 406. Falls die HTTP Verbindung nicht hergestellt ist, kann das Gerät dann versuchen eine HTTP Verbindung über eine Proxy Verbindung zu öffnen 412. Eine Kontrolle wird durchgeführt um zu überprüfen, ob die HTTP Verbindung über eine Proxy Verbindung hergestellt ist 414. Falls eine HTTP Verbindung über eine Proxy Verbindung hergestellt ist, kann das Gerät dann mir der Kommunikation beginnen 406. Falls die HTTP Verbindung über eine Proxy Verbindung nicht hergestellt ist, kann das Gerät dann andere Optionen ausprobieren um eine Verbindung zu öffnen 416, wie eine verschiedene Adresse mit der oben beschriebenen Sequenz zu versuchen. Es versteht sich, dass die in 4 angegebenen und oben diskutierten Blöcke auf/in eine(r) Vielzahl von Wegen und/oder Formen implementiert werden können. Zum Beispiel können in einer Implementierung die Blöcke der 4 auf einem computerbasierten System implementiert werden, welches Softwarecode ausführt. Zum Beispiel kann das Versuchen, eine Verbindung zu öffnen (z.B. 402, 408, 412) mittels Softwarecode implementiert werden, welcher, zum Beispiel, eine Ethernetadapter Karte konfiguriert. Ähnlich kann die Kontrolle um festzustellen, ob eine Verbindung hergestellt wurde (z.B. 404, 410, 414) mittels Software implementiert werden, die kontrolliert, ob auf ausgehende Nachricht hin geantwortet wird. Ähnlich kann auch das Versuchen anderer Optionen um eine Verbindung zu öffnen 416 und die Kommunikation zu beginnen 406 mittels ausgeführter Software auf einem computerbasierten System implementiert werden, das zum Beispiel mit einer Ethernet Schnittstelle verbunden ist.
  • Während 4 eine Ausführungsform unter Verwendung von TCP veranschaulichte, wird der Fachmann erkennen, dass derselbe Ansatz für andere Transportprotokolle, zum Beispiel UDP, verwendet werden kann.
  • 5 ist eine Ausführungsform eines Ansatzes um zu versuchen, eine HTTP Verbindung über eine Proxy Verbindung herzustellen. In dieser Ausführungsform wird das Gerät, das versucht zu kommunizieren, versuchen, die korrekte Adresse und den korrekten Port für die Verbindung durch, zum Beispiel, einen Proxy zu erkennen. Das Gerät wird Pakete sniffen 502 die das Kommunikationsmedium durchqueren, mit dem das Gerät verbunden ist; zum Beispiel ein Ethernet. Dies bedeutet, dass wenn das Gerät an ein Ethernet gekoppelt ist, die Ethernet Schnittstelle des Geräts in den promiscuous Modus versetzt wird, was es dem Gerät erlauben kann, den Ethernet Netzwerkverkehr zu überwachen. Das Gerät wird dann eine Datenbank (DB) von Adressen und Ports 504 aufbauen, die aus den Paketen extrahiert wurden. Danach wird das Gerät die/den wahrscheinlichste(n) Adresse und Port aus der Datenbank auswählen 506 und versuchen, eine HTTP Verbindung über eine Proxy Verbindung 508 zu öffnen. Das Gerät wird dann überprüfen, ob die HTTP Verbindung über die Proxy Verbindung hergestellt ist 510. Falls die Verbindung hergestellt ist, wird das Gerät dann die Adress- und die Portinformationen abspeichern 512 und mit der Kommunikation fortschreiten 514. Wenn, auf der anderen Seite, die HTTP Verbindung über eine Proxy Verbindung nicht hergestellt ist, wird das Gerät überprüfen, ob irgendwelche Adressen und/oder Ports verbleiben 516. Falls keine Adressen und/oder Ports mehr zum Ausprobieren übrig sind, kann das Gerät dann andere Optionen versuchen 518. Falls irgendwelche Adressen und/oder Ports verbleiben 516, dann wird das Gerät erneut die/den wahrscheinlichste(n) Adresse und Port auswählen 506 und den Prozess erneut versuchen. Es versteht sich, dass die Auswahl der wahrscheinlichsten Adresse und des wahrscheinlichsten Ports 506 auf einer Datenbank von Adressen und Ports basiert und, dass sich diese Datenbank ändert. Das bedeutet, dass wenn eine Adresse und/oder ein Port keine erfolgreiche Verbindung ergibt, das Gerät beim nächsten Mal, bei dem es die wahrscheinlichste Adresse und den wahrscheinlichsten Port auswählt 506, den nicht erfolgreichen Port nicht mitberücksichtigt. Zum Beispiel kann das Resultat des Aufbauens einer DB von Adressen und Ports 504 zum Beispiel die Ports 23, 7, 110, 49, 69, 1433 und 25 für eine gegebene Adresse enthalten. Angenommen, dass für dieses Beispiel die Reihenfolge vom wahrscheinlichsten zum am wenigsten wahrscheinlichsten Port 110, 7, 25, 49, 1433, 69 und 23 ist. Dann wird das Gerät zu Beginn den am wahrscheinlichsten Port 506 für die gegebene Adresse auswählen, was Port 110 ist. Falls eine HTTP Verbindung über eine Proxy Verbindung mit diesem Port 110 nicht hergestellt werden kann, wird das Gerät kontrollieren ob irgendwelche Ports verbleiben 516 und, feststellend, dass dieses zutrifft, erneut den am wahrscheinlichsten Port auswählen 506. Dieses Mal jedoch hat Port 110 fehlgeschlagen und deswegen wird Port 7 der am wahrscheinlichste sein. Es wird verstanden werden, dass dieses fortgeführt werden kann, bis keine weiteren Adressen und/oder Ports verbleiben.
  • Das Gerät wird eine Datenbank (DB) von Adressen und Ports aufbauen 504 die von den Paketen gesnifft wurden. Diese Datenbank kann über eine Zeitspanne, entweder kurz oder lang, aufgebaut werden. Zusätzlich kann das Gerät den gesamten Verkehr abfangen, oder eine Probe des Verkehrs nehmen. Als Beispiel kann das Gerät, wenn es limitierte Ressourcen hat, Proben vom Verkehr über eine lange Zeitspanne nehmen um die Datenbank aufzubauen. Falls das Gerät die Uhrzeit kennt, kann es entscheiden, Pakte auf der Basis von Proben von, beispielsweise 8 Uhr früh bis 9 Uhr früh zu sniffen, in der Annahme, dass ein guter Teil des Netzwerkverkehrs Ressourcen, die zum Beispiel im Internet und damit jenseits der Firewall lokalisiert sind, abfragen könnte. Auf ähnliche Weise kann das Gerät den Verkehr zwischen 1 Uhr früh und 5 Uhr früh nicht kontrollieren, annehmend, dass ein Großteil des Netzwerkverkehrs auf Intranetaktivität, wie automatisierten Datensicherungen etc., basiert. Ein Gerät, welches mehr Ressourcen hat, kann in der Lage sein, das Sniffen in Echtzeit durchzuführen.
  • Sobald die Datenbank von Adressen und Ports aufgebaut ist, wird das Gerät die wahrscheinlichste Adresse und den wahrscheinlichsten Port 506 aus der Datenbank auswählen. Die Auswahlkriterien für die wahrscheinlichste Adresse und den wahrscheinlichsten Port, die eine HTTP Verbindung über eine Proxy Verbindung erlauben, können auf verschiedenen Faktoren basieren. Ein solcher Faktor kann einfach die Adresse und der Port mit der meisten Aktivität sein. Wenn natürlich das meiste der Aktivität im Intranet stattfindet, werden diese Adresse und dieser Port keinen externen Zugriff jenseits der Firewall, zum Beispiel Zugriff auf das Internet, zulassen. Ein weiteres Kriterium kann sein, auf den Inhalt des Netzwerkverkehrs zu schauen. Zum Beispiel ist es wahrscheinlich, dass Verkehr, der einen HTTP Inhalt zu haben scheint, von einer externen Stelle, von zum Beispiel dem Internet, stammt. Ein Rangliste basierend auf dem Inhalt des Verkehrs kann deswegen ein verlässlicherer Indikator einer Adresse und eines Ports sein, die wahrscheinlich sind, beim Durchqueren einer Firewall erfolgreich zu sein. Wenn dies so ist, dann kann dies einen wahrscheinlichen Kandidaten anzeigen, der für eine erfolgreiche Verbindung ausprobiert werden kann. Zusätzlich, kann es möglich sein, einen wahrscheinlichen Kandidaten für eine erfolgreiche Verbindung zu extrahieren, indem die Zugriffsmuster des Verkehrs analysiert werden. Dies bedeutet, wenn viele Verbindungen zu einem Gerät im Netz hergestellt werden, aber wenige von diesem zu anderen Geräten ausgehen, kann dies ein Anzeichen für einen Proxy sein. Ein weiteres Anzeichen für einen Proxy kann sein, wo der meiste Verkehr von einem Gerät zu vielen anderen Geräten transferiert wird.
  • Nachdem das Gerät die wahrscheinlichste Adresse und den wahrscheinlichsten Port, die ausprobiert werden sollen, ausgewählt hat 506, kann es andere Operationen geben, die durchgeführt werden müssen, bevor das Gerät versuchen kann, eine HTTP Verbindung über eine Proxy Verbindung zu öffnen 508. Zum Beispiel muss die Portnummer, wenn das lokale Netzwerk ein Ethernet ist und eine Proxy Firewall mit diesem Ethernet verbunden ist, dann mit einer Ethernetadresse assoziiert werden, um mit dem Proxy zu kommunizieren.
  • Falls eine HTTP Verbindung über eine Proxy Verbindung hergestellt ist, kann das Gerät dann die Adress- und Portinformationen speichern 512 und mit der Kommunikation fortfahren 514. Das Gerät kann die Adress- und Portinformationen auf eine Vielzahl von Wegen speichern 512. Zum Beispiel kann das Gerät, in einer Ausführungsform, die Adress- und Portinformationen in einem on-board Flash Speicher speichern. In einer anderen Ausführungsform kann das Gerät einen Indikator in der Datenbank der Adressen und Ports platzieren, dass eine bestimmte Adresse und ein bestimmter Port erfolgreich bei der Herstellung einer Verbindung waren. Der Fachmann wird die Vielzahl von Wegen erkennen, auf welche diese Art von Information gespeichert werden kann.
  • Falls keine Ports mehr übrig sind, die ausprobiert werden können, kann das Gerät dann andere Optionen ausprobieren 518. Andere Optionen können sein, ohne jedoch darauf beschränkt zu sein, ein erneuter Versuch des gesamten Prozesses (von 502 an), das Sniffen von Pakten zu einem anderen Zeitpunkt, Abwarten und erneutes Versuchen der Ports in der Datenbank zu einem späteren Zeitpunkt, etc.
  • Sogar falls eine erfolgreiche Verbindung hergestellt wurde, wird der Fachmann erkennen, dass Netzwerke neu konfiguriert werden, neue Geräte (wie Router, Switche, Firewalls, etc.) hinzugefügt und/oder alte entfernt werden. Unter diesen Umständen ist es umsichtig, dass das Gerät periodisch versucht, neue Verbindungen herzustellen, für den Fall, dass die früheren Ansätze nicht länger funktionieren. Statt auf eine nichterfolgreiche Verbindung zu warten, um diesen Prozess, erfolgreiche Verbindungen zu lokalisieren, anzustoßen, kann das Gerät periodisch versuchen Verbindungen aufzubauen und solche Resultate, wie zuvor beschrieben, in der Datenbank aufzeichnen. Auf diese Art und Weise kann das Gerät eine aktuelle Datenbank haben, die jene erfolgreichen Versuche anzeigt. Zusätzlich kann die Suche nach einer erfolgreichen Verbindung auf eine solche Art und Weise geordnet werden, dass die effizientesten Verfahren zur Kommunikation durch eine Firewall zuerst ausprobiert werden. In diesem Fall wird dann die erste solcher erfolgreichen Verbindungen auch höchstwahrscheinlich die am effizienteste sein.
  • 6 stellt eine weiter mögliche Ausführungsform der vorliegenden Erfindung als ein Gerät 600 dar. Das Gerät 600 hat ein Hauptsystem 602, das an einen Speicher 604, ein Kommunikationssubsystem 606, ein Subsystem zur Untersuchung von Paketen 608 und ein Datenbanksystem 610 gekoppelt ist. Das Kommunikationssubsystem 606 ist weiterhin an ein Kommunikationsmedium 612 und ein Subsystem zur Untersuchung von Paketen 608 gekoppelt. Das Subsystem zur Untersuchung von Paketen ist ebenfalls an das Datenbanksystem 610 gekoppelt. Der Fachmann versteht, dass die Ausführungsform von Gerät 600, das Hauptsystem 602, der Speicher 604, das Kommunikationssubsystem 606, das Subsystem zur Untersuchung von Paketen 608 und das Datenbanksystem 610 eine oder mehrere und/oder eine Kombination der Elemente aus 2 sein können, aber darauf nicht limitiert sind.
  • Ein Beispiel für den Betrieb der Ausführungsform von Gerät 600, wie in 6 gezeigt, ist wie folgt. Das Hauptsystem 602 führt Code aus, welcher versucht eine Kommunikationsverbindung durch das Kommunikationsmedium 612 aufzubauen, indem es das Kommunikationssubsystem 606 konfiguriert und Information zu/von dem Kommunikationssubsystem 606 sendet und empfängt. Das Kommunikationssubsystem 606 kann, zum Beispiel, eine Ethernet Schnittstelle sein. Das Hauptsystem 602 kann, zum Beispiel, versuchen durch das Kommunikationsmedium 612 zu kommunizieren, indem es ein TCP Paket mit einem IP Datagramm zu einer spezifizierten Ethernet Adresse schickt. Wenn, auf der anderen Seite, die versuchte Kommunikation erfolglos ist, dann muss das Gerät 600 den Netzwerkverkehr durch das Kommunikationsmedium 612 beobachten, im Versuch, diejenigen Parameter zu bestimmen, die eine erfolgreiche Verbindung zulassen. Diese Parameter können sein, sind aber nicht darauf limitiert, Quell- und/oder Zielportnummern, Quell- und/oder Zieladressen für IP und/oder Ethernet. Zusätzlich untersucht das Subsystem zur Untersuchung von Paketen 608 den Dateninhalt der Pakete in einem Versuch, wahrscheinlichere Parameter für eine erfolgreiche Kommunikation zu finden. Zum Beispiel untersucht das Subsystem zur Untersuchung von Paketen 608 Pakete auf HTTP artige Daten. HTTP artige Daten können ein Hinweis auf Daten sein, die von außerhalb der Firewall kommuniziert werden und deshalb können die Ports und/oder Adressen, die mit diesem Paket assoziiert sind, eine bessere Möglichkeit darstellen, die Firewall erfolgreich zu durchqueren.
  • Datenbanksysteme 610 können, zum Beispiel, sein eine Liste von wahrscheinlichen Portnummern für den erfolgreichen Zugriff jenseits einer Firewall. Das Datenbanksystem kann auch ein hochentwickeltes System sein, das fähig ist, eine statistische Analyse der Ergebnisse, die durch das Subsystem zur Untersuchung von Paketen 608 erzeugt wurden, durchzuführen. Das Hauptsystem 602 kann das Subsystem zur Untersuchung von Paketen 608 konfigurieren, auf bestimmte interessierende Eigenschaften zu schauen, zum Beispiel IP Portnummern.
  • Hauptsystem 602 kann mit dem Datenbanksystem 610 interagieren, durch Empfang von Parametern und Versuch, unter Verwendung jener Parameter, zu kommunizieren, und wenn erfolgreiche Kommunikationen hergestellt werden konnten, kann das Hauptsystem 602 dann diese Parameter im Speicher 604 speichern, oder dem Datenbanksystem 610 einen Erfolg oder einen Misserfolg mitteilen, so dass diese Information über Erfolg oder Misserfolg mit dem Datenbankeintrag des bestimmten Parameters assoziiert werden.
  • Während die obigen Darstellungen verschiedene Ausführungsformen der vorliegenden Erfindung gezeigt haben, versteht es sich, dass die vorliegende Erfindung eine Implementierung eines adaptiven Algorithmus zum Durchqueren einer Firewall ist. Als solches versteht der Fachmann, dass es viele Wege gibt, solch einen adaptiven Algorithmus zu implementieren. Was zu erkennen ist, ist die adaptive Natur der vorliegenden Erfindung um die Kommunikation mit einer anderen Einheit herzustellen.
  • Zusätzlich haben die obigen Darstellungen die häufigsten Ausführungsformen für Protokolle gezeigt. Der Fachmann versteht, dass es bei der Ausführung der vorliegenden Erfindung viele andere Netzwerke und Schnittstellen als nur Ethernet (z.B. Glasfaser, Koax, drahtlos, etc.) gibt und das IP und andere Protokolle über andere Kommunikationsverbindungen ausgeführt werden können (z.B. serielles Punkt zu Punkt Protokoll (PPP) für IP).
  • Zusätzlich versteht es sich, wo Bezüge auf Industriestandard Protokolle, wie TCP, IP, etc., gemacht wurden, dass andere Protokolle für die Implementierung nötig sein können und es versteht sich, dass deshalb auch darauf verwiesen ist. Zum Beispiel definiert Request For Comment (RFC) 1011 offizielle Internetprotokolle. Innerhalb von RFC 1011 können Protokolle erforderlich, empfohlen, wahlweise, experimentell, keines, etc. sein. Daher ist, zum Beispiel die Implementierung von IP (Internetprotokoll), wie in RFC 791 spezifiziert, erforderlich. Weiterhin erforderlich in jeglicher IP Implementierung ist das Internet Control Message Protocol (ICMP), wie in RFC 792 definiert. Daher impliziert jegliche Diskussion von IP die Existenz von wenigstens diesen Protokollen. Diese Standards können sich über die Zeit weiterentwickeln und sich verändern, jedoch werden die Techniken der vorliegenden Erfindung als anpassungsfähig an solche Änderungen angesehen.
  • Eine Bezugname auf UDP ist wie definiert in RFC 768, TCP wie definiert in RFC 793, HTTP wie definiert in RFC 2616, etc. und andere Standards wie von den jeweiligen RFCs referenziert, oder der Haupt-RFC Liste (Datei: rfc-index.txt). Eine Bezugnahme auf ein bestimmtes RFC soll nicht anzeigen, dass dieses das einzige RFC ist, welches mit der Spezifizierung in Verbindung steht, sondern dient eher als ein Ausgangspunkt für eine Referenz. Dies bedeutet, zum Beispiel, dass ARP verschiedene RFCs hat, abhängig von seiner Verwendung (z.B. beschreibt RFC 826 das Adressauflösungsprotokoll, RFC 925 beschreibt Proxy ARP, etc.).
  • Ähnlich wurden in einigen illustrativen Ausführungsformen und der Diskussion Referenzen auf spezifische Portnummern gegeben. RFC 1700, zugeordnete Nummern, hat eine Liste von wohlbekannten Portnummern. Dieses kann sich im Laufe der Zeit ändern und soll nicht als die Anwendbarkeit der offenbarten Techniken limitierend interpretiert werden.
  • Daher sind ein Verfahren, ein maschinenlesbares Medium und eine Vorrichtung zum Durchqueren einer Firewall offenbart. Obwohl die vorliegende Erfindung vollständig mittels Beispielen unter Bezugnahme auf die begleitenden Zeichnungen beschrieben wurde, wird angemerkt, dass verschiedene Modifikationen und Veränderungen, die für den Fachmann offensichtlich sind, durchgeführt werden können, ohne vom weiteren Umfang der vorliegenden Erfindung, wie in den angefügten Ansprüchen bestimmt, abzuweichen.

Claims (17)

  1. Verfahren zum Durchqueren einer Firewall (310), enthaltend einen Proxy, umfassend: Einleiten (402) einer ersten Verbindung; Auswerten (404) einer ersten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche erste Verbindung anzeigt; Einleiten (408) einer zweiten Verbindung, falls eine erfolgreiche erste Verbindung nicht hergestellt ist; Auswerten (410) der zweiten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche zweite Verbindung anzeigt; Einleiten (412) einer dritten Verbindung, falls eine erfolgreiche zweite Verbindung nicht hergestellt ist; und Auswerten (414) der dritten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche dritte Verbindung anzeigt, wobei der Netzwerkverkehr überwacht wird (502) zur Erkennung einer korrekten Adresse und eines korrekten Ports von besagtem Proxy zur Verbindung durch besagten Proxy, wobei die erste Verbindung, die zweite Verbindung und die dritte Verbindung ein unterschiedliches Protokoll, eine unterschiedliche Adresse und/oder einen unterschiedlichen Port verwenden.
  2. Verfahren gemäß Anspruch 1, wobei die erste Verbindung, die zweite Verbindung und die dritte Verbindung ausgewählt sind aus der Gruppe bestehend aus Transmission Control Protocol TCP Verbindung, User Datagram Protocol UDP Verbindung, Hypertext Transfer Protocol HTTP Verbindung, Hypertext Transfer Protocol HTTP Verbindung über eine Proxy Verbindung und Internet Control Message Protocol ICMP Verbindung.
  3. Verfahren gemäß Anspruch 2, wobei das Einleiten einer TCP Verbindung das Einleiten einer TCP Verbindung zu einer vordefinierten Adresse und einem vordefinierten Port 80 umfasst.
  4. Verfahren gemäß Anspruch 2, wobei das Einleiten einer HTTP Verbindung das Einleiten einer HTTP Verbindung zu einer vordefinierten Adresse unter Verwendung von Port umfasst.
  5. Verfahren gemäß der Ansprüche 1–4, wobei das Überwachen des Netzwerkverkehrs weiterhin umfasst: Aufbauen einer Datenbank von wahrscheinlichen Proxy Adressen und Ports.
  6. Verfahren gemäß Anspruch 2, weiterhin umfassend die Verwendung des Internet Protocol IP.
  7. Verfahren gemäß Anspruch 6, wobei das Einleiten einer HTTP Verbindung über eine Proxy Verbindung weiterhin die Bestimmung einer wahrscheinlichen Proxy Adresse durch Abfragen von Paketen und Extrahieren von IP Adressen umfasst.
  8. Verfahren gemäß Anspruch 2, weiterhin umfassend die Verwendung von Ethernet mit dem Transmission Control Protocol TCP.
  9. Verfahren gemäß Anspruch 8, wobei das Einleiten einer HTTP Verbindung über eine Proxy Verbindung weiterhin die Bestimmung einer wahrscheinlichen Proxy Adresse durch Abfragen von Paketen und Extrahieren von Ethernet Adressen umfasst.
  10. Maschinenlesbares Medium mit darauf gespeicherten Anweisungen, die, wenn von einem Prozessor ausgeführt, den Prozessor veranlassen, das folgende auszuführen: Einleiten (402) einer ersten Verbindung; Auswerten (404) der ersten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche erste Verbindung anzeigt; Einleiten (408) einer zweiten Verbindung, falls eine erfolgreiche erste Verbindung nicht hergestellt ist; Auswerten (410) der zweiten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche zweite Verbindung anzeigt; Einleiten (412) einer dritten Verbindung, falls eine erfolgreiche zweite Verbindung nicht hergestellt ist; Auswerten (414) der dritten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche dritte Verbindung anzeigt; und Untersuchen (502) des Netzwerkverkehrs, um eine korrekten Adresse und einen korrekten Port eines Proxys, enthalten in einer Firewall, zu erkennen für eine Verbindung durch besagten Proxy, wobei die erste Verbindung, die zweite Verbindung und die dritte Verbindung ein unterschiedliches Protokoll, eine unterschiedliche Adresse und/oder einen unterschiedlichen Port verwenden.
  11. Maschinenlesbares Medium gemäß Anspruch 10, das besagten Prozessor weiterhin zur Ausführung des folgenden konfiguriert: Implementierung der ersten Verbindung, der zweiten Verbindung und der dritten Verbindung ausgewählt aus der Gruppe bestehend aus Transmission Control Protocol TCP Verbindung, User Datagram Protocol UDP Verbindung, Hypertext Transfer Protocol HTTP Verbindung, Hypertext Transfer Protocol HTTP Proxy Verbindung und Internet Control Message Protocol ICMP Verbindung.
  12. Maschinenlesbares Medium gemäß Anspruch 11, das besagten Prozessor weiterhin zur Ausführung des folgenden konfiguriert: Aufbauen einer Datenbank von Parametern, die wahrscheinlich sind, die Herstellung einer HTTP Verbindung über eine Proxy Verbindung zu erlauben.
  13. Vorrichtung (600) zum Durchqueren einer Firewall (310), beinhaltend einen Proxy, umfassend: Mittel zum Einleiten (402) einer ersten Verbindung; Mittel zum Auswerten (404) der ersten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche erste Verbindung anzeigt; Mittel zum Einleiten (408) einer zweiten Verbindung, falls eine erfolgreiche erste Verbindung nicht hergestellt ist; Mittel zum Auswerten (410) der zweiten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche zweite Verbindung anzeigt; Mittel zum Einleiten (412) einer dritten Verbindung, falls eine erfolgreiche zweite Verbindung nicht hergestellt ist; Mittel zum Auswerten (414) der dritten Verbindung auf eine Antwort eines entfernten Systems hin, was eine erfolgreiche dritte Verbindung anzeigt; und Mittel zur Erkennung einer korrekten Adresse und eines korrekten Ports von besagtem Proxy für eine Verbindung durch besagten Proxy mittels Untersuchen (502) des Netzwerkverkehrs, wobei die Mittel zur Auswertung der ersten Verbindung, die Mittel zur Auswertung der zweiten Verbindung und die Mittel zur Auswertung der dritten Verbindung ein unterschiedliches Protokoll, eine unterschiedliche Adresse und/oder einen unterschiedlichen Port verwenden.
  14. Vorrichtung gemäß Anspruch 13, wobei die Mittel zum Einleiten der ersten Verbindung, die Mittel zum Einleiten der zweiten Verbindung und die Mittel zum Einleiten der dritten Verbindung weiterhin Mittel zur Einleitung einer Verbindung ausgewählt aus der Gruppe bestehend aus Transmission Control Protocol TCP Verbindung, User Datagram Protocol UDP Verbindung, Hypertext Transfer Protocol HTTP Verbindung, Hypertext Transfer Protocol HTTP Proxy Verbindung und Internet Control Message Protocol ICMP Verbindung umfassen.
  15. Vorrichtung gemäß Anspruch 14, wobei die Mittel zum Einleiten einer HTTP Verbindung über eine Proxy Verbindung weiterhin die Bestimmung einer wahrscheinlichen Proxy Adresse durch Sniffing von Paketen und Extrahieren von Informationen aus den Paketen umfasst.
  16. Vorrichtung gemäß Anspruch 14, wobei die Mittel zur Einleitung einer HTTP Verbindung über eine Proxy Verbindung weiterhin die Bestimmung einer wahrscheinlichen Proxy Adresse durch Erhalten von Informationen von einem mit der Firewall verbundenen Computer umfassen.
  17. Vorrichtung gemäß Anspruch 13, weiterhin umfassend Mittel zum Aktualisieren der Strategien zum Durchqueren der Firewall.
DE60125833T 2001-01-11 2001-11-12 Verfahren und Vorrichtung zum Durchqueren einer Firewall Expired - Lifetime DE60125833T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/759,728 US7631349B2 (en) 2001-01-11 2001-01-11 Method and apparatus for firewall traversal
US759728 2001-01-11
PCT/US2001/047069 WO2002056175A2 (en) 2001-01-11 2001-11-12 Method and apparatus for firewall traversal

Publications (2)

Publication Number Publication Date
DE60125833D1 DE60125833D1 (de) 2007-02-15
DE60125833T2 true DE60125833T2 (de) 2007-06-28

Family

ID=25056735

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60125833T Expired - Lifetime DE60125833T2 (de) 2001-01-11 2001-11-12 Verfahren und Vorrichtung zum Durchqueren einer Firewall

Country Status (6)

Country Link
US (2) US7631349B2 (de)
EP (1) EP1352501B1 (de)
AT (1) ATE350851T1 (de)
AU (1) AU2002225993A1 (de)
DE (1) DE60125833T2 (de)
WO (1) WO2002056175A2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214262A1 (en) * 2000-02-25 2007-09-13 Anywheremobile, Inc. Personal server technology with firewall detection and penetration
US20020156860A1 (en) * 2000-02-25 2002-10-24 Finke Alan D. Personal server system
US20020078198A1 (en) * 2000-02-25 2002-06-20 Buchbinder John E. Personal server technology with firewall detection and penetration
GB2362482A (en) * 2000-05-15 2001-11-21 Ridgeway Systems & Software Lt Direct slave addressing to indirect slave addressing
GB2365256A (en) 2000-07-28 2002-02-13 Ridgeway Systems & Software Lt Audio-video telephony with port address translation
GB2369746A (en) * 2000-11-30 2002-06-05 Ridgeway Systems & Software Lt Communications system with network address translation
US7631349B2 (en) * 2001-01-11 2009-12-08 Digi International Inc. Method and apparatus for firewall traversal
US7146642B1 (en) * 2001-06-29 2006-12-05 Mcafee, Inc. System, method and computer program product for detecting modifications to risk assessment scanning caused by an intermediate device
US20030106067A1 (en) * 2001-11-30 2003-06-05 Hoskins Steve J. Integrated internet protocol (IP) gateway services in an RF cable network
US7631350B2 (en) * 2002-03-06 2009-12-08 Hewlett-Packard Development Company, L.P. Transmitting data across firewalls
FR2843847B1 (fr) * 2002-08-26 2004-11-19 At & T Corp Systeme permettant d'etablir une connexion telnet avec un dispositif eloigne depourvu de modem
WO2004023263A2 (en) * 2002-09-09 2004-03-18 Netrake Corporation System for allowing network traffic through firewalls
WO2005029337A1 (ja) * 2003-09-22 2005-03-31 Japan Media Systems Corp. データ通信システム、プログラム及び記録媒体
US8224966B2 (en) * 2004-08-24 2012-07-17 Cisco Technology, Inc. Reproxying an unproxied connection
US9118717B2 (en) * 2005-02-18 2015-08-25 Cisco Technology, Inc. Delayed network protocol proxy for packet inspection in a network
US8190773B2 (en) * 2005-06-03 2012-05-29 Nokia Corporation System and method for accessing a web server on a device with a dynamic IP-address residing behind a firewall
US9021134B1 (en) * 2006-03-03 2015-04-28 Juniper Networks, Inc. Media stream transport conversion within an intermediate network device
US20080115202A1 (en) * 2006-11-09 2008-05-15 Mckay Michael S Method for bidirectional communication in a firewalled environment
US8929360B2 (en) * 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
US8997076B1 (en) * 2007-11-27 2015-03-31 Google Inc. Auto-updating an application without requiring repeated user authorization
GB0800268D0 (en) * 2008-01-08 2008-02-13 Scansafe Ltd Automatic proxy detection and traversal
ES2704473T3 (es) 2009-02-06 2019-03-18 Xmedius Solutions Inc Atravesamiento de NAT usando perforación de agujero
CN102812431A (zh) 2010-03-22 2012-12-05 Lrdc系统有限公司 用于识别与保护一组源数据的完整性的方法
US20110246692A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Implementing Control Using A Single Path In A Multiple Path Interconnect System
US9923866B2 (en) * 2013-12-16 2018-03-20 Yamaha Corporation Communication system, terminal apparatus and server
WO2015199702A1 (en) 2014-06-26 2015-12-30 Hewlett-Packard Development Company, L.P. Selecting proxies
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching
US10250564B2 (en) * 2017-08-21 2019-04-02 Verizon Patent And Licensing Inc. Dynamically allowing traffic flow through a firewall to allow an application server device to perform mobile-terminated communications

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537417A (en) 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US5950195A (en) * 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US5983350A (en) * 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US5944823A (en) * 1996-10-21 1999-08-31 International Business Machines Corporations Outside access to computer resources through a firewall
US5852717A (en) * 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US6044401A (en) 1996-11-20 2000-03-28 International Business Machines Corporation Network sniffer for monitoring and reporting network information that is not privileged beyond a user's privilege level
US5987611A (en) * 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US5999979A (en) * 1997-01-30 1999-12-07 Microsoft Corporation Method and apparatus for determining a most advantageous protocol for use in a computer network
US5790977A (en) 1997-02-06 1998-08-04 Hewlett-Packard Company Data acquisition from a remote instrument via the internet
US6212192B1 (en) * 1997-03-14 2001-04-03 Itxc, Inc. Method and apparatus for synchronizing information browsing among multiple systems
US5991795A (en) 1997-04-18 1999-11-23 Emware, Inc. Communication system and methods using dynamic expansion for computer networks
NO305420B1 (no) * 1997-09-02 1999-05-25 Ericsson Telefon Ab L M Anordning ved datakommunikasjonssystem, spesielt ved kommunikasjon via brannmurer
US6298445B1 (en) * 1998-04-30 2001-10-02 Netect, Ltd. Computer security
JPH11338798A (ja) * 1998-05-27 1999-12-10 Ntt Communication Ware Kk ネットワークシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
US6233688B1 (en) * 1998-06-30 2001-05-15 Sun Microsystems, Inc. Remote access firewall traversal URL
US6219786B1 (en) * 1998-09-09 2001-04-17 Surfcontrol, Inc. Method and system for monitoring and controlling network access
FI109756B (fi) * 1998-09-21 2002-09-30 Nokia Corp Menetelmä tiedonsiirtojärjestelmässä paikallisten resurssien hyödyntämiseksi, tiedonsiirtojärjestelmä ja langaton viestin
US6484206B2 (en) * 1998-10-07 2002-11-19 Nortel Networks Limited Efficient recovery of multiple connections in a communication network
US6446028B1 (en) * 1998-11-25 2002-09-03 Keynote Systems, Inc. Method and apparatus for measuring the performance of a network based application program
US6550012B1 (en) * 1998-12-11 2003-04-15 Network Associates, Inc. Active firewall system and methodology
US6463474B1 (en) * 1999-07-02 2002-10-08 Cisco Technology, Inc. Local authentication of a client at a network device
CA2297341A1 (en) * 1999-08-18 2001-02-18 Alma-Baba Technical Research Laboratory Co., Ltd. System for monitoring network for cracker attack
US6957348B1 (en) * 2000-01-10 2005-10-18 Ncircle Network Security, Inc. Interoperability of vulnerability and intrusion detection systems
US7315801B1 (en) * 2000-01-14 2008-01-01 Secure Computing Corporation Network security modeling system and method
US20020078198A1 (en) * 2000-02-25 2002-06-20 Buchbinder John E. Personal server technology with firewall detection and penetration
US6854063B1 (en) * 2000-03-03 2005-02-08 Cisco Technology, Inc. Method and apparatus for optimizing firewall processing
US6795918B1 (en) * 2000-03-07 2004-09-21 Steven T. Trolan Service level computer security
US6950947B1 (en) * 2000-06-20 2005-09-27 Networks Associates Technology, Inc. System for sharing network state to enhance network throughput
US6996845B1 (en) * 2000-11-28 2006-02-07 S.P.I. Dynamics Incorporated Internet security analysis system and process
US7631349B2 (en) * 2001-01-11 2009-12-08 Digi International Inc. Method and apparatus for firewall traversal
WO2003083692A1 (en) * 2002-03-27 2003-10-09 First Virtual Communications System and method for traversing firewalls with protocol communications
US9106526B2 (en) * 2003-03-21 2015-08-11 Hewlett-Packard Development Company, L.P. Traversing firewalls
KR100522138B1 (ko) * 2003-12-31 2005-10-18 주식회사 잉카인터넷 신뢰할 수 있는 프로세스를 허용하는 유연화된 네트워크보안 시스템 및 그 방법
US20070022289A1 (en) * 2005-07-20 2007-01-25 Mci, Inc. Method and system for providing secure credential storage to support interdomain traversal

Also Published As

Publication number Publication date
US20090077647A1 (en) 2009-03-19
DE60125833D1 (de) 2007-02-15
WO2002056175A2 (en) 2002-07-18
WO2002056175A3 (en) 2003-01-23
EP1352501B1 (de) 2007-01-03
AU2002225993A1 (en) 2002-07-24
US20020199114A1 (en) 2002-12-26
US7827601B2 (en) 2010-11-02
EP1352501A2 (de) 2003-10-15
ATE350851T1 (de) 2007-01-15
US7631349B2 (en) 2009-12-08

Similar Documents

Publication Publication Date Title
DE60125833T2 (de) Verfahren und Vorrichtung zum Durchqueren einer Firewall
DE60024260T2 (de) Eingrenzung von netzwerkfehlern
US10057234B1 (en) Systems and methods for providing network security monitoring
US8549650B2 (en) System and method for three-dimensional visualization of vulnerability and asset data
US6816897B2 (en) Console mapping tool for automated deployment and management of network devices
KR100859611B1 (ko) 분산 객체들을 단일 표현으로 관리하기 위한 시스템 및방법
US6205413B1 (en) End-user oriented performance monitoring system for interactive end-to-end data communications
US20020194497A1 (en) Firewall configuration tool for automated deployment and management of network devices
EP2372954B1 (de) Verfahren und System zum Sammeln von Information bezüglich eines Kommunikationsnetzes
US20060242271A1 (en) System and method for accessing devices with a console server
US20020161874A1 (en) Interface for automated deployment and management of network devices
CN111431891A (zh) 一种蜜罐部署方法
EP2176596B1 (de) System aus einer vielzahl von gargeräten jeweils mit netzwerkbasierter kontrolleinrichtung
JP2004333186A (ja) 分析装置の遠隔サポートシステム
CN110290029B (zh) 一种路由器综合业务有线带机量测试方法
CN114666245A (zh) B/S系统的IPv6单栈支持度确定方法及相关设备
CN103368783B (zh) 一种网络通信过程的监听方法、系统和设备
CN106844073A (zh) 一种诊断应用的方法、诊断客户端及系统
Cisco Property Editor
Cisco Property Editor
EP3537654B1 (de) Verfahren und system zum ermitteln einer konfiguration einer schnittstelle
Cisco Using Property Editor
EP2634970A2 (de) Zugriff auf Ressourcen innerhalb eines lokalen Netzwerks
KR102436942B1 (ko) PoE 스위치의 포트 전력 제어를 통한 IoT 장비 관리 방법 및 이를 사용한 서버
JPH08181712A (ja) ネットワークの構成検出方法及び自動接続方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition