Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Secure data transfer over HTTP when HTTPS is not an option

I would like to write an application to manage files, directories and processes on hundreds of remote PCs. There are measurement programs running on these machines, which are currently managed manually using TightVNC / RealVNC. Since the number of machines is large (and increasing) there is a need for automatic management. The plan is that our operators would get a scriptable client application, from which they could send queries and commands to server applications running on each remote PC.

For the communication, I would like to use a TCP-based custom protocol, but it is administratively complicated and would take very long to open pinholes in every firewall in the way. Fortunately, there is a program with a built-in TinyWeb-based custom web server running on every remote PC, and port 80 is opened in every firewall. These web servers serve requests coming from a central server, by starting a CGI program, which loads and sends back parts of the log files of measurement programs.

So the plan is to write a CGI program, and communicate with it from the clients through HTTP (using GET and POST). Although (most of) the remote PCs are inside the corporate intranet, they are scattered all over the country, I would like to secure the communication. It would not be wise to send commands, which manipulate files and processes, in plain text. Unfortunately the program which contains the web server cannot be touched, so I cannot simply prepare it for HTTPS. I can only implement the security layer in the client and in the CGI program. What should I do?

I have read all similar questions in SO, but I am still not sure what to do in this specific situation. Thank you for your help.

like image 235
kol Avatar asked Nov 22 '11 12:11

kol


People also ask

Can I use HTTP instead of HTTPS?

If a website uses HTTP instead of HTTPS, all requests and responses can be read by anyone who is monitoring the session. Essentially, a malicious actor can just read the text in the request or the response and know exactly what information someone is asking for, sending, or receiving.

Which of these is the most secure way of data transfer HTTP HTTPS?

Hypertext transfer protocol secure (HTTPS) is the secure version of HTTP, which is the primary protocol used to send data between a web browser and a website. HTTPS is encrypted in order to increase security of data transfer.

Is data sent through HTTP Secure?

HTTP traffic is not encrypted and susceptible to eavesdropping and man-in-the-middle attacks. HTTPS, on the other hand, uses the TLS (or SSL) security protocol to create a secure connection and only transmits encrypted data over the network.

What is the risk of using HTTP instead of HTTPS?

The problem is that HTTP data is not encrypted, so can be intercepted by third parties to gather data passed between the two systems. This can be addressed by using a secure version called HTTPS, where the S stands for Secure.


2 Answers

There are several webshells but as far as I can see ( http://www-personal.umich.edu/~mressl/webshell/features.html ) they run on the top of an existing SSL/TLS layer.

There is also S-HTTP.

There are several ways of authenticating to an server (username/passwort) in a protected way, without SSL. http://www.switchonthecode.com/tutorials/secure-authentication-without-ssl-using-javascript . But these solutions are focused only on sending a username/password to the server.

like image 190
powtac Avatar answered Sep 18 '22 14:09

powtac


Would it be possible to implement something like message-level security in SOAP/WS-Security? I realise this might be a bit heavy duty and complicated to implement, but at least it is

  • standardised
  • definitely secure
  • possibly supported by some libraries or frameworks you could use
  • suitable for HTTP
like image 39
Mike Goodwin Avatar answered Sep 21 '22 14:09

Mike Goodwin