[go: up one dir, main page]

DE102023105918A1 - Method for transferring data between two networks - Google Patents

Method for transferring data between two networks Download PDF

Info

Publication number
DE102023105918A1
DE102023105918A1 DE102023105918.1A DE102023105918A DE102023105918A1 DE 102023105918 A1 DE102023105918 A1 DE 102023105918A1 DE 102023105918 A DE102023105918 A DE 102023105918A DE 102023105918 A1 DE102023105918 A1 DE 102023105918A1
Authority
DE
Germany
Prior art keywords
client
socks
network
data
request
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.)
Pending
Application number
DE102023105918.1A
Other languages
German (de)
Inventor
Gonzalo Lucioni
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.)
Cariad SE
Original Assignee
Cariad SE
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 Cariad SE filed Critical Cariad SE
Priority to DE102023105918.1A priority Critical patent/DE102023105918A1/en
Publication of DE102023105918A1 publication Critical patent/DE102023105918A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Die Erfindung betrifft ein computer-implementiertes Verfahren (100) sowie ein System zum Übertragen von Daten zwischen einem ersten Netzwerk (1) und einem von dem ersten Netzwerk (1) unterschiedlichen zweiten Netzwerk (2). Ferner betrifft die Erfindung eine Datenstruktur, aufweisend einen SOCKS-Request gemäß dem SOCKS-Protokoll, ein Computerprogramm sowie ein computerlesbares Speichermedium. Es wird eine Client-Domain (3) sowie eine Gateway-Domain (5) innerhalb des ersten Netzwerks (1) bereitgestellt, wobei in der Client-Domain (3) wenigstens ein Client (4a; 4b) und in der Gateway-Domain (5) ein Proxy-Server (6) sowie wenigstens ein Relay-Server (7; 8) angeordnet sind. Hierfür wird ein Request auf Basis des SOCKS-Protokolls durch den Proxy-Server (6) empfangen und eine SOCKS-Reply zurückgesendet. Nun wird eine Datenübertragung zwischen der Client-Domain (3), dem Relay-Server (7; 8) und dem zweiten Netzwerk (2) auf Basis des SOCKS-Requests und der SOCKS-Reply aufgebaut. Der SOCKS-Request weist dabei wenigstens einen der folgenden zusätzlichen Parameter auf: Protokolltyp, Herkunftsadresse des Clients (4a; 4b), Typ der Herkunftsadresse des Clients (4a; 4b) und Herkunftsport des Clients (4a; 4b).The invention relates to a computer-implemented method (100) and a system for transmitting data between a first network (1) and a second network (2) that is different from the first network (1). The invention further relates to a data structure comprising a SOCKS request according to the SOCKS protocol, a computer program and a computer-readable storage medium. A client domain (3) and a gateway domain (5) are provided within the first network (1), with at least one client (4a; 4b) being arranged in the client domain (3) and a proxy server (6) and at least one relay server (7; 8) being arranged in the gateway domain (5). For this purpose, a request based on the SOCKS protocol is received by the proxy server (6) and a SOCKS reply is sent back. Now a data transfer is established between the client domain (3), the relay server (7; 8) and the second network (2) based on the SOCKS request and the SOCKS reply. The SOCKS request has at least one of the following additional parameters: protocol type, origin address of the client (4a; 4b), type of origin address of the client (4a; 4b) and origin port of the client (4a; 4b).

Description

Die Erfindung betrifft ein computer-implementiertes Verfahren sowie ein System zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk. Ferner betrifft die Erfindung eine Datenstruktur, aufweisend einen SOCKS-Request gemäß dem SOCKS-Protokoll, ein Computerprogramm sowie ein computerlesbares Speichermedium.The invention relates to a computer-implemented method and a system for transmitting data between a first network and a second network that is different from the first network. The invention also relates to a data structure comprising a SOCKS request according to the SOCKS protocol, a computer program and a computer-readable storage medium.

Um ein Computersystem in einem internen Netzwerk effektiv vor einem äußeren Netzwerk zu schützen bzw. den Zugriff auf das Computer-System im internen Netzwerk zu kontrollieren, werden so genannte Firewalls verwendet. Durch Firewalls können auf der Ebene des Application-Layers diverse Dienste wie TELNET, FTP und SMTP unter kontrollierten Rahmenbedingungen angeboten werden.So-called firewalls are used to effectively protect a computer system in an internal network from an external network or to control access to the computer system in the internal network. Firewalls can be used to offer various services such as TELNET, FTP and SMTP under controlled conditions at the application layer level.

Der jedoch stetig wachsende Bedarf, über eben solche Dienste zwischen einem internen Netzwerk und einem externen Netzwerk zu kommunizieren und Daten zu übertragen, erfordert immer weitere, auf jeden Anwendungsfall zugeschnittene Lösungen, um etwaigen Hacker-Angriffen, Datendiebstählen und Systemausfällen vorzubeugen.However, the ever-growing need to communicate and transfer data between an internal network and an external network via such services requires ever more solutions tailored to each application in order to prevent possible hacker attacks, data theft and system failures.

Hierfür werden in der Regel so genannte Proxy-Server verwendet, welche in Form eines Vermittlers Anfragen von einem Computer oder Computersystem aus dem internen Netzwerk bearbeiten und an das externe Netzwerk weiterleiten, ohne dass das externe Netzwerk direkt mit dem Computer im internen Netzwerk kommuniziert.For this purpose, so-called proxy servers are usually used, which act as an intermediary and process requests from a computer or computer system in the internal network and forward them to the external network without the external network communicating directly with the computer in the internal network.

Dabei hat sich unter anderem das so genannte SOCKS-Protokoll etabliert. Dieses ist ein Internetprotokoll, welches Client-Server-Anwendungen erlaubt, protokollunabhängig und transparent die Dienste eines Proxyservers zu nutzen. Clients hinter einer Firewall, die eine Verbindung zu einem externen Server aufbauen wollen, verbinden sich statt mit dem externen Server direkt mit einem SOCKS-Proxy-Server. Dieser Proxy-Server überprüft die Berechtigung, ob der Client den externen Server bzw. der externe Server den Client kontaktieren darf, und leitet die Anfrage an den Server bzw. den Client weiter.The so-called SOCKS protocol has become established. This is an Internet protocol that allows client-server applications to use the services of a proxy server in a protocol-independent and transparent manner. Clients behind a firewall that want to establish a connection to an external server connect directly to a SOCKS proxy server instead of to the external server. This proxy server checks whether the client is authorized to contact the external server or the external server is authorized to contact the client, and forwards the request to the server or the client.

WO 02/065650 A2 offenbart beispielsweise ein Verfahren zum sicheren Übertragen von Daten, wenn ein unsicheres Kommunikationsprotokoll wie etwa das User Datagram Protocol (Abk. UDP) verwendet wird. Dabei wird auf das SOCKS-Protokoll zurückgegriffen, sodass sichere UDP-Datagramme zwischen einem Proxy-Server und einem Client-Computer ausgetauscht werden können. WO 02/065650 A2 For example, discloses a method for securely transmitting data when using an insecure communication protocol such as the User Datagram Protocol (UDP). The SOCKS protocol is used so that secure UDP datagrams can be exchanged between a proxy server and a client computer.

WO 2012/006595 A2 offenbart ein Verfahren zum Herstellen einer optimierten Kommunikationsverbindung mit verbesserter Performance von wenigstens einer Anwendung. Hierfür werden verschiedene Performance-Anforderungen einer Anwendung ermittelt, dann Informationen hinsichtlich der möglichen Kapazität von verschiedenen Kommunikationskanälen erfasst und diese Kanäle auf Basis dieser Informationen gesteuert. WO 2012/006595 A2 discloses a method for establishing an optimized communication connection with improved performance of at least one application. For this purpose, various performance requirements of an application are determined, then information regarding the possible capacity of various communication channels is recorded and these channels are controlled on the basis of this information.

Wollen jedoch mehrere Clients innerhalb eines internen Netzwerks mit einem oder mehreren externen Servern über den Proxy-Server kommunizieren und Daten austauschen, so kann zwar für jeden Client eine eigene Verbindung vom Proxy-Server erstellt werden. Allerdings erfolgt sämtliche Kommunikation zwischen im internen Netzwerk befindlichen Clients und im externen Netzwerk befindlichen Servern über diesen SOCKS-Proxy-Server, was bei erhöhter Datenübertragung zu negativen Auswirkungen auf das Gesamtsystem führen kann.However, if several clients within an internal network want to communicate and exchange data with one or more external servers via the proxy server, a separate connection can be created for each client by the proxy server. However, all communication between clients in the internal network and servers in the external network takes place via this SOCKS proxy server, which can have a negative impact on the overall system if the data transfer increases.

Da der im Wesentlichen gesamte Datenverkehr über den SOCKS-Proxy-Server durchgeführt wird, ist die mögliche Datenübertragungsrate, Latenz etc. von den Eigenschaften des Proxy-Servers abhängig. Oftmals stellt dieser ein Bottleneck dar, wenn mehrere Clients über den SOCKS-Proxy-Server mit in externen Netzwerken befindlichen Servern kommunizieren wollen. Um dem entgegen zu wirken, kann so genanntes TCP-Slicing angewendet werden. Dies ist jedoch bei hohem Datenaufkommen nicht sehr performant und es wird zusätzliche Hardware benötigt.Since essentially all data traffic is carried out via the SOCKS proxy server, the possible data transfer rate, latency, etc. depends on the properties of the proxy server. This often represents a bottleneck when several clients want to communicate with servers in external networks via the SOCKS proxy server. To counteract this, so-called TCP slicing can be used. However, this is not very efficient with high data volumes and additional hardware is required.

Es ist daher eine Aufgabe der vorliegenden Erfindung, die Kommunikation über das SOCKS-Protokoll zu verbessern. Insbesondere ist es eine Aufgabe der vorliegenden Erfindung, die Übertragung von Daten zwischen einem in einem internen Netzwerk befindlichen Client zu einem in einem externen Netzwerk befindlichen Server zu verbessern.It is therefore an object of the present invention to improve communication via the SOCKS protocol. In particular, it is an object of the present invention to improve the transmission of data between a client located in an internal network and a server located in an external network.

Die Aufgabe wird durch ein computer-implementiertes Verfahren, einem System, einer Datenstruktur, einem Computerprogramm sowie einem Computerlesbaren Speichermedium zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk gelöst.The problem is solved by a computer-implemented method, a system, a data structure, a computer program and a computer-readable storage medium for transmitting data between a first network and a second network different from the first network.

Eine erster Aspekt betrifft ein computer-implementiertes Verfahren zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk. In einem ersten Schritt wird eine Client-Domain innerhalb des ersten Netzwerks bereitgestellt, wobei in der Client-Domain wenigstens ein Client angeordnet ist.A first aspect relates to a computer-implemented method for transmitting data between a first network and a second network that is different from the first network. In a first step, a client domain is provided within the first network, wherein at least one client is arranged in the client domain.

Ferner wird eine Gateway-Domain innerhalb des ersten Netzwerks bereitgestellt, wobei in der Gateway-Domain ein Gateway Proxy-Server angeordnet ist, welcher dazu eingerichtet ist, den Datenaustausch zwischen der Client-Domain und dem zweiten Netzwerk zu steuern. In einem weiteren Schritt wird ein Request auf Basis des SOCKS-Protokolls durch den Gateway Proxy-Server empfangen. Der SOCKS-Request fordert vom Gateway Proxy-Server dabei an, dass dieser eine Datenverbindung zwischen dem Client und dem zweiten Netzwerk aufbaut und bereitstellt.Furthermore, a gateway domain is provided within the first network, with a gateway proxy server arranged in the gateway domain, which is set up to control the data exchange between the client domain and the second network. In a further step, a request based on the SOCKS protocol is received by the gateway proxy server. The SOCKS request requests the gateway proxy server to establish and provide a data connection between the client and the second network.

Hierfür wird ein Relay-Server innerhalb der Gateway-Domain von dem Gateway Proxy-Server bereitgestellt, wobei dabei die im SOCKS-Request übermittelten Informationen berücksichtigt werden. Anschließend sendet der Gateway Proxy-Server eine SOCKS-Reply, d.h. eine Antwort, an den Client, welche Informationen aufweist, wie zwischen dem Client und dem zweiten Netzwerk über den Relay-Server kommuniziert werden kann. Nun wird eine Datenübertragung zwischen der Client-Domain, dem Relay-Server und dem zweiten Netzwerk auf Basis des SOCKS-Requests und der SOCKS-Reply aufgebaut.For this purpose, a relay server is provided within the gateway domain by the gateway proxy server, taking into account the information transmitted in the SOCKS request. The gateway proxy server then sends a SOCKS reply to the client, which contains information on how the client and the second network can communicate via the relay server. A data transfer is now established between the client domain, the relay server and the second network based on the SOCKS request and the SOCKS reply.

Der SOCKS-Request weist dabei wenigstens einen der folgenden zusätzlichen Parameter auf: Protokolltyp, Herkunftsadresse des Clients, Typ der Herkunftsadresse des Clients und Herkunftsport des Clients.The SOCKS request has at least one of the following additional parameters: protocol type, client source address, client source address type, and client source port.

Der Erfindung liegt dabei der Gedanke zugrunde, dass für jede Anwendung bzw. jeden Client innerhalb des ersten Netzwerks ein eigener Relay-Server bereitgestellt werden kann, sodass der Datenverkehr bei mehreren Clients oder erhöhtem Datenverkehr des einen Clients nicht der gesamte Datenverkehr von dem Proxy-Server übertragen wird, sondern von mehreren Relay-Servern. Somit hat der Proxy-Server lediglich eine kontrollierende Funktion, d.h. der Datenaustausch wird zwischen Client und Server direkt über je einen eigenen Relay-Server aufgebaut. Der Relay-Server agiert dabei vorzugsweise auf IP-Ebene, in dem die Ziel-Adresse und Portnummer des Servers bzw. die Ursprungs-Adresse des Clients bekannt ist und der Relay-Server transparent die Daten übermittelt. Sofern die Ports am Ziel und beim Client vorzugsweise vorab bekannt sind, kann rein auf IP-Ebene ein Durchrouting durchgeführt werden und es entfällt die Notwendigkeit einen Proxy-Server zu verwenden.The invention is based on the idea that a separate relay server can be provided for each application or client within the first network, so that if there are several clients or increased data traffic from one client, not all of the data traffic is transmitted by the proxy server, but by several relay servers. The proxy server therefore only has a controlling function, i.e. the data exchange between client and server is set up directly via a separate relay server. The relay server preferably operates at IP level, in which the destination address and port number of the server or the source address of the client are known and the relay server transmits the data transparently. If the ports at the destination and at the client are preferably known in advance, routing can be carried out purely at IP level and there is no need to use a proxy server.

Ein zweiter Aspekt betrifft ein System zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk. Das System weist dabei Mittel auf, um das Verfahren gemäß dem ersten Aspekt auszuführen.A second aspect relates to a system for transmitting data between a first network and a second network that is different from the first network. The system has means for carrying out the method according to the first aspect.

Ein dritter Aspekt betrifft eine Datenstruktur, aufweisend einen SOCKS-Request gemäß dem SOCKS-Protokoll, wobei der SOCKS-Request zusätzlich wenigstens einen der folgenden Parameter aufweist: Protokolltyp, Herkunftsadresse des Clients, Typ der Herkunftsadresse des Clients und Herkunftsport des Clients.A third aspect relates to a data structure comprising a SOCKS request according to the SOCKS protocol, wherein the SOCKS request additionally comprises at least one of the following parameters: protocol type, client origin address, client origin address type, and client origin port.

Ein vierter Aspekt betrifft ein Computerprogramm welches bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß dem ersten Aspekt auszuführen oder die Datenstruktur gemäß dem dritten Aspekt zu verwenden.A fourth aspect relates to a computer program which, when executed by a computer, causes the computer to carry out the method according to the first aspect or to use the data structure according to the third aspect.

Ein fünfter Aspekt betrifft ein computerlesbares Speichermedium, welches Befehle umfasst, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß dem ersten Aspekt auszuführen oder die Datenstruktur gemäß dem dritten Aspekt aufweist.A fifth aspect relates to a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method according to the first aspect or has the data structure according to the third aspect.

Gemäß einer bevorzugten Ausführungsform wird das SOCKSv5 Protokoll verwendet. Dieses Protokoll ist in dem Standard RFC 1928 genauer spezifiziert und abrufbar über die Internetseite der Internet Engineering Task Force (Abk. IETF; https://datatracker.ietf.org/doc/html/rfc1928 ). Dieser Protokollstandard zeichnet sich durch einen erweiterten Befehlssatz aus, wodurch die Verwendung eines Verfahrens gemäß dem ersten Aspekt besonders effizient realisierbar ist.According to a preferred embodiment, the SOCKSv5 protocol is used. This protocol is specified in more detail in the standard RFC 1928 and is available on the Internet Engineering Task Force (IETF) website. https://datatracker.ietf.org/doc/html/rfc1928 ). This protocol standard is characterized by an extended command set, which makes the use of a method according to the first aspect particularly efficient.

Gemäß einer weiteren bevorzugten Ausführungsform ist der CMD-Parameter im SOCKS-Request um einen zusätzlichen TRANSPARENT MODE ergänzbar. Ist ein Proxy-Server bzw. im vorliegenden Fall auch der vom Proxy-Server gesteuerte Relay-Server transparent, so wird der Datenverkehr zwischen Client und Server nicht oder lediglich im geringen Umfang verändert. Somit kann der Durchsatz von Daten gemäß dem Grundsatz Bandbreite mit Rechnerpower durch Anwenden der Erweiterungen im SOCKS-Request und Verwenden des TRANSPARENT MODEs zwischen Clients und Internet-Servern, z.B. ohne Aufsplitten von Verbindungen im Proxy auf Transport Protocol Level.According to a further preferred embodiment, the CMD parameter in the SOCKS request can be supplemented with an additional TRANSPARENT MODE. If a proxy server or, in this case, the relay server controlled by the proxy server is transparent, the data traffic between client and server is not changed or only changed to a small extent. The throughput of data can therefore be increased according to the principle of bandwidth with computer power by applying the extensions in the SOCKS request and using the TRANSPARENT MODE between clients and Internet servers, e.g. without splitting connections in the proxy at transport protocol level.

Dies ist insbesondere vorteilhaft, da im Vergleich zu anderen Übertragungsprotokollen, bei denen der Datenverkehr analysiert und ggf. angepasst werden muss, keine Anpassung der zu übertragenden Daten durch den Proxy- oder Relay-Server erfolgt. Somit ist das Verwenden eines TRANSPARENT MODES besonders effizient bei der Verarbeitung und Weiterleitung von Daten, was wiederum in einer niedrigeren Latenz und niedrigeren Datenfehlerrate resultiert.This is particularly advantageous because, in comparison to other transmission protocols, where the data traffic must be analyzed and adjusted if necessary, the data to be transmitted is not adjusted by the proxy or relay server. Thus, using a TRANSPARENT MODE is particularly efficient in processing and forwarding data, which in turn results in lower latency and lower data error rates.

Gemäß einer weiteren bevorzugten Ausführungsform kennzeichnet der Parameter Protokolltyp im SOCKS-Request das User Datagram Protocol (UDP) oder das Transmission Control Protocol (TCP). Das UDP ist ein minimales, verbindungsloses Netzwerkprotokoll, das zur Transportschicht der Internetprotokoll-Familie (IP-Familie) gehört. UDP ermöglicht Anwendungen daher den Versand von Datagramen in IP-basierten Rechnernetzen. Dabei werden so genannte Ports verwendet, um versendete Daten der richtigen Anwendung bzw. dem richtigen Programm beim Client oder Server zukommen zu lassen. Dazu enthält jedes Datagramm die Nummer des Herkunfts- bzw. Zielports des Dienstes bzw. des Rechners, welcher die Daten erhalten soll. Zusätzlich bietet UDP die Möglichkeit einer Integritätsüberprüfung an, indem eine Prüfsumme mitgesendet wird. Dadurch können fehlerhaft übertragene Datagramme erkannt und verworfen werden.According to a further preferred embodiment, the protocol type parameter in the SOCKS request identifies the User Datagram Protocol (UDP) or the Transmission Control Protocol (TCP). UDP is a minimal, connectionless network protocol that belongs to the transport layer of the Internet Protocol family (IP family). UDP therefore enables applications to send datagrams in IP-based computer networks. So-called ports are used to send sent data to the correct application or program on the client or server. For this purpose, each datagram contains the number of the source or destination port of the service or computer that is to receive the data. UDP also offers the option of an integrity check by sending a checksum. This allows incorrectly transmitted datagrams to be identified and discarded.

Das TCP ist hingegen ein Netzwerkprotokoll, das definiert, auf welche Art und Weise Daten zwischen Netzwerkkomponenten ausgetauscht werden sollen. Es ist ebenfalls Teil der IP-Familie. Im Unterschied zum verbindungslosen UDP stellt TCP eine Verbindung zwischen zwei Endpunkten einer Netzverbindung (Sockets) her. Auf dieser Verbindung können in beide Richtungen Daten übertragen werden. TCP hat unter anderem die positiven Eigenschaften, dass Datenverluste erkannt und automatisch behoben werden können, die Datenübertragung in beiden Richtungen möglich ist und eine Netzüberlastung verhindert werden kann.TCP, on the other hand, is a network protocol that defines how data should be exchanged between network components. It is also part of the IP family. In contrast to connectionless UDP, TCP establishes a connection between two endpoints of a network connection (sockets). Data can be transmitted in both directions on this connection. TCP has the positive properties that data loss can be detected and automatically corrected, data transmission is possible in both directions and network overload can be prevented.

Dadurch kann SOCKS-basiertes TCP Streaming durch einen IP-Router als Hauptkomponente des Relay-Servers anstatt eines TCP Proxys ermöglicht werden. Dies trifft ebenfalls auf UDP zu, mit dem Vorteil, dass ein spezielles Datagram Handling, wie es im RFC1928 Standard vorgesehen ist, nicht länger benötigt wird, sodass native UDP-Lösungen für jede verwendete Komponente angewendet werden können.This allows SOCKS-based TCP streaming to be enabled by an IP router as the main component of the relay server instead of a TCP proxy. This also applies to UDP, with the advantage that special datagram handling as provided for in the RFC1928 standard is no longer required, allowing native UDP solutions to be applied to each component used.

Ein weiterer Vorteil im Verwenden eines IP-Routers für die Transportprotokolle, welche durch das erfindungsgemäße Verfahren unterstützt werden, liegt darin, dass Datenverkehr auf den Kernel-Space geoffloaded werden kann, was die Performance erhöht.A further advantage of using an IP router for the transport protocols supported by the inventive method is that data traffic can be offloaded to the kernel space, which increases performance.

Gemäß einer weiteren bevorzugten Ausführungsform weist das Verfahren gemäß dem ersten Aspekt folgenden zusätzlichen Schritt auf: Konfigurieren, insbesondere Sichern, des Herkunftsports, mit welchem der Client verbindbar ist, bevor die SOCKS-Reply gesendet wird. Dieser Schritt ist vorteilhaft, da ein ungesicherter (Herkunfts-)Port beim Client potentiell die Gefahr birgt, dass Schadsoftware oder dergleichen im Client oder gar im ersten Netzwerk eingeschleust werden kann und schlimmstenfalls das erste, interne Netzwerk beeinträchtigt.According to a further preferred embodiment, the method according to the first aspect has the following additional step: configuring, in particular securing, the source port to which the client can be connected before the SOCKS reply is sent. This step is advantageous because an unsecured (source) port on the client potentially poses the risk that malware or the like can be introduced into the client or even into the first network and, in the worst case, affect the first, internal network.

Gemäß einer weiteren bevorzugten Ausführungsform weist die SOCKS-Reply Informationen auf, über welchen Port und welche Adresse des Relay-Servers Daten übertragbar sind. Auf diese Weise kann eine Datenübertragung zwischen dem Client und dem externen Server besonders einfach und effizient erfolgen. Da der Client vom Relay-Server die Portnummer als auch die Adresse erhält, über welche der Client durch den Relay-Server transparenter und somit mit geringerer Latenz mit dem im zweiten Netzwerk befindlichen Server kommunizieren kann, ist der Datenaustausch besonders einfach möglich.According to a further preferred embodiment, the SOCKS reply contains information about which port and which address of the relay server data can be transmitted via. In this way, data transmission between the client and the external server can be particularly simple and efficient. Since the client receives the port number and the address from the relay server, via which the client can communicate with the server in the second network more transparently and thus with less latency through the relay server, data exchange is particularly easy.

Gemäß einer weiteren bevorzugten Ausführungsform leitet der Relay-Server nur übermittelte Daten weiter, welche den im SOCKS-Request definierten Parametern entsprechen. Somit kann ermöglicht werden, dass im Wesentlichen nur die Daten vom Server zum Client oder vom Client zum Server über den Relay-Server weitergeleitet werden, welche auch den spezifischen und vom SOCKS-Proxy-Server definierten Parametern entsprechen. Dies erhöht die Sicherheit, dass keine nicht autorisierten und potentiell gefährlichen Daten in das erste, interne Netzwerk, insbesondere zum Client, gelangen.According to a further preferred embodiment, the relay server only forwards transmitted data that corresponds to the parameters defined in the SOCKS request. This makes it possible for essentially only the data that corresponds to the specific parameters defined by the SOCKS proxy server to be forwarded from the server to the client or from the client to the server via the relay server. This increases the security that no unauthorized and potentially dangerous data reaches the first, internal network, in particular to the client.

Gemäß einer weiteren bevorzugten Ausführungsform weist das Verfahren gemäß dem ersten Aspekt folgenden zusätzlichen Schritt auf: Auflösen des Relay-Servers, wenn die Datenübertragung erfolgreich war. Dies verbessert die Netzwerksicherheit im ersten Netzwerk, da ein externer Zugriff auf das interne Netzwerk über den Relay-Server lediglich für eine vorbestimmte Datenübertragung zur Verfügung steht. Die Gefahr eines unerlaubten Zugriffs eines nicht autorisierten externen Geräts ist somit verringert.According to a further preferred embodiment, the method according to the first aspect comprises the following additional step: dissolving the relay server if the data transfer was successful. This improves network security in the first network, since external access to the internal network via the relay server is only available for a predetermined data transfer. The risk of unauthorized access by an unauthorized external device is thus reduced.

Gemäß einer weiteren bevorzugten Ausführungsform weist das Verfahren gemäß dem ersten Aspekt folgenden zusätzlichen Schritt auf: Auflösen des Relay-Servers nach Ablauf eines vorbestimmten Zeitintervalls. Somit besteht die Möglichkeit, über den vom SOCKS-Proxy-Server bereitgestellten Relay-Server Daten lediglich für die Dauer einer vorbestimmten Zeitspanne zwischen dem Server im zweiten, externen Netzwerk und dem Client im ersten, internen Netzwerk zu versenden und/oder zu empfangen. Dies erhöht ferner die Sicherheit, da die Gefahr von unberechtigten Zugriffen über den Relay Server auf das interne Netzwerk, insbesondere den Client, verringert werden kann.According to a further preferred embodiment, the method according to the first aspect has the following additional step: dissolving the relay server after a predetermined time interval has elapsed. This makes it possible to send and/or receive data between the server in the second, external network and the client in the first, internal network via the relay server provided by the SOCKS proxy server only for a predetermined period of time. This also increases security, as the risk of unauthorized access to the internal network, in particular the client, via the relay server can be reduced.

Gemäß einer weiteren bevorzugten Ausführungsform weist das Verfahren gemäß dem ersten Aspekt folgenden zusätzlichen Schritt auf: Auflösen des Relay-Servers, wenn die im SOCKS-Request definierte Zieladresse unterschiedlich ist zu der in der empfangenen Datenübertragung hinterlegten Zieladresse und/oder der im SOCKS-Request definierte Zielport unterschiedlich ist zu dem in der empfangenen Datenübertragung hinterlegten Zielport. Auf diese Weise können nicht autorisierte Angriffe wie etwa auf Basis der Brut-Force-Methode effizient abgewehrt werden.According to a further preferred embodiment, the method according to the first aspect has the following additional step: dissolving the relay server if the target address defined in the SOCKS request is different from the target address stored in the received data transmission and/or the target port defined in the SOCKS request is different from the target port stored in the received data transmission. In this way, unauthorized attacks such as those based on the brute force method can be efficiently fended off.

Für Anwendungsfälle oder Anwendungssituationen, die sich bei dem Verfahren ergeben können und die hier nicht explizit beschrieben sind, kann vorgesehen sein, dass gemäß dem Verfahren eine Fehlermeldung und/oder eine Aufforderung zur Eingabe einer Nutzerrückmeldung ausgegeben und/oder eine Standardeinstellung und/oder ein vorbestimmter Initialzustand eingestellt wird.For use cases or application situations that may arise during the method and which are not explicitly described here, it may be provided that, in accordance with the method, an error message and/or a request to enter user feedback is issued and/or a default setting and/or a predetermined initial state is set.

Zu der Erfindung gehört auch eine Steuervorrichtung für ein Kraftfahrzeug. Die Steuervorrichtung kann eine Datenverarbeitungsvorrichtung oder eine Prozessoreinrichtung aufweisen, die dazu eingerichtet ist, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Die Prozessoreinrichtung kann hierzu zumindest einen Mikroprozessor und/oder zumindest einen Mikrocontroller und/oder zumindest einen FPGA (Field Programmable Gate Array) und/oder zumindest einen DSP (Digital Signal Processor) aufweisen. Des Weiteren kann die Prozessoreinrichtung Programmcode aufweisen, der dazu eingerichtet ist, bei Ausführen durch die Prozessoreinrichtung die Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Der Programmcode kann in einem Datenspeicher der Prozessoreinrichtung gespeichert sein. Die Prozessoreinrichtung kann z.B. auf zumindest einer Schaltungsplatine und/oder auf zumindest einem SoC (System on Chip) basieren.The invention also includes a control device for a motor vehicle. The control device can have a data processing device or a processor device that is set up to carry out an embodiment of the method according to the invention. For this purpose, the processor device can have at least one microprocessor and/or at least one microcontroller and/or at least one FPGA (Field Programmable Gate Array) and/or at least one DSP (Digital Signal Processor). Furthermore, the processor device can have program code that is set up to carry out the embodiment of the method according to the invention when executed by the processor device. The program code can be stored in a data memory of the processor device. The processor device can be based, for example, on at least one circuit board and/or on at least one SoC (System on Chip).

Das erfindungsgemäße Kraftfahrzeug ist bevorzugt als Kraftwagen, insbesondere als Personenkraftwagen oder Lastkraftwagen, oder als Personenbus oder Motorrad ausgestaltet.The motor vehicle according to the invention is preferably designed as a motor vehicle, in particular as a passenger car or truck, or as a passenger bus or motorcycle.

Als eine weitere Lösung umfasst die Erfindung auch ein computerlesbares Speichermedium, umfassend Programmcode, der bei der Ausführung durch einen Computer oder einen Computerverbund diesen veranlasst, eine Ausführungsform des erfindungsgemäßen Verfahrens auszuführen. Das Speichermedium kann zumindest teilweise als ein nicht-flüchtiger Datenspeicher (z.B. als eine Flash-Speicher und/oder als SSD - solid state drive) und/oder zumindest teilweise als ein flüchtiger Datenspeicher (z.B. als ein RAM - random access memory) bereitgestellt sein. Das Speichermedium kann in dem Computer oder Computerverbund angeordnet sein. Das Speichermedium kann aber auch beispielsweise als sogenannter Appstore-Server und/oder Cloud-Server im Internet betrieben sein. Durch den Computer oder Computerverbund kann eine Prozessorschaltung mit beispielsweise zumindest einem Mikroprozessor bereitgestellt sein. Der Programmcode kann als Binärcode und/oder als Assembler-Code und/oder als Quellcode einer Programmiersprache (z.B. C) und/oder als Programmskript (z.B. Python) bereitgestellt sein.As a further solution, the invention also includes a computer-readable storage medium, comprising program code which, when executed by a computer or a computer network, causes it to carry out an embodiment of the method according to the invention. The storage medium can be provided at least partially as a non-volatile data memory (e.g. as a flash memory and/or as an SSD - solid state drive) and/or at least partially as a volatile data memory (e.g. as a RAM - random access memory). The storage medium can be arranged in the computer or computer network. However, the storage medium can also be operated, for example, as a so-called app store server and/or cloud server on the Internet. The computer or computer network can provide a processor circuit with, for example, at least one microprocessor. The program code can be provided as binary code and/or as assembler code and/or as source code of a programming language (e.g. C) and/or as a program script (e.g. Python).

Die Erfindung umfasst auch die Kombinationen der Merkmale der beschriebenen Ausführungsformen. Die Erfindung umfasst also auch Realisierungen, die jeweils eine Kombination der Merkmale mehrerer der beschriebenen Ausführungsformen aufweisen, sofern die Ausführungsformen nicht als sich gegenseitig ausschließend beschrieben wurden.The invention also includes combinations of the features of the described embodiments. The invention therefore also includes implementations that each have a combination of the features of several of the described embodiments, provided that the embodiments have not been described as mutually exclusive.

Im Folgenden sind Ausführungsbeispiele der Erfindung beschrieben. Hierzu zeigt:

  • 1 ein Flussdiagramm bezüglich eines computer-implementierten Verfahrens zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk;
  • 2 eine erste schematische Abbildung aufweisend Komponenten zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk; und
  • 3 eine zweite schematische Abbildung aufweisend Komponenten zum Übertragen von Daten zwischen einem ersten Netzwerk und einem von dem ersten Netzwerk unterschiedlichen zweiten Netzwerk.
Embodiments of the invention are described below.
  • 1 a flowchart relating to a computer-implemented method for transmitting data between a first network and a second network different from the first network;
  • 2 a first schematic diagram comprising components for transmitting data between a first network and a second network different from the first network; and
  • 3 a second schematic diagram comprising components for transmitting data between a first network and a second network different from the first network.

Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.The exemplary embodiments explained below are preferred embodiments of the invention. In the exemplary embodiments, the components of the embodiments described each represent individual features of the invention that are to be considered independently of one another and which also develop the invention independently of one another. Therefore, the disclosure should also include combinations of the features of the embodiments other than those shown. Furthermore, the described embodiments can also be supplemented by other features of the invention already described.

In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.In the figures, identical reference symbols designate functionally identical elements.

1 zeigt ein Flussdiagramm bezüglich eines computer-implementierten Verfahrens 100 zum Übertragen von Daten zwischen einem ersten Netzwerk 1 und einem von dem ersten Netzwerk 1 unterschiedlichen zweiten Netzwerk 2. 1 shows a flow chart relating to a computer-implemented method 100 for transmitting data between a first network 1 and a second network 2 different from the first network 1.

In einem ersten Schritt 101 wird eine Client-Domain 3 innerhalb des ersten Netzwerks 1 bereitgestellt. Die Client-Domain 3 weist dabei einen Client 4a auf. Dieser Client 4a steht im Austausch mit einer oder mehreren Anwendungen 9a, 9b, welche üblicherweise als Programme eines Betriebssystems in einem Computer ausgebildet sind.In a first step 101, a client domain 3 is provided within the first network 1. The client domain 3 has a client 4a. This client 4a communicates with one or more applications 9a, 9b, which are usually designed as programs of an operating system in a computer.

In einem zweiten Schritt 102 wird eine Gateway-Domain 5 innerhalb des ersten Netzwerks 1 bereitgestellt. Diese Gateway-Domain 5 weist dabei einen Gateway Proxy-Server 6 auf. Der Gateway Proxy-Server 6 ist dabei dazu eingerichtet, den Datenaustausch zwischen der Client-Domain 3, insbesondere dem Client 4a und dem zweiten Netzwerk 2 zu steuern. Innerhalb des zweiten, externen Netzwerks 2 ist normalerweise wenigstens ein Backend-Server angeordnet, welcher mit dem Client 4a der Client-Domain 3 Daten austauscht.In a second step 102, a gateway domain 5 is provided within the first network 1. This gateway domain 5 has a gateway proxy server 6. The gateway proxy server 6 is set up to control the data exchange between the client domain 3, in particular the client 4a, and the second network 2. At least one backend server is normally arranged within the second, external network 2, which exchanges data with the client 4a of the client domain 3.

Als nächstes wird vom Gateway-Proxy-Server 6 ein so genannter SOCKS-Request empfangen 103. Dieser wurde vorher vorzugsweise vom Client 4a versandt, da dieser eine Verbindung zu dem zweiten, externen Netzwerk 2 aufbauen möchte. Um etwaigen Sicherheitsanforderungen zu genügen, wird - anstatt direkt mit dem zweiten, externen Netzwerk 2 zu kommunizieren und Daten auszutauschen - über den Gateway-Proxy-Server 6 eine Verbindungsanfrage gesendet. Der Gateway-Proxy-Server 6 fungiert in dieser Weise als Vermittler, welcher die Kommunikation zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 überwachen und ggf. anpassen kann.Next, a so-called SOCKS request is received 103 by the gateway proxy server 6. This was preferably sent beforehand by the client 4a, since the latter wants to establish a connection to the second, external network 2. In order to meet any security requirements, a connection request is sent via the gateway proxy server 6 - instead of communicating directly with the second, external network 2 and exchanging data. The gateway proxy server 6 thus acts as an intermediary, which can monitor the communication between the client 4a and the second, external network 2 and adapt it if necessary.

Darüber hinaus weist der SOCKS-Request zusätzlich wenigstens folgende Parameter auf: Protokolltyp, Herkunftsadresse des Clients 4a, Typ der Herkunftsadresse des Clients 4a und Herkunftsport des Clients 4a.In addition, the SOCKS request additionally has at least the following parameters: protocol type, source address of the client 4a, type of source address of the client 4a and source port of the client 4a.

Nachfolgende Tabelle zeigt somit eine Datenstruktur, welche dem SOCKS-Request auf Basis des SOCKS-Protokoll entspricht und zusätzlich die Parameter Protokolltyp, Herkunftsadresse des Clients 4a, Typ der Herkunftsadresse des Clients 4a und Herkunftsport des Clients 4a aufweist: Parameter Erläuterung Beispiel VER Protokoll-Version X'05' CMD Befehl CONNECT X'01' BIND X'02' UDP ASSOCIATE X'03' RSV Reserviert X'00' ATYP Adressentyp 1 DST.ADDR Gewünschte Zieladresse Variabel; bspw. eine IP-Adresse: 1.2.3.4 DST.PORT Gewünschter Zielport 8090 PTCL Protokolltyp TCP X'06' UDP X'11' ATYP Typ der Herkunftsadresse des Clients 1 SRC.ADDR Herkunftsadresse des Clients 2.3.4.5 SRC.PORT Herkunftsport des Clients 5050 The following table shows a data structure that corresponds to the SOCKS request based on the SOCKS protocol and additionally has the parameters protocol type, source address of the client 4a, type of source address of the client 4a and source port of the client 4a: parameter Explanation Example VER Protocol version X'05' CMD command CONNECT X'01' BIND X'02' UDP ASSOCIATE X'03' RSV Reserved X'00' ATYP Address type 1 DST.ADDR Desired destination address Variable; e.g. an IP address: 1.2.3.4 DST.PORT Desired destination port 8090 PTCL Protocol type TCPX'06' UDP X'11' ATYP Client origin address type 1 SRC.ADDR Client's origin address 2.3.4.5 SRC.PORT Client origin port 5050

Der SOCKS-Request weist standardmäßig den Parameter Protokolltyp auf. Für dieses beschriebene Verfahren kann der SOCKS-Request das User Datagram Protocol (UDP) oder auch das Transmission Control Protocol (TCP) aufweisen, sodass eine Datenverbindung auf Basis einer dieser beiden Protokolle stattfinden kann.The SOCKS request has the protocol type parameter by default. For this described procedure, the SOCKS request can have the User Datagram Protocol (UDP) or the Transmission Control Protocol (TCP), so that a data connection can take place based on one of these two protocols.

Zusätzlich oder alternativ kann dieser SOCKS-Request bei dem CMD-Parameter um einen TRANSPARENT MODE erweitert werden. Dieser weist vorzugsweise einen eigenen Identifier wie „TRANSPARENT X'04'“ auf. Auf Basis einer SOCKS TRANSPARENT Verknüpfung kann ein Kontrollpfad zwischen dem Client 4a, 4b und dem Gateway Proxy-Server 6 aufgebaut werden, um Konfigurationsanforderungen zwischen dem Client 4a, 4b und dem Gateway Proxy-Server 6 auszutauschen.Additionally or alternatively, this SOCKS request can be extended with a TRANSPARENT MODE in the CMD parameter. This preferably has its own identifier such as "TRANSPARENT X'04'". Based on a SOCKS TRANSPARENT link, a control path can be established between the client 4a, 4b and the gateway proxy server 6 in order to exchange configuration requests between the client 4a, 4b and the gateway proxy server 6.

Auf Basis des empfangenen SOCKS-Request wird durch den Gateway Proxy-Server 6 ein Relay-Server 7 bereitgestellt 104. Dieser wird vom Gateway Proxy-Server 6 in der Weise konfiguriert, dass er für den Client 4a die Daten, welche dieser an ein zweites, externes Netzwerk 2 bzw. einem in dem zweiten Netzwerk 2 befindlichen Server, weiterleitet. Hierfür dienen die Parameter DST.ADDR und DST.PORT sowie die clientseitigen Parameter SRC.ADDR und SRC.PORT, um den Relay-Server 7 zu konfigurieren. Die so genannte Interception kann auf IP-Basis vom Relay-Server 7 durchgeführt werden. Eine PTCL-TRANSPARENT Interception kann dazu verwendet werden, um ein Steuern von Datenverbindungen zu verbessern.Based on the received SOCKS request, the gateway proxy server 6 provides a relay server 7 104. This is configured by the gateway proxy server 6 in such a way that it forwards the data for the client 4a to a second, external network 2 or a server located in the second network 2. The parameters DST.ADDR and DST.PORT as well as the client-side parameters SRC.ADDR and SRC.PORT are used for this purpose to configure the relay server 7. The so-called interception can be carried out on an IP basis by the relay server 7. A PTCL-TRANSPARENT interception can be used to improve the control of data connections.

Auf diese Weise ist es auch möglich, dass ein oder mehrere Clients 4a, 4b mehrere Relay Server 7, 8 verwenden, um Daten vom ersten, internen Netzwerk 1 an das zweite, externe Netzwerk 2 zu übertragen oder von diesem zu empfangen. Somit können mehrere, parallele Verbindungen zwischen einem Client 4a, 4b und dem zweiten, externen Netzwerk 2 existieren, wodurch insgesamt der Datendurchsatz erhöht werden kann. Beispielsweise ist es möglich, dass für jeden Client 4a, 4b innerhalb der Client-Domain 3 ein eigener Relay-Server 7, 8 vom Gateway Proxy-Server 6 zur Verfügung gestellt und konfiguriert wird.In this way, it is also possible for one or more clients 4a, 4b to use multiple relay servers 7, 8 to transmit data from the first, internal network 1 to the second, external network 2 or to receive data from it. This means that multiple parallel connections can exist between a client 4a, 4b and the second, external network 2, which can increase the overall data throughput. For example, it is possible for a separate relay server 7, 8 to be provided and configured by the gateway proxy server 6 for each client 4a, 4b within the client domain 3.

In einem weiteren Schritt 105 wird der Herkunftsport, mit welchem der Client 4a, 4b verbindbar ist, konfiguriert, bevor eine SOCKS-Reply gesendet wird. Dieser Schritt ermöglicht es das erste, interne Netzwerk 1 und insbesondere den Zugriff auf den Client 4a, 4b abzusichern, um das Einbringen von Schadsoftware beispielsweise zu erschweren und vorzugsweise zu verhindern.In a further step 105, the source port to which the client 4a, 4b can be connected is configured before a SOCKS reply is sent. This step makes it possible to secure the first, internal network 1 and in particular access to the client 4a, 4b in order to make it more difficult, and preferably prevent, the introduction of malware, for example.

Anschließend wird eine SOCKS-Reply Nachricht vom Gateway Proxy-Server 6 an den Client 4a gesandt 106. Die SOCKS-Reply Nachricht weist dabei Informationen auf, wie zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 über den ersten Relay-Server 7 kommuniziert werden kann. Beispielsweise kann dort festgelegt sein, welche Protokollversion zu verwenden ist. Vorzugsweise wird das SOCKSv5 Protokoll verwendet. Dieses weist viele Konfigurationsmöglichkeiten auf, wodurch individuell auf die Anforderungen für eine Datenverbindung zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 eingegangen werden kann. Vorzugsweise weist die SOCKS-Reply Informationen auf, über welchen Port und welche Adresse des Relay-Servers 7 Daten übertragbar sind. Dies kann weitervorzugsweise über die beiden Parameter BND.PORT und BND.ADDR geschehen.A SOCKS reply message is then sent 106 from the gateway proxy server 6 to the client 4a. The SOCKS reply message contains information on how communication can take place between the client 4a and the second, external network 2 via the first relay server 7. For example, it can specify which protocol version is to be used. The SOCKSv5 protocol is preferably used. This has many configuration options, which means that the requirements for a data connection between the client 4a and the second, external network 2 can be individually addressed. The SOCKS reply preferably contains information on which port and which address of the relay server 7 data can be transmitted via. This can preferably be done using the two parameters BND.PORT and BND.ADDR.

In einem weiteren Schritt 107 kann die Datenübertragung zwischen der Client-Domain 3, insbesondere dem Client 4a, dem ersten Relay-Server 7 und dem zweiten, externen Netzwerk 2 auf Basis der im SOCKS-Request angeforderten und in der SOCKS-Reply versandten Konfiguration aufgebaut werden. Somit ist ein Datenaustausch zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 über den vom Proxy-Server 6 bereitgestellten Relay-Server 7 möglich, wobei dennoch die Eigenschaften des Proxy-Servers 6 Anwendung finden. Vorzugsweise ist der Relay-Server 7 dazu eingerichtet, nur übermittelte Daten an den Client 4a weiterzuleiten, welche den im SOCKS-Request definierten Parametern entsprechen.In a further step 107, the data transmission between the client domain 3, in particular the client 4a, the first relay server 7 and the second, external network 2 can be established on the basis of the configuration requested in the SOCKS request and sent in the SOCKS reply. This enables data exchange between the client 4a and the second, external network 2 via the Proxy server 6 provides a relay server 7, whereby the properties of proxy server 6 still apply. Preferably, relay server 7 is set up to only forward transmitted data to client 4a which corresponds to the parameters defined in the SOCKS request.

Sollte der Fall eintreten, dass die im SOCKS-Request definierte Zieladresse unterschiedlich ist zu der in der empfangenen Datenübertragung hinterlegten Zieladresse und/oder der im SOCKS-Request definierte Zielport unterschiedlich ist zu dem in der empfangenen Datenübertragung hinterlegten Zielport, so werden die vom Relay-Server 7 empfangenen und vom zweiten, externen Netzwerk 2 stammenden Daten ignoriert 108. Dies kann die Sicherheit im Datenaustausch zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 zusätzlich erhöhen.Should the case arise that the destination address defined in the SOCKS request is different from the destination address stored in the received data transmission and/or the destination port defined in the SOCKS request is different from the destination port stored in the received data transmission, the data received from the relay server 7 and originating from the second, external network 2 are ignored 108. This can further increase the security in the data exchange between the client 4a and the second, external network 2.

Sobald die Datenübertragung erfolgreich war und somit abgeschlossen ist, wird vorzugsweise der Relay-Server 7 wieder aufgelöst 109a. Dies geschieht insbesondere dadurch, in dem der Kontrollkanal zwischen Proxy-Server 6 und dem Relay-Server 7 abgebrochen wird. Durch diesen Schritt werden Lücken im ersten, internen Netzwerk 1 wieder geschlossen, da ein Zugriff vom zweiten, externen Netzwerk 2 über den Relay-Server 7 nicht mehr möglich ist. Dies dient insbesondere der Sicherheit des ersten Netzwerks 1.As soon as the data transfer was successful and thus completed, the relay server 7 is preferably closed again 109a. This is done in particular by breaking off the control channel between the proxy server 6 and the relay server 7. This step closes gaps in the first, internal network 1, since access from the second, external network 2 via the relay server 7 is no longer possible. This serves in particular to ensure the security of the first network 1.

Alternativ oder zusätzlich kann ein Relay-Server 7 auch nach Ablauf eines vorbestimmten Zeitintervalls aufgelöst werden 109b. Somit ist ein Datenaustausch zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 zeitlich befristet, was wiederum der Sicherheit des ersten Netzwerks 1 dient, vor Zugriffen aus dem zweiten, externen Netzwerk 2 zumindest temporär begrenzt geschützt zu sein.Alternatively or additionally, a relay server 7 can also be closed after a predetermined time interval has elapsed 109b. Thus, a data exchange between the client 4a and the second, external network 2 is limited in time, which in turn serves the security of the first network 1 by being at least temporarily protected against access from the second, external network 2.

In einem weiteren alternativem oder zusätzlichem Schritt 109c wird der Relay-Server 7 aufgelöst, wenn die im SOCKS-Request definierte Zieladresse unterschiedlich ist zu der in der empfangenen Datenübertragung hinterlegten Zieladresse und/oder der im SOCKS-Request definierte Zielport unterschiedlich ist zu dem in der empfangenen Datenübertragung hinterlegten Zielport.In a further alternative or additional step 109c, the relay server 7 is resolved if the destination address defined in the SOCKS request is different from the destination address stored in the received data transmission and/or the destination port defined in the SOCKS request is different from the destination port stored in the received data transmission.

Dieser Schritt ist ähnlich zu dem Schritt des Ignorierens 108, jedoch mit dem Unterschied, dass übertragene Datenpakete von dem Relay-Server 7 nicht nur ignoriert, sondern die Verbindung vollständig durch Auflösen des Relay-Servers 7 abgebrochen wird. Somit kann je nach Bedarf und abhängig von potentiellen Sicherheitsrisiken die Datenübertragung über den Relay-Server 7 ignoriert oder vollständig abgebrochen werden, was insbesondere die Konfigurationsmöglichkeiten erhöht.This step is similar to the ignoring step 108, but with the difference that transmitted data packets are not only ignored by the relay server 7, but the connection is completely terminated by dissolving the relay server 7. Thus, depending on requirements and potential security risks, the data transmission via the relay server 7 can be ignored or completely terminated, which in particular increases the configuration options.

Vorzugsweise weist das Verfahren 100 noch etwaige Schritte in Bezug auf die Authentifizierung zwischen dem ersten Netzwerk 1 und dem zweiten Netzwerk 2 auf. Dies dient zusätzlich für eine sichere Datenübertragung zwischen dem Client 4a, 4b und einem im zweiten Netzwerk 2 befindlichen Backend-Server.Preferably, the method 100 also comprises any steps relating to the authentication between the first network 1 and the second network 2. This additionally serves for secure data transmission between the client 4a, 4b and a backend server located in the second network 2.

2 zeigt eine erste schematische Abbildung aufweisend Komponenten zum Übertragen von Daten zwischen dem ersten Netzwerk 1 und dem von dem ersten Netzwerk 1 unterschiedlichen zweiten Netzwerk 2. 2 shows a first schematic illustration comprising components for transmitting data between the first network 1 and the second network 2 which is different from the first network 1.

Dabei weist das erste, interne Netzwerk 1 eine Client-Domain 3 sowie eine Gateway-Domain 5 auf. In der Client-Domain 3 ist in diesem Beispiel ein Client 4a angeordnet, welcher in Verbindung mit einer ersten Anwendung 9a bzw. Application steht. Die Anwendung 9a möchte vorzugsweise mit dem externen Netzwerk 2 kommunizieren, und verwendet hierfür den Client 4a für die Kommunikation.The first, internal network 1 has a client domain 3 and a gateway domain 5. In this example, a client 4a is arranged in the client domain 3, which is connected to a first application 9a. The application 9a preferably wants to communicate with the external network 2 and uses the client 4a for communication.

Um den Datenaustausch zwischen dem Client 4a und dem zweiten Netzwerk 2 zu ermöglichen, ist in der Gateway-Domain 5 ein Proxy-Server 6 angeordnet, welcher jedoch nicht selbst die Daten weiterleitet. Zwischen dem Client 4a und dem Proxy-Server 6 ist daher lediglich eine Konfigurationsverbindung vorgesehen, welche als gestrichelte Linie dargestellt ist, d.h. zwischen dem Client 4a und dem Proxy-Server 6 werden vorzugsweise keine Nutzdaten, sondern lediglich Daten zur Konfiguration einer Datenverbindung zwischen dem Client 4a und dem zweiten, externen Netzwerk 2 übertragen.In order to enable data exchange between the client 4a and the second network 2, a proxy server 6 is arranged in the gateway domain 5, which does not itself forward the data. Therefore, only one configuration connection is provided between the client 4a and the proxy server 6, which is shown as a dashed line, i.e. preferably no user data is transmitted between the client 4a and the proxy server 6, but only data for configuring a data connection between the client 4a and the second, external network 2.

Vielmehr dient der Proxy-Server 6 dafür, einen Relay-Server 7 bereitzustellen, über welchen Nutzdaten des Clients 4a an das zweite Netzwerk 2 übertragbar oder von diesem empfangbar sind. Somit hat der Proxy-Server 6 lediglich die Funktion, den Relay-Server 7 bereitzustellen und zu konfigurieren, insbesondere in Abhängigkeit der im SOCKS-Request angeforderten Eigenschaften des Clients 4a.Rather, the proxy server 6 serves to provide a relay server 7, via which user data of the client 4a can be transmitted to the second network 2 or received from it. The proxy server 6 therefore only has the function of providing and configuring the relay server 7, in particular depending on the properties of the client 4a requested in the SOCKS request.

Sobald die Datenverbindung zwischen dem Client 4a und dem zweiten Netzwerk 2 über den Relay-Server 7 vom Proxy-Server 6 aufgebaut wurde, können der Client 4a und das zweite Netzwerk 2 Daten austauschen. Vorzugsweise ist es auch möglich, dass mehrere Anwendungen 9a, 9b über den einen Client 4a mit dem zweiten Netzwerk 2 über den einen Relay-Server 7 kommunizieren und Daten austauschen.As soon as the data connection between the client 4a and the second network 2 has been established via the relay server 7 by the proxy server 6, the client 4a and the second network 2 can exchange data from Preferably, it is also possible for several applications 9a, 9b to communicate and exchange data via the one client 4a with the second network 2 via the one relay server 7.

3 zeigt eine zweite schematische Abbildung aufweisend Komponenten zum Übertragen von Daten zwischen dem ersten Netzwerk 1 und dem von dem ersten Netzwerk 1 unterschiedlichen zweiten Netzwerk 2. Diese Abbildung unterscheidet sich zu dem in 2 Gezeigten darin, dass zum einen ein weiterer Client 4b mit einer weiteren Anwendung 9b in Verbindung steht und beide in der Client-Domain 3 angeordnet sind. 3 shows a second schematic diagram comprising components for transmitting data between the first network 1 and the second network 2, which is different from the first network 1. This diagram differs from the one in 2 Shown in that, on the one hand, another client 4b is connected to another application 9b and both are arranged in the client domain 3.

Ferner weist die Gateway-Domain 5 nun neben dem Relay-Server 7, welcher mit der Anwendung 9a über den Client 4a in Verbindung steht, einen weiteren Relay-Server 8 auf. Dieser weitere Relay-Server 8 ist mit der weiteren Anwendung 9b über den weiteren Client 4b verbunden, sodass jede Anwendung 9a, 9b über einen eigenen Client 4a, 4b verfügen kann. Die beiden Clients 4a, 4b sind wiederum mit je einem eigenen Relay-Server 7, 8 mit dem zweiten Netzwerk 2 verbunden.Furthermore, the gateway domain 5 now has a further relay server 8 in addition to the relay server 7, which is connected to the application 9a via the client 4a. This further relay server 8 is connected to the further application 9b via the further client 4b, so that each application 9a, 9b can have its own client 4a, 4b. The two clients 4a, 4b are in turn each connected to the second network 2 with their own relay server 7, 8.

Somit können Daten von den Anwendungen 9a, 9b parallel über die beiden Clients 4a, 4b bzw. Relay-Server 7, 8 an das zweite Netzwerk 2 oder von diesem zweiten Netzwerk 2 empfangen werden. Auf diese Weise kann der Datendurchsatz deutlich erhöht werden, da nicht wie üblich über einen Proxy-Server 6 der gesamte Datenverkehr zwischen dem ersten, internen Netzwerk 1 und dem zweiten, externen Netzwerk 2 läuft, sondern der Datenverkehr über mehrere Relay-Server 7, 8 verteilt werden kann, wodurch Engpässe aufgrund von Hardware-Beschränkungen oder Software-spezifischen Begebenheiten wie etwa einer maximalen Paketgröße reduzierbar, insbesondere verhinderbar sind. Die beiden Relay-Server 7, 8 sind dabei vorzugsweise jeweils über eine eigene Verbindung mit dem Proxy-Server 6 verbunden, welcher somit die Relay-Server 7, 8 individuell ansteuern und konfigurieren kann.Data can thus be received from the applications 9a, 9b in parallel via the two clients 4a, 4b or relay servers 7, 8 to the second network 2 or from this second network 2. In this way, the data throughput can be significantly increased, since not all data traffic between the first, internal network 1 and the second, external network 2 runs via a proxy server 6 as is usual, but the data traffic can be distributed across several relay servers 7, 8, whereby bottlenecks due to hardware limitations or software-specific circumstances such as a maximum packet size can be reduced, in particular prevented. The two relay servers 7, 8 are preferably each connected via their own connection to the proxy server 6, which can thus control and configure the relay servers 7, 8 individually.

Vorzugsweise kann somit in dem ersten, internen Netzwerk 1 für jede Anwendung 9a, 9b ein eigener Client 4a, 4b bereitgestellt werden, welcher wiederum mit einem eigenen Relay-Server 7, 8 Daten zwischen einer jeweiligen Anwendung 9a, 9b und dem zweiten, externen Netzwerk 2 austauschen kann. Durch diese Parallelisierung kann ferner die Latenz beim Datenaustausch als auch die Sicherheit des ersten Netzwerks 1 zusätzlich erhöht werden, da über den Relay-Server 7, 8 nur diejenigen Anwendungen vom zweiten Netzwerk 2 erreichbar sind, welche auch auf Basis des SOCKS-Protokolls über den ihnen zugeordneten Clients und Relay-Server 7, 8 in Verbindung stehen.Preferably, a separate client 4a, 4b can be provided for each application 9a, 9b in the first, internal network 1, which in turn can exchange data between a respective application 9a, 9b and the second, external network 2 with its own relay server 7, 8. This parallelization can also increase the latency in data exchange and the security of the first network 1, since only those applications from the second network 2 that are also connected on the basis of the SOCKS protocol via the clients and relay servers 7, 8 assigned to them can be reached via the relay server 7, 8.

Vorzugsweise kann wenigstens einer der Relay-Server 7, 8 von in der Hardware oder Software, auf welcher die Gateway-Domain 5 betrieben wird, bereits eingebauten Fähigkeiten in Bezug auf eine IP-Verbindung bzw. IP-Kommunikation profitieren. Beispielsweise kann ein Linux-Kernel die Fähigkeit aufweisen, Kernel Hooks zu unterstützen. Dabei können Operationen und Befehle im Kernel ausgelagert werden, wodurch die Datenverarbeitung zusätzlich optimiert, insbesondere beschleunigt, werden kann.Preferably, at least one of the relay servers 7, 8 can benefit from capabilities already built into the hardware or software on which the gateway domain 5 is operated with regard to an IP connection or IP communication. For example, a Linux kernel can have the ability to support kernel hooks. Operations and commands can be outsourced in the kernel, whereby data processing can be further optimized, in particular accelerated.

Vorzugsweise ist das erste Netzwerk 1 in einem Kraftfahrzeug wie etwa einem Auto angeordnet. Auf diese Weise können Big Loop Tasks, bei welchen große Datenmengen übertragen werden, besser ausgeführt werden. Beispielsweise werden diverse Daten im Fahrzeug, insbesondere in einer Anwendung, gesammelt, und zu einem im zweiten, externen Netzwerk 2, vorzugsweise einem Backend, übertragen. Dort kann eine Auswertung der Daten erfolgen und beispielsweise eine künstliche Intelligenz auf Basis der gesammelten Daten trainiert werden. Eine Auswertung dieser Daten oder entsprechende Handlungsanweisungen können anschließend vom Backend-Server, welcher im zweiten Netzwerk 2 angeordnet ist, zurück zum Fahrzeug, vorzugsweise dem ersten Netzwerk 1 gesendet werden. Somit kann ein effizienter Datenaustausch zwischen mehreren Fahrzeugen und ganzen Fahrzeugflotten und einem Hersteller-Backend erfolgen.Preferably, the first network 1 is arranged in a motor vehicle such as a car. In this way, big loop tasks, in which large amounts of data are transmitted, can be carried out better. For example, various data are collected in the vehicle, in particular in an application, and transmitted to a second, external network 2, preferably a backend. There, the data can be evaluated and, for example, artificial intelligence can be trained on the basis of the collected data. An evaluation of this data or corresponding instructions for action can then be sent from the backend server, which is arranged in the second network 2, back to the vehicle, preferably the first network 1. This enables efficient data exchange between several vehicles and entire vehicle fleets and a manufacturer backend.

Ferner können die Client-Domain 3 als auch die Gateway-Domain 5 unabhängig voneinander ausgebildet sein und verfügen vorzugsweise über je einen eigenen Domain-Security-Layer.Furthermore, the client domain 3 and the gateway domain 5 can be designed independently of each other and preferably each have their own domain security layer.

In einer Ausführungsform wird zuerst die Gateway-Domain 5 instanziiert. Anschließend wird für jede Anwendung 9a, 9b gewartet, ob diese sich beim Proxy-Server 6 meldet und eine Verbindung zum zweiten Netzwerk 2 aufbauen möchte. Beispielsweise kann sich eine die Fahrertür des Fahrzeugs betreffende Anwendung in einem Steuergerät des Fahrzeugs mit dem Backend des Herstellers im zweiten Netzwerk 2 verbinden wollen. Hierfür kann die Anwendung einen CONNECTION Request an die Gateway-Domain 5, vorzugsweise an den Gateway-Proxy 6 senden. Dieser baut über einen Relay-Server 7 eine entsprechende Datenverbindung auf, wobei jedes TCP-Paket vom Proxy-Server 6 bzw. dem entsprechenden Relay-Server 7, 8 bidirektional geforwarded werden kann.In one embodiment, the gateway domain 5 is instantiated first. Then, for each application 9a, 9b, it is waited whether it reports to the proxy server 6 and wants to establish a connection to the second network 2. For example, an application relating to the driver's door of the vehicle in a control unit of the vehicle may want to connect to the manufacturer's backend in the second network 2. To do this, the application can send a CONNECTION request to the gateway domain 5, preferably to the gateway proxy 6. This establishes a corresponding data connection via a relay server 7, whereby each TCP packet can be forwarded bidirectionally from the proxy server 6 or the corresponding relay server 7, 8.

Zusammenfassend betrifft die Erfindung eine Erweiterung des im SOCKSv5 definierten SOCKS-Requests, welcher von der RFC1928 definiert ist. Die Erweiterung erlaubt es, dass das SOCKSv5-Protokoll zusätzlich transparente Proxys für verschiedenste Typen von Transportprotokollen wie TCP oder UDP unterstützt. Auf diese Weise kann die Leistungsfähigkeit des SOCKS Gateway-Proxys im Sinne von „bandwidth to computing power“ durch Verwenden der Erweiterung zum Aufsetzen von transparenten Verbindungen zwischen Clients und Internetservern, z.B. ohne Aufsplitten der Verbindungen auf Proxy und auf Transport Protocol Level, verbessert werden.In summary, the invention relates to an extension of the SOCKS request defined in SOCKSv5, which is defined by RFC1928. The extension allows the SOCKSv5 protocol to additionally support transparent proxies for various types of transport protocols such as TCP or UDP. In this way, the performance of the SOCKS gateway proxy in terms of "bandwidth to computing power" can be improved by using the extension to set up transparent connections between clients and Internet servers, e.g. without splitting the connections at proxy and transport protocol level.

Zum einen wird das SOCKSv5-Protokoll erweitert, um einen neuen SOCKS-Request zu unterstützen, nämlich dem Befehl (CMD) genannt TRANSPARENT association. Darüber hinaus werden der Transport PTCL Typ und die Client-Adresse und der Client-Port innerhalb des Requests spezifiziert. In der SOCKS-Reply auf einen TRANSPARENT Association Request (SOCKS-Request) indizieren die Parameter BND-PORT und BND.ADDR die Portnummer bzw. Adresse, wo der Client 4a seine Daten senden kann bzw. muss, sodass PTCL-typische Pakete weitergeleitet werden. Der neue SOCKS TRANSPARENT Association Handshake wird vorzugsweise via TCP durchgeführt, wie es auch bei den anderen SOCKS Befehlen des RFC1928 Standards erfolgt. Dabei ist die erfindungsgemäße Erweiterung des SOCKS-Protokolls vollständig rückwärtskompatibel mit dem RFC1928 Standard.Firstly, the SOCKSv5 protocol is extended to support a new SOCKS request, namely the command (CMD) called TRANSPARENT association. In addition, the transport PTCL type and the client address and the client port are specified within the request. In the SOCKS reply to a TRANSPARENT Association Request (SOCKS request), the parameters BND-PORT and BND.ADDR indicate the port number or address where the client 4a can or must send its data so that PTCL-typical packets are forwarded. The new SOCKS TRANSPARENT Association handshake is preferably carried out via TCP, as is the case with the other SOCKS commands of the RFC1928 standard. The inventive extension of the SOCKS protocol is fully backwards compatible with the RFC1928 standard.

Des Weiteren kann die SOCKS TRANSPARENT Association Verbindung dazu verwendet werden, einen Kontroll-Pfad zwischen einem Client 4a und dem Proxy 6 für eine zugehörige Verbindung aufzubauen. Dabei ist jeder PTCL-typische Relay-Server 7, 8 mit dem SOCKS Proxy-Server 6 verbunden.Furthermore, the SOCKS TRANSPARENT Association connection can be used to establish a control path between a client 4a and the proxy 6 for an associated connection. Each PTCL-typical relay server 7, 8 is connected to the SOCKS proxy server 6.

Ferner kann ein PTCL-typischer Relay-Server 6 PTCL-typische Daten, welche zu einem SOCKS TRANSPARENT Kontrollpfad zugewiesen sind, transparent weiterleiten. Dabei kann zutreffen, dass der zugewiesene PTCL Relay-Server 7, 8 die zugewiesenen DST.ADDR und DST.PORT Informationen sowie auf Clientseite die Parameter SRC.ADDR und SRC.PORT des TRANSPARENT Association Request zur verbindungsspezifischen Relay-Konfiguration empfängt und verwendet. Der PTCL Relay-Server kann vorzugsweise nur Datenpakete annehmen, welche dem PTCL-spezifischen Typ (IP/IPv6 Header: Protocol/NH Type = PTCL) entsprechen. Interception kann auf IP-Level von einem PCTLtypischen Relay-Server 7, 8 durchgeführt werden. PTCL-transparente Interception kann für ein so genanntes „stateful processing“ von zugehörigen Datenverbindungen verwendet werden.Furthermore, a PTCL-typical relay server 6 can transparently forward PTCL-typical data that is assigned to a SOCKS TRANSPARENT control path. In this case, the assigned PTCL relay server 7, 8 may receive and use the assigned DST.ADDR and DST.PORT information and, on the client side, the SRC.ADDR and SRC.PORT parameters of the TRANSPARENT Association Request for connection-specific relay configuration. The PTCL relay server can preferably only accept data packets that correspond to the PTCL-specific type (IP/IPv6 header: Protocol/NH Type = PTCL). Interception can be carried out at IP level by a PCTL-typical relay server 7, 8. PTCL-transparent interception can be used for so-called “stateful processing” of associated data connections.

Darüber hinaus wird ein PTCL-typischer Relay-Server 7, 8 vorzugsweise keine Daten weiterleiten, welche nicht dem SOCKS-TRANSPARENT Kontrollpfad zugeordnet sind. Dies kann einerseits den Fall betreffen, dass eine spezifische PTCL-typische Relay-Datenverbindung beendet wird, wenn der zugehörige Kontrollpfad aufgelöst wurde, z.B. wenn die SOCKS Proxy-TCP-Verbindung beendet wird, nachdem der TRANSPARENT Association Request angekommen ist. Andererseits kann dies den weiteren Fall betreffen, dass der PTCL-typische Relay-Server 7, 8 sämtliche Datenpakete ignorieren muss, welche von einer anderen Herkunftsadresse oder von einem anderen Herkunftsport als in den Relay-Verbindungen konfiguriert stammen.In addition, a PTCL-typical relay server 7, 8 will preferably not forward data that is not associated with the SOCKS-TRANSPARENT control path. On the one hand, this can affect the case that a specific PTCL-typical relay data connection is terminated when the associated control path has been resolved, e.g. when the SOCKS proxy TCP connection is terminated after the TRANSPARENT association request has arrived. On the other hand, this can affect the further case that the PTCL-typical relay server 7, 8 must ignore all data packets that originate from a different source address or from a different source port than that configured in the relay connections.

Auch kann der PTCL-typische Relay-Server 7, 8 fähig sein, bereits eingebaute built-in Fähigkeiten in Bezug auf die IP-Kommunikation eines den Relay-Server betreibenden Betriebssystemkernels wirksam einzusetzen (z.B. Linux Kernel). Der Vorteil eines Kernel-Offloads ist eine Verbesserung des Durchsatzes durch Data-Forwarding mit der Unterstützung von geeigneten Kernel-Hooks. Des Weiteren können eingebaute Kernel-Funktionen im Hinblick auf Netzwerkadressen-Übersetzung oder Netzwerk-Prefix-Übersetzung unterstützen, die gesamte Performance des Datendurchsatzes zu verbessern.The PTCL-typical relay server 7, 8 may also be able to leverage built-in capabilities related to IP communication of an operating system kernel running the relay server (e.g. Linux kernel). The advantage of kernel offloading is an improvement in throughput through data forwarding with the support of suitable kernel hooks. Furthermore, built-in kernel functions related to network address translation or network prefix translation can help to improve the overall performance of data throughput.

Insgesamt zeigen die Beispiele, wie ein computer-implementiertes Verfahren 100 sowie ein System zum Übertragen von Daten zwischen einem ersten Netzwerk 1 und einem von dem ersten Netzwerk 1 unterschiedlichen zweiten Netzwerk 2 bereitgestellt werden kann. Ferner zeigen die Beispiele, wie eine Datenstruktur, aufweisend einen SOCKS-Request gemäß dem SOCKS-Protokoll, ein Computerprogramm sowie ein computerlesbares Speichermedium bereitgestellt werden können.Overall, the examples show how a computer-implemented method 100 and a system for transmitting data between a first network 1 and a second network 2 that is different from the first network 1 can be provided. Furthermore, the examples show how a data structure comprising a SOCKS request according to the SOCKS protocol, a computer program and a computer-readable storage medium can be provided.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • WO 02065650 A2 [0006]WO 02065650 A2 [0006]
  • WO 2012006595 A2 [0007]WO 2012006595 A2 [0007]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • https://datatracker.ietf.org/doc/html/rfc1928 [0021]https://datatracker.ietf.org/doc/html/rfc1928 [0021]

Claims (15)

Computer-implementiertes Verfahren (100) zum Übertragen von Daten zwischen einem ersten Netzwerk (1) und einem von dem ersten Netzwerk (1) unterschiedlichen zweiten Netzwerk (2), aufweisend die Schritte: - Bereitstellen (101) einer Client-Domain (3) innerhalb des ersten Netzwerks (1), wobei in der Client-Domain (3) wenigstens ein Client (4a; 4b) angeordnet ist; - Bereitstellen einer Gateway-Domain (5) innerhalb des ersten Netzwerks (1), wobei in der Gateway-Domain (5) ein Gateway Proxy-Server (6) angeordnet ist, welcher dazu eingerichtet ist, den Datenaustausch zwischen der Client-Domain (3) und dem zweiten Netzwerk (2) zu steuern; - Empfangen eines SOCKS-Requests durch den Gateway Proxy-Server (6) eine Datenverbindung zwischen dem Client (4a; 4b) und dem externen Netzwerk (2) bereitzustellen; - Bereitstellen eines Relay-Servers (7; 8) innerhalb der Gateway-Domain (5) durch den Gateway Proxy-Server (6) auf Basis des empfangenen SOCKS-Requests; - Senden einer SOCKS-Reply durch den Gateway Proxy-Server (6), wobei die SOCKS-Reply Informationen aufweist, wie zwischen dem Client (4a; 4b) und dem zweiten Netzwerk (2) über den Relay-Server (7; 8) kommuniziert werden kann; und - Aufbauen einer Datenübertragung zwischen der Client-Domain (3), dem Relay-Server (7; 8) und dem zweiten Netzwerk (2) auf Basis des SOCKS-Requests und der SOCKS-Reply, wobei der SOCKS-Request zusätzlich wenigstens einen der folgenden Parameter aufweist: Protokolltyp, Herkunftsadresse des Clients (4a; 4b), Typ der Herkunftsadresse des Clients (4a; 4b) und Herkunftsport des Clients (4a; 4b).Computer-implemented method (100) for transmitting data between a first network (1) and a second network (2) that is different from the first network (1), comprising the steps: - providing (101) a client domain (3) within the first network (1), wherein at least one client (4a; 4b) is arranged in the client domain (3); - providing a gateway domain (5) within the first network (1), wherein a gateway proxy server (6) is arranged in the gateway domain (5), which is designed to control the data exchange between the client domain (3) and the second network (2); - receiving a SOCKS request by the gateway proxy server (6) to provide a data connection between the client (4a; 4b) and the external network (2); - providing a relay server (7; 8) within the gateway domain (5) by the gateway proxy server (6) based on the received SOCKS request; - sending a SOCKS reply by the gateway proxy server (6), wherein the SOCKS reply includes information on how communication can take place between the client (4a; 4b) and the second network (2) via the relay server (7; 8); and - establishing a data transmission between the client domain (3), the relay server (7; 8) and the second network (2) based on the SOCKS request and the SOCKS reply, wherein the SOCKS request additionally includes at least one of the following parameters: protocol type, origin address of the client (4a; 4b), type of origin address of the client (4a; 4b) and origin port of the client (4a; 4b). Verfahren (100) nach Anspruch 1, wobei das SOCKSv5 Protokoll verwendet wird.Procedure (100) according to Claim 1 , using the SOCKSv5 protocol. Verfahren (100) nach Anspruch 1 oder 2, wobei der CMD-Parameter im SOCKS-Request um einen zusätzlichen TRANSPARENT MODE ergänzbar ist.Procedure (100) according to Claim 1 or 2 , where the CMD parameter in the SOCKS request can be supplemented with an additional TRANSPARENT MODE. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei der Parameter Protokolltyp im SOCKS-Request das User Datagram Protocol oder das Transmission Control Protocol kennzeichnet.Method (100) according to one of the preceding claims, wherein the protocol type parameter in the SOCKS request identifies the User Datagram Protocol or the Transmission Control Protocol. Verfahren (100) nach einem der vorhergehenden Ansprüche, aufweisend folgenden zusätzlichen Schritt: - Konfigurieren, insbesondere Sichern, des Herkunftsports, mit welchem der Client (4a; 4b) verbindbar ist, bevor die SOCKS-Reply gesendet wird.Method (100) according to one of the preceding claims, comprising the following additional step: - Configuring, in particular securing, the source port to which the client (4a; 4b) can be connected before the SOCKS reply is sent. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die SOCKS-Reply Informationen aufweist, über welchen Port und welche Adresse des Relay-Servers (7; 8) Daten übertragbar sind.Method (100) according to one of the preceding claims, wherein the SOCKS reply comprises information about which port and which address of the relay server (7; 8) data can be transmitted via. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei der Relay-Server (7; 8) nur übermittelte Daten weiterleitet, welche den im SOCKS-Request definierten Parametern entsprechen.Method (100) according to one of the preceding claims, wherein the relay server (7; 8) only forwards transmitted data which correspond to the parameters defined in the SOCKS request. Verfahren (100) nach einem der vorhergehenden Ansprüche, aufweisend folgenden zusätzlichen Schritt: - Auflösen des Relay-Servers (7; 8), wenn die Datenübertragung erfolgreich war.Method (100) according to one of the preceding claims, comprising the following additional step: - Dissolving the relay server (7; 8) if the data transmission was successful. Verfahren (100) nach einem der Ansprüche 1 bis 7, aufweisend folgenden zusätzlichen Schritt: - Auflösen des Relay-Servers (7; 8) nach Ablauf eines vorbestimmten Zeitintervalls.Method (100) according to one of the Claims 1 until 7 , comprising the following additional step: - dissolving the relay server (7; 8) after expiration of a predetermined time interval. Verfahren (100) nach einem der Ansprüche 1 bis 7, aufweisend folgenden zusätzlichen Schritt: - Auflösen des Relay-Servers (7; 8), wenn die im SOCKS-Request definierte Zieladresse unterschiedlich ist zu der in der empfangenen Datenübertragung hinterlegten Zieladresse und/oder der im SOCKS-Request definierte Zielport unterschiedlich ist zu dem in der empfangenen Datenübertragung hinterlegten Zielport.Method (100) according to one of the Claims 1 until 7 , comprising the following additional step: - resolving the relay server (7; 8) if the destination address defined in the SOCKS request is different from the destination address stored in the received data transmission and/or the destination port defined in the SOCKS request is different from the destination port stored in the received data transmission. Verfahren (100) nach einem der vorhergehenden Ansprüche, aufweisend folgenden zusätzlichen Schritt: - Ignorieren von durch den Relay-Server (7; 8) empfangenen Daten, wenn die im SOCKS-Request definierte Zieladresse unterschiedlich ist zu der in der empfangenen Datenübertragung hinterlegten Zieladresse und/oder der im SOCKS-Request definierte Zielport unterschiedlich ist zu dem in der empfangenen Datenübertragung hinterlegten Zielport.Method (100) according to one of the preceding claims, comprising the following additional step: - ignoring data received by the relay server (7; 8) if the destination address defined in the SOCKS request is different from the destination address stored in the received data transmission and/or the destination port defined in the SOCKS request is different from the destination port stored in the received data transmission. System zum Übertragen von Daten zwischen einem ersten Netzwerk (1) und einem von dem ersten Netzwerk (1) unterschiedlichen zweiten Netzwerk (2) aufweisend Mittel zur Ausführung des Verfahrens (100) nach einem der Ansprüche 1 bis 11.System for transmitting data between a first network (1) and a second network (2) different from the first network (1), comprising means for carrying out the method (100) according to one of the Claims 1 until 11 . Datenstruktur, aufweisend einen SOCKS-Request gemäß dem SOCKS-Protokoll, wobei der SOCKS-Request zusätzlich wenigstens einen der folgenden Parameter aufweist: Protokolltyp, Herkunftsadresse des Clients (4a; 4b), Typ der Herkunftsadresse des Clients (4a; 4b) und Herkunftsport des Clients (4a; 4b).Data structure comprising a SOCKS request according to the SOCKS protocol, wherein the SOCKS request additionally comprises at least one of the following parameters: protocol type, source address of the client (4a; 4b), type of source address of the client (4a; 4b) and source port of the client (4a; 4b). Computerprogramm, welches bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren (100) nach einem der Ansprüche 1 bis 11 auszuführen oder die Datenstruktur nach Anspruch 13 zu verwenden.Computer program which, when executed by a computer, causes the computer to carry out the method (100) according to one of the Claims 1 until 11 or to execute the data structure according to Claim 13 to use. Computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren (100) nach einem der Ansprüche 1 bis 11 auszuführen oder aufweisend die Datenstruktur nach Anspruch 13.A computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method (100) according to one of the Claims 1 until 11 to execute or having the data structure according to Claim 13 .
DE102023105918.1A 2023-03-09 2023-03-09 Method for transferring data between two networks Pending DE102023105918A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102023105918.1A DE102023105918A1 (en) 2023-03-09 2023-03-09 Method for transferring data between two networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102023105918.1A DE102023105918A1 (en) 2023-03-09 2023-03-09 Method for transferring data between two networks

Publications (1)

Publication Number Publication Date
DE102023105918A1 true DE102023105918A1 (en) 2024-09-12

Family

ID=92459640

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023105918.1A Pending DE102023105918A1 (en) 2023-03-09 2023-03-09 Method for transferring data between two networks

Country Status (1)

Country Link
DE (1) DE102023105918A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065650A2 (en) 2001-02-13 2002-08-22 Aventail Corporation Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
WO2012006595A2 (en) 2010-07-09 2012-01-12 Nicolas Girard Transparent proxy architecture for multi-path data connections
EP3985935A1 (en) 2020-10-14 2022-04-20 Webshare Software Company Endpoint bypass in a proxy network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065650A2 (en) 2001-02-13 2002-08-22 Aventail Corporation Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
WO2012006595A2 (en) 2010-07-09 2012-01-12 Nicolas Girard Transparent proxy architecture for multi-path data connections
EP3985935A1 (en) 2020-10-14 2022-04-20 Webshare Software Company Endpoint bypass in a proxy network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
https://datatracker.ietf.org/doc/html/rfc1928
Norm Request for Comments: 1928 1996-03-00. SOCKS Protocol Version 5. URL: https://www.rfc-editor.org/rfc/pdfrfc/rfc1928.txt.pdf [abgerufen am 2022-04-26]

Similar Documents

Publication Publication Date Title
DE602006000489T2 (en) CONNECTIVITY ABOUT STATEFUL FIREWALLS
DE60224917T2 (en) Method and apparatus for fragmenting and restoring Internet Key Exchange packets
EP3542511B1 (en) Process for a communication network and electronic control unit
EP3335387B1 (en) Method for transmitting data packets between an ethernet and a bus system in a motor vehicle, as well as gateway device and motor vehicle
WO2017092879A1 (en) Method for industrial communication via tsn
EP3210358A1 (en) Telecommunications assembly and method for traversing an application layer gateway firewall during the establishment of an rtc communication connection between an rtc client and an rtc server
EP2193649B1 (en) Method and device for connecting packet-oriented communication terminals
DE102019210229A1 (en) Method and device for the analysis of service-oriented communication
DE102023203519A1 (en) Session-based direct remote memory access
EP1593253B1 (en) Method and system for the transparent transmission of data traffic between data processing devices, corresponding computer program product, and corresponding computer-readable storage medium
EP1282280B1 (en) Method, control device and program module for controlling and guiding of data streams of a communication connection between two participants of a packet data network
DE102023105918A1 (en) Method for transferring data between two networks
EP2165510A2 (en) Access to a resource by means of a security module
EP3170295B1 (en) Increasing the security for port-knocking performed by external computer systems
DE102004055505A1 (en) A method for authorizing service requests to service hosts in a network
EP1761081A1 (en) Communication system, switching node server and method for determination of a controlling node
EP2245834A1 (en) Secure data communication
EP2036313B1 (en) Method for managing communication connections by network address translating (nat) network nodes
WO2022090064A1 (en) Method for monitoring a data network in a motor vehicle, switch device, and motor vehicle
EP4096170B1 (en) Method for data transmission in a network system and network system
DE102023121186A1 (en) Method for data transmission in a network system and network system
DE102006038599B3 (en) Method for reactivating a secure communication connection
EP2773081A1 (en) Communication device for an industrial communication network and a method for providing data, in particular files, in an industrial communication network using file transfer protocol
EP4507253A1 (en) Method for data transmission in a network system and network system
EP1496665B1 (en) Method for security configuration in an automisation network

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication