DE102023105918A1 - Method for transferring data between two networks - Google Patents
Method for transferring data between two networks Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 abstract description 8
- 208000020968 mature T-cell and NK-cell non-Hodgkin lymphoma Diseases 0.000 description 16
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements 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.
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;
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.
-
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.
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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
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-
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-
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-
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
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)
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)
| 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 |
-
2023
- 2023-03-09 DE DE102023105918.1A patent/DE102023105918A1/en active Pending
Patent Citations (3)
| 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)
| 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 |