HTTP Tunneling Bi-directional Communication via Dual Socket Authentication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing HTTP tunneling mechanisms through firewalls and proxy servers restrict bi-directional communication between clients and servers, as they require clients to initiate requests for data transmission, and lack sufficient security measures.

Innovation Solution

Establishing a two-socket connection system where an initial socket connection is opened with a secure client ID, followed by a second socket connection using both secure and dynamically generated client IDs for continuous updates, and employing security measures like HTTPS and flood monitoring to ensure secure communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If HTTP tunneling is used to bypass firewalls, then client access to servers is enabled, but continuous bi-directional communication is prevented because the server cannot transmit data unless the client initiates a request

Engineering Contradiction:
Improveclient access capabilityVSAvoidbi-directional communication capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the communication protocol into multiple independent HTTP requests and responses. The server pushes data to the client by embedding it within HTTP response bodies, while the client can also initiate requests. This segmentation allows both push and pull communication modes to coexist over HTTP, enabling continuous bi-directional communication despite HTTP's traditional request-response limitations

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism where the server acts as an active mediator that can initiate data transmission to the client through HTTP responses. By treating server-push operations as legitimate HTTP responses (potentially in response to keep-alive or polling requests), the system enables server-initiated communication while maintaining HTTP protocol compliance and firewall compatibility

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If traditional tunneling methods are used, then firewall access is achieved, but security is insufficient against potential attacks

Engineering Contradiction:
Improvefirewall penetration capabilityVSAvoidsecurity level
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary anti-action by implementing security measures before attacks can occur. It uses HTTPS encryption to preemptively protect data in transit, implements authentication mechanisms to verify client identities before establishing connections, and employs flood monitoring to detect and prevent abuse patterns before they can compromise system security

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The patent converts the potential harm of open socket connections (which could be exploited for attacks) into a benefit by implementing flood monitoring that transforms connection requests into security events. By monitoring and analyzing connection patterns, the system can distinguish between legitimate traffic and potential attacks, turning what could be a security vulnerability into an enhanced security feature

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS8954590B2Tunneling apparatus and method for client-server communication
Publication Date: 2015.02.10 SAP SE
  • US8954590B2 patent drawing
  • US8954590B2 patent drawing
  • US8954590B2 patent drawing

AI summary

An HTTP tunneling service is described for creating a tunneled path between a client and a server (e.g., over a firewall or other data/protocol filtering device). According to one embodiment of the invention the client sends the server an initial request to open a preliminary socket connection which includes a secure client ID previously assigned to the client. The server opens the preliminary socket connection, generates a random client ID and transmits the random client ID to the client. The preliminary socket connection is then closed. The client then sends a second request to open a second socket connection using both the unique ID and the secure client ID for authentication purposes.