DE19645006A1 - Data communication system between computers - Google Patents

Data communication system between computers

Info

Publication number
DE19645006A1
DE19645006A1 DE19645006A DE19645006A DE19645006A1 DE 19645006 A1 DE19645006 A1 DE 19645006A1 DE 19645006 A DE19645006 A DE 19645006A DE 19645006 A DE19645006 A DE 19645006A DE 19645006 A1 DE19645006 A1 DE 19645006A1
Authority
DE
Germany
Prior art keywords
data
client
server
service
processes
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.)
Granted
Application number
DE19645006A
Other languages
German (de)
Other versions
DE19645006B4 (en
Inventor
Rene Grosser
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.)
Hisolutions Ag 12435 Berlin De
Original Assignee
Hisolutions Engineering & Consulting Langhoff Heinrich Kob & Partner 12435 Berlin De
Hisolutions Engineering & Cons
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 Hisolutions Engineering & Consulting Langhoff Heinrich Kob & Partner 12435 Berlin De, Hisolutions Engineering & Cons filed Critical Hisolutions Engineering & Consulting Langhoff Heinrich Kob & Partner 12435 Berlin De
Priority to DE19645006A priority Critical patent/DE19645006B4/en
Publication of DE19645006A1 publication Critical patent/DE19645006A1/en
Application granted granted Critical
Publication of DE19645006B4 publication Critical patent/DE19645006B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/328Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the presentation layer [OSI layer 6]

Abstract

The communication system is used to provide a client-server connection over the internet between a number of processes. The system has the client server process Pc coupled to a second process Psi. Connected between the two are other processes Pm,Pm' that allow modification and protocol changes to be made to the data. Data for transfer to the second process are forwarded to the third process. The data are modified and protocol changes are made by the third process. A forth process performs reverse modification and protocol changes. The reverse modified data are transferred from the fourth process Pc to the second process.

Description

Die vorliegende Erfindung betrifft ein Verfahren zur Kommunikation zwischen Prozessen, die auf einem oder auf verschiedenen Rechnern ablaufen sowie einen auf einem auf einem Rechner ablaufenden Prozeß zum Aufbau von Client-Server-Verbindungen.The present invention relates to a method for communication between processes that run on one or on different computers and a process running on a computer for building Client-server connections.

Bei modernen Rechnersystemen ist es häufig der Fall, daß eine Kommunikation zwischen verschiedenen auf einem oder auf verschiedenen Rechner ablaufenden Prozessen erforderlich ist. Insbesondere ist dies immer dann der Fall wenn ein Prozeß, der sogenannte Client, von einem anderen Prozeß, dem sogenannten Server, einen Dienst anfordert, den der Server dann erbringt. Bei den angeforderten bzw. zu erbringenden Diensten kann es sich dabei um unterschiedlichste Anwendungen, beispielsweise Textverarbeitung, kompliziertere Rechenanwendungen, die Vornahme von Druckjobs, die Verwaltung von Files (Fileserver) etc., handeln. In den meisten Fällen finden sich Client und Server auf verschiedenen Rechnern und die Verbindung zwischen beiden Rechnern wird über eine Kommunikationsleitung hergestellt. Es können jedoch auch beide auf demselben Rechner ablaufen.In modern computer systems it is often the case that one Communication between different on one or on different computers ongoing processes is required. In particular, this is always the case if a process, the so-called client, is from another process, the so-called server, requests a service that the server then provides. Both requested or to be provided services can be various applications, such as word processing, more complicated Computing applications, making print jobs, managing files (File server) etc., act. In most cases, the client and server can be found different computers and the connection between the two computers is over established a communication line. However, both can be on run on the same computer.

Die wichtigsten Anwendungen, bei denen eine Kommunikation zwischen zwei Prozessen erforderlich wird, sind diejenigen, bei denen ein Client auf einem ersten Rechner von einem Server auf einem zweiten über eine Fernverbindung erreichbaren Rechner einen Dienst anfordert, wie beispielsweise beim World-Wide-Web WWW oder beim Online-Banking. Bei diesen Client-/Server-Anwendungen kann es erforderlich sein, daß die über die Fernverbindung übertragenen Daten verschlüsselt sind, z. B. um dem unauthorisierten Benutzer den Zugriff auf die Dienste des Servers verweigern zu können oder um zu verhindern, daß ein unauthorisierter Benutzer mittels der "abgehörten" Übertragungsdaten sich als authorisierter Benutzer ausgibt und einen Dienst anfordert. Nachfolgend werden kurz die Grundlagen der Kommunikation zwischen Prozessen erläutert, die häufig bei Client-Server-Anwendungen über eine Fernverbindung, beispielsweise eine Telefonleitung, erfolgt. The main applications where communication between Two processes are required are those where a client is on one first computer from a server to a second via a remote connection accessible computer requests a service, such as the World Wide Web WWW or online banking. With these client / server applications it may be necessary that the data transmitted over the long distance are encrypted, e.g. B. to give the unauthorized user access to the To be able to refuse server services or to prevent a unauthorized user using the "intercepted" transmission data as authorized user issues and requests a service. Below will be briefly explains the basics of communication between processes that are common for client-server applications via a remote connection, for example one Telephone line, done.  

Das Herstellen einer Verbindung zwischen einem ersten Rechner und einem zweiten Rechner beziehungsweise zwischen zwei Prozessen über eine Datenfernverbindung geschieht mit Hilfe eines Übertragungsprotokolls, wie beispielsweise TCP/IP. Nachfolgend werden kurz die Grundlagen dieses Protokolls sowie die zum Aufbau einer Verbindung erforderlichen Schritte dargestellt. Als Beispiel wird dabei eine Verbindung über das Internet erläutert.Establishing a connection between a first computer and a second computer or between two processes via one Remote data connection happens with the help of a transmission protocol, such as for example TCP / IP. Below is a brief outline of the basics of this protocol and the steps required to establish a connection. As An example here explains a connection via the Internet.

Jeder Rechner im Internet besitzt eine eindeutige Adresse (die Internetadresse). Diese Adresse kann als Quadrupel von Zahlen dargestellt werden (z. B. 130.149.1.1). Spezielle Dienste im Internet sorgen dafür, daß diese schlecht zu lesende Schreibweise auch als mit Punkten abgetrennte Namen dargestellt werden kann (z. B. www.versand.de). Die gewählten Namen sind völlig willkürlich und haben keinen Bezug zu speziellen, vom Internet bekannten Diensten (www).Every computer on the Internet has a unique address (the Internet address). This address can be represented as a quadruple of numbers (e.g. 130.149.1.1). Special services on the Internet ensure that these are bad too reading notation can also be represented as names separated by dots can (e.g. www.versand.de). The names chosen are completely arbitrary and have no reference to special services known from the Internet (www).

Auf diesen Rechnern können nun bestimmte Dienste zur Verfügung gestellt werden. Um diese unterscheiden zu können - denn die Internetadresse reicht dafür nicht aus - werden sogenannte Ports eingeführt. Ein Port ist eine Zahl im Bereich von 0 bis 65535. Um also einen Dienst nutzen zu können, benötigt man die Internetadresse des Rechners auf dem der Dienst läuft und dessen Port.Certain services can now be available on these computers be put. To be able to distinguish them - because the Internet address is not sufficient for this - so-called ports are introduced. A port is a number in the Range from 0 to 65535. So to use a service you need the Internet address of the computer on which the service is running and its port.

Eine Einigung von Dienstnutzer und Dienstanbieter auf eine Internetadresse und einen Port ist dafür zwingend nötig, um den Dienst nutzen zu können.Agreement between service users and service providers on one Internet address and a port is mandatory to use the service can.

Bestimmten Diensten im Internet wurden bereits feste Portnummern zugeordnet (z. B. WWW - Port 80, ftp - Port 21 . . .). Um diese Standarddienste nutzen zu können, reicht bereits die Kenntnis der Internetadresse aus. Auch im Intranet-Bereich sind spezielle Ports für Dienste reserviert (z. B. SQL-Server - Port 3180 Lotus-Notes-Server - 1352).Certain Internet services have already had fixed port numbers assigned (e.g. WWW port 80, ftp port 21 ...). To use these standard services Knowing the Internet address is sufficient to be able to. Also in the intranet area special ports are reserved for services (e.g. SQL Server - port 3180 Lotus Notes server - 1352).

Wird ein Dienst genutzt, so sind zwei sogenannte Sockets nötig, die beim Verbindungsaufbau in Beziehung treten. Ein Socket ist ein Kommunikationsendpunkt. If a service is used, two so-called sockets are required Establish connection. A socket is a Communication endpoint.  

Um einen Dienst auf einem Rechner anbieten zu können, muß man einen Socket erstellen und diesem einen Port zuweisen. Das kann zu einem Fehler führen wenn der Port schon durch einen anderen Dienst auf diesem Rechner belegt ist.To be able to offer a service on a computer, you have to have one Create a socket and assign a port to it. This can lead to an error if the port is already occupied by another service on this computer.

In der Client-Server-Welt stellt der Prozeß, der auf dem Rechner einen Dienst anbietet, einen Server dar. Ein Client nutzt den Dienst des Servers, indem er eine Netzwerkverbindung zum Socket des Servers aufbaut. Hierfür muß der Client zuvor auf seinem Rechner ebenfalls einen Socket erstellen und diesem einen beliebigen freien Port zuweisen. Beliebig deshalb, da der Port zwar der Unterscheidung von Diensten dient, aber vor allem die Möglichkeit gibt, Dienste überhaupt zu finden. Der Client jedoch bietet keinen Dienst an, demnach wird auch kein bestimmter Port verlangt, der Port kann dynamisch vergeben werden.In the client-server world, the process that takes place on the computer Service offers, represents a server. A client uses the service of the server by establishes a network connection to the server socket. The client must do this previously also create a socket on his computer and this one assign any free port. Any because the port is the Differentiation of services serves, but above all the possibility gives services to find at all. However, the client does not offer a service, so it will no specific port is required, the port can be assigned dynamically.

Folgende Aktionen werden ausgeführt, um eine Netzwerkverbindung auf- und abzubauen.
The following actions are carried out to establish and terminate a network connection.

  • - Der Server wird gestartet.
    • - Der Server-Prozeß kreiert einen Socket.
    • - Der Server-Prozeß weist dem Socket die vereinbarte Portnummer zu.
    • - Der Server-Prozeß "lauscht" am Socket und wartet auf Client-Dienstanforderungen.
    - The server is started.
    • - The server process creates a socket.
    • - The server process assigns the agreed port number to the socket.
    • - The server process "listens" to the socket and waits for client service requests.
  • - Der Client wird gestartet.
    • - Der Client-Prozeß erzeugt einen Socket.
    • - Der Client-Prozeß benutzt eine freie, beliebige Portnummer.
    • - Der Client-Prozeß ermittelt die Internetadresse des Rechners, auf dem der Dienst angeboten wird.
    • - Der Client-Prozeß ermittelt die Portnummer des Dienstes auf dem Serverrechner (evtl. fest definiert).
    • - Der Client baut die Verbindung zum entfernten Server auf (connect). Dabei wird eine Kopie des Sockets des Servers erstellt die mit dem Socket des Clients verbunden wird.
    - The client is started.
    • - The client process creates a socket.
    • - The client process uses a free, arbitrary port number.
    • - The client process determines the Internet address of the computer on which the service is offered.
    • - The client process determines the port number of the service on the server computer (possibly defined).
    • - The client establishes the connection to the remote server (connect). A copy of the socket of the server is created, which is connected to the socket of the client.
  • - Die Verbindung besteht.
    • - Die Netzwerkverbindung ist durch das Quadrupel [Client-Internetadresse, Client-Port, Server-Internetadresse, Server-Port] eindeutig beschrieben. Mehrere Clients können eine Verbindung zum gleichen Dienst aufbauen ([Client-Internetadresse 2, Client-Port 2, Server-Internetadresse, Server-Port]).
    • - Daten können bidirektional ausgetauscht werden.
    • - Die Verbindung wird vom Client oder vom Server beendet (nur die Socketkopie auf Serverseite wird geschlossen).
    - The connection exists.
    • - The network connection is clearly described by the quadruple [client internet address, client port, server internet address, server port]. Several clients can establish a connection to the same service ([client Internet address 2, client port 2, server Internet address, server port]).
    • - Data can be exchanged bidirectionally.
    • - The connection is terminated by the client or the server (only the socket copy on the server side is closed).
  • - Der Client-Prozeß wird beendet.- The client process is ended.
  • - Weitere Client-Dienst-Anforderungen werden bearbeitet.
    • - Die oben genannten Schritte können sich beliebig oft wiederholen.
    - Further client service requests are processed.
    • - The above steps can be repeated any number of times.
  • - Der Server beendet seinen Dienst.
    • - Der Socket wird geschlossen.
    • - Der Prozeß wird beendet.
    - The server ends its service.
    • - The socket is closed.
    • - The process is ended.

Nach dem beschriebenen Protokoll erfolgt meistens der Aufbau von Verbindungen bei sogenannten Client-Server-Anwendungen, deren Grundlagen nachfolgend kurz beschrieben werden.According to the protocol described, the structure of Connections in so-called client-server applications, their basics are briefly described below.

Client-Server-Anwendungen sind bekanntlich in zwei Prozesse teilbar wobei ein Prozeß - der Server - Dienste einem zweiten Prozeß - dem Client - zur Verfügung stellt. Da die Prozesse meist räumlich getrennt sind, wird hierfür eine Netzwerkverbindung zwischen Client und Server mit Hilfe eines gemeinsamen Netzwerkprotokolls aufgebaut. Die daraus entstehende Verbindung ist bidirektional das heißt, Daten können in beiden Richtungen ausgetauscht werden. Der Client überträgt in der Regel eine Anfrage an den Server, der Server generiert eine Antwort und überträgt diese zurück an den Client. Ist die Dienstnutzung abgeschlossen bauen Client oder Server die Verbindung ab, und der Server wartet auf weiter Client-Anfragen. Je nach Auslegung des Servers können mehrere Client-Anforderung parallel bzw. quasiparallel (Fileserver, Datenbanken) abgearbeitet werden.As you know, client-server applications can be divided into two processes whereby one process - the server services a second process - the client - for Provides. Since the processes are usually spatially separated, one is used for this Network connection between client and server using a common Network protocol built. The resulting connection is bidirectional that is, data can be exchanged in both directions. The client usually transmits a request to the server, the server generates a response and transmits it back to the client. Is the service usage complete? the client or server clear the connection and the server waits for further Client requests. Depending on the design of the server, multiple client requests can be made processed in parallel or quasi-parallel (file server, databases).

Da die Dienstnutzung in der Regel nur zu bestimmten Zeitpunkten stattfindet, und hierbei keine Annahmen über den Zeitpunkt der Dienstnutzung machbar sind, ist der Server-Prozeß normalerweise ständig gestartet, um auf Client-Anforderungen reagieren zu können. Weiterhin sind dem Client Regeln bekannt den Server lokalisieren zu können. Hierfür existieren für verschiedene Netzwerkprotokolle verschiedene Ansätze. Welcher Ansatz auch immer Verwendung findet, kann durch die eigentliche Glient-Server-Anwendung als gegeben vorausgesetzt werden.As the service is usually only used at certain times takes place, and no assumptions about the time of service use are feasible, the server process is usually constantly started to run on Being able to respond to client requests. Rules are also known to the client  to be able to localize the server. For this there exist for various Network protocols different approaches. Whichever approach you use can be given as given by the actual Glient Server application be assumed.

Eine wichtige Grundlage für die Systematisierung bzw. Einordnung der Funktionen und Funktionalitäten von Netzwerkanwendungen bietet das sogenannte OSI-Schichtenmodell.An important basis for the systematization or classification of the The so-called offers the functions and functionalities of network applications OSI layer model.

Die Komponenten einer Netzwerkanwendung (Client-Server-Anwendung) lassen sich in das OSI-Schichtenmodell einordnen. Dieses abstrahiert von konkreten Protokollen und bietet eine einheitliche Basis für die Funktionsbeschreibung dieser Komponenten. In diesem Modell werden sieben verschiedene Schichten spezifiziert, die jeweils einen unterschiedlichen Abstraktionsgrad bei der Sicht auf die Daten darstellen. Dabei nutzen höhere Schichten Dienste niedrigerer Schichten.The components of a network application (client-server application) can be classified in the OSI layer model. This abstracts from concrete Protocols and offers a uniform basis for the functional description of these Components. In this model, seven different layers are specified, each with a different level of abstraction when looking at the data represent. Higher layers use services from lower layers.

Wenn von Client-Server-Anwendungen die Rede ist, und diese über ein Netzwerk kommunizieren, so werden bei der Kommunikation alle sieben Ebenen durchlaufen. Fig. 1 zeigt einen solchen Prozeß beispielhaft in schematischer Darstellung. Werden beide Anwendungen auf einem Rechner gestartet, können die unteren 3 Schichten bei der Kommunikation entfallen.When client-server applications are mentioned and they communicate via a network, all seven levels are traversed during the communication. Fig. 1 shows such a process by way of example in a schematic representation. If both applications are started on one computer, the lower 3 layers of communication can be omitted.

Werden hingegen Client-Server-Anwendungen über große Netze verwendet, so werden intermediäre Prozesse oder Systemdienste benötigt die Protokollanpassungen oder Adreßumsetzungsaufgaben erfüllen. Diese sind in niederen OSI-Schichten angesiedelt und in Fig. 2 beispielhaft anhand eines in das OSI-Schichtenmodells eingeordneten Routers und eines Modems dargestellt.If, on the other hand, client-server applications are used over large networks, then intermediate processes or system services are required that perform protocol adjustments or address conversion tasks. These are located in lower OSI layers and are shown in FIG. 2 by way of example using a router and a modem arranged in the OSI layer model.

Wird eine Client-Server-Anwendung beispielsweise über das Internet benutzt so sind hier mehrere Prozesse an der Kommunikation beteiligt. Einerseits werden Router eingesetzt um verschiedene Netzwerke miteinander zu verbinden. Andererseits dienen (nicht dargestellte) Firewalls dem Schutz vor unbefugten Eindringlingen. Im OSI-Schichtenmodell sind diese Prozesse in den unteren Ebenen angesiedelt. Ein Router benötigt lediglich die Netzwerkadresse, um Daten weiterleiten zu können.Becomes a client-server application, for example, over the Internet so several processes are involved in the communication. On the one hand routers are used to connect different networks. On the other hand, firewalls (not shown) serve to protect against unauthorized persons Intruders. In the OSI layer model, these processes are in the lower levels  located. A router only needs the network address for data to be able to forward.

Auch Modems modifizieren die übertragenen Daten. Dies geschieht in den Schichten 1 und 2 des OSI-Modells, wie aus Fig. 2 zu ersehen ist.Modems also modify the transmitted data. This takes place in layers 1 and 2 of the OSI model, as can be seen from FIG. 2.

Ein obenerwähnter sogenannter Firewall ist ein Paketfilter. Er analysiert Datenpakete und weist bestimmte Pakete gegebenenfalls ab. Einfache Firewallsysteme unterscheiden hier ebenfalls nur nach den Rechneradressen. Eine Authentifizierung auf Benutzerebene ist hierbei nicht möglich. Kompliziertere Systeme mit Unterstützung auf Sitzungsebene sind ebenfalls bekannt. Hierbei wird eine getrennte Netzwerkverbindung zum Firewall-Rechner aufgebaut. Der Benutzer authentifiziert sich und schaltet damit den eigentlichen Dienst frei, was jedoch wiederum in tieferen Protokollschichten erfolgt. Diese spezialisierten Firewallsysteme sind jedoch auf die Modifikation der Client-Server Software angewiesen, um die speziellen Anmeldeverfahren durchzuführen.A so-called firewall is a packet filter. He analyzes Data packets and rejects certain packets if necessary. Simple Firewall systems also only differentiate here according to the computer addresses. A Authentication at user level is not possible. More complicated Systems with session level support are also known. Here will a separate network connection to the firewall computer is established. The user authenticates itself and thus unlocks the actual service, but what again in lower protocol layers. These specialized However, firewall systems are based on the modification of the client-server software instructed to perform the special registration process.

Firewalls verhindern den Eingriff von außen auf der Systemebene. Zu ihrer Installation sind daher Systemadministrationsrechte erforderlich. Firewalls sind jedoch nicht in der Lage, auf der Anwendungsebene einen unbefugten Zugriff zu verhindern.Firewalls prevent external interference at the system level. To System administration rights are therefore required to install them. Firewalls are however, unable to access at the application level prevent.

Zum Zwecke der Datensicherheit kann nun eine Verschlüsselung von zwischen Prozessen oder Rechnern auszutauschenden Daten wünschenswert oder sogar erforderlich sein.For the purpose of data security, encryption of data to be exchanged between processes or computers is desirable or may even be required.

Die zur sicheren Kommunikation erforderliche Verschlüsselung kann nach dem Stand der Technik im wesentlichen auf zweierlei Weise geschehen, nämlich mittels einer Hardwarelösung oder mittels einer Softwarelösung. Im ersten Fall wird beispielsweise eine spezielle Hardware mit Tastatur und Rechner verbunden und verschlüsselt so die Daten direkt bei der Eingabe. Dadurch ist die Gefahr der Ausspionierung der Tastatureingaben durch einen auf den Rechner eingeschleusten Virus ausgeschaltet. Der entscheidende Nachteil besteht jedoch darin, abgesehen von den im Vergleich zu Software höheren Produktionskosten, daß dieses Verfahren eine geringe Flexibilität aufweist. Eine Anwendung muß speziell an diese Hardwarelösung angepaßt werden, so daß eine Nutzung bereits bestehender Applikationen entweder ausgeschlossen oder nur mit hohen Anpassungskosten möglich ist. In diese Hardwarelösung sind z. B. auch die sogenannten Chipkarten-Lösungen einzuordnen, bei denen die Anwendung speziell auf die Hardware der verwendeten Chipkarte zugeschnitten sein muß.The encryption required for secure communication can be after happen in two main ways, namely by means of a hardware solution or by means of a software solution. In the first case for example, special hardware connected to the keyboard and computer and encrypts the data as you type. This is the danger of Spying on the keystrokes entered by a computer Virus turned off. The key disadvantage, however, is aside of the higher production costs compared to software that this process  has little flexibility. An application must specifically address this Hardware solution to be adapted so that a use of existing ones Applications either excluded or only with high adaptation costs is possible. In this hardware solution z. B. also the so-called chip card solutions to classify, in which the application is specific to the hardware of the used chip card must be tailored.

Auf der Softwareseite gibt es im wesentlichen drei verschiedene Lösungen. Die sogenannten Stand-alone-Verschlüsselungsprogramme sind Programme, mit denen bestimmte Dateien im Dialog verschlüsselt werden können. Damit ist ein hoher Bedieneraufwand und eine mangelhafte Bedienbarkeit verbunden. Sogenannte Plug-Ins sind Verschlüsselungslösungen, die als Erweiterung zu bestimmten Browsern entwickelt wurden, und sie sind stets an das Wirtsprodukt gebunden. Manche Softwareprodukte sind mit anwendungsimmanenten Verschlüsselungsfunktionen verbunden. Diese sind jedoch auch jeweils auf das bestimmte Produkt zugeschnitten und nicht anwendungsunabhängig verwendbar.There are essentially three different ones on the software side Solutions. The so-called stand-alone encryption programs are Programs with which certain files can be encrypted in dialog. This means a high level of operator effort and poor operability connected. So-called plug-ins are encryption solutions that work as Extensions to certain browsers have been developed and they are always up to date Host product bound. Some software products are included application-inherent encryption functions connected. However, these are also tailored to the specific product and not Can be used regardless of application.

Eine Aufgabe der Erfindung besteht nun in der Schaffung eines Verfahrens, mittels dessen die zur Kommunikation zwischen zwei Prozessen zu übertragenden Daten weitergeleitet und gegebenenfalls modifiziert, eventuell protokolliert werden können, ohne daß eine Änderung der beiden Prozesse bzw. des Systems, auf dem die beiden Prozesse ablaufen, erforderlich ist.An object of the invention is now to create a Procedure by means of which to communicate between two processes transmitted data and possibly modified, possibly can be logged without changing the two processes or the System on which the two processes run is required.

Eine weitere Aufgabe der Erfindung besteht in der Schaffung eines Verfahrens zur Kommunikation zwischen zwei Prozessen, bei dem die zu übertragendenden Daten modifiziert, übertragen und wieder rückmodifiziert werden können, ohne daß eine Änderung der beiden Prozesse bzw. des Systems, auf dem die beiden Prozesse ablaufen, erforderlich ist.Another object of the invention is to provide a Procedure for communication between two processes, in which the transmitting data modified, transmitted and back-modified again can, without changing the two processes or the system on which the two processes are running is required.

Die Aufgabe der Erfindung wird im wesentlichen gelöst durch die Merkmale der unabhängigen Patentansprüche. Die abhängigen Ansprüche beschreiben spezielle Ausführungsformen der Erfindung. The object of the invention is essentially achieved by Features of the independent claims. The dependent claims describe specific embodiments of the invention.  

Im wesentlichen besteht die vorliegende Erfindung im Vorsehen mindestens eines Zwischenprozesses, der vorzugsweise auf der Anwendungs- oder der Präsentationsebene des OSI-Schichtenmodells abläuft, und der die zwischen zwei Prozessen zu übertragenden Daten weiterleitet und gegebenenfalls modifiziert oder protokolliert, ohne daß irgendeine Änderung der beiden Prozesse oder des Systems selbst, auf dem sie ablaufen, erforderlich ist. Dies wird dadurch erreicht daß der oder die Zwischenprozesse gegenüber einem Prozeß als Server und gegenüber einem anderen Prozeß als Client auftreten können. Der Zwischenprozeß kann dadurch wie ein Server auf die Anforderung eines Clients reagieren, er kann dann diese Anforderung bzw. die diese repräsentieren den Daten gegebenenfalls modifizieren, und er kann dann als Client gegenüber dem eigentlichen Server auftreten, von dem der Client einen Dienst anfordert. Der Zwischenprozeß stellt also eine Kommunikationsbrücke zwischen einem Client und einem Server dar, die es ermöglicht, die zu übertragenden Daten jeweils zu modifizieren oder zu protokollieren.Essentially, the present invention is provided at least one intermediate process, which is preferably on the application or the presentation level of the OSI layer model, and the between forwards two processes to be transferred and modified if necessary or logged without any change in the two processes or the System itself, on which they run, is required. This is achieved that the intermediate process or processes compared to a process as a server and can act as a client to another process. The intermediate process can respond to a client's request like a server, it can then this request or these possibly represent the data modify, and he can then act as a client to the actual server from which the client requests a service. The intermediate process thus poses a communication bridge between a client and a server that it enables the data to be transmitted to be modified or modified to log.

Gegenüber dem eigentlichen Client, der einen Dienst anfordert, tritt der Zwischenprozeß also als Server auf, gegenüber dem eigentlichen Server, für den die Dienstanforderung der eigentlichen Clients bestimmt ist, tritt der Zwischenprozeß als Client auf. Der Zwischenprozeß überträgt bzw. übermittelt dabei die zur Dienstanforderung zu übertragenden Daten von dem eigentlichen Client an den eigentlichen Server, wobei er diese Daten ggf. modifizieren und/oder protokollieren kann. Der Zwischenprozeß kann dabei so konfiguriert sein, daß sowohl der eigentliche Client als auch der eigentliche Server nichts vom Vorhandensein des Zwischenprozesses bemerken. Damit kann der Zwischenprozeß in einfacher Weise in bestehende Client-Server-Anwendungsumgebungen integriert bzw. implementiert werden, ohne daß eine Änderung oder Modifikation an den eigentlichen Client-Server-Applikationen vorgenommen werden muß.Compared to the actual client that requests a service, the Intermediate process as a server, compared to the actual server for which the service request of the actual clients is determined, the intermediate process occurs as a client. The intermediate process transmits or transmits the to Service request to be transmitted data from the actual client to the actual server, whereby he may modify and / or log this data can. The intermediate process can be configured so that both the actual client as well as the actual server not aware of the existence of the Notice the intermediate process. This allows the intermediate process to be carried out in a simple manner integrated or implemented in existing client-server application environments without changing or modifying the actual Client-server applications must be made.

Indem es sich bei dem Zwischenprozeß um einen auf der Anwendungs- oder Präsentationsebene des OSI-Schichtenmodells ablaufenden Prozeß handelt sind für seine Implementation bzw. Integration in ein bestehendes System keine Systemadministrationsrechte erforderlich. Auch sind keine weiteren Modifikationen in den niederen Schichten des OSI-Schichtenmodells unterhalb der Präsentationsebene erforderlich. Aufgrund seiner Zwitterfunktion ermöglicht der Zwischenprozeß so die Durchführung von Client-Server-Applikationen bei gleichzeitiger Modifikation und/oder Protokollierung der zwischen Client und Server ausgetauschten Daten. Die Brückenfunktion des Zwischenprozesses ist dabei bidirektional, d. h. auch die vom Server an den Client zu übertragenden Daten können von dem Zwischenprozeß ggf. modifiziert und/oder protokolliert werden.Since the intermediate process is based on the application or the presentation level of the process running in the OSI layer model are not for its implementation or integration into an existing system System administration rights required. Also, there are no other modifications in the lower layers of the OSI layer model below the  Presentation level required. Due to its hermaphrodite function, the Intermediate process so the implementation of client-server applications simultaneous modification and / or logging of the client and server exchanged data. The bridge function of the intermediate process is there bidirectional, d. H. also the data to be transferred from the server to the client can optionally be modified and / or logged by the intermediate process.

Besonders vorteilhaft ist es, wenn zwei solche Zwischenprozesse vorgesehen sind, einer auf der Seite des Servers und einer auf der Seite des Clients. In diesem Fall kann der clientseitige Zwischenprozeß eine Modifikation der zu übertragenden Daten vornehmen und der serverseitige Prozeß eine entsprechende Rückmodifikation. Die von den Zwischenprozessen ausgetauschten Daten können nun von diesen verschlüsselt und wieder entschlüsselt werden, ohne daß ein Eingriff in die unteren OSI-Schichten oder auf der Systemebene erforderlich ist, da ja beide Prozesse Anwendungsprozesse sind, die auf gewöhnliche kommerziell erhältliche Client-Server-Anwendungen als Client bzw. Server reagieren und eine Verschlüsselung/Entschlüsselung vornehmen können.It is particularly advantageous if two such intermediate processes are provided, one on the server side and one on the server side Clients. In this case, the client-side intermediate process can be a modification of the the data to be transferred and the server-side process corresponding re-modification. Those exchanged by the intermediate processes Data can now be encrypted by them and decrypted again without that an intervention in the lower OSI layers or at the system level is required is, since both processes are application processes that are based on ordinary ones commercially available client-server applications react as client or server and can perform encryption / decryption.

Besonders vorteilhaft ist es dabei, wenn der clientseitige Zwischenprozeß zusätzlich zur Verschlüsselung der zu übertragenen Daten auch noch nutzer- oder anwendungsspezifische Daten, vorzugsweise ebenfalls verschlüsselt, an den Server bzw. den serverseitigen Zwischenprozeß überträgt. Dies ermöglicht dann eine Authentifizierung des Benutzers bzw. des Clients selbst durch Server, bei denen dies eigentlich nicht vorgesehen ist. Dadurch z. B. kann die Zugriffssicherheit auf Anwendungen erhöht werden.It is particularly advantageous if the client-side intermediate process in addition to the encryption of the data to be transmitted, also user or application-specific data, preferably also encrypted, to the server or transfers the server-side intermediate process. This then enables one Authentication of the user or the client itself by servers where this is not actually intended. This z. B. can access security Applications are increased.

Nachfolgend wird die vorliegende Erfindung anhand spezieller Ausführungsbeispiele und unter Bezugnahme auf beiliegende Zeichnungen im Detail beschrieben. Es zeigen:Hereinafter, the present invention will be more specific Embodiments and with reference to the accompanying drawings in Described in detail. Show it:

Fig. 1 eine Client-Server-Anwendung im OSI-Schichtenmodell, FIG. 1 is a client-server application in the OSI model,

Fig. 2 eine Client-Server-Anwendung mit Router und Modem im OSI-Schichtenmodel Fig. 2 shows a client-server application with router and modem in the OSI layer model

Fig. 3 eine Client-Server-Verbindung mit einem erfindungsgemäßen Zwischenprozeß im OSI-Schichtenmodell, Fig. 3 is a client-server connection with an inventive intermediate process in the OSI layer model,

Fig. 4 einen Client und einen Server mit einem erfindungsgemäßen Zwischenprozeß, wobei alle drei Prozesse auf verschiedenen Rechnern ablaufen, Fig. 4 with all three processes running on different computers a client and a server with an inventive intermediate process,

Fig. 5 einen Client und einen Server mit einem erfindungsgemäßen Zwischenprozeß, wobei Server und Zwischenprozeß auf einem anderen Rechner ablaufen als der Client, Fig. 5 shows a client and a server according to the invention with a intermediate process, said server, and inter-process run on a different computer than the client,

Fig. 6 den Datenfluß zwischen einem Client, einem Server und einem Zwischenprozeß, Fig. 6 shows the data flow between a client, a server and a intermediate process,

Fig. 7 die schematische Aufspaltung der Verbindung unter Verwendung zweier Zwischenprozesse und einer Fernverbindung, Fig. 7 shows the schematic division of the connection by using two intermediate processes and a remote connection,

Fig. 8 eine Client-Server-Verbindung mit zwei erfindungsgemäßen Zwischenprozessen im OSI-Schichtenmodell, Fig. 8 is a client-server connection with two inventive intermediate processes in the OSI reference model,

Fig. 9 den Datenfluß über zwei Zwischenprozesse, die jeweils auf dem gleichen Rechner ablaufen wie der Server bzw. der Client, Fig. 9 shows the flow of data through two intermediate processes that take place respectively on the same computer as the server or the client,

Fig. 10 das Ablaufschema für die erfindungsgemäßen Zwischenprozesse, Fig. 10 shows the flow chart for the inventive intermediate processes,

Fig. 11 das Schema für den Verbindungsaufbau im erfindungsgemäßen clientseitigen Zwischenprozeß, FIG. 11 shows the scheme for establishing a connection in the novel client-side intermediate process,

Fig. 12 das Schema für den Verbindungsaufbau im erfindungsgemäßen serverseitigen Zwischenprozeß, FIG. 12 shows the scheme for establishing a connection in the novel server-side intermediate process,

Fig. 13 die gleichzeitige Dienstnutzung zweier Clients, Fig. 13, the simultaneous use of two service clients,

Fig. 14 die gleichzeitige Dienstnutzung zweier Clients mit erfindungsgemäßen Zwischenprozessen, Fig. 14, the simultaneous use of two service clients according to the invention between processes,

Fig. 15 das Anfügen eines Parameters bei Anwendung der Erfindung. Fig. 15, the adding of a parameter when applying the invention.

Im ersten Ausführungsbeispiel erfolgt die Durchführung einer Client-Server-Anwendung wie in Fig. 3 gezeigt mittels eines Zwischenprozesses Pm. Wie aus Fig. 3 zu ersehen ist, werden alle Schichten des OSI-Modells auch vom Zwischenprozeß Pm durchlaufen, da dieser auf der Anwendungsebene abläuft ebenso wie der eigentliche Client Pc und der eigentliche Server Ps. Der Client-Prozeß Pc fordert vom Server Ps die Erbringung eines Dienstes. Auf diese Anforderung reagiert nun der Zwischenprozeß Pm, der folgende Eigenschaften besitzt:
In the first exemplary embodiment, a client-server application is carried out as shown in FIG. 3 by means of an intermediate process P m . As can be seen from FIG. 3, all layers of the OSI model are also run through by the intermediate process P m , since this runs on the application level, as does the actual client P c and the actual server P s . The client process P c requests the server P s to provide a service. The intermediate process P m , which has the following properties, now responds to this requirement:

  • - Pm ist ein Anwendungsprozeß- P m is an application process
  • - Pm ist in der Lage, als Client gegenüber einem gegebenen Server Ps auftreten zu können (er ist Client bezüglich Ps) und kann damit dessen Dienste nutzen.- P m is able to act as a client in relation to a given server P s (it is a client with regard to P s ) and can therefore use its services.
  • - Pm ist in der Lage, Clientverbindungen (z. B. von Pc) zu akzeptieren, erbringt jedoch selbst keine Dienste, oder besser gesagt er erbringt nicht den Dienst, den der Client Pc von dem Serverprozeß Ps anfordert- P m is able to accept client connections (e.g. from P c ), but does not itself provide any services, or rather it does not provide the service that the client P c requests from the server process P s
  • - Die Erbringung des Dienstes erfolgt durch die Dienstnutzung am Server-Prozeß, das heißt, die Client-Anforderung wird lediglich zwischengespeichert, eine Verbindung zum eigentlichen Server aufgebaut, die Anfrage an den Server-Prozeß geschickt und die erhaltene Antwort an den Client Pc weitergeleitet.- The service is provided through the use of the service on the server process, that is, the client request is only temporarily stored, a connection to the actual server is established, the request is sent to the server process and the response received is forwarded to the client P c .

Diese Zwittereigenschaft führt zur Transparenz gegenüber Prozeß Ps und Pc, da exakt die gleichen Protokolle für den Verbindungsauf- und -abbau bzw. für die Kommunikation verwendet werden. Es wird im Prozeß Pm eine Art Datenbrücke zwischen Ps und Pc geschlagen. Im vorliegenden Beispiel von Fig. 3 laufen die Prozesse Pc und Pm auf demselben Rechner ab, der Prozeß Ps auf einem anderen Rechner. Laufen alle drei Prozesse auf den gleichen Rechnern ab, wird lediglich eine lokale Verbindung zwischen den Prozessen nötig (keine tieferen Netzwerkschichten werden benötigt). This hermaphrodite property leads to transparency compared to process P s and P c , since exactly the same protocols are used for establishing and clearing the connection or for communication. A kind of data bridge between P s and P c is created in the process P m . In the present example from FIG. 3, the processes P c and P m run on the same computer, the process P s on a different computer. If all three processes run on the same computers, only a local connection between the processes is necessary (no deeper network layers are required).

Das konkrete Koppeln der Prozesse ist hierbei nebensächlich (bis auf Geschwindigkeitsaspekte) und ist entsprechend vielfältig, wie die Möglichkeiten der ursprünglichen Netzwerkverbindung zwischen Client und Server. Es versteht sich daß der Zwischenprozeß und auch der Client so konfiguriert sein müssen, daß z. B. der Client den Zwischenprozeß auch findet und seine eigentlich an den Server Pc abzusendende Dienstanforderung an den Zwischenprozeß sendet. Dies geschieht jedoch mittels herkömmlicher Konfigurationsverfahren, wie sie auch zur Konfiguration von Client und Server ohne Zwischenprozeß verwendet werden, und kann hier als bekannt vorausgesetzt werden.The actual coupling of the processes is irrelevant (except for speed aspects) and is as diverse as the possibilities of the original network connection between client and server. It goes without saying that the intermediate process and also the client must be configured such that, for. B. the client also finds the intermediate process and sends its service request to be sent to the server P c to the intermediate process. However, this is done using conventional configuration methods, such as those used to configure the client and server without an intermediate process, and can be assumed to be known here.

Der intermediäre Prozeß Pm ist auf der gleichen Protokollebene angesiedelt, wie die Prozesse Ps und Pc der Anwendung selbst, wie aus Fig. 3 zu ersehen ist. Er ist damit ebenfalls eine Anwendung und erfordert keinen Eingriff in Systemschichten, auf die der Anwender normalerweise keinen Zugriff hat. Soll die hier beschriebene Erfindung für eine bestehende Anwendung eingesetzt werden, so müssen lediglich die "Kommunikationsrümpfe" der Originalsoftware implementiert werden, um den Verbindungsaufbau zu ermöglichen. Weder ist eine Implementation der zu erbringenden Dienste noch ein Eingriff in tiefere Systemschichten durch Treibersoftware oder ähnliches nötig.The intermediate process P m is located on the same protocol level as the processes P s and P c of the application itself, as can be seen from FIG. 3. It is therefore also an application and does not require any intervention in system layers to which the user normally does not have access. If the invention described here is to be used for an existing application, then only the "communication hulls" of the original software have to be implemented in order to enable the connection to be established. Neither an implementation of the services to be provided nor an intervention in deeper system layers by driver software or the like is necessary.

Fig. 4 zeigt nun noch einmal schematisch die drei Prozesse, die dabei gemäß Fig. 4 auf verschiedenen Rechnern ablaufen. Im Grundzustand laufen nun die Prozesse Pc und Ps. Ps ist wie gewöhnlich konfiguriert und lauscht an dem zuvor festgelegten, allgemein bekannten Port PSI, um seinen Dienst anzubieten. Der Prozeß Pm ist nun so konfiguriert, daß er ebenfalls einen Socket erstellt und an diesem lauscht. Die benutzte Portnummer PMI wird so vergeben, daß ein möglicher Client diesen Port auch findet. FIG. 4 now shows again schematically the three processes which, according to FIG. 4, run on different computers. In the basic state, the processes P c and P s are now running. P s is configured as usual and listens to the previously defined, well-known port P SI to offer its service. The process P m is now configured so that it also creates a socket and listens to it. The port number P MI used is assigned so that a potential client can also find this port.

Bei dem Aufbau gemäß Fig. 4 ist es möglich, die gleiche Portnummer PSI zu benutzen, da alle drei Prozesse auf verschiedenen Rechnern ablaufen. Bei dem Aufbau gemäß Fig. 5 ist dies jedoch nicht möglich, da Pm und Ps auf dem selben Rechner ablaufen und jeder Port (zum Lauschen) nur einmal vergeben werden kann. In the structure of FIG. 4, it is possible to use the same port number P SI, as all three processes running on different computers. In the structure of FIG. 5 this is not possible, however, as P m and P s run on the same computer and each port can be assigned (for listening) only once.

Die Ps-, Ps- und Pm-Prozesse müssen also nicht auf verschiedenen Rechnern gestartet werden. Ein Client kann ebenso den Server-Dienst auf dem gleichen Rechner nutzen, wie dies in Fig. 5 für Pm und Ps dargestellt ist.The P s , P s and P m processes therefore do not have to be started on different computers. A client can also use the server service on the same computer, as is shown in FIG. 5 for P m and P s .

Der Datenfluß zwischen den Prozessen ist nun in Fig. 6 dargestellt. Der Client Pc wird nun derart konfiguriert, daß er den Dienst auf dem Rechner des Prozesses Pm mit dem Port PMI nutzt. Bei einer eintreffenden Verbindung (von Port PCO) erzeugt der Prozeß Pm nun einen neuen Socket und weist ihm einen freien Port PMO zu. Damit baut er nun eine Netzwerkverbindung zum Prozeß Ps mit dem Port PSI auf. Alle Daten, die vom Prozeß Pc eigentlich an den Server Ps geschickt werden gelangen nun zum Prozeß Pm. Dieser protokolliert die Daten und schickt sie unverändert an Prozeß Ps (Port PSI). Analog werden die Daten in der Gegenrichtung (von Port PSI zu PMO) durch Prozeß Pm protokolliert und über Port PMI an Port PCO weitergeschickt. Keiner der Prozesse Pc und Ps bemerkt die Protokollierung. Für den Prozeß Pc ist Prozeß Pm der Server und für Prozeß Ps ist Prozeß Pm der Client. Allerdings besteht die Server- bzw. Client-Eigenschaft des Zwischenprozesses nicht in dem Erbringen eines angeforderten Dienstes bzw. dem Anfordern eines Dienstes, sondern lediglich in einer Brückeneigenschaft, d. h. der Übertragung, ggf. Protokollierung, Modifikation, oder ähnliches, der zwischen dem eigentlichen Client und dem eigentlichen Server zu übertragenden Daten. Die Client- und Server-Eigenschaft besteht also im wesentlichen aus der Fähigkeit, in entsprechender Weise eine Verbindung mit einem anderen Prozeß aufzubauen, dem anderen Prozeß also einen Client bzw. Server durch entsprechende Portnummernvergabe, Socket-Erstellung, kurz, durch Erfüllen der entsprechenden Regeln für den Verbindungsaufbau, "vorzutäuschen", der dann allerdings lediglich als Brücke zu einem anderen Prozeß dient. Der Zwischenprozeß kann zwar so konfiguriert sein daß er einen Dienst erbringt, dieser besteht dann jedoch zweckmäßigerweise in einer Modifikation oder Protokollierung der zu übertragenden Daten und dem Aufrechterhalten der Verbindung als Mittler zwischen Client und Server.The data flow between the processes is now shown in FIG. 6. The client P c is now configured such that it uses the service on the computer of the process P m with the port P MI . With an incoming connection (from port P CO ) the process P m now creates a new socket and assigns it a free port P MO . He now sets up a network connection to the process P s with the port P SI . All data that are actually sent from the process P c to the server P s now go to the process P m . This logs the data and sends it unchanged to process P s (port P SI ). Similarly, the data in the opposite direction (from port P SI to P MO ) is logged by process P m and forwarded to port P CO via port P MI . None of the processes P c and P s notice the logging. For process P c , process P m is the server and for process P s process P m is the client. However, the server or client property of the intermediate process does not consist in the provision of a requested service or the requesting of a service, but only in a bridge property, ie the transmission, possibly logging, modification, or the like, between the actual client and the actual server data to be transmitted. The client and server property essentially consists of the ability to set up a connection with another process in a corresponding manner, ie the other process, a client or server by assigning corresponding port numbers, socket creation, in short, by fulfilling the corresponding rules for the connection establishment, "pretend", which then only serves as a bridge to another process. The intermediate process can be configured so that it provides a service, but this then expediently consists in modifying or logging the data to be transmitted and maintaining the connection as an intermediary between the client and server.

In einem weiteren Ausführungsbeispiel werden nun zwei zusätzliche Prozesse Pm und Pm' eingeführt. Fig. 7 zeigt schematisch die Kommunikation eines SQL-Servers Ps mit einem Client Pc über die Zwischenprozesse Pm, Pm'. Es gibt also in diesem Ausführungsbeispiel einen Zwischenprozeß auf der Serverseite und einen auf der Clientseite. Dadurch werden neue Möglichkeiten der Verwendung der Zwischenprozesse eröffnet, etwa zum Zwecke der Verschlüsselung. Mit Hilfe der Modifikation der übertragenen Dienstanforderung von Pc in Pm derart, daß durch Verschlüsselungsverfahren die Möglichkeit eines unberechtigten Zugriffs auf die übertragenen Daten zwischen Prozeß Pm und Pm' ausgeschlossen wird, bzw. mit Authentifizierungsalgorithmen die Identität der beiden Kommunikationspartner (Pm und Pm') sichergestellt wird, und der anschließenden Zurückgewinnung der ursprünglichen Daten in Prozeß Pm und Weiterleitung an Prozeß Ps, können vorhandene Client-Server Anwendungen sicher über unsichere Übertragungskanäle, wie etwa hier über eine Telefonverbindung, benutzt werden. Analog wird die Antwort des Servers Ps in Pm' derart modifiziert, daß im Prozeß Pm die Entschlüsselung und Authentifizierung erfolgen kann und die Daten wieder unverschlüsselt an den dienstanfordernden Client übergeben werden können.In a further exemplary embodiment, two additional processes P m and P m ' are now introduced. Fig. 7 shows schematically the communication of an SQL server with a client P s P c via intermediate processes P m, P m '. In this exemplary embodiment there is therefore an intermediate process on the server side and one on the client side. This opens up new possibilities for using the intermediate processes, for example for the purpose of encryption. With the modification of the transmitted service request from P c to P m in such a way that the possibility of unauthorized access to the transmitted data between process P m and P m 'is excluded by encryption methods, or the identity of the two communication partners (P m and P m ' ) is ensured, and the subsequent recovery of the original data in process P m and forwarding to process P s , existing client-server applications can be used safely over insecure transmission channels, such as here via a telephone connection. Analogously, the response of the server P s in P m 'is modified in such a way that decryption and authentication can take place in the process P m and the data can again be transferred unencrypted to the requesting client.

Somit können auch nachträglich vorhandene Anwendungen gesichert werden, ohne diese anpassen zu müssen. Wichtig ist dabei auch hier, daß die Zwischenprozesse Anwendungsprozesse sind, das heißt sie laufen auf der Anwendungsebene oder zumindest der Präsentationsebene des OSI-Schichtenmodells ab, wie dies beispielsweise für den Ablauf auf der Anwendungsebene in Fig. 8 dargestellt ist. Dadurch wird zwar gegenüber dem Stand der Technik ein Durchlaufen von mehr Schichten des OSI-Modells erforderlich, dies ist jedoch bei ohnehin zeit- und rechenaufwendigen Anwendungen wie der Kryptographie nur von untergeordneter Bedeutung.This means that existing applications can also be backed up without having to adapt them. It is also important here that the intermediate processes are application processes, that is to say they run at the application level or at least at the presentation level of the OSI layer model, as is shown, for example, for the sequence at the application level in FIG. 8. Compared to the prior art, this means that it is necessary to go through more layers of the OSI model, but this is only of minor importance in applications that are time-consuming and computational, such as cryptography.

Bisher bekannte Verfahren operieren grundsätzlich in unteren Protokoll­ schichten des OSI-Referenzmodells. Bei einem Hauptanwendungsfall des hier beschriebenen Ausführungsbeispiels, der Kryptografie, die sehr viel Rechenzeit erfordert, spielt der zusätzliche Kommunikations-Overhead zwischen den intermediären Prozessen und der eigentlichen Anwendung jedoch eine untergeordnete Rolle.Previously known methods basically operate in the lower protocol layers of the OSI reference model. For a main use case of the here described embodiment, cryptography, the very much computing time requires the additional communication overhead to play between the intermediate processes and the actual application, however subordinate role.

Der Datenfluß für zwei Zwischenprozesse ist in Fig. 9 dargestellt. Im Gegensatz zur Darstellung von Fig. 6 wendet sich jedoch nun der erste Zwischenprozeß Pm mit seinem Port PMO nicht direkt an den Port PSI der Servers sondern an den Eingangsport PM'I, an dem der serverseitige Zwischenprozeß auf Clientanforderungen lauscht. Erst der Ausgangsport PM'O tritt dann mit dem Port PSI in Verbindung, an dem der eigentliche Server auf Dienstanforderungen lauscht.The data flow for two intermediate processes is shown in FIG. 9. In contrast to the illustration in FIG. 6, however, the first intermediate process P m with its port P MO does not address the port P SI of the servers directly but rather the input port P M'I at which the server-side intermediate process listens to client requests. Only the output port P M'O then connects to the port P SI at which the actual server listens for service requests.

In Fig. 10 wird das Ablaufschema der Prozesse Pm bzw. Pm' dargestellt. Hieraus geht hervor, daß pro Clientanforderung von einem Prozeß Pc eine softwaretechnische "Kommunikationsbrücke" zwischen Ein- und Ausgang geschlagen wird. Es werden die Daten in der Regel modifiziert und an die entsprechende Gegenseite weitergeleitet. Beendet einer der Kommunikationspartner die Verbindung, werden alle 3 intermediären Verbindungen abgebrochen. Die intermediären Prozesse beenden selbst nie die Verbindung. Sie reagieren nur ihrerseits auf das Schließen der Kommunikation der Client- bzw. Serverprozesse. Das Ablaufdiagramm zeigt weiterhin, daß problemlos mehrere Clientverbindungen bestehen können. Liegen Daten an einer Kommunikationsbrücke - an einer beliebigen Seite - an, so werden sie entsprechend der Richtung modifiziert (verschlüsselt bzw. entschlüsselt).In Fig. 10, the flowchart of the processes P and P m m 'is shown. This shows that a software P "communication bridge" between input and output is created by a process P c for each client request. As a rule, the data are modified and forwarded to the corresponding opposite party. If one of the communication partners terminates the connection, all 3 intermediate connections are terminated. The intermediate processes never end the connection themselves. They only react to the closing of the communication between the client and server processes. The flowchart also shows that several client connections can exist without any problems. If data is on a communication bridge - on any side - it is modified (encrypted or decrypted) according to the direction.

In einer weiteren Ausführungsform wird die Rechneradresse für eine erste Authentifizierung verwendet. Das entsprechende Schema für den Verbindungsaufbau im Prozeß Pm ist in Fig. 11, für den Prozeß Pm in Fig. 12 dargestellt. Dieses Schema kann je nach konkretem zugrundeliegendem Protokoll erweitert werden. In der Regel werden hier die Verfahren eingesetzt, die die Client-Server-Anwendung selbst als Authentifizierungsmechanismen bereitstellt. Analysiert beispielsweise ein Datenbank-Server mit Hilfe der Rechneradresse den dienstanfordernden Client und erlaubt in Abhängigkeit davon den Zugang auf die Daten, so kann dies nun bereits im Prozeß Pm' geschehen. Damit werden in einer ersten Stufe alle Clients verweigert, die nicht authorisiert sind. Der Server selbst wird nun so konfiguriert, daß er nur Clients von der Rechneradresse des Rechners auf dem Prozeß Pm' läuft, akzeptiert. Damit wird verhindert, daß der Schutzmechanismus durch direkten Zugriff eines weiteren Clients Pc' auf den Server umgangen wird. Hier stellen Firewalls eine wichtige Ergänzung zu dem hier beschriebenen Konzept dar. In a further embodiment, the computer address is used for a first authentication. The corresponding scheme for establishing a connection in the process Pm is shown in FIG. 11, for the process P m in FIG . This scheme can be expanded depending on the specific underlying protocol. As a rule, the procedures that the client-server application itself provides as authentication mechanisms are used here. If, for example, a database server uses the computer address to analyze the client requesting the service and, depending on this, allows access to the data, this can already be done in the process P m ' . In a first stage, all clients that are not authorized are denied. The server itself is now configured so that it only runs clients from the computer address of the computer running on the process P m ' . This prevents the protection mechanism from being bypassed by direct access by another client P c ' to the server. Firewalls are an important addition to the concept described here.

Die verwendeten Verfahren zum Suchen der Kommunikationspartner in den intermediären Prozessen sind praktisch identisch mit denen der Clientsoftware und können damit als bekannt vorausgesetzt werden. Ebenso sind die Protokolle mit denen die Zusatzprozesse mit der originalen Client- bzw. Serversoftware kommunizieren, identisch mit deren eigentlichen Verbindungsprotokollen, und werden daher nicht näher beschrieben.The procedures used to find the communication partners in the intermediate processes are practically identical to those of the client software and can therefore be assumed to be known. The protocols are the same with which the additional processes with the original client or server software communicate, identical to their actual connection protocols, and are therefore not described in detail.

Im folgenden wird der Fall der gleichzeitigen Dienstnutzung mehrerer Clients näher erläutert. In Fig. 13 ist hierfür ein allgemeiner Fall dargestellt, bei dem zwei Clients die Dienste eines Server nutzen.The case of the simultaneous use of services by several clients is explained in more detail below. In Fig. 13 this is a general case is shown in which use two clients the services of a server.

Benutzen mehrere Clients die Dienste eines Servers - unter Verwendung der hier beschriebenen Erfindung - so werden entsprechend viele Zusatzprozesse Pm benötigt und pro Dienstanforderung der Clients Verbindungen zwischen diesen und Pm' aufgebaut. Dies ist schematisch in Fig. 15 dargestellt. Hierbei ist ersichtlich daß Prozeß Pm' als doppelter Client gegenüber Ps auftritt, es sind zwei interne "Kommunikationsbrücken" aktiv. Für den Serverprozeß Ps stellt dies keinen besonderen Fall dar und ändert nichts an der Transparenz gegenüber Client- und Serverprozeß. Auf der Clientseite existiert für beide Clients Pc1 und Pc2 jeweils ein Zwischenprozeß Pm1 bzw. Pm2. Von diesen aus erfolgt dann die Verbindung zu dem serverseitigen Zwischenprozeß Pm'.If several clients use the services of a server - using the invention described here - a corresponding number of additional processes P m are required and connections are established between them and P m ' per service request from the clients. This is shown schematically in FIG. 15. It can be seen that process P m 'occurs as a double client compared to P s , two internal "communication bridges" are active. This is not a special case for the server process P s and does not change the transparency of the client and server processes. On the client side, there is an intermediate process P m1 and P m2 for both clients P c1 and P c2 . The connection to the server-side intermediate process P m ' then takes place from these.

In einer weiteren speziellen Ausführungsform ermöglicht die vorliegende Erfindung zusätzlich zur Verschlüsselung die Authentifizierung des Benutzers. Dies kann mittels eines maschinenlesbaren Datenträgers, beispielsweise einer Chip- oder Magnetkarte, die ein elektronisches Pendant zu gewöhnlichen Kredit- und Kundenkarten darstellt und Informationen über den Inhaber beinhaltet, geschehen. Durch einen speziellen Signaturvorgang ist der Datenträger vor Manipulationen geschützt.In a further special embodiment, the present enables Invention in addition to encryption, authentication of the user. This can by means of a machine-readable data carrier, for example a chip or Magnetic card, which is an electronic counterpart to ordinary credit and Represents customer cards and contains information about the holder. Thanks to a special signature process, the data carrier is protected from manipulation protected.

Die nutzerspezifischen Daten können nun von dem clientseitigen Zwischenprozeß den zu übertragenden Daten angefügt und gegebenenfalls ebenfalls verschlüsselt werden. Auf der Serverseite werden dann die Daten entschlüsselt und können zur Authentifizierung des Benutzers verwendet werden. The user-specific data can now be obtained from the client side Intermediate process added to the data to be transferred and if necessary can also be encrypted. The data is then on the server side decrypted and can be used to authenticate the user.  

Beispielsweise kann die Erbringung des Dienstes verweigert werden, falls es sich bei dem Benutzer nicht um einen authorisierten Benutzer handelt, für den eine Erbringung des Dienstes vorgesehen ist. Es können aber beispielsweise auch auf diese Weise Nutzungsvorgänge verschiedener Benutzer protokolliert werden, ohne daß eine solche Funktion von dem eigentlichen Server Ps vorgesehen ist.For example, the provision of the service can be refused if the user is not an authorized user for whom the provision of the service is intended. In this way, for example, usage processes of different users can also be logged without such a function being provided by the actual server P s .

Die Authentifizierung ist jedoch auch durch eine Software-Lösung möglich. Hierbei kann beispielsweise mit Hilfe eines Paßwortsatzes eine Personalisierung des clientseitigen Zwischenprozesses vorgenommen werden, in Analogie zu herkömmlichen Kreditkarten. Dies geschieht durch die Aktivierung eines persönlichen Schlüssels auf der Clientseite, was seine Authentizität sichert. Schon beim Verbindungsaufbau zwischen Pm und Pm' kann somit eine Prüfung durch den Prozeß Pm' erfolgen.However, authentication is also possible using a software solution. Here, for example, the client-side intermediate process can be personalized with the aid of a password set, in analogy to conventional credit cards. This is done by activating a personal key on the client side, which ensures its authenticity. When the connection is established between P m and P m ' , a check can thus be carried out by the process P m' .

Eine weitere spezielle Ausführungsform der Erfindung besteht in ihrer Anwendung auf Client-Server-Applikationen im World-Wide-Web WWW. Im folgenden wird eine besondere Form der Datenmodifikation beschrieben, die eine spezielle Client-Server-Applikation zugrunde legt und eine weitere Anwendung der Erfindung beschreibt.Another special embodiment of the invention consists in its Application on client-server applications on the World Wide Web WWW. in the The following describes a special form of data modification, the one special client-server application and another application of the Invention describes.

Das World-Wide-Web wird durch ein Netz von WWW-Servern gebildet, die Daten in Form von Text und Grafiken Clients - den WWW-Browsern - zur Verfügung stellen. Das dabei verwendete Netzwerkprotokoll heißt Hyper Text Transfer Protokol, kurz http. Dieses Protokoll basiert wiederum auf TCP/IP.The World Wide Web is formed by a network of WWW servers, the data in the form of text and graphics clients - the WWW browsers Make available. The network protocol used is called Hyper Text Transfer protocol, short http. This protocol is based on TCP / IP.

Per http werden nun vom Client (WWW-Browser, kommerziell erhältlich) aus Requests an den Server (z. B. den Internet Information Server von Microsoft OR) geschickt. Diese Requests beinhalten den Verweis auf die angeforderte HTML-Seite (Hypertext Markup Language, eine Art Seitenbeschreibungssprache). HTML bietet weiterhin die Möglichkeit, mit Hilfe bestimmter Sprachelemente Formulare (Eingabefelder) darzustellen, die der Anwender mit Daten füllen kann. Diese Daten können dann zum Server übertragen werden, der daraufhin bestimmte Aktionen auslöst (Suchanfragen, Bestellungen, Informationen). Via http are now from the client (WWW browser, commercially available) from requests to the server (e.g. the Internet Information Server from Microsoft OR) cleverly. These requests contain a reference to the requested HTML page (Hypertext Markup Language, a kind of page description language). HTML offers furthermore the possibility of using forms with the help of certain language elements (Input fields) that the user can fill with data. These dates can then be transferred to the server, which then takes certain actions triggers (search queries, orders, information).  

Ein Beispiel soll das verdeutlichen. Hierzu sei ein Server "www.server.de" gegeben. Ein Eingabefeld soll hierfür die Suche nach Begriffen ermöglichen. Die HTML-Tags könnten dazu aussehen:An example should make this clear. For this, a server "www.server.de" given. For this purpose, an input field should enable the search for terms. The HTML tags could look like this:

Diese Befehle erzeugen ein Eingabefeld, in das 20 Zeichen eingegeben werden können. Zusätzlich wird ein Button dargestellt, auf dem "Suchen" steht. Wird nun der Suchbegriff "Patent" in das Textfeld eingegeben und der Button betätigt, so wird per http eine Anfrage an den Server geschickt:
These commands create an input field in which 20 characters can be entered. In addition, a button is shown with "Search" on it. If the search term "patent" is now entered in the text field and the button is pressed, a request is sent to the server via http:

www.server.de/cgi-bin/suche.pI?begriff=Patentwww.server.de/cgi-bin/suche.pI?beispiel=Patent

Eventuelle weitere Parameter (z. B. zu verwendende Suchverfahren) werden durch das Zeichen "&" angehängt. Dieses gesamte Vorgehen ist bekannt und ist in der Literatur ausreichend beschrieben (z. B. Rainer Klute, Addison-Wesley: "Das World Wide Web", Seiten 112 und 128 ff.) Im vorliegenden Beispiel wird dabei das Anfügen des Parameters "begriff" mit dem Wert "Patent" beschrieben.Any other parameters (e.g. search method to be used) are appended with the character "&". This entire procedure is known and is sufficiently described in the literature (e.g. Rainer Klute, Addison-Wesley: "The World Wide Web", pages 112 and 128 ff.) In the present example it is the addition of the parameter "concept" is described with the value "patent".

Das Verbindungsschema für dieses Ausführungsbeispiel ist in Fig. 15 dargestellt. Identifiziert der Prozeß Pm' einen mit Hilfe von kryptografischen Algorithmen authentifizierten Benutzer M bei einem Verbindungsaufbau von Prozeß Pm ausgehend, so wird im Prozeß Pm' automatisch ein neuer Parameter, z. B. "Benutzer=M", angefügt:
The connection scheme for this embodiment is shown in FIG. 15. Identifies the process P m 'an authenticated by means of cryptographic algorithms M users when establishing a connection of process P m starting, then in process P m' automatically a new parameter, z. B. "User = M" added:

www.server.de/cgi-bin/suche.pI?begriff=Patent=Mwww.server.de/cgi-bin/suche.pI?beispiel=Patent=M

Das bedeutet, daß, obwohl kein Eingabefeld auf der Seite vorhanden war ein Parameter - praktisch unsichtbar - hinzugefügt wurde, der vom nachgeschalteten WWW-Server ausgewertet werden kann. Mit Hilfe des Parameters "Benutzer" kann nun gezielt auf die Client-Anfrage reagiert werden, auch mit WWW-Servern, die keine Benutzerauthentifizierung ermöglichen.This means that although there was no input field on the page a parameter - practically invisible - has been added, that of the downstream WWW server can be evaluated. With the help of the "User" parameter  can now be responded specifically to the client request, including with WWW servers do not allow user authentication.

Dies stellt nur ein Beispiel für die weiter oben erläuterte Modifikation des Datenstromes zwischen den Prozessen dar, in diesem Falle innerhalb des http-Protokolls.This is just one example of the modification of the Data flow between the processes, in this case within the http protocol.

Für den Fachmann ergeben sich leicht weitere Modifikationen der vorliegenden Erfindung, zusätzlich zu den hier geschilderten Ausführungsbeispielen. Insbesondere ist es beispielsweise möglich, daß alle vier Prozesse, Client, Server und die beiden Zwischenprozesse auf dem selben oder auch auf verschiedenen Rechnern ablaufen. Auch sind neben Protokollierung und/oder Verschlüsselung noch weitere Modifikationen denkbar, die die Zwischenprozesse an den zu übertragenden Daten vornehmen, beispielsweise eine Formatänderung, eine Protokoll- oder Sprachanpassung oder ähnliches. Ebenso können durchaus beliebig viele Zwischenprozesse miteinander verkettet werden, die unter Umständen unterschiedliche Modifikationen vornehmen.For the person skilled in the art, further modifications of the present invention, in addition to the embodiments described here. In particular, it is possible, for example, that all four processes, client, server and the two intermediate processes on the same or on different Computers. In addition to logging and / or encryption still further modifications conceivable that the intermediate processes to the carry out transferring data, for example a format change, a Protocol or language adaptation or the like. Likewise, can be arbitrary many intermediate processes are chained together, which may make different modifications.

Claims (28)

1. Verfahren zum Ablauf auf einem digitalen Rechner oder Rechnersystem, bei dem auf dem Rechner ein erster Prozeß (Pm) abläuft, der so aufgebaut ist, daß er in der Lage ist, die folgenden Verfahrensschritte durchzuführen:
Aufbau einer Client-Server-Verbindung zwischen dem ersten Prozeß (Pm) und einem zweiten Prozeß (Pc), in der der erste Prozeß den Server darstellt
Aufbau einer Client-Server-Verbindung zwischen dem ersten Prozeß (Pm) und einem dritten Prozeß (Ps), in der der erste Prozeß den Client darstellt.
1. Method for execution on a digital computer or computer system, in which a first process (Pm) runs on the computer, which is structured in such a way that it is able to carry out the following method steps:
Establishment of a client-server connection between the first process (P m ) and a second process (P c ), in which the first process represents the server
Establishment of a client-server connection between the first process (P m ) and a third process (P s ), in which the first process represents the client.
2. Verfahren nach Anspruch 1, bei dem der erste Prozeß (Pm) zur Durchführung der Kommunikation zwischen zwei weiteren Prozessen, zwei Rechnern, oder zwei Rechnersystemen verwendet wird.2. The method according to claim 1, wherein the first process (P m ) is used to carry out the communication between two further processes, two computers, or two computer systems. 3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Ablauf des ersten Prozesses folgende Schritte umfaßt:
Erstellen eines Sockets und Zuordnung eines Ports,
Lauschen an dem Port auf eine Client-Anforderung,
Aufbau der Verbindung zwischen dem Port eines Clients (PCO) und dem ersten Prozeß auf eine Anforderung des Clients hin,
Anfordern einer Verbindung zu einem Server (Pc) durch den ersten Prozeß (Pm),
Aufbau der Verbindung zwischen dem ersten Prozeß (Pm) und dem Server (Pc),
Weiterleiten und gegebenenfalls Protokollierung und/oder Modifikation der zwischen dem Client und dem Server zu übertragenden Daten.
3. The method according to any one of the preceding claims, wherein the sequence of the first process comprises the following steps:
Create a socket and assign a port,
Listening on the port for a client request,
Establishing the connection between the port of a client (P CO ) and the first process upon request from the client,
Requesting a connection to a server (P c ) by the first process (P m ),
Establishing the connection between the first process (P m ) and the server (P c ),
Forwarding and possibly logging and / or modification of the data to be transmitted between the client and the server.
4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der dritte Prozeß aus einem weiteren ersten Prozeß (Pm) gemäß Anspruch 1 besteht.4. The method according to any one of the preceding claims, wherein the third process consists of a further first process (P m ) according to claim 1. 5. Verfahren nach Anspruch 4, bei dem die ersten Prozesse gemäß Anspruch 1 Zwischenprozesse darstellen, die die zwischen dem zweiten und dem dritten Prozeß zu übertragenden Daten modifizieren bzw. rückmodifizieren. 5. The method of claim 4, wherein the first processes according to Claim 1 represent intermediate processes that between the second and the Modify or reverse-modify the third process data to be transmitted.   6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der der zweite und der dritte Prozeß auf der Anwendungsebene und der erste bzw. die ersten Prozesse auf der Anwendungs- oder der Präsentationsebene des OSI-Schichtenmodells ablaufen.6. The method according to any one of the preceding claims, wherein the the second and third processes at the application level and the first and the respectively first processes at the application or presentation level of the OSI layer model run. 7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem mindestens zwei der beteiligten Prozesse auf verschiedenen Rechnern ablaufen und die Verbindung zwischen mindestens zwei der beteiligten Prozesse über eine Fernverbindung unter Verwendung eines Übertragungsprotokolls abläuft.7. The method according to any one of the preceding claims, in which at least two of the processes involved run on different computers and the connection between at least two of the processes involved via one Remote connection expires using a transmission protocol. 8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der oder die ersten Prozesse (Pm, Pm') eine Authentifizierung des Benutzers durchführen.8. The method according to any one of the preceding claims, wherein the one or more processes (P m , P m ' ) carry out an authentication of the user. 9. Verfahren zur Kommunikation zwischen einem auf einem Rechner ablaufenden ersten Prozeß (Pc) und einem auf einem Rechner ablaufenden zweiten Prozeß (Ps), gekennzeichnet durch folgende Schritte:
Übertragung der von dem ersten Prozeß an den zweiten Prozeß zu übertragenden Daten an einen dritten Prozeß (Pm),
Modifikation und/oder Protokollierung der Daten durch den dritten Prozeß,
Übertragung der Daten von dem dritten Prozeß (Pm) an einen vierten Prozeß (Pm'),
Rückmodifizierung und/oder Protokollierung der Daten durch den vierten Prozeß,
Übertragung der rückmodifizierten Daten von dem vierten Prozeß Pc auf den zweiten Prozeß (Ps).
9. A method for communication between a first process (P c ) running on a computer and a second process (P s ) running on a computer, characterized by the following steps:
Transfer of the data to be transferred from the first process to the second process to a third process (P m ),
Modification and / or logging of the data by the third process,
Transfer of the data from the third process (P m ) to a fourth process (P m ' ),
Reverse modification and / or logging of the data by the fourth process,
Transfer of the back-modified data from the fourth process P c to the second process (P s ).
10. Verfahren nach Anspruch 9, bei dem die Datenübertragung auch in umgekehrter Richtung stattfindet, wobei dann der vierte Prozeß (Pm), die zu übertragenden Daten modifiziert und der dritte Prozeß (Pm) diese Daten rückmodi­ fiziert.10. The method according to claim 9, wherein the data transmission also takes place in the opposite direction, in which case the fourth process (P m ) modifies the data to be transmitted and the third process (P m ) back-modifies this data. 11. Verfahren nach Anspruch 9 oder 10, bei dem der erste (Pc) und zweite Prozeß (Ps) auf der Anwendungsebene des OSI-Schichtenmodells ablaufen und der dritte (Pm) und vierte Prozeß (Pm') auf der Anwendungsebene oder der Präsentationsebene des OSI-Schichtenmodells ablaufen.11. The method of claim 9 or 10, wherein the first (P c ) and second process (P s ) run at the application level of the OSI layer model and the third (P m ) and fourth process (P m ' ) at the application level or the presentation level of the OSI layer model. 12. Verfahren nach einem der Ansprüche 9 bis 11, bei dem es sich bei dem ersten Prozeß (Pc) um einen Client handelt, es sich bei dem zweiten Prozeß (Ps) um einen Server handelt, wobei der Client einen von dem Server zu erbringenden Dienst anfordert und der Server diesen Dienst erbringt.12. The method according to any one of claims 9 to 11, wherein the first process (P c ) is a client, the second process (P s ) is a server, the client one of the servers requests the service to be provided and the server provides this service. 13. Verfahren nach einem der Ansprüche 9 bis 12, bei dem der dritte Prozeß (Pm) ein Zwischenprozeß ist, der gegenüber dem ersten Prozeß (Pc) als Server auftritt, indem er auf die Dienstanforderung des ersten Prozesses gegenüber dem zweiten Prozeß (Ps) zur Erbringung eines ersten Dienstes mit der Erbringung eines zweiten Dienstes reagiert, der darin besteht, daß die vom ersten zum zweiten Prozeß zu übertragenden Daten von dem dritten Prozeß (Pm) aufgenommen werden und dort modifiziert werden, daß der dritte Prozeß gegenüber dem vierten Prozeß (Pm') als Client auftritt, indem er von dem vierten Prozeß die Erbringung eines dritten Dienstes erfordert, der darin besteht, daß der vierte Prozeß die modifizierten Daten aufnimmt, die modifizierten Daten rückmodifiziert und der vierte Prozeß gegenüber dem zweiten Prozeß (Ps) als Client auftritt, indem er von dem zweiten Prozeß die Erbringung des ersten Dienstes durch Übermittlung der rückmodifizierten Daten fordert.13. The method according to any one of claims 9 to 12, wherein the third process (P m ) is an intermediate process that acts as a server to the first process (P c ) by responding to the service request of the first process to the second process ( P s ) for the provision of a first service reacts with the provision of a second service, which consists in that the data to be transmitted from the first to the second process are received by the third process (P m ) and modified there in such a way that the third process acts as a client to the fourth process (P m ' ) by requiring the fourth process to provide a third service, which is that the fourth process takes in the modified data, re-modifies the modified data, and the fourth process to the second process (P s ) occurs as a client by the second process providing the first service by transmitting the back-modified data f orders. 14. Verfahren nach einem der Ansprüche 9 bis 12, bei dem der erste, zweite, dritte und vierte Prozeß auf dem selben Rechner ablaufen.14. The method according to any one of claims 9 to 12, in which the first, second, third and fourth processes on the same computer expire. 15. Verfahren nach einem der Ansprüche 9 bis 14, bei dem der erste (Pc) und der dritte Prozeß (Pm) auf einem Rechner ablaufen und der zweite (Pm') und der vierte Prozeß (Ps) auf einem zweiten Rechner ablaufen und daß die Übermittlung der modifizierten Daten vom dritten zum vierten Prozeß über eine Fernverbindung stattfindet, wobei die Übertragung und der Verbindungsauf- und abbau von einem Übertragungsprotokoll geregelt werden. 15. The method according to any one of claims 9 to 14, wherein the first (P c ) and the third process (P m ) run on a computer and the second (P m ' ) and the fourth process (P s ) on a second Computer run and that the transmission of the modified data from the third to the fourth process takes place via a remote connection, the transmission and the connection setup and clearing are regulated by a transmission protocol. 16. Verfahren nach einem der Ansprüche 9 bis 15, dadurch gekennzeichnet, daß die vom ersten zum zweiten Prozeß zu übertragenden Daten im dritten Prozeß (Pm) codiert und im vierten Prozeß (Pm') decodiert werden.16. The method according to any one of claims 9 to 15, characterized in that the data to be transmitted from the first to the second process is encoded in the third process (P m ) and decoded in the fourth process (P m ' ). 17. Verfahren nach einem der Ansprüche 9 bis 16, dadurch gekennzeichnet, daß die vom ersten zum zweiten Prozeß zu übertragenden Daten im dritten Prozeß (Pm) verschlüsselt und im vierten Prozeß (Pm') entschlüsselt werden.17. The method according to any one of claims 9 to 16, characterized in that the data to be transmitted from the first to the second process is encrypted in the third process (P m ) and decrypted in the fourth process (P m ' ). 18. Verfahren nach einem der Ansprüche 9 bis 17, dadurch gekennzeichnet, daß die vom ersten zum zweiten Prozeß zu übertragenden Daten im dritten Prozeß (Pm) einer Formatänderung unterzogen und im vierten Prozeß (Pm') einer Formatrückänderung unterzogen werden.18. The method according to any one of claims 9 to 17, characterized in that the data to be transmitted from the first to the second process in the third process (P m ) undergo a format change and in the fourth process (P m ' ) undergo a format change back. 19. Verfahren nach einem der Ansprüche 9 bis 18, dadurch gekennzeichnet, daß im dritten Prozeß (Pm) eine Authentifizierung durchgeführt wird und diese im vierten Prozeß (Pm') überprüft wird.19. The method according to any one of claims 9 to 18, characterized in that an authentication is carried out in the third process (P m ) and this is checked in the fourth process (P m ' ). 20. Verfahren nach Anspruch 19, bei dem die Authentifizierung mindestens einen der folgenden Schritte umfaßt:
Hinzufügung von benutzerspezifischen Daten zu den zu übertragenden Daten,
Hinzufügung von rechnerspezifischen Daten zu den zu übertragenden Daten,
Modifizierung der zu den zu übertragenden Daten hinzugefügten Daten gemeinsam mit diesen.
20. The method of claim 19, wherein the authentication comprises at least one of the following steps:
Addition of user-specific data to the data to be transmitted,
Addition of computer-specific data to the data to be transferred,
Modification of the data added to the data to be transmitted together with these.
21. Verfahren nach Anspruch 20, bei dem die Überprüfung der Authentifizierung durch den vierten Prozeß (Pm') mindestens einen der folgenden Schritte umfaßt:
Rückmodifizierung der hinzugefügten Daten,
Überprüfung der hinzugefügten Daten auf ihre Authentizität.
21. The method according to claim 20, wherein the verification of the authentication by the fourth process (P m ' ) comprises at least one of the following steps:
Reverse modification of the added data,
Checking the added data for authenticity.
22. Verfahren nach einem der Ansprüche 19 bis 21, bei dem die Überprüfung umfaßt:
Überprüfung, ob für die vorliegenden Authentifizierungsdaten die Erbringung des Dienstes vorgesehen ist
Freischalten bzw. Erbringung des angeforderten Dienstes im Falle erfolgreicher Authentifizierung,
Verweigern des Dienstes, falls für die vorliegenden Authentifizierungsdaten die Erbringung des Dienstes nicht vorgesehen ist.
22. The method according to any one of claims 19 to 21, wherein the verification comprises:
Check whether the provision of the service is provided for the existing authentication data
Activation or provision of the requested service in the event of successful authentication,
Deny the service if the provision of the service is not intended for the available authentication data.
23. Verfahren nach einem der Ansprüche 20 bis 22, bei dem die nutzerspezifischen Authentifizierungsdaten auf einem nutzerspezifischen maschinenlesbaren Datenträger fälschungssicher untergebracht sind.23. The method according to any one of claims 20 to 22, wherein the user-specific authentication data on a user-specific machine-readable data carriers are tamper-proof. 24. Verfahren nach Anspruch 23, bei dem der Datenträger mittels einer digitalen Signatur durch die Bildung einer Prüfsumme (Hash-Funktion) über auf dem Datenträger untergebrachte Informationen und digitale Signatur der Prüfsumme verfälschungssicher gemacht ist.24. The method according to claim 23, wherein the data carrier by means of a digital signature by forming a checksum (hash function) over on the Data carrier accommodated information and digital signature of the checksum is made tamper-proof. 25. Verfahren nach einem der Ansprüche 9 bis 24, bei dem die vom zweiten Prozeß zum ersten Prozeß zu übertragenden Daten an den vierten Prozeß übertragen werden, von diesem modifiziert werden, vom vierten Prozeß an den dritten Prozeß übertragen werden, von diesem rückmodifiziert werden, und die rückmodifizierten Daten von dem dritten Prozeß auf den ersten Prozeß übertragen werden.25. The method according to any one of claims 9 to 24, wherein the from second process to the first process data to be transferred to the fourth process be transferred, modified by this, from the fourth process to the third process are transferred, back-modified by this, and the back-modified data from the third process to the first process will. 26. Verfahren nach einem der Ansprüche 9 bis 25, bei dem die zu übertragenden Daten unter Wegfall des vierten Prozesses (Pm') von dem dritten Prozeß (Pm) an den zweiten Prozeß (Ps) anstelle des vierten Prozesse (Pm') übertragen werden. 26. The method according to any one of claims 9 to 25, wherein the data to be transmitted, eliminating the fourth process (P m ' ) from the third process (P m ) to the second process (P s ) instead of the fourth process (P m ' ) are transmitted. 27. Verfahren nach einem der Ansprüche 9 bis 26, bei dem es sich bei dem dritten und/oder vierten Prozeß um einen ersten Prozeß gemäß einem der Ansprüche 1 bis 8 handelt.27. The method according to any one of claims 9 to 26, which is the third and / or fourth process around a first process according to one of the Claims 1 to 8 acts. 28. Von einem digitalen Computer lesbarer Datenträger, dadurch gekennzeichnet daß auf ihm Daten gespeichert sind, die vom Computer lesbar sind und ihn in die Lage versetzen, ein Verfahren gemäß einem der vorhergehenden Ansprüche auszuführen.28. Data carrier readable by a digital computer, thereby characterized that data that can be read by the computer is stored on it and stored in it enable a method according to any one of the preceding claims to execute.
DE19645006A 1996-10-31 1996-10-31 Process for communication between processes Expired - Fee Related DE19645006B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19645006A DE19645006B4 (en) 1996-10-31 1996-10-31 Process for communication between processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19645006A DE19645006B4 (en) 1996-10-31 1996-10-31 Process for communication between processes

Publications (2)

Publication Number Publication Date
DE19645006A1 true DE19645006A1 (en) 1998-05-07
DE19645006B4 DE19645006B4 (en) 2004-04-08

Family

ID=7810355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19645006A Expired - Fee Related DE19645006B4 (en) 1996-10-31 1996-10-31 Process for communication between processes

Country Status (1)

Country Link
DE (1) DE19645006B4 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19822551A1 (en) * 1998-05-20 1999-11-25 Alcatel Sa Processor-controlled system and method for operating a processor-controlled system
DE19832482A1 (en) * 1998-07-20 2000-01-27 Abb Patent Gmbh Method of information transfer in distributed system involves first process initiating link set-up in permitted direction, enabling second process to transmit spontaneous information in response
DE19900895A1 (en) * 1999-01-13 2000-08-24 Tobias Kramer Arrangement for remote access to target computer has arrangements for establishing Internet connection to remote computer and releasing connection of device to target computer in response
WO2000072544A2 (en) * 1999-05-20 2000-11-30 Smartring Gmbh Gesellschaft Für Sichere Elektronische Dienstleistungen Method for securely transmitting protected data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
DE4427210A1 (en) * 1994-08-01 1996-02-15 Siemens Ag Communication switching system with a feature system and a basic switching system
US5542046A (en) * 1992-09-11 1996-07-30 International Business Machines Corporation Server entity that provides secure access to its resources through token validation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3361663B2 (en) * 1994-10-03 2003-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Communication management method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542046A (en) * 1992-09-11 1996-07-30 International Business Machines Corporation Server entity that provides secure access to its resources through token validation
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
DE4427210A1 (en) * 1994-08-01 1996-02-15 Siemens Ag Communication switching system with a feature system and a basic switching system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Introduction To Open Systems Interconnection, Prepared For The CEC By K C E Gee, The National Computing Centre Ltd., 1980 *
LYNCH,Daniel C., ROSE,Marshall T.: Internet System Handbook, Addison-Wesley Publishing Company, Inc., New York, 1993, S.425 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19822551A1 (en) * 1998-05-20 1999-11-25 Alcatel Sa Processor-controlled system and method for operating a processor-controlled system
DE19832482A1 (en) * 1998-07-20 2000-01-27 Abb Patent Gmbh Method of information transfer in distributed system involves first process initiating link set-up in permitted direction, enabling second process to transmit spontaneous information in response
DE19900895A1 (en) * 1999-01-13 2000-08-24 Tobias Kramer Arrangement for remote access to target computer has arrangements for establishing Internet connection to remote computer and releasing connection of device to target computer in response
DE19900895C2 (en) * 1999-01-13 2001-03-15 Tobias Kramer Device and method for remote access to a target computer
WO2000072544A2 (en) * 1999-05-20 2000-11-30 Smartring Gmbh Gesellschaft Für Sichere Elektronische Dienstleistungen Method for securely transmitting protected data
WO2000072544A3 (en) * 1999-05-20 2001-09-07 Smartring Gmbh Ges Fuer Sicher Method for securely transmitting protected data

Also Published As

Publication number Publication date
DE19645006B4 (en) 2004-04-08

Similar Documents

Publication Publication Date Title
DE602004012870T2 (en) METHOD AND SYSTEM FOR USER AUTHENTICATION IN A USER-PROVIDER ENVIRONMENT
DE69921455T2 (en) SYSTEM AND METHOD FOR ACCESS CONTROL TO STORED DOCUMENTS
DE60201854T2 (en) Negotiation of secure connections by a proxy server
DE60102934T2 (en) PROCEDURE AND SYSTEM FOR MEETING-BASED AUTHORIZATION AND ACCESS CONTROL FOR NETWORKED APPLICATION OBJECTS
DE69731965T2 (en) ACCESS TO COMPUTER EQUIPMENT FROM OUTSIDE THROUGH A FIREWALL
DE19741239C2 (en) Generalized security policy management system and procedures
EP2250598B1 (en) Client/server system for communicating according to the standard protocol opc ua and having single sign-on mechanisms for authenticating, and method for performing single sign-on in such a system
DE112020000538T5 (en) FINE-GRAINED TOKEN-BASED ACCESS CONTROL
DE112011102224B4 (en) Identity mediation between client and server applications
EP3314806A1 (en) Encryption filter
EP1417820A2 (en) Method and computer system for securing communication in networks
WO2003025758A2 (en) Device and method for establishing a security policy in a distributed system
EP3105898B1 (en) Method for communication between secured computer systems as well as computer network infrastructure
EP1298529A2 (en) Proxy unit and method for computer-implemented protection of an application server program
DE19645006B4 (en) Process for communication between processes
DE10107883B4 (en) Method for transmitting data, proxy server and data transmission system
DE10040463C2 (en) Method for establishing a data connection between a first and a second computing unit and device for exchanging data
DE19548387C1 (en) Method for cryptographically securing computer-aided digital communication between a program and at least one user unit
DE60031004T2 (en) ELECTRONIC SECURITY SYSTEM AND METHOD FOR A COMMUNICATION NETWORK
DE102006022421B4 (en) A method for establishing a secure connection between a computerized workstation and a server in application and terminal server applications
EP2436166B1 (en) Service interface
WO2023156285A1 (en) Zero trust security for an operational technology network transport protocol
AT412314B (en) METHOD AND DEVICE FOR CONNECTING A DEVICE USING THE BLUETOOTH STANDARD TO A DATA NETWORK
EP4179758A1 (en) Authenticating a communication partner on a device
DE10234562A1 (en) Communications network has module is designed to enable use of service provided in first server group in second group but not use of service provided in second group in first group

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8110 Request for examination paragraph 44
8327 Change in the person/name/address of the patent owner

Owner name: HISOLUTIONS AG, 12435 BERLIN, DE

8364 No opposition during term of opposition
8381 Inventor (new situation)

Inventor name: GROSSER, RENE, 13125 BERLIN, DE

8339 Ceased/non-payment of the annual fee